From cd8f94920f8342667ad9e3698f244f89ca1f807c Mon Sep 17 00:00:00 2001 From: PASSER-BY Date: Wed, 27 Mar 2024 22:53:43 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E5=BC=80=E6=BA=90?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 + LICENSE | 21 + README.md | 49 +- babel.config.js | 13 + dist/idcard.min.js | 13 + dist/idcard.min.mjs | 13 + index.html | 135 + package-lock.json | 4412 ++++++++++++++++++ package.json | 47 + rollup.config.mjs | 52 + src/idcard.js | 11 + src/module/data/china.js | 7213 ++++++++++++++++++++++++++++++ src/module/data/international.js | 249 ++ src/module/method.js | 50 + static/image/bg.svg | 54 + static/image/word_map.png | Bin 0 -> 89439 bytes static/script/locationSearch.js | 98 + static/style/index.css | 527 +++ 18 files changed, 12962 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 babel.config.js create mode 100644 dist/idcard.min.js create mode 100644 dist/idcard.min.mjs create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 rollup.config.mjs create mode 100644 src/idcard.js create mode 100644 src/module/data/china.js create mode 100644 src/module/data/international.js create mode 100644 src/module/method.js create mode 100644 static/image/bg.svg create mode 100644 static/image/word_map.png create mode 100644 static/script/locationSearch.js create mode 100644 static/style/index.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8a1514a --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.project +.settings + +node_modules/* + +/node_modules diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..738e413 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Haole Zheng + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index d92efa0..0ab45cf 100644 --- a/README.md +++ b/README.md @@ -1 +1,48 @@ -# idcard \ No newline at end of file +## 下载 & 安装 + +该 Javascript 库 / 模块可以用于前端也可以用于后端 Nodejs 中。 + +1. 直接下载idcard.js,然后使用 ` + + +
+
+ +
+
+
+
+
+

中国身份证号码解析数据开源

+

居民身份证、港澳台居民居住证、外国人永久居留身份证解析工具

+

+
+
+
+ 身份证号码查询 + 行政区划代码 > +
+
+
+

+ + +

+
+
+
+
+
+
+
+
+
+
+

居民身份证是国家法定的证明公民个人身份的证件。根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由17位数字本体码和1位校验码组成。排列顺序从左至右依次为:6位数字地址码,8位数字出生日期码,3位数字顺序码和1位数字校验码。

+

第1-6位为地址码,表示编码对象常住户口所在县(市、镇、区)的行政区划代码。

+

第7-14位为出生日期码,表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。

+

第15-17位为顺序码,是同一地址码所标示的区域范围内,对同年同月同日生的居民编订的顺序码。其中第15、16位是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码。第17位表示性别,男性为单数,女性为双数,如遇同年同月同日有两人以上时顺延第2、第3、第4、第5个分配码;

+

第18位为校验码,根据前面17位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来。

+

通过身份证号码可以查询身份证发证地,出生日期,性别,有效性等信息,身份证15位自动转18位升位转换。第一代身份证为单页卡式,15位编码,从1984年起开始启用,至2013年1月1日已停用。2004年1月1日,第二代居民身份证开始换发18位身份证,身份证件正面有签发机关和有效期限,印有国徽图案、证件名称、写意长城图案及彩色花纹;证件背面设计有姓名、性别、民族、出生日期、常住户口所在地住址、公民身份号码和本人相片7个登记项目。

+
+
+
+
+
+
数据开源
+
+

数据基于「MIT许可协议」开源,除需在源码中保留版权信息和许可声明外,你有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软件及软件的副本。数据持续更新中,如发现错漏或有想法建议可在此 反馈问题

+ +
+
+
+
+
+
+

Copyright © passer-by.com

+
+
+
+
+
+ + + + + + + + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..016a07a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4412 @@ +{ + "name": "china-idcard", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "china-idcard", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.23.2", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-runtime": "^7.23.2", + "@babel/preset-env": "^7.23.2", + "@babel/runtime": "^7.23.2", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-node-resolve": "^15.1.0", + "@rollup/plugin-terser": "^0.4.1", + "acorn-import-assertions": "^1.9.0", + "rollup": "^3.26.3", + "rollup-plugin-import-assert": "^3.0.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", + "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", + "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", + "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", + "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", + "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", + "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz", + "integrity": "sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@types/estree": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz", + "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.1.tgz", + "integrity": "sha512-IJTNCJMRHfRfb8un89z1QtS0x890C2QUrUxFMK8zy+RizcId6mfnqOf68Bu9YkDgpLYuvCm6aYbwDatXVZPjMQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001554", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz", + "integrity": "sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", + "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.568", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.568.tgz", + "integrity": "sha512-3TCOv8+BY6Ltpt1/CmGBMups2IdKOyfEmz4J8yIS4xLSeMm0Rf+psSaxLuswG9qMKt+XbNbmADybtXGpTFlbDg==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-import-assert": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-import-assert/-/rollup-plugin-import-assert-3.0.1.tgz", + "integrity": "sha512-7WynDI8B3F/ahhOEus1sDjKCPN3sV5ciV4t717kYlJOst59wJ76e3ig05mQJZZhc8AWpo4V0QMT7mrJpWShh0A==", + "dev": true, + "dependencies": { + "string-to-template-literal": "^2.0.0" + }, + "peerDependencies": { + "acorn-import-assertions": "^1.8.0", + "rollup": "^3.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/smob": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", + "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/string-to-template-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-to-template-literal/-/string-to-template-literal-2.0.0.tgz", + "integrity": "sha512-AbTUWHXMyoRlTFP9qe013dfGTFq1XbcBLUoLC7PcumbJewtUwNXCvnko5cH2gZkUFC7kD2Fwxiv4YIndkU0xHA==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/terser": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz", + "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + } + }, + "@babel/compat-data": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "dev": true + }, + "@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + } + }, + "@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + } + }, + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.15" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "requires": {} + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", + "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", + "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", + "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", + "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.15" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", + "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", + "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", + "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", + "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + }, + "@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@rollup/plugin-babel": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz", + "integrity": "sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + } + }, + "@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + } + }, + "@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "requires": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + } + }, + "@rollup/pluginutils": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@types/estree": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.3.tgz", + "integrity": "sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==", + "dev": true + }, + "@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "acorn": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.1.tgz", + "integrity": "sha512-IJTNCJMRHfRfb8un89z1QtS0x890C2QUrUxFMK8zy+RizcId6mfnqOf68Bu9YkDgpLYuvCm6aYbwDatXVZPjMQ==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "requires": {} + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3" + } + }, + "browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001554", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz", + "integrity": "sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "core-js-compat": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", + "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", + "dev": true, + "requires": { + "browserslist": "^4.22.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.568", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.568.tgz", + "integrity": "sha512-3TCOv8+BY6Ltpt1/CmGBMups2IdKOyfEmz4J8yIS4xLSeMm0Rf+psSaxLuswG9qMKt+XbNbmADybtXGpTFlbDg==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-import-assert": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-import-assert/-/rollup-plugin-import-assert-3.0.1.tgz", + "integrity": "sha512-7WynDI8B3F/ahhOEus1sDjKCPN3sV5ciV4t717kYlJOst59wJ76e3ig05mQJZZhc8AWpo4V0QMT7mrJpWShh0A==", + "dev": true, + "requires": { + "string-to-template-literal": "^2.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "smob": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", + "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "string-to-template-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-to-template-literal/-/string-to-template-literal-2.0.0.tgz", + "integrity": "sha512-AbTUWHXMyoRlTFP9qe013dfGTFq1XbcBLUoLC7PcumbJewtUwNXCvnko5cH2gZkUFC7kD2Fwxiv4YIndkU0xHA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "terser": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.22.0.tgz", + "integrity": "sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5821008 --- /dev/null +++ b/package.json @@ -0,0 +1,47 @@ +{ + "name": "idcard-tool", + "version": "1.0.0", + "description": "chinese idcard parser tool.", + "author": "HaoLe Zheng", + "license": "MIT", + "keywords": [ + "idcard", + "parser", + "居民身份证", + "港澳台居民居住证", + "外国人永久居留身份证" + ], + "main": "./dist/idcard.min.js", + "module": "./dist/idcard.min.mjs", + "exports": { + "import": "./dist/idcard.min.mjs", + "default": "./dist/idcard.min.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/mumuy/idcard.git" + }, + "bugs": { + "url": "https://github.com/mumuy/idcard/issues" + }, + "devDependencies": { + "@babel/core": "^7.23.2", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-runtime": "^7.23.2", + "@babel/preset-env": "^7.23.2", + "@babel/runtime": "^7.23.2", + "@rollup/plugin-babel": "^6.0.3", + "@rollup/plugin-node-resolve": "^15.1.0", + "@rollup/plugin-terser": "^0.4.1", + "acorn-import-assertions": "^1.9.0", + "rollup": "^3.26.3", + "rollup-plugin-import-assert": "^3.0.1" + }, + "scripts": { + "build": "rollup -c", + "watch": "rollup -wc" + }, + "homepage": "https://passer-by.com/idcard/", + "directories": {} +} diff --git a/rollup.config.mjs b/rollup.config.mjs new file mode 100644 index 0000000..58b9982 --- /dev/null +++ b/rollup.config.mjs @@ -0,0 +1,52 @@ +import resolve from '@rollup/plugin-node-resolve'; // 使用node_modules包 +import terser from '@rollup/plugin-terser'; // 代码压缩 +import babel from '@rollup/plugin-babel'; // ECMAScript兼容 +import {importAssertionsPlugin} from 'rollup-plugin-import-assert'; +import {importAssertions} from 'acorn-import-assertions'; +import pkg from './package.json' assert { type:'json' }; // 获取package信息 + +// 版权信息 +const repository = pkg.repository.url.replace(/(.+)(:\/\/.+)\.git$/,'https$2'); +const now = new Date(); +const date = (new Date(now.getTime()-now.getTimezoneOffset()*60000)).toISOString().substring(0,10); +const banner = `/*! + * ${pkg.name} v${pkg.version} + * ${pkg.description} + * ${pkg.homepage} + * + * Copyright (c) 2024-present, ${pkg.author} + * + * Released under the ${pkg.license} License + * ${repository} + * + * Created on: ${date} + */`; + +const commonPlugins = [ + resolve(), + importAssertionsPlugin(), + terser(), + babel({ + babelHelpers: 'runtime', + exclude:'node_modules/**' + }) +]; + + export default [{ + input: './src/idcard.js', + output:[{ + file: pkg.main, + format: 'umd', + name: 'idcard', + banner + },{ + file: pkg.module, + format: 'es', + banner + }], + acornInjectPlugins: [ importAssertions ], + plugins: commonPlugins, + watch: { + exclude: 'node_modules/**' + } +}]; diff --git a/src/idcard.js b/src/idcard.js new file mode 100644 index 0000000..c8ee39a --- /dev/null +++ b/src/idcard.js @@ -0,0 +1,11 @@ +import {parserInternational,parserChina} from './module/method.js'; + +export default function(id){ + if(id.match(/^9\d{16}[0-9xX]$/)){ + return parserInternational(id); + }else if(id.match(/^\d{17}[0-9xX]$/)){ + return parserChina(id); + }else{ + return null; + } +}; diff --git a/src/module/data/china.js b/src/module/data/china.js new file mode 100644 index 0000000..1436f24 --- /dev/null +++ b/src/module/data/china.js @@ -0,0 +1,7213 @@ +/* + * GB11643 - 行政区划代码历史数据 +*/ +export default { +"110000":"北京市", +"110100":"市辖区", +"110101":"东城区", +"110102":"西城区", +"110103":"崇文区", +"110104":"宣武区", +"110105":"朝阳区", +"110106":"丰台区", +"110107":"石景山区", +"110108":"海淀区", +"110109":"门头沟区", +"110110":"燕山区", +"110111":"房山区", +"110112":"通州区", +"110113":"顺义区", +"110114":"昌平区", +"110115":"大兴区", +"110116":"怀柔区", +"110117":"平谷区", +"110118":"密云区", +"110119":"延庆区", +"110201":"昌平县", +"110202":"顺义县", +"110203":"通县", +"110204":"大兴县", +"110205":"房山县", +"110206":"平谷县", +"110207":"怀柔县", +"110208":"密云县", +"110209":"延庆县", +"110221":"昌平县", +"110222":"顺义县", +"110223":"通县", +"110224":"大兴县", +"110225":"房山县", +"110226":"平谷县", +"110227":"怀柔县", +"110228":"密云县", +"110229":"延庆县", +"120000":"天津市", +"120100":"市辖区", +"120101":"和平区", +"120102":"河东区", +"120103":"河西区", +"120104":"南开区", +"120105":"河北区", +"120106":"红桥区", +"120107":"塘沽区", +"120108":"汉沽区", +"120109":"大港区", +"120110":"东丽区", +"120111":"西青区", +"120112":"津南区", +"120113":"北辰区", +"120114":"武清区", +"120115":"宝坻区", +"120116":"滨海新区", +"120117":"宁河区", +"120118":"静海区", +"120119":"蓟州区", +"120201":"宁河县", +"120202":"武清县", +"120203":"静海县", +"120204":"宝坻县", +"120205":"蓟县", +"120221":"宁河县", +"120222":"武清县", +"120223":"静海县", +"120224":"宝坻县", +"120225":"蓟县", +"130000":"河北省", +"130100":"石家庄市", +"130101":"市辖区", +"130102":"长安区", +"130103":"桥东区", +"130104":"桥西区", +"130105":"新华区", +"130106":"郊区", +"130107":"井陉矿区", +"130108":"裕华区", +"130109":"藁城区", +"130110":"鹿泉区", +"130111":"栾城区", +"130121":"井陉县", +"130122":"获鹿县", +"130123":"正定县", +"130124":"栾城县", +"130125":"行唐县", +"130126":"灵寿县", +"130127":"高邑县", +"130128":"深泽县", +"130129":"赞皇县", +"130130":"无极县", +"130131":"平山县", +"130132":"元氏县", +"130133":"赵县", +"130181":"辛集市", +"130182":"藁城市", +"130183":"晋州市", +"130184":"新乐市", +"130185":"鹿泉市", +"130200":"唐山市", +"130201":"市辖区", +"130202":"路南区", +"130203":"路北区", +"130204":"古冶区", +"130205":"开平区", +"130206":"新区", +"130207":"丰南区", +"130208":"丰润区", +"130209":"曹妃甸区", +"130221":"丰润县", +"130222":"丰南县", +"130223":"滦县", +"130224":"滦南县", +"130225":"乐亭县", +"130226":"迁安县", +"130227":"迁西县", +"130228":"遵化县", +"130229":"玉田县", +"130230":"唐海县", +"130281":"遵化市", +"130282":"丰南市", +"130283":"迁安市", +"130284":"滦州市", +"130300":"秦皇岛市", +"130301":"市辖区", +"130302":"海港区", +"130303":"山海关区", +"130304":"北戴河区", +"130305":"郊区", +"130306":"抚宁区", +"130321":"青龙满族自治县", +"130322":"昌黎县", +"130323":"抚宁县", +"130324":"卢龙县", +"130400":"邯郸市", +"130401":"市辖区", +"130402":"邯山区", +"130403":"丛台区", +"130404":"复兴区", +"130405":"郊区", +"130406":"峰峰矿区", +"130407":"肥乡区", +"130408":"永年区", +"130421":"邯郸县", +"130422":"武安县", +"130423":"临漳县", +"130424":"成安县", +"130425":"大名县", +"130426":"涉县", +"130427":"磁县", +"130428":"肥乡县", +"130429":"永年县", +"130430":"邱县", +"130431":"鸡泽县", +"130432":"广平县", +"130433":"馆陶县", +"130434":"魏县", +"130435":"曲周县", +"130481":"武安市", +"130500":"邢台市", +"130501":"市辖区", +"130502":"襄都区", +"130503":"信都区", +"130504":"郊区", +"130505":"任泽区", +"130506":"南和区", +"130521":"邢台县", +"130522":"临城县", +"130523":"内丘县", +"130524":"柏乡县", +"130525":"隆尧县", +"130526":"任县", +"130527":"南和县", +"130528":"宁晋县", +"130529":"巨鹿县", +"130530":"新河县", +"130531":"广宗县", +"130532":"平乡县", +"130533":"威县", +"130534":"清河县", +"130535":"临西县", +"130581":"南宫市", +"130582":"沙河市", +"130600":"保定市", +"130601":"市辖区", +"130602":"竞秀区", +"130603":"北市区", +"130604":"南市区", +"130605":"郊区", +"130606":"莲池区", +"130607":"满城区", +"130608":"清苑区", +"130609":"徐水区", +"130621":"满城县", +"130622":"清苑县", +"130623":"涞水县", +"130624":"阜平县", +"130625":"徐水县", +"130626":"定兴县", +"130627":"唐县", +"130628":"高阳县", +"130629":"容城县", +"130630":"涞源县", +"130631":"望都县", +"130632":"安新县", +"130633":"易县", +"130634":"曲阳县", +"130635":"蠡县", +"130636":"顺平县", +"130637":"博野县", +"130638":"雄县", +"130681":"涿州市", +"130682":"定州市", +"130683":"安国市", +"130684":"高碑店市", +"130700":"张家口市", +"130701":"市辖区", +"130702":"桥东区", +"130703":"桥西区", +"130704":"茶坊区", +"130705":"宣化区", +"130706":"下花园区", +"130707":"庞家堡区", +"130708":"万全区", +"130709":"崇礼区", +"130721":"宣化县", +"130722":"张北县", +"130723":"康保县", +"130724":"沽源县", +"130725":"尚义县", +"130726":"蔚县", +"130727":"阳原县", +"130728":"怀安县", +"130729":"万全县", +"130730":"怀来县", +"130731":"涿鹿县", +"130732":"赤城县", +"130733":"崇礼县", +"130800":"承德市", +"130801":"市辖区", +"130802":"双桥区", +"130803":"双滦区", +"130804":"鹰手营子矿区", +"130821":"承德县", +"130822":"兴隆县", +"130823":"平泉县", +"130824":"滦平县", +"130825":"隆化县", +"130826":"丰宁满族自治县", +"130827":"宽城满族自治县", +"130828":"围场满族蒙古族自治县", +"130881":"平泉市", +"130900":"沧州市", +"130901":"市辖区", +"130902":"新华区", +"130903":"运河区", +"130904":"郊区", +"130921":"沧县", +"130922":"青县", +"130923":"东光县", +"130924":"海兴县", +"130925":"盐山县", +"130926":"肃宁县", +"130927":"南皮县", +"130928":"吴桥县", +"130929":"献县", +"130930":"孟村回族自治县", +"130981":"泊头市", +"130982":"任丘市", +"130983":"黄骅市", +"130984":"河间市", +"131000":"廊坊市", +"131001":"市辖区", +"131002":"安次区", +"131003":"广阳区", +"131021":"三河县", +"131022":"固安县", +"131023":"永清县", +"131024":"香河县", +"131025":"大城县", +"131026":"文安县", +"131027":"霸县", +"131028":"大厂回族自治县", +"131081":"霸州市", +"131082":"三河市", +"131100":"衡水市", +"131101":"市辖区", +"131102":"桃城区", +"131103":"冀州区", +"131121":"枣强县", +"131122":"武邑县", +"131123":"武强县", +"131124":"饶阳县", +"131125":"安平县", +"131126":"故城县", +"131127":"景县", +"131128":"阜城县", +"131181":"冀州市", +"131182":"深州市", +"132100":"邯郸地区", +"132101":"邯郸市", +"132102":"邯山区", +"132103":"丛台区", +"132104":"复兴区", +"132105":"郊区", +"132106":"峰峰矿区", +"132121":"大名县", +"132122":"魏县", +"132123":"曲周县", +"132124":"丘县", +"132125":"鸡泽县", +"132126":"肥乡县", +"132127":"广平县", +"132128":"成安县", +"132129":"临漳县", +"132130":"磁县", +"132131":"武安县", +"132132":"涉县", +"132133":"永年县", +"132134":"邯郸县", +"132135":"馆陶县", +"132200":"邢台地区", +"132201":"南宫市", +"132202":"沙河市", +"132203":"桥西区", +"132204":"郊区", +"132221":"邢台县", +"132222":"沙河县", +"132223":"临城县", +"132224":"内丘县", +"132225":"柏乡县", +"132226":"隆尧县", +"132227":"任县", +"132228":"南和县", +"132229":"宁晋县", +"132230":"南宫县", +"132231":"巨鹿县", +"132232":"新河县", +"132233":"广宗县", +"132234":"平乡县", +"132235":"威县", +"132236":"清河县", +"132237":"临西县", +"132300":"石家庄地区", +"132301":"辛集市", +"132302":"藁城市", +"132303":"晋州市", +"132304":"新乐市", +"132321":"束鹿县", +"132322":"晋县", +"132323":"深泽县", +"132324":"无极县", +"132325":"藁城县", +"132326":"赵县", +"132327":"栾城县", +"132328":"正定县", +"132329":"新乐县", +"132330":"高邑县", +"132331":"元氏县", +"132332":"赞皇县", +"132333":"井陉县", +"132334":"获鹿县", +"132335":"平山县", +"132336":"灵寿县", +"132337":"行唐县", +"132400":"保定地区", +"132401":"定州市", +"132402":"涿州市", +"132403":"安国市", +"132404":"高碑店市", +"132405":"郊区", +"132421":"易县", +"132422":"满城县", +"132423":"徐水县", +"132424":"涞源县", +"132425":"定兴县", +"132426":"顺平县", +"132427":"唐县", +"132428":"望都县", +"132429":"涞水县", +"132430":"涿县", +"132431":"清苑县", +"132432":"高阳县", +"132433":"安新县", +"132434":"雄县", +"132435":"容城县", +"132436":"新城县", +"132437":"曲阳县", +"132438":"阜平县", +"132439":"定县", +"132440":"安国县", +"132441":"博野县", +"132442":"蠡县", +"132500":"张家口地区", +"132501":"张家口市", +"132502":"桥东区", +"132503":"桥西区", +"132504":"茶坊区", +"132505":"宣化区", +"132506":"下花园区", +"132507":"庞家堡区", +"132521":"张北县", +"132522":"康保县", +"132523":"沽源县", +"132524":"尚义县", +"132525":"蔚县", +"132526":"阳原县", +"132527":"怀安县", +"132528":"万全县", +"132529":"怀来县", +"132530":"涿鹿县", +"132531":"宣化县", +"132532":"赤城县", +"132533":"崇礼县", +"132600":"承德地区", +"132601":"承德市", +"132602":"双桥区", +"132603":"双滦区", +"132604":"鹰手营子矿区", +"132621":"青龙县", +"132622":"宽城满族自治县", +"132623":"兴隆县", +"132624":"平泉县", +"132625":"承德县", +"132626":"滦平县", +"132627":"丰宁满族自治县", +"132628":"隆化县", +"132629":"围场满族蒙古族自治县", +"132700":"唐山地区", +"132701":"秦皇岛市", +"132702":"海港区", +"132703":"山海关区", +"132704":"北戴河区", +"132705":"郊区", +"132721":"丰润县", +"132722":"丰南县", +"132723":"滦县", +"132724":"滦南县", +"132725":"乐亭县", +"132726":"昌黎县", +"132727":"抚宁县", +"132728":"卢龙县", +"132729":"迁安县", +"132730":"迁西县", +"132731":"遵化县", +"132732":"玉田县", +"132733":"唐海县", +"132800":"廊坊地区", +"132801":"廊坊市", +"132821":"三河县", +"132822":"大厂回族自治县", +"132823":"香河县", +"132824":"安次县", +"132825":"永清县", +"132826":"固安县", +"132827":"霸县", +"132828":"文安县", +"132829":"大城县", +"132900":"沧州地区", +"132901":"沧州市", +"132902":"泊头市", +"132903":"任丘市", +"132904":"黄骅市", +"132905":"河间市", +"132921":"沧县", +"132922":"河间县", +"132923":"肃宁县", +"132924":"献县", +"132925":"交河县", +"132926":"吴桥县", +"132927":"东光县", +"132928":"南皮县", +"132929":"盐山县", +"132930":"黄骅县", +"132931":"孟村回族自治县", +"132932":"青县", +"132933":"任丘县", +"132934":"海兴县", +"133000":"衡水地区", +"133001":"衡水市", +"133002":"冀州市", +"133003":"深州市", +"133021":"衡水县", +"133022":"冀县", +"133023":"枣强县", +"133024":"武邑县", +"133025":"深县", +"133026":"武强县", +"133027":"饶阳县", +"133028":"安平县", +"133029":"故城县", +"133030":"景县", +"133031":"阜城县", +"133100":"雄安新区", +"139000":"省直辖单位", +"139001":"武安市", +"139002":"霸州市", +"139003":"遵化市", +"139004":"辛集市", +"139005":"藁城市", +"139006":"晋州市", +"139007":"新乐市", +"139008":"泊头市", +"139009":"任丘市", +"139010":"黄骅市", +"139011":"河间市", +"139012":"三河市", +"139013":"南宫市", +"139014":"沙河市", +"139015":"定州市", +"139016":"涿州市", +"139017":"安国市", +"139018":"高碑店市", +"139019":"鹿泉市", +"139020":"丰南市", +"140000":"山西省", +"140100":"太原市", +"140101":"市辖区", +"140102":"南城区", +"140103":"北城区", +"140104":"河西区", +"140105":"小店区", +"140106":"迎泽区", +"140107":"杏花岭区", +"140108":"尖草坪区", +"140109":"万柏林区", +"140110":"晋源区", +"140111":"古交工矿区", +"140112":"南郊区", +"140113":"北郊区", +"140120":"市区", +"140121":"清徐县", +"140122":"阳曲县", +"140123":"娄烦县", +"140181":"古交市", +"140200":"大同市", +"140201":"市辖区", +"140202":"城区", +"140203":"矿区", +"140211":"南郊区", +"140212":"新荣区", +"140213":"平城区", +"140214":"云冈区", +"140215":"云州区", +"140221":"阳高县", +"140222":"天镇县", +"140223":"广灵县", +"140224":"灵丘县", +"140225":"浑源县", +"140226":"左云县", +"140227":"大同县", +"140230":"左云县", +"140232":"大同县", +"140300":"阳泉市", +"140301":"市辖区", +"140302":"城区", +"140303":"矿区", +"140311":"郊区", +"140321":"平定县", +"140322":"盂县", +"140400":"长治市", +"140401":"市辖区", +"140402":"城区", +"140403":"潞州区", +"140404":"上党区", +"140405":"屯留区", +"140406":"潞城区", +"140411":"郊区", +"140421":"长治县", +"140422":"潞城县", +"140423":"襄垣县", +"140424":"屯留县", +"140425":"平顺县", +"140426":"黎城县", +"140427":"壶关县", +"140428":"长子县", +"140429":"武乡县", +"140430":"沁县", +"140431":"沁源县", +"140481":"潞城市", +"140500":"晋城市", +"140501":"市辖区", +"140502":"城区", +"140503":"郊区", +"140511":"郊区", +"140521":"沁水县", +"140522":"阳城县", +"140523":"高平县", +"140524":"陵川县", +"140525":"泽州县", +"140581":"高平市", +"140600":"朔州市", +"140601":"市辖区", +"140602":"朔城区", +"140603":"平鲁区", +"140621":"山阴县", +"140622":"应县", +"140623":"右玉县", +"140624":"怀仁县", +"140681":"怀仁市", +"140700":"晋中市", +"140701":"市辖区", +"140702":"榆次区", +"140703":"太谷区", +"140721":"榆社县", +"140722":"左权县", +"140723":"和顺县", +"140724":"昔阳县", +"140725":"寿阳县", +"140726":"太谷县", +"140727":"祁县", +"140728":"平遥县", +"140729":"灵石县", +"140781":"介休市", +"140800":"运城市", +"140801":"市辖区", +"140802":"盐湖区", +"140821":"临猗县", +"140822":"万荣县", +"140823":"闻喜县", +"140824":"稷山县", +"140825":"新绛县", +"140826":"绛县", +"140827":"垣曲县", +"140828":"夏县", +"140829":"平陆县", +"140830":"芮城县", +"140881":"永济市", +"140882":"河津市", +"140900":"忻州市", +"140901":"市辖区", +"140902":"忻府区", +"140921":"定襄县", +"140922":"五台县", +"140923":"代县", +"140924":"繁峙县", +"140925":"宁武县", +"140926":"静乐县", +"140927":"神池县", +"140928":"五寨县", +"140929":"岢岚县", +"140930":"河曲县", +"140931":"保德县", +"140932":"偏关县", +"140981":"原平市", +"141000":"临汾市", +"141001":"市辖区", +"141002":"尧都区", +"141021":"曲沃县", +"141022":"翼城县", +"141023":"襄汾县", +"141024":"洪洞县", +"141025":"古县", +"141026":"安泽县", +"141027":"浮山县", +"141028":"吉县", +"141029":"乡宁县", +"141030":"大宁县", +"141031":"隰县", +"141032":"永和县", +"141033":"蒲县", +"141034":"汾西县", +"141081":"侯马市", +"141082":"霍州市", +"141100":"吕梁市", +"141101":"市辖区", +"141102":"离石区", +"141121":"文水县", +"141122":"交城县", +"141123":"兴县", +"141124":"临县", +"141125":"柳林县", +"141126":"石楼县", +"141127":"岚县", +"141128":"方山县", +"141129":"中阳县", +"141130":"交口县", +"141181":"孝义市", +"141182":"汾阳市", +"142100":"雁北地区", +"142121":"阳高县", +"142122":"天镇县", +"142123":"广灵县", +"142124":"灵丘县", +"142125":"浑源县", +"142126":"应县", +"142127":"山阴县", +"142128":"朔县", +"142129":"平鲁县", +"142130":"左云县", +"142131":"右玉县", +"142132":"大同县", +"142133":"怀仁县", +"142200":"忻州地区", +"142201":"忻州市", +"142202":"原平市", +"142221":"忻县", +"142222":"定襄县", +"142223":"五台县", +"142224":"原平县", +"142225":"代县", +"142226":"繁峙县", +"142227":"宁武县", +"142228":"静乐县", +"142229":"神池县", +"142230":"五寨县", +"142231":"岢岚县", +"142232":"河曲县", +"142233":"保德县", +"142234":"偏关县", +"142300":"吕梁地区", +"142301":"孝义市", +"142302":"离石市", +"142303":"汾阳市", +"142321":"汾阳县", +"142322":"文水县", +"142323":"交城县", +"142324":"孝义县", +"142325":"兴县", +"142326":"临县", +"142327":"柳林县", +"142328":"石楼县", +"142329":"岚县", +"142330":"方山县", +"142331":"离石县", +"142332":"中阳县", +"142333":"交口县", +"142400":"晋中地区", +"142401":"榆次市", +"142402":"介休市", +"142421":"榆社县", +"142422":"左权县", +"142423":"和顺县", +"142424":"昔阳县", +"142425":"平定县", +"142426":"盂县", +"142427":"寿阳县", +"142428":"榆次县", +"142429":"太谷县", +"142430":"祁县", +"142431":"平遥县", +"142432":"介休县", +"142433":"灵石县", +"142500":"晋东南地区", +"142501":"晋城市", +"142521":"长治县", +"142522":"潞城县", +"142523":"屯留县", +"142524":"长子县", +"142525":"沁水县", +"142526":"阳城县", +"142527":"晋城县", +"142528":"高平县", +"142529":"陵川县", +"142530":"壶关县", +"142531":"平顺县", +"142532":"黎城县", +"142533":"武乡县", +"142534":"襄垣县", +"142535":"沁县", +"142536":"沁源县", +"142600":"临汾地区", +"142601":"临汾市", +"142602":"侯马市", +"142603":"霍州市", +"142621":"曲沃县", +"142622":"翼城县", +"142623":"襄汾县", +"142624":"临汾县", +"142625":"洪洞县", +"142626":"霍县", +"142627":"古县", +"142628":"安泽县", +"142629":"浮山县", +"142630":"吉县", +"142631":"乡宁县", +"142632":"蒲县", +"142633":"大宁县", +"142634":"永和县", +"142635":"隰县", +"142636":"汾西县", +"142700":"运城地区", +"142701":"运城市", +"142702":"永济市", +"142703":"河津市", +"142721":"运城县", +"142722":"永济县", +"142723":"芮城县", +"142724":"临猗县", +"142725":"万荣县", +"142726":"新绛县", +"142727":"稷山县", +"142728":"河津县", +"142729":"闻喜县", +"142730":"夏县", +"142731":"绛县", +"142732":"平陆县", +"142733":"垣曲县", +"149000":"省直辖单位", +"149001":"古交市", +"149002":"高平市", +"149003":"潞城市", +"150000":"内蒙古自治区", +"150100":"呼和浩特市", +"150101":"市辖区", +"150102":"新城区", +"150103":"回民区", +"150104":"玉泉区", +"150105":"赛罕区", +"150120":"市区", +"150121":"土默特左旗", +"150122":"托克托县", +"150123":"和林格尔县", +"150124":"清水河县", +"150125":"武川县", +"150200":"包头市", +"150201":"市辖区", +"150202":"东河区", +"150203":"昆都仑区", +"150204":"青山区", +"150205":"石拐区", +"150206":"白云鄂博矿区", +"150207":"九原区", +"150220":"市区", +"150221":"土默特右旗", +"150222":"固阳县", +"150223":"达尔罕茂明安联合旗", +"150300":"乌海市", +"150301":"市辖区", +"150302":"海勃湾区", +"150303":"海南区", +"150304":"乌达区", +"150400":"赤峰市", +"150401":"市辖区", +"150402":"红山区", +"150403":"元宝山区", +"150404":"松山区", +"150421":"阿鲁科尔沁旗", +"150422":"巴林左旗", +"150423":"巴林右旗", +"150424":"林西县", +"150425":"克什克腾旗", +"150426":"翁牛特旗", +"150427":"赤峰县", +"150428":"喀喇沁旗", +"150429":"宁城县", +"150430":"敖汉旗", +"150500":"通辽市", +"150501":"市辖区", +"150502":"科尔沁区", +"150521":"科尔沁左翼中旗", +"150522":"科尔沁左翼后旗", +"150523":"开鲁县", +"150524":"库伦旗", +"150525":"奈曼旗", +"150526":"扎鲁特旗", +"150581":"霍林郭勒市", +"150600":"鄂尔多斯市", +"150601":"鄂尔多斯市", +"150602":"东胜区", +"150603":"康巴什区", +"150621":"达拉特旗", +"150622":"准格尔旗", +"150623":"鄂托克前旗", +"150624":"鄂托克旗", +"150625":"杭锦旗", +"150626":"乌审旗", +"150627":"伊金霍洛旗", +"150700":"呼伦贝尔市", +"150701":"市辖区", +"150702":"海拉尔区", +"150703":"扎赉诺尔区", +"150721":"阿荣旗", +"150722":"莫力达瓦达斡尔族自治旗", +"150723":"鄂伦春自治旗", +"150724":"鄂温克族自治旗", +"150725":"陈巴尔虎旗", +"150726":"新巴尔虎左旗", +"150727":"新巴尔虎右旗", +"150781":"满洲里市", +"150782":"牙克石市", +"150783":"扎兰屯市", +"150784":"额尔古纳市", +"150785":"根河市", +"150800":"巴彦淖尔市", +"150801":"市辖区", +"150802":"临河区", +"150821":"五原县", +"150822":"磴口县", +"150823":"乌拉特前旗", +"150824":"乌拉特中旗", +"150825":"乌拉特后旗", +"150826":"杭锦后旗", +"150900":"乌兰察布市", +"150901":"市辖区", +"150902":"集宁区", +"150921":"卓资县", +"150922":"化德县", +"150923":"商都县", +"150924":"兴和县", +"150925":"凉城县", +"150926":"察哈尔右翼前旗", +"150927":"察哈尔右翼中旗", +"150928":"察哈尔右翼后旗", +"150929":"四子王旗", +"150981":"丰镇市", +"152100":"呼伦贝尔盟", +"152101":"海拉尔市", +"152102":"满洲里市", +"152103":"扎兰屯市", +"152104":"牙克石市", +"152105":"根河市", +"152106":"额尔古纳市", +"152121":"布特哈旗", +"152122":"阿荣旗", +"152123":"莫力达瓦达斡尔族自治旗", +"152124":"喜桂图旗", +"152125":"额尔古纳右旗", +"152126":"额尔古纳左旗", +"152127":"鄂伦春自治旗", +"152128":"鄂温克族自治旗", +"152129":"新巴尔虎右旗", +"152130":"新巴尔虎左旗", +"152131":"陈巴尔虎旗", +"152200":"兴安盟", +"152201":"乌兰浩特市", +"152202":"阿尔山市", +"152221":"科尔沁右翼前旗", +"152222":"科尔沁右翼中旗", +"152223":"扎赉特旗", +"152224":"突泉县", +"152300":"哲里木盟", +"152301":"通辽市", +"152302":"霍林郭勒市", +"152321":"通辽县", +"152322":"科尔沁左翼中旗", +"152323":"科尔沁左翼后旗", +"152324":"开鲁县", +"152325":"库伦旗", +"152326":"奈曼旗", +"152327":"扎鲁特旗", +"152400":"昭乌达盟", +"152401":"赤峰市", +"152421":"阿鲁科尔沁旗", +"152422":"巴林左旗", +"152423":"巴林右旗", +"152424":"林西县", +"152425":"克什克腾旗", +"152426":"翁牛特旗", +"152427":"赤峰县", +"152428":"喀喇沁旗", +"152429":"宁城县", +"152430":"敖汉旗", +"152431":"阿鲁科尔沁旗", +"152500":"锡林郭勒盟", +"152501":"二连浩特市", +"152502":"锡林浩特市", +"152521":"阿巴哈纳尔旗", +"152522":"阿巴嘎旗", +"152523":"苏尼特左旗", +"152524":"苏尼特右旗", +"152525":"东乌珠穆沁旗", +"152526":"西乌珠穆沁旗", +"152527":"太仆寺旗", +"152528":"镶黄旗", +"152529":"正镶白旗", +"152530":"正蓝旗", +"152531":"多伦县", +"152600":"乌兰察布盟", +"152601":"集宁市", +"152602":"丰镇市", +"152621":"武川县", +"152622":"和林格尔县", +"152623":"清水河县", +"152624":"卓资县", +"152625":"化德县", +"152626":"商都县", +"152627":"兴和县", +"152628":"丰镇县", +"152629":"凉城县", +"152630":"察哈尔右翼前旗", +"152631":"察哈尔右翼中旗", +"152632":"察哈尔右翼后旗", +"152633":"达尔罕茂明安联合旗", +"152634":"四子王旗", +"152700":"伊克昭盟", +"152701":"东胜市", +"152721":"东胜县", +"152722":"达拉特旗", +"152723":"准格尔旗", +"152724":"鄂托克前旗", +"152725":"鄂托克旗", +"152726":"杭锦旗", +"152727":"乌审旗", +"152728":"伊金霍洛旗", +"152800":"巴彦淖尔盟", +"152801":"临河市", +"152821":"临河县", +"152822":"五原县", +"152823":"磴口县", +"152824":"乌拉特前旗", +"152825":"乌拉特中旗", +"152826":"乌拉特后旗", +"152827":"杭锦后旗", +"152828":"丰镇县", +"152829":"凉城县", +"152830":"察哈尔右翼前旗", +"152831":"察哈尔右翼中旗", +"152832":"察哈尔右翼后旗", +"152833":"达尔罕茂明安联合旗", +"152834":"四子王旗", +"152900":"阿拉善盟", +"152921":"阿拉善左旗", +"152922":"阿拉善右旗", +"152923":"额济纳旗", +"210000":"辽宁省", +"210100":"沈阳市", +"210101":"市辖区", +"210102":"和平区", +"210103":"沈河区", +"210104":"大东区", +"210105":"皇姑区", +"210106":"铁西区", +"210111":"苏家屯区", +"210112":"浑南区", +"210113":"沈北新区", +"210114":"于洪区", +"210115":"辽中区", +"210120":"市区", +"210121":"新民县", +"210122":"辽中县", +"210123":"康平县", +"210124":"法库县", +"210181":"新民市", +"210200":"大连市", +"210201":"市辖区", +"210202":"中山区", +"210203":"西岗区", +"210204":"沙河口区", +"210211":"甘井子区", +"210212":"旅顺口区", +"210213":"金州区", +"210214":"普兰店区", +"210219":"瓦房店市", +"210220":"市区", +"210221":"金县", +"210222":"新金县", +"210223":"复县", +"210224":"长海县", +"210225":"庄河县", +"210281":"瓦房店市", +"210282":"普兰店市", +"210283":"庄河市", +"210300":"鞍山市", +"210301":"市辖区", +"210302":"铁东区", +"210303":"铁西区", +"210304":"立山区", +"210311":"千山区", +"210319":"海城市", +"210320":"市区", +"210321":"台安县", +"210322":"海城县", +"210323":"岫岩满族自治县", +"210381":"海城市", +"210400":"抚顺市", +"210401":"市辖区", +"210402":"新抚区", +"210403":"东洲区", +"210404":"望花区", +"210411":"顺城区", +"210420":"市区", +"210421":"抚顺县", +"210422":"新宾满族自治县", +"210423":"清原满族自治县", +"210500":"本溪市", +"210501":"市辖区", +"210502":"平山区", +"210503":"溪湖区", +"210504":"明山区", +"210505":"南芬区", +"210511":"南芬区", +"210520":"市区", +"210521":"本溪满族自治县", +"210522":"桓仁满族自治县", +"210600":"丹东市", +"210601":"市辖区", +"210602":"元宝区", +"210603":"振兴区", +"210604":"振安区", +"210620":"市区", +"210621":"凤城满族自治县", +"210622":"岫岩满族自治县", +"210623":"东沟县", +"210624":"宽甸满族自治县", +"210681":"东港市", +"210682":"凤城市", +"210700":"锦州市", +"210701":"市辖区", +"210702":"古塔区", +"210703":"凌河区", +"210704":"南票区", +"210705":"葫芦岛区", +"210706":"太和区", +"210711":"太和区", +"210719":"锦西市", +"210720":"市区", +"210721":"锦西县", +"210722":"兴城县", +"210723":"绥中县", +"210724":"锦县", +"210725":"北镇满族自治县", +"210726":"黑山县", +"210727":"义县", +"210781":"凌海市", +"210782":"北镇市", +"210800":"营口市", +"210801":"市辖区", +"210802":"站前区", +"210803":"西市区", +"210804":"鲅鱼圈区", +"210811":"老边区", +"210812":"鲅鱼圈区", +"210820":"市区", +"210821":"营口县", +"210822":"盘山县", +"210823":"大洼县", +"210824":"盖县", +"210881":"盖州市", +"210882":"大石桥市", +"210900":"阜新市", +"210901":"市辖区", +"210902":"海州区", +"210903":"新邱区", +"210904":"太平区", +"210905":"清河门区", +"210911":"细河区", +"210920":"市区", +"210921":"阜新蒙古族自治县", +"210922":"彰武县", +"211000":"辽阳市", +"211001":"市辖区", +"211002":"白塔区", +"211003":"文圣区", +"211004":"宏伟区", +"211005":"弓长岭区", +"211011":"太子河区", +"211020":"市区", +"211021":"辽阳县", +"211022":"灯塔县", +"211081":"灯塔市", +"211100":"盘锦市", +"211101":"市辖区", +"211102":"双台子区", +"211103":"兴隆台区", +"211104":"大洼区", +"211111":"郊区", +"211121":"大洼县", +"211122":"盘山县", +"211200":"铁岭市", +"211201":"市辖区", +"211202":"银州区", +"211203":"铁法区", +"211204":"清河区", +"211221":"铁岭县", +"211222":"开原县", +"211223":"西丰县", +"211224":"昌图县", +"211225":"康平县", +"211226":"法库县", +"211281":"调兵山市", +"211282":"开原市", +"211300":"朝阳市", +"211301":"市辖区", +"211302":"双塔区", +"211303":"龙城区", +"211319":"北票市", +"211321":"朝阳县", +"211322":"建平县", +"211323":"凌源县", +"211324":"喀喇沁左翼蒙古族自治县", +"211325":"建昌县", +"211326":"北票县", +"211381":"北票市", +"211382":"凌源市", +"211400":"葫芦岛市", +"211401":"市辖区", +"211402":"连山区", +"211403":"龙港区", +"211404":"南票区", +"211405":"葫芦岛区", +"211421":"绥中县", +"211422":"建昌县", +"211481":"兴城市", +"212100":"铁岭地区", +"212101":"铁岭市", +"212102":"铁法市", +"212121":"铁岭县", +"212122":"开原县", +"212123":"西丰县", +"212124":"昌图县", +"212125":"康平县", +"212126":"法库县", +"212200":"朝阳地区", +"212201":"朝阳市", +"212221":"朝阳县", +"212222":"建平县", +"212223":"凌源县", +"212224":"喀喇沁左翼蒙古族自治县", +"212225":"建昌县", +"212226":"北票县", +"219001":"瓦房店市", +"219002":"海城市", +"219003":"锦西市", +"219004":"兴城市", +"219005":"铁法市", +"219006":"北票市", +"219007":"开原市", +"219008":"普兰店市", +"219009":"凌源市", +"219010":"庄河市", +"219011":"大石桥市", +"219012":"盖州市", +"219013":"新民市", +"219014":"东港市", +"219015":"凌海市", +"219016":"凤城市", +"220000":"吉林省", +"220100":"长春市", +"220101":"市辖区", +"220102":"南关区", +"220103":"宽城区", +"220104":"朝阳区", +"220105":"二道区", +"220106":"绿园区", +"220111":"郊区", +"220112":"双阳区", +"220113":"九台区", +"220120":"市区", +"220121":"榆树县", +"220122":"农安县", +"220123":"九台县", +"220124":"德惠县", +"220125":"双阳县", +"220181":"九台市", +"220182":"榆树市", +"220183":"德惠市", +"220184":"公主岭市", +"220200":"吉林市", +"220201":"市辖区", +"220202":"昌邑区", +"220203":"龙潭区", +"220204":"船营区", +"220211":"丰满区", +"220220":"市区", +"220221":"永吉县", +"220222":"舒兰县", +"220223":"磐石县", +"220224":"蛟河县", +"220225":"桦甸县", +"220281":"蛟河市", +"220282":"桦甸市", +"220283":"舒兰市", +"220284":"磐石市", +"220300":"四平市", +"220301":"市辖区", +"220302":"铁西区", +"220303":"铁东区", +"220319":"公主岭市", +"220321":"怀德县", +"220322":"梨树县", +"220323":"伊通满族自治县", +"220324":"双辽县", +"220381":"公主岭市", +"220382":"双辽市", +"220400":"辽源市", +"220401":"市辖区", +"220402":"龙山区", +"220403":"西安区", +"220421":"东丰县", +"220422":"东辽县", +"220500":"通化市", +"220501":"市辖区", +"220502":"东昌区", +"220503":"二道江区", +"220519":"梅河口市", +"220521":"通化县", +"220522":"集安县", +"220523":"辉南县", +"220524":"柳河县", +"220581":"梅河口市", +"220582":"集安市", +"220600":"白山市", +"220601":"市辖区", +"220602":"浑江区", +"220603":"三岔子区", +"220604":"临江区", +"220605":"江源区", +"220621":"抚松县", +"220622":"靖宇县", +"220623":"长白朝鲜族自治县", +"220624":"临江县", +"220625":"江源县", +"220681":"临江市", +"220700":"松原市", +"220701":"市辖区", +"220702":"宁江区", +"220721":"前郭尔罗斯蒙古族自治县", +"220722":"长岭县", +"220723":"乾安县", +"220724":"扶余县", +"220781":"扶余市", +"220800":"白城市", +"220801":"市辖区", +"220802":"洮北区", +"220821":"镇赉县", +"220822":"通榆县", +"220881":"洮南市", +"220882":"大安市", +"222100":"四平地区", +"222101":"四平市", +"222102":"辽源市", +"222121":"怀德县", +"222122":"梨树县", +"222123":"伊通满族自治县", +"222124":"东丰县", +"222125":"双辽县", +"222200":"通化地区", +"222201":"通化市", +"222202":"浑江市", +"222221":"海龙县", +"222222":"通化县", +"222223":"柳河县", +"222224":"辉南县", +"222225":"集安县", +"222226":"抚松县", +"222227":"靖宇县", +"222228":"长白朝鲜族自治县", +"222300":"白城地区", +"222301":"白城市", +"222302":"洮南市", +"222303":"扶余市", +"222304":"大安市", +"222321":"扶余县", +"222322":"洮安县", +"222323":"长岭县", +"222324":"前郭尔罗斯蒙古族自治县", +"222325":"大安县", +"222326":"镇赉县", +"222327":"通榆县", +"222328":"乾安县", +"222400":"延边朝鲜族自治州", +"222401":"延吉市", +"222402":"图们市", +"222403":"敦化市", +"222404":"珲春市", +"222405":"龙井市", +"222406":"和龙市", +"222421":"龙井县", +"222422":"敦化县", +"222423":"和龙县", +"222424":"汪清县", +"222425":"珲春县", +"222426":"安图县", +"222427":"龙井县", +"222500":"德惠地区", +"222521":"榆树县", +"222522":"农安县", +"222523":"九台县", +"222524":"德惠县", +"222525":"双阳县", +"222600":"永吉地区", +"222621":"永吉县", +"222622":"舒兰县", +"222623":"磐石县", +"222624":"蛟河县", +"222625":"桦甸县", +"229000":"省直辖行政单位", +"229001":"公主岭市", +"229002":"梅河口市", +"229003":"集安市", +"229004":"桦甸市", +"229005":"九台市", +"229006":"蛟河市", +"229007":"榆树市", +"229008":"舒兰市", +"229009":"大安市", +"229010":"洮南市", +"229011":"临江市", +"229012":"德惠市", +"230000":"黑龙江省", +"230100":"哈尔滨市", +"230101":"市辖区", +"230102":"道里区", +"230103":"南岗区", +"230104":"道外区", +"230105":"太平区", +"230106":"香坊区", +"230107":"动力区", +"230108":"平房区", +"230109":"松北区", +"230110":"香坊区", +"230111":"呼兰区", +"230112":"阿城区", +"230113":"双城区", +"230119":"阿城市", +"230121":"呼兰县", +"230122":"阿城县", +"230123":"依兰县", +"230124":"方正县", +"230125":"宾县", +"230126":"巴彦县", +"230127":"木兰县", +"230128":"通河县", +"230129":"延寿县", +"230181":"阿城市", +"230182":"双城市", +"230183":"尚志市", +"230184":"五常市", +"230200":"齐齐哈尔市", +"230201":"市辖区", +"230202":"龙沙区", +"230203":"建华区", +"230204":"铁锋区", +"230205":"昂昂溪区", +"230206":"富拉尔基区", +"230207":"碾子山区", +"230208":"梅里斯达斡尔族区", +"230221":"龙江县", +"230222":"讷河县", +"230223":"依安县", +"230224":"泰来县", +"230225":"甘南县", +"230226":"杜尔伯特蒙古族自治县", +"230227":"富裕县", +"230228":"林甸县", +"230229":"克山县", +"230230":"克东县", +"230231":"拜泉县", +"230281":"讷河市", +"230300":"鸡西市", +"230301":"市辖区", +"230302":"鸡冠区", +"230303":"恒山区", +"230304":"滴道区", +"230305":"梨树区", +"230306":"城子河区", +"230307":"麻山区", +"230321":"鸡东县", +"230322":"虎林县", +"230381":"虎林市", +"230382":"密山市", +"230400":"鹤岗市", +"230401":"市辖区", +"230402":"向阳区", +"230403":"工农区", +"230404":"南山区", +"230405":"兴安区", +"230406":"东山区", +"230407":"兴山区", +"230421":"萝北县", +"230422":"绥滨县", +"230500":"双鸭山市", +"230501":"市辖区", +"230502":"尖山区", +"230503":"岭东区", +"230504":"岭西区", +"230505":"四方台区", +"230506":"宝山区", +"230507":"兴山区", +"230521":"集贤县", +"230522":"友谊县", +"230523":"宝清县", +"230524":"饶河县", +"230600":"大庆市", +"230601":"市辖区", +"230602":"萨尔图区", +"230603":"龙凤区", +"230604":"让胡路区", +"230605":"红岗区", +"230606":"大同区", +"230621":"肇州县", +"230622":"肇源县", +"230623":"林甸县", +"230624":"杜尔伯特蒙古族自治县", +"230700":"伊春市", +"230701":"市辖区", +"230702":"伊春区", +"230703":"南岔区", +"230704":"友好区", +"230705":"西林区", +"230706":"翠峦区", +"230707":"新青区", +"230708":"美溪区", +"230709":"金山屯区", +"230710":"五营区", +"230711":"乌马河区", +"230712":"汤旺河区", +"230713":"带岭区", +"230714":"乌伊岭区", +"230715":"红星区", +"230716":"上甘岭区", +"230717":"伊美区", +"230718":"乌翠区", +"230719":"友好区", +"230720":"伊春地区", +"230721":"铁力县", +"230722":"嘉荫县", +"230723":"汤旺县", +"230724":"丰林县", +"230725":"大箐山县", +"230726":"南岔县", +"230751":"金林区", +"230781":"铁力市", +"230800":"佳木斯市", +"230801":"市辖区", +"230802":"永红区", +"230803":"向阳区", +"230804":"前进区", +"230805":"东风区", +"230811":"郊区", +"230821":"富锦县", +"230822":"桦南县", +"230823":"依兰县", +"230824":"友谊县", +"230825":"集贤县", +"230826":"桦川县", +"230827":"宝清县", +"230828":"汤原县", +"230829":"绥滨县", +"230830":"萝北县", +"230831":"同江县", +"230832":"饶河县", +"230833":"抚远县", +"230834":"友谊县", +"230881":"同江市", +"230882":"富锦市", +"230883":"抚远市", +"230900":"七台河市", +"230901":"市辖区", +"230902":"新兴区", +"230903":"桃山区", +"230904":"茄子河区", +"230921":"勃利县", +"231000":"牡丹江市", +"231001":"市辖区", +"231002":"东安区", +"231003":"阳明区", +"231004":"爱民区", +"231005":"西安区", +"231006":"爱民区", +"231007":"阳明区", +"231011":"郊区", +"231020":"绥芬河市", +"231021":"宁安县", +"231022":"海林县", +"231023":"穆棱县", +"231024":"东宁县", +"231025":"林口县", +"231026":"密山县", +"231027":"虎林县", +"231081":"绥芬河市", +"231082":"密山市", +"231083":"海林市", +"231084":"宁安市", +"231085":"穆棱市", +"231086":"东宁市", +"231100":"黑河市", +"231101":"市辖区", +"231102":"爱辉区", +"231121":"嫩江县", +"231122":"德都县", +"231123":"逊克县", +"231124":"孙吴县", +"231181":"北安市", +"231182":"五大连池市", +"231183":"嫩江市", +"231200":"绥化市", +"231201":"市辖区", +"231202":"北林区", +"231221":"望奎县", +"231222":"兰西县", +"231223":"青冈县", +"231224":"庆安县", +"231225":"明水县", +"231226":"绥棱县", +"231281":"安达市", +"231282":"肇东市", +"231283":"海伦市", +"232100":"松花江地区", +"232101":"双城市", +"232102":"尚志市", +"232103":"五常市", +"232121":"阿城县", +"232122":"宾县", +"232123":"呼兰县", +"232124":"双城县", +"232125":"五常县", +"232126":"巴彦县", +"232127":"木兰县", +"232128":"通河县", +"232129":"尚志市", +"232130":"方正县", +"232131":"延寿县", +"232132":"绥棱县", +"232200":"嫩江地区", +"232221":"龙江县", +"232222":"讷河县", +"232223":"依安县", +"232224":"泰来县", +"232225":"甘南县", +"232226":"杜尔伯特蒙古族自治县", +"232227":"富裕县", +"232228":"林甸县", +"232229":"克山县", +"232230":"克东县", +"232231":"拜泉县", +"232300":"绥化地区", +"232301":"绥化市", +"232302":"安达市", +"232303":"肇东市", +"232304":"海伦市", +"232321":"海伦县", +"232322":"肇东县", +"232323":"绥化县", +"232324":"望奎县", +"232325":"兰西县", +"232326":"青冈县", +"232327":"安达县", +"232328":"肇源县", +"232329":"肇州县", +"232330":"庆安县", +"232331":"明水县", +"232332":"绥棱县", +"232400":"合江地区", +"232401":"佳木斯市", +"232402":"七台河市", +"232403":"永红区", +"232404":"向阳区", +"232405":"前进区", +"232406":"东风区", +"232411":"郊区", +"232421":"富锦县", +"232422":"桦南县", +"232423":"依兰县", +"232424":"勃利县", +"232425":"集贤县", +"232426":"桦川县", +"232427":"宝清县", +"232428":"汤原县", +"232429":"绥滨县", +"232430":"萝北县", +"232431":"同江县", +"232432":"饶河县", +"232433":"抚远县", +"232500":"牡丹江地区", +"232501":"牡丹江市", +"232502":"绥芬河市", +"232503":"东安区", +"232504":"先锋区", +"232505":"爱民区", +"232506":"阳明区", +"232511":"郊区", +"232521":"宁安县", +"232522":"海林县", +"232523":"穆棱县", +"232524":"东宁县", +"232525":"林口县", +"232526":"鸡东县", +"232527":"密山县", +"232528":"虎林县", +"232581":"绥芬河市", +"232600":"黑河地区", +"232601":"黑河市", +"232602":"北安市", +"232603":"五大连池市", +"232621":"北安县", +"232622":"嫩江县", +"232623":"德都县", +"232624":"爱辉县", +"232625":"逊克县", +"232626":"孙吴县", +"232627":"通北县", +"232700":"大兴安岭地区", +"232701":"漠河市", +"232721":"呼玛县", +"232722":"塔河县", +"232723":"漠河县", +"232724":"漠河县", +"239000":"省直辖行政单位", +"239001":"绥芬河市", +"239002":"阿城市", +"239003":"同江市", +"239004":"富锦市", +"239005":"铁力市", +"239006":"密山市", +"239007":"海林市", +"239008":"讷河市", +"239009":"北安市", +"239010":"五大连池市", +"239011":"宁安市", +"310000":"上海市", +"310100":"市辖区", +"310101":"黄浦区", +"310102":"南市区", +"310103":"卢湾区", +"310104":"徐汇区", +"310105":"长宁区", +"310106":"静安区", +"310107":"普陀区", +"310108":"闸北区", +"310109":"虹口区", +"310110":"杨浦区", +"310111":"吴淞区", +"310112":"闵行区", +"310113":"宝山区", +"310114":"嘉定区", +"310115":"浦东新区", +"310116":"金山区", +"310117":"松江区", +"310118":"青浦区", +"310119":"南汇区", +"310120":"奉贤区", +"310151":"崇明区", +"310201":"上海县", +"310202":"嘉定县", +"310203":"宝山县", +"310204":"川沙县", +"310205":"南汇县", +"310206":"奉贤县", +"310207":"松江县", +"310208":"金山县", +"310209":"青浦县", +"310210":"崇明县", +"310221":"上海县", +"310222":"嘉定县", +"310223":"宝山县", +"310224":"川沙县", +"310225":"南汇县", +"310226":"奉贤县", +"310227":"松江县", +"310228":"金山县", +"310229":"青浦县", +"310230":"崇明县", +"320000":"江苏省", +"320100":"南京市", +"320101":"市辖区", +"320102":"玄武区", +"320103":"白下区", +"320104":"秦淮区", +"320105":"建邺区", +"320106":"鼓楼区", +"320107":"下关区", +"320111":"浦口区", +"320112":"大厂区", +"320113":"栖霞区", +"320114":"雨花台区", +"320115":"江宁区", +"320116":"六合区", +"320117":"溧水区", +"320118":"高淳区", +"320120":"市区", +"320121":"江宁县", +"320122":"江浦县", +"320123":"六合县", +"320124":"溧水县", +"320125":"高淳县", +"320126":"江都县", +"320200":"无锡市", +"320201":"市辖区", +"320202":"崇安区", +"320203":"南长区", +"320204":"北塘区", +"320205":"锡山区", +"320206":"惠山区", +"320211":"滨湖区", +"320212":"马山区", +"320213":"梁溪区", +"320214":"新吴区", +"320219":"江阴县", +"320221":"江阴县", +"320222":"无锡县", +"320223":"宜兴县", +"320281":"江阴市", +"320282":"宜兴市", +"320283":"锡山市", +"320300":"徐州市", +"320301":"市辖区", +"320302":"鼓楼区", +"320303":"云龙区", +"320304":"九里区", +"320305":"贾汪区", +"320311":"泉山区", +"320312":"铜山区", +"320321":"丰县", +"320322":"沛县", +"320323":"铜山县", +"320324":"睢宁县", +"320325":"邳县", +"320326":"新沂县", +"320381":"新沂市", +"320382":"邳州市", +"320400":"常州市", +"320401":"市辖区", +"320402":"天宁区", +"320403":"广化区", +"320404":"钟楼区", +"320405":"戚墅堰区", +"320411":"新北区", +"320412":"武进区", +"320413":"金坛区", +"320419":"武进市", +"320421":"武进县", +"320422":"金坛县", +"320423":"溧阳县", +"320481":"溧阳市", +"320482":"金坛市", +"320483":"武进市", +"320500":"苏州市", +"320501":"市辖区", +"320502":"沧浪区", +"320503":"平江区", +"320504":"金阊区", +"320505":"虎丘区", +"320506":"吴中区", +"320507":"相城区", +"320508":"姑苏区", +"320509":"吴江区", +"320511":"郊区", +"320520":"常熟市", +"320521":"沙洲县", +"320522":"太仓县", +"320523":"昆山县", +"320524":"吴县", +"320525":"吴江县", +"320581":"常熟市", +"320582":"张家港市", +"320583":"昆山市", +"320584":"吴江市", +"320585":"太仓市", +"320586":"吴县市", +"320600":"南通市", +"320601":"市辖区", +"320602":"崇川区", +"320603":"港闸区", +"320610":"海门区", +"320611":"港闸区", +"320612":"通州区", +"320613":"崇川区", +"320614":"海门区", +"320621":"海安县", +"320622":"如皋县", +"320623":"如东县", +"320624":"南通县", +"320625":"海门县", +"320626":"启东县", +"320681":"启东市", +"320682":"如皋市", +"320683":"通州市", +"320684":"海门市", +"320685":"海安市", +"320700":"连云港市", +"320701":"市辖区", +"320702":"新海区", +"320703":"连云区", +"320704":"云台区", +"320705":"新浦区", +"320706":"海州区", +"320707":"赣榆区", +"320711":"郊区", +"320721":"赣榆县", +"320722":"东海县", +"320723":"灌云县", +"320724":"灌南县", +"320800":"淮安市", +"320801":"市辖区", +"320802":"清河区", +"320803":"淮安区", +"320804":"淮阴区", +"320811":"清浦区", +"320812":"清江浦区", +"320813":"洪泽区", +"320819":"宿迁市", +"320821":"淮阴县", +"320822":"灌南县", +"320823":"沭阳县", +"320824":"宿迁县", +"320825":"泗阳县", +"320826":"涟水县", +"320827":"泗洪县", +"320828":"淮安县", +"320829":"洪泽县", +"320830":"盱眙县", +"320831":"金湖县", +"320881":"宿迁市", +"320882":"淮安市", +"320900":"盐城市", +"320901":"市辖区", +"320902":"亭湖区", +"320903":"盐都区", +"320904":"大丰区", +"320911":"郊区", +"320919":"东台市", +"320921":"响水县", +"320922":"滨海县", +"320923":"阜宁县", +"320924":"射阳县", +"320925":"建湖县", +"320926":"大丰县", +"320927":"东台县", +"320928":"盐都县", +"320981":"东台市", +"320982":"大丰市", +"321000":"扬州市", +"321001":"市辖区", +"321002":"广陵区", +"321003":"邗江区", +"321011":"郊区", +"321012":"江都区", +"321019":"仪征市", +"321020":"泰州市", +"321021":"兴化县", +"321022":"高邮县", +"321023":"宝应县", +"321024":"靖江县", +"321025":"泰兴县", +"321026":"江都县", +"321027":"邗江县", +"321028":"泰县", +"321029":"仪征县", +"321081":"仪征市", +"321082":"泰州市", +"321083":"兴化市", +"321084":"高邮市", +"321085":"泰兴市", +"321086":"靖江市", +"321087":"江都市", +"321088":"江都市", +"321100":"镇江市", +"321101":"市辖区", +"321102":"京口区", +"321111":"润州区", +"321112":"丹徒区", +"321119":"丹阳市", +"321121":"丹徒县", +"321122":"丹阳县", +"321123":"句容县", +"321124":"扬中县", +"321181":"丹阳市", +"321182":"扬中市", +"321183":"句容市", +"321200":"泰州市", +"321201":"市辖区", +"321202":"海陵区", +"321203":"高港区", +"321204":"姜堰区", +"321281":"兴化市", +"321282":"靖江市", +"321283":"泰兴市", +"321284":"姜堰市", +"321300":"宿迁市", +"321301":"市辖区", +"321302":"宿城区", +"321311":"宿豫区", +"321321":"宿豫县", +"321322":"沭阳县", +"321323":"泗阳县", +"321324":"泗洪县", +"322100":"徐州地区", +"322121":"丰县", +"322122":"沛县", +"322123":"铜山县", +"322124":"睢宁县", +"322125":"邳县", +"322126":"新沂县", +"322127":"东海县", +"322128":"赣榆县", +"322200":"淮阴地区", +"322201":"清江市", +"322221":"淮阴县", +"322222":"灌云县", +"322223":"灌南县", +"322224":"沭阳县", +"322225":"宿迁县", +"322226":"泗阳县", +"322227":"涟水县", +"322228":"泗洪县", +"322229":"淮安县", +"322230":"洪泽县", +"322231":"盱眙县", +"322232":"金湖县", +"322300":"盐城地区", +"322321":"响水县", +"322322":"滨海县", +"322323":"阜宁县", +"322324":"射阳县", +"322325":"建湖县", +"322326":"盐城县", +"322327":"大丰县", +"322328":"东台县", +"322400":"扬州地区", +"322401":"扬州市", +"322402":"泰州市", +"322421":"兴化县", +"322422":"高邮县", +"322423":"宝应县", +"322424":"靖江县", +"322425":"泰兴县", +"322426":"江都县", +"322427":"邗江县", +"322428":"泰县", +"322429":"仪征县", +"322500":"南通地区", +"322521":"海安县", +"322522":"如皋县", +"322523":"如东县", +"322524":"南通县", +"322525":"海门县", +"322526":"启东县", +"322600":"镇江地区", +"322601":"镇江市", +"322621":"丹徒县", +"322622":"武进县", +"322623":"丹阳县", +"322624":"句容县", +"322625":"金坛县", +"322626":"溧水县", +"322627":"高淳县", +"322628":"溧阳县", +"322629":"宜兴县", +"322630":"扬中县", +"322700":"苏州地区", +"322721":"江阴县", +"322722":"无锡县", +"322723":"沙洲县", +"322724":"常熟县", +"322725":"太仓县", +"322726":"昆山县", +"322727":"吴县", +"322728":"吴江县", +"329000":"省直辖行政单位", +"329001":"泰州市", +"329002":"仪征市", +"329003":"常熟市", +"329004":"张家港市", +"329005":"江阴市", +"329006":"宿迁市", +"329007":"丹阳市", +"329008":"东台市", +"329009":"兴化市", +"329010":"淮安市", +"329011":"宜兴市", +"329012":"昆山市", +"329013":"启东市", +"329014":"新沂市", +"329015":"溧阳市", +"329016":"如皋市", +"329017":"高邮市", +"329018":"吴江市", +"329019":"邳州市", +"329020":"泰兴市", +"329021":"通州市", +"329022":"太仓市", +"329023":"靖江市", +"329024":"金坛市", +"329025":"江都市", +"329026":"海门市", +"329027":"扬中市", +"329028":"姜堰市", +"330000":"浙江省", +"330100":"杭州市", +"330101":"市辖区", +"330102":"上城区", +"330103":"下城区", +"330104":"江干区", +"330105":"拱墅区", +"330106":"西湖区", +"330107":"半山区", +"330108":"滨江区", +"330109":"萧山区", +"330110":"余杭区", +"330111":"富阳区", +"330112":"临安区", +"330113":"临平区", +"330114":"钱塘区", +"330120":"市区", +"330121":"萧山县", +"330122":"桐庐县", +"330123":"富阳县", +"330124":"临安县", +"330125":"余杭县", +"330126":"建德县", +"330127":"淳安县", +"330181":"萧山市", +"330182":"建德市", +"330183":"富阳市", +"330184":"余杭市", +"330185":"临安市", +"330200":"宁波市", +"330201":"市辖区", +"330202":"镇明区", +"330203":"海曙区", +"330204":"江东区", +"330205":"江北区", +"330206":"北仑区", +"330207":"鄞州区", +"330211":"镇海区", +"330212":"鄞州区", +"330213":"奉化区", +"330219":"余姚市", +"330220":"市区", +"330221":"镇海县", +"330222":"慈溪县", +"330223":"余姚县", +"330224":"奉化县", +"330225":"象山县", +"330226":"宁海县", +"330227":"鄞县", +"330281":"余姚市", +"330282":"慈溪市", +"330283":"奉化市", +"330300":"温州市", +"330301":"市辖区", +"330302":"鹿城区", +"330303":"龙湾区", +"330304":"瓯海区", +"330305":"洞头区", +"330320":"市区", +"330321":"瓯海县", +"330322":"洞头县", +"330323":"乐清县", +"330324":"永嘉县", +"330325":"瑞安县", +"330326":"平阳县", +"330327":"苍南县", +"330328":"文成县", +"330329":"泰顺县", +"330381":"瑞安市", +"330382":"乐清市", +"330383":"龙港市", +"330400":"嘉兴市", +"330401":"市辖区", +"330402":"南湖区", +"330411":"秀洲区", +"330419":"海宁市", +"330421":"嘉善县", +"330422":"平湖县", +"330423":"海宁县", +"330424":"海盐县", +"330425":"桐乡县", +"330481":"海宁市", +"330482":"平湖市", +"330483":"桐乡市", +"330500":"湖州市", +"330501":"市辖区", +"330502":"吴兴区", +"330503":"南浔区", +"330511":"郊区", +"330521":"德清县", +"330522":"长兴县", +"330523":"安吉县", +"330600":"绍兴市", +"330601":"市辖区", +"330602":"越城区", +"330603":"柯桥区", +"330604":"上虞区", +"330621":"绍兴县", +"330622":"上虞县", +"330623":"嵊县", +"330624":"新昌县", +"330625":"诸暨县", +"330681":"诸暨市", +"330682":"上虞市", +"330683":"嵊州市", +"330700":"金华市", +"330701":"市辖区", +"330702":"婺城区", +"330703":"金东区", +"330719":"兰溪市", +"330721":"金华县", +"330722":"永康县", +"330723":"武义县", +"330724":"东阳县", +"330725":"义乌县", +"330726":"浦江县", +"330727":"磐安县", +"330781":"兰溪市", +"330782":"义乌市", +"330783":"东阳市", +"330784":"永康市", +"330800":"衢州市", +"330801":"市辖区", +"330802":"柯城区", +"330803":"衢江区", +"330821":"衢县", +"330822":"常山县", +"330823":"江山县", +"330824":"开化县", +"330825":"龙游县", +"330881":"江山市", +"330900":"舟山市", +"330901":"市辖区", +"330902":"定海区", +"330903":"普陀区", +"330921":"岱山县", +"330922":"嵊泗县", +"331000":"台州市", +"331001":"市辖区", +"331002":"椒江区", +"331003":"黄岩区", +"331004":"路桥区", +"331021":"玉环县", +"331022":"三门县", +"331023":"天台县", +"331024":"仙居县", +"331081":"温岭市", +"331082":"临海市", +"331083":"玉环市", +"331100":"丽水市", +"331101":"市辖区", +"331102":"莲都区", +"331121":"青田县", +"331122":"缙云县", +"331123":"遂昌县", +"331124":"松阳县", +"331125":"云和县", +"331126":"庆元县", +"331127":"景宁畲族自治县", +"331181":"龙泉市", +"332100":"嘉兴地区", +"332101":"湖州市", +"332102":"嘉兴市", +"332121":"嘉善县", +"332122":"平湖县", +"332123":"海宁县", +"332124":"海盐县", +"332125":"桐乡县", +"332126":"德清县", +"332127":"长兴县", +"332128":"安吉县", +"332129":"长兴县", +"332130":"安吉县", +"332200":"宁波地区", +"332221":"慈溪县", +"332222":"余姚县", +"332223":"奉化县", +"332224":"象山县", +"332225":"宁海县", +"332226":"鄞县", +"332227":"镇海县", +"332300":"绍兴地区", +"332301":"绍兴市", +"332321":"绍兴县", +"332322":"上虞县", +"332323":"嵊县", +"332324":"新昌县", +"332325":"诸暨县", +"332400":"金华地区", +"332401":"金华市", +"332402":"衢州市", +"332421":"兰溪县", +"332422":"永康县", +"332423":"武义县", +"332424":"东阳县", +"332425":"义乌县", +"332426":"浦江县", +"332427":"常山县", +"332428":"江山县", +"332429":"开化县", +"332430":"龙游县", +"332431":"磐安县", +"332500":"丽水地区", +"332501":"丽水市", +"332502":"龙泉市", +"332521":"丽水县", +"332522":"青田县", +"332523":"云和县", +"332524":"龙泉县", +"332525":"庆元县", +"332526":"缙云县", +"332527":"遂昌县", +"332528":"松阳县", +"332529":"景宁畲族自治县", +"332530":"江山县", +"332531":"开化县", +"332581":"龙泉市", +"332582":"丽水市", +"332600":"台州地区", +"332601":"椒江市", +"332602":"临海市", +"332603":"黄岩市", +"332621":"临海县", +"332622":"黄岩县", +"332623":"温岭县", +"332624":"仙居县", +"332625":"天台县", +"332626":"三门县", +"332627":"玉环县", +"332700":"舟山地区", +"332701":"椒江市", +"332721":"定海县", +"332722":"普陀县", +"332723":"岱山县", +"332724":"嵊泗县", +"332725":"天台县", +"332726":"三门县", +"332727":"玉环县", +"332800":"舟山地区", +"332821":"定海县", +"332822":"普陀县", +"332823":"岱山县", +"332824":"嵊泗县", +"339000":"省直辖行政单位", +"339001":"余姚市", +"339002":"海宁市", +"339003":"兰溪市", +"339004":"瑞安市", +"339005":"萧山市", +"339006":"江山市", +"339007":"义乌市", +"339008":"东阳市", +"339009":"慈溪市", +"339010":"奉化市", +"339011":"诸暨市", +"339012":"平湖市", +"339013":"建德市", +"339014":"永康市", +"339015":"上虞市", +"339016":"桐乡市", +"339017":"乐清市", +"339018":"临海市", +"339019":"富阳市", +"339020":"温岭市", +"339021":"余杭市", +"340000":"安徽省", +"340100":"合肥市", +"340101":"市辖区", +"340102":"瑶海区", +"340103":"庐阳区", +"340104":"蜀山区", +"340111":"包河区", +"340120":"市区", +"340121":"长丰县", +"340122":"肥东县", +"340123":"肥西县", +"340124":"庐江县", +"340181":"巢湖市", +"340200":"芜湖市", +"340201":"市辖区", +"340202":"镜湖区", +"340203":"弋江区", +"340204":"新芜区", +"340205":"裕溪口区", +"340206":"四褐山区", +"340207":"鸠江区", +"340208":"三山区", +"340209":"弋江区", +"340210":"湾沚区", +"340211":"郊区", +"340212":"繁昌区", +"340220":"市区", +"340221":"芜湖县", +"340222":"繁昌县", +"340223":"南陵县", +"340224":"青阳县", +"340225":"无为县", +"340281":"无为市", +"340300":"蚌埠市", +"340301":"市辖区", +"340302":"龙子湖区", +"340303":"蚌山区", +"340304":"禹会区", +"340311":"淮上区", +"340321":"怀远县", +"340322":"五河县", +"340323":"固镇县", +"340400":"淮南市", +"340401":"市辖区", +"340402":"大通区", +"340403":"田家庵区", +"340404":"谢家集区", +"340405":"八公山区", +"340406":"潘集区", +"340420":"市区", +"340421":"凤台县", +"340422":"寿县", +"340500":"马鞍山市", +"340501":"市辖区", +"340502":"金家庄区", +"340503":"花山区", +"340504":"雨山区", +"340505":"向山区", +"340506":"博望区", +"340511":"郊区", +"340521":"当涂县", +"340522":"含山县", +"340523":"和县", +"340600":"淮北市", +"340601":"市辖区", +"340602":"杜集区", +"340603":"相山区", +"340604":"烈山区", +"340611":"郊区", +"340620":"市区", +"340621":"濉溪县", +"340700":"铜陵市", +"340701":"市辖区", +"340702":"铜官山区", +"340703":"狮子山区", +"340704":"铜山区", +"340705":"铜官区", +"340706":"义安区", +"340711":"郊区", +"340720":"市区", +"340721":"铜陵县", +"340722":"枞阳县", +"340800":"安庆市", +"340801":"市辖区", +"340802":"迎江区", +"340803":"大观区", +"340811":"郊区", +"340821":"桐城县", +"340822":"怀宁县", +"340823":"枞阳县", +"340824":"潜山县", +"340825":"太湖县", +"340826":"宿松县", +"340827":"望江县", +"340828":"岳西县", +"340881":"桐城市", +"340882":"潜山市", +"340900":"省直辖行政单位", +"340901":"黄山市", +"341000":"黄山市", +"341001":"市辖区", +"341002":"屯溪区", +"341003":"黄山区", +"341004":"徽州区", +"341021":"歙县", +"341022":"休宁县", +"341023":"黟县", +"341024":"祁门县", +"341100":"滁州市", +"341101":"市辖区", +"341102":"琅琊区", +"341103":"南谯区", +"341121":"天长县", +"341122":"来安县", +"341124":"全椒县", +"341125":"定远县", +"341126":"凤阳县", +"341127":"嘉山县", +"341181":"天长市", +"341182":"明光市", +"341200":"阜阳市", +"341201":"市辖区", +"341202":"颍州区", +"341203":"颍东区", +"341204":"颍泉区", +"341221":"临泉县", +"341222":"太和县", +"341223":"涡阳县", +"341224":"蒙城县", +"341225":"阜南县", +"341226":"颍上县", +"341227":"利辛县", +"341281":"亳州市", +"341282":"界首市", +"341300":"宿州市", +"341301":"市辖区", +"341302":"埇桥区", +"341321":"砀山县", +"341322":"萧县", +"341323":"灵璧县", +"341324":"泗县", +"341400":"巢湖市", +"341401":"市辖区", +"341402":"居巢区", +"341421":"庐江县", +"341422":"无为县", +"341423":"含山县", +"341424":"和县", +"341500":"六安市", +"341501":"市辖区", +"341502":"金安区", +"341503":"裕安区", +"341504":"叶集区", +"341521":"寿县", +"341522":"霍邱县", +"341523":"舒城县", +"341524":"金寨县", +"341525":"霍山县", +"341600":"亳州市", +"341601":"市辖区", +"341602":"谯城区", +"341621":"涡阳县", +"341622":"蒙城县", +"341623":"利辛县", +"341700":"池州市", +"341701":"市辖区", +"341702":"贵池区", +"341721":"东至县", +"341722":"石台县", +"341723":"青阳县", +"341800":"宣城市", +"341801":"市辖区", +"341802":"宣州区", +"341821":"郎溪县", +"341822":"广德县", +"341823":"泾县", +"341824":"绩溪县", +"341825":"旌德县", +"341881":"宁国市", +"341882":"广德市", +"342100":"阜阳地区", +"342101":"阜阳市", +"342102":"亳州市", +"342103":"界首市", +"342121":"阜阳县", +"342122":"临泉县", +"342123":"太和县", +"342124":"涡阳县", +"342125":"蒙城县", +"342126":"亳县", +"342127":"阜南县", +"342128":"颍上县", +"342129":"界首县", +"342130":"利辛县", +"342200":"宿县地区", +"342201":"宿州市", +"342221":"砀山县", +"342222":"萧县", +"342223":"宿县", +"342224":"灵璧县", +"342225":"泗县", +"342226":"怀远县", +"342227":"五河县", +"342228":"固镇县", +"342300":"滁县地区", +"342301":"滁州市", +"342321":"天长县", +"342322":"来安县", +"342323":"滁县", +"342324":"全椒县", +"342325":"定远县", +"342326":"凤阳县", +"342327":"嘉山县", +"342400":"六安地区", +"342401":"六安市", +"342421":"六安县", +"342422":"寿县", +"342423":"霍邱县", +"342424":"肥西县", +"342425":"舒城县", +"342426":"金寨县", +"342427":"霍山县", +"342500":"宣城地区", +"342501":"宣州市", +"342502":"宁国市", +"342521":"宣州市", +"342522":"郎溪县", +"342523":"广德县", +"342524":"宁国县", +"342525":"当涂县", +"342526":"繁昌县", +"342527":"南陵县", +"342528":"青阳县", +"342529":"泾县", +"342530":"旌德县", +"342531":"绩溪县", +"342600":"巢湖地区", +"342601":"巢湖市", +"342621":"肥东县", +"342622":"庐江县", +"342623":"无为县", +"342624":"巢县", +"342625":"含山县", +"342626":"和县", +"342700":"徽州地区", +"342701":"屯溪市", +"342721":"绩溪县", +"342722":"旌德县", +"342723":"歙县", +"342724":"休宁县", +"342725":"黟县", +"342726":"祁门县", +"342727":"太平县", +"342728":"石台县", +"342800":"安庆地区", +"342821":"怀宁县", +"342822":"桐城县", +"342823":"枞阳县", +"342824":"潜山县", +"342825":"太湖县", +"342826":"宿松县", +"342827":"望江县", +"342828":"岳西县", +"342829":"东至县", +"342830":"贵池县", +"342831":"石台县", +"342900":"池州地区", +"342901":"贵池市", +"342921":"东至县", +"342922":"石台县", +"342923":"青阳县", +"349001":"天长市", +"349002":"明光市", +"350000":"福建省", +"350100":"福州市", +"350101":"市辖区", +"350102":"鼓楼区", +"350103":"台江区", +"350104":"仓山区", +"350105":"马尾区", +"350111":"晋安区", +"350112":"长乐区", +"350120":"市区", +"350121":"闽侯县", +"350122":"连江县", +"350123":"罗源县", +"350124":"闽清县", +"350125":"永泰县", +"350126":"长乐县", +"350127":"福清县", +"350128":"平潭县", +"350181":"福清市", +"350182":"长乐市", +"350200":"厦门市", +"350201":"市辖区", +"350202":"鼓浪屿区", +"350203":"思明区", +"350204":"开元区", +"350205":"海沧区", +"350206":"湖里区", +"350211":"集美区", +"350212":"同安区", +"350213":"翔安区", +"350220":"市区", +"350221":"同安县", +"350300":"莆田市", +"350301":"市辖区", +"350302":"城厢区", +"350303":"涵江区", +"350304":"荔城区", +"350305":"秀屿区", +"350321":"莆田县", +"350322":"仙游县", +"350400":"三明市", +"350401":"市辖区", +"350402":"梅列区", +"350403":"三元区", +"350404":"三元区", +"350405":"沙县区", +"350420":"永安市", +"350421":"明溪县", +"350422":"永安县", +"350423":"清流县", +"350424":"宁化县", +"350425":"大田县", +"350426":"尤溪县", +"350427":"沙县", +"350428":"将乐县", +"350429":"泰宁县", +"350430":"建宁县", +"350481":"永安市", +"350500":"泉州市", +"350501":"市辖区", +"350502":"鲤城区", +"350503":"丰泽区", +"350504":"洛江区", +"350505":"泉港区", +"350521":"惠安县", +"350522":"晋江县", +"350523":"南安县", +"350524":"安溪县", +"350525":"永春县", +"350526":"德化县", +"350527":"金门县", +"350581":"石狮市", +"350582":"晋江市", +"350583":"南安市", +"350600":"漳州市", +"350601":"市辖区", +"350602":"芗城区", +"350603":"龙文区", +"350604":"龙海区", +"350605":"长泰区", +"350619":"漳州开发区", +"350621":"龙海县", +"350622":"云霄县", +"350623":"漳浦县", +"350624":"诏安县", +"350625":"长泰县", +"350626":"东山县", +"350627":"南靖县", +"350628":"平和县", +"350629":"华安县", +"350681":"龙海市", +"350700":"南平市", +"350701":"市辖区", +"350702":"延平区", +"350703":"建阳区", +"350721":"顺昌县", +"350722":"浦城县", +"350723":"光泽县", +"350724":"松溪县", +"350725":"政和县", +"350781":"邵武市", +"350782":"武夷山市", +"350783":"建瓯市", +"350784":"建阳市", +"350800":"龙岩市", +"350801":"市辖区", +"350802":"新罗区", +"350803":"永定区", +"350821":"长汀县", +"350822":"永定县", +"350823":"上杭县", +"350824":"武平县", +"350825":"连城县", +"350881":"漳平市", +"350900":"宁德市", +"350901":"市辖区", +"350902":"蕉城区", +"350909":"闽东华侨经济开发区", +"350921":"霞浦县", +"350922":"古田县", +"350923":"屏南县", +"350924":"寿宁县", +"350925":"周宁县", +"350926":"柘荣县", +"350981":"福安市", +"350982":"福鼎市", +"352100":"南平地区", +"352101":"南平市", +"352102":"邵武市", +"352103":"武夷山市", +"352104":"建瓯市", +"352121":"顺昌县", +"352122":"建阳县", +"352123":"建瓯县", +"352124":"浦城县", +"352125":"邵武县", +"352126":"崇安县", +"352127":"光泽县", +"352128":"松溪县", +"352129":"政和县", +"352200":"宁德地区", +"352201":"宁德市", +"352202":"福安市", +"352203":"福鼎市", +"352221":"宁德县", +"352222":"连江县", +"352223":"罗源县", +"352224":"福鼎县", +"352225":"霞浦县", +"352226":"福安县", +"352227":"古田县", +"352228":"屏南县", +"352229":"寿宁县", +"352230":"周宁县", +"352231":"柘荣县", +"352300":"莆田地区", +"352321":"闽清县", +"352322":"永泰县", +"352323":"长乐县", +"352324":"福清市", +"352325":"平潭县", +"352326":"莆田县", +"352327":"仙游县", +"352328":"屏南县", +"352329":"寿宁县", +"352330":"周宁县", +"352331":"柘荣县", +"352400":"晋江地区", +"352401":"泉州市", +"352421":"惠安县", +"352422":"晋江县", +"352423":"南安县", +"352424":"安溪县", +"352425":"永春县", +"352426":"德化县", +"352427":"金门县", +"352500":"龙溪地区", +"352501":"漳州市", +"352521":"龙海县", +"352522":"云霄县", +"352523":"漳浦县", +"352524":"诏安县", +"352525":"长泰县", +"352526":"东山县", +"352527":"南靖县", +"352528":"平和县", +"352529":"华安县", +"352600":"龙岩地区", +"352601":"龙岩市", +"352602":"漳平市", +"352621":"龙海县", +"352622":"长汀县", +"352623":"永定县", +"352624":"上杭县", +"352625":"武平县", +"352626":"漳平县", +"352627":"连城县", +"352628":"平和县", +"352629":"华安县", +"352700":"三明市", +"352701":"三明市", +"352721":"明溪县", +"352722":"永安县", +"352723":"清流县", +"352724":"宁化县", +"352725":"大田县", +"352726":"尤溪县", +"352727":"沙县", +"352728":"将乐县", +"352729":"泰宁县", +"352730":"建宁县", +"352800":"三明地区", +"352801":"三明市", +"352821":"明溪县", +"352822":"永安县", +"352823":"清流县", +"352824":"宁化县", +"352825":"大田县", +"352826":"尤溪县", +"352827":"沙县", +"352828":"将乐县", +"352829":"泰宁县", +"352830":"建宁县", +"359000":"省直辖行政单位", +"359001":"永安市", +"359002":"石狮市", +"359003":"福清市", +"359004":"晋江市", +"359005":"南安市", +"359006":"龙海市", +"359007":"邵武市", +"359008":"武夷山市", +"359009":"建瓯市", +"359010":"建阳市", +"359011":"长乐市", +"360000":"江西省", +"360100":"南昌市", +"360101":"市辖区", +"360102":"东湖区", +"360103":"西湖区", +"360104":"青云谱区", +"360105":"湾里区", +"360111":"青山湖区", +"360112":"新建区", +"360113":"红谷滩区", +"360120":"市区", +"360121":"南昌县", +"360122":"新建县", +"360123":"安义县", +"360124":"进贤县", +"360200":"景德镇市", +"360201":"市辖区", +"360202":"昌江区", +"360203":"珠山区", +"360211":"鹅湖区", +"360212":"蛟潭区", +"360221":"乐平县", +"360222":"浮梁县", +"360281":"乐平市", +"360300":"萍乡市", +"360301":"市辖区", +"360302":"安源区", +"360311":"上栗区", +"360312":"芦溪区", +"360313":"湘东区", +"360321":"莲花县", +"360322":"上栗县", +"360323":"芦溪县", +"360400":"九江市", +"360401":"市辖区", +"360402":"濂溪区", +"360403":"浔阳区", +"360404":"柴桑区", +"360411":"郊区", +"360421":"九江县", +"360422":"瑞昌县", +"360423":"武宁县", +"360424":"修水县", +"360425":"永修县", +"360426":"德安县", +"360427":"星子县", +"360428":"都昌县", +"360429":"湖口县", +"360430":"彭泽县", +"360481":"瑞昌市", +"360482":"共青城市", +"360483":"庐山市", +"360500":"新余市", +"360501":"市辖区", +"360502":"渝水区", +"360521":"分宜县", +"360600":"鹰潭市", +"360601":"市辖区", +"360602":"月湖区", +"360603":"余江区", +"360621":"贵溪县", +"360622":"余江县", +"360681":"贵溪市", +"360700":"赣州市", +"360701":"市辖区", +"360702":"章贡区", +"360703":"南康区", +"360704":"赣县区", +"360721":"赣县", +"360722":"信丰县", +"360723":"大余县", +"360724":"上犹县", +"360725":"崇义县", +"360726":"安远县", +"360727":"龙南县", +"360728":"定南县", +"360729":"全南县", +"360730":"宁都县", +"360731":"于都县", +"360732":"兴国县", +"360733":"会昌县", +"360734":"寻乌县", +"360735":"石城县", +"360781":"瑞金市", +"360782":"南康市", +"360783":"龙南市", +"360800":"吉安市", +"360801":"市辖区", +"360802":"吉州区", +"360803":"青原区", +"360821":"吉安县", +"360822":"吉水县", +"360823":"峡江县", +"360824":"新干县", +"360825":"永丰县", +"360826":"泰和县", +"360827":"遂川县", +"360828":"万安县", +"360829":"安福县", +"360830":"永新县", +"360881":"井冈山市", +"360900":"宜春市", +"360901":"市辖区", +"360902":"袁州区", +"360921":"奉新县", +"360922":"万载县", +"360923":"上高县", +"360924":"宜丰县", +"360925":"靖安县", +"360926":"铜鼓县", +"360981":"丰城市", +"360982":"樟树市", +"360983":"高安市", +"361000":"抚州市", +"361001":"市辖区", +"361002":"临川区", +"361003":"东乡区", +"361021":"南城县", +"361022":"黎川县", +"361023":"南丰县", +"361024":"崇仁县", +"361025":"乐安县", +"361026":"宜黄县", +"361027":"金溪县", +"361028":"资溪县", +"361029":"东乡县", +"361030":"广昌县", +"361100":"上饶市", +"361101":"市辖区", +"361102":"信州区", +"361103":"广丰区", +"361104":"广信区", +"361121":"上饶县", +"361122":"广丰县", +"361123":"玉山县", +"361124":"铅山县", +"361125":"横峰县", +"361126":"弋阳县", +"361127":"余干县", +"361128":"鄱阳县", +"361129":"万年县", +"361130":"婺源县", +"361181":"德兴市", +"362100":"赣州地区", +"362101":"赣州市", +"362102":"瑞金市", +"362103":"南康市", +"362121":"赣县", +"362122":"南康县", +"362123":"信丰县", +"362124":"大余县", +"362125":"上犹县", +"362126":"崇义县", +"362127":"安远县", +"362128":"龙南县", +"362129":"定南县", +"362130":"全南县", +"362131":"宁都县", +"362132":"于都县", +"362133":"兴国县", +"362134":"瑞金县", +"362135":"会昌县", +"362136":"寻乌县", +"362137":"石城县", +"362138":"广昌县", +"362200":"宜春地区", +"362201":"宜春市", +"362202":"丰城市", +"362203":"樟树市", +"362204":"高安市", +"362221":"丰城县", +"362222":"高安县", +"362223":"清江县", +"362224":"新余县", +"362225":"宜春县", +"362226":"奉新县", +"362227":"万载县", +"362228":"上高县", +"362229":"宜丰县", +"362230":"分宜县", +"362231":"安义县", +"362232":"靖安县", +"362233":"铜鼓县", +"362234":"弋阳县", +"362300":"上饶地区", +"362301":"上饶市", +"362302":"德兴市", +"362321":"上饶县", +"362322":"广丰县", +"362323":"玉山县", +"362324":"铅山县", +"362325":"横峰县", +"362326":"弋阳县", +"362327":"贵溪县", +"362328":"余江县", +"362329":"余干县", +"362330":"波阳县", +"362331":"万年县", +"362332":"乐平县", +"362333":"德兴县", +"362334":"婺源县", +"362400":"吉安地区", +"362401":"吉安市", +"362402":"井冈山市", +"362421":"吉安县", +"362422":"吉水县", +"362423":"峡江县", +"362424":"新干县", +"362425":"永丰县", +"362426":"泰和县", +"362427":"遂川县", +"362428":"万安县", +"362429":"安福县", +"362430":"永新县", +"362431":"莲花县", +"362432":"宁冈县", +"362433":"井岗山县", +"362500":"抚州地区", +"362501":"抚州市", +"362502":"临川市", +"362521":"临川县", +"362522":"南城县", +"362523":"黎川县", +"362524":"南丰县", +"362525":"崇仁县", +"362526":"乐安县", +"362527":"宜黄县", +"362528":"金溪县", +"362529":"资溪县", +"362530":"进贤县", +"362531":"东乡县", +"362532":"广昌县", +"362533":"井冈山县", +"362600":"九江地区", +"362601":"赣州市", +"362621":"九江县", +"362622":"瑞昌县", +"362623":"武宁县", +"362624":"修水县", +"362625":"永修县", +"362626":"德安县", +"362627":"星子县", +"362628":"都昌县", +"362629":"湖口县", +"362630":"彭泽县", +"362631":"瑞金县", +"362632":"南康县", +"362633":"会昌县", +"362634":"上犹县", +"362635":"安远县", +"362636":"崇义县", +"362637":"寻乌县", +"362638":"大余县", +"369001":"瑞昌市", +"369002":"乐平市", +"370000":"山东省", +"370100":"济南市", +"370101":"市辖区", +"370102":"历下区", +"370103":"市中区", +"370104":"槐荫区", +"370105":"天桥区", +"370111":"郊区", +"370112":"历城区", +"370113":"长清区", +"370114":"章丘区", +"370115":"济阳区", +"370116":"莱芜区", +"370117":"钢城区", +"370120":"市区", +"370121":"历城县", +"370122":"章丘县", +"370123":"长清县", +"370124":"平阴县", +"370125":"济阳县", +"370126":"商河县", +"370181":"章丘市", +"370200":"青岛市", +"370201":"市辖区", +"370202":"市南区", +"370203":"市北区", +"370204":"台东区", +"370205":"四方区", +"370206":"沧口区", +"370211":"黄岛区", +"370212":"崂山区", +"370213":"李沧区", +"370214":"城阳区", +"370215":"即墨区", +"370220":"市区", +"370221":"崂山县", +"370222":"即墨县", +"370223":"胶南县", +"370224":"胶县", +"370225":"莱西县", +"370226":"平度县", +"370281":"胶州市", +"370282":"即墨市", +"370283":"平度市", +"370284":"胶南市", +"370285":"莱西市", +"370300":"淄博市", +"370301":"市辖区", +"370302":"淄川区", +"370303":"张店区", +"370304":"博山区", +"370305":"临淄区", +"370306":"周村区", +"370321":"桓台县", +"370322":"高青县", +"370323":"沂源县", +"370400":"枣庄市", +"370401":"市辖区", +"370402":"市中区", +"370403":"薛城区", +"370404":"峄城区", +"370405":"台儿庄区", +"370406":"山亭区", +"370420":"市区", +"370421":"滕县", +"370481":"滕州市", +"370500":"东营市", +"370501":"市辖区", +"370502":"东营区", +"370503":"河口区", +"370504":"牛庄区", +"370505":"垦利区", +"370521":"垦利县", +"370522":"利津县", +"370523":"广饶县", +"370600":"烟台市", +"370601":"市辖区", +"370602":"芝罘区", +"370611":"福山区", +"370612":"牟平区", +"370613":"莱山区", +"370614":"蓬莱区", +"370619":"龙口市", +"370620":"威海市", +"370621":"福山县", +"370622":"蓬莱县", +"370623":"黄县", +"370624":"招远县", +"370625":"掖县", +"370627":"莱阳县", +"370628":"栖霞县", +"370629":"海阳县", +"370630":"乳山县", +"370631":"牟平县", +"370632":"文登县", +"370633":"荣城县", +"370634":"长岛县", +"370681":"龙口市", +"370682":"莱阳市", +"370683":"莱州市", +"370684":"蓬莱市", +"370685":"招远市", +"370686":"栖霞市", +"370687":"海阳市", +"370700":"潍坊市", +"370701":"市辖区", +"370702":"潍城区", +"370703":"寒亭区", +"370704":"坊子区", +"370705":"奎文区", +"370719":"青州市", +"370721":"益都县", +"370722":"安丘县", +"370723":"寿光县", +"370724":"临朐县", +"370725":"昌乐县", +"370726":"昌邑县", +"370727":"高密县", +"370728":"诸城县", +"370729":"五莲县", +"370781":"青州市", +"370782":"诸城市", +"370783":"寿光市", +"370784":"安丘市", +"370785":"高密市", +"370786":"昌邑市", +"370800":"济宁市", +"370801":"市辖区", +"370802":"市中区", +"370811":"任城区", +"370812":"兖州区", +"370819":"曲阜市", +"370821":"济宁县", +"370822":"兖州县", +"370823":"曲阜县", +"370824":"泗水县", +"370825":"邹县", +"370826":"微山县", +"370827":"鱼台县", +"370828":"金乡县", +"370829":"嘉祥县", +"370830":"汶上县", +"370831":"泗水县", +"370832":"梁山县", +"370881":"曲阜市", +"370882":"兖州市", +"370883":"邹城市", +"370900":"泰安市", +"370901":"市辖区", +"370902":"泰山区", +"370903":"岱岳区", +"370911":"岱岳区", +"370919":"莱芜市", +"370920":"新泰市", +"370921":"宁阳县", +"370922":"肥城县", +"370923":"东平县", +"370981":"莱芜市", +"370982":"新泰市", +"370983":"肥城市", +"371000":"威海市", +"371001":"市辖区", +"371002":"环翠区", +"371003":"文登区", +"371021":"乳山县", +"371022":"文登县", +"371023":"荣成县", +"371081":"文登市", +"371082":"荣成市", +"371083":"乳山市", +"371100":"日照市", +"371101":"市辖区", +"371102":"东港区", +"371103":"岚山区", +"371121":"五莲县", +"371122":"莒县", +"371200":"莱芜市", +"371201":"市辖区", +"371202":"莱城区", +"371203":"钢城区", +"371300":"临沂市", +"371301":"市辖区", +"371302":"兰山区", +"371311":"罗庄区", +"371312":"河东区", +"371321":"沂南县", +"371322":"郯城县", +"371323":"沂水县", +"371324":"兰陵县", +"371325":"费县", +"371326":"平邑县", +"371327":"莒南县", +"371328":"蒙阴县", +"371329":"临沭县", +"371400":"德州市", +"371401":"市辖区", +"371402":"德城区", +"371403":"陵城区", +"371421":"陵县", +"371422":"宁津县", +"371423":"庆云县", +"371424":"临邑县", +"371425":"齐河县", +"371426":"平原县", +"371427":"夏津县", +"371428":"武城县", +"371481":"乐陵市", +"371482":"禹城市", +"371500":"聊城市", +"371501":"市辖区", +"371502":"东昌府区", +"371503":"茌平区", +"371521":"阳谷县", +"371522":"莘县", +"371523":"茌平县", +"371524":"东阿县", +"371525":"冠县", +"371526":"高唐县", +"371581":"临清市", +"371600":"滨州市", +"371601":"市辖区", +"371602":"滨城区", +"371603":"沾化区", +"371621":"惠民县", +"371622":"阳信县", +"371623":"无棣县", +"371624":"沾化县", +"371625":"博兴县", +"371626":"邹平县", +"371681":"邹平市", +"371700":"菏泽市", +"371701":"市辖区", +"371702":"牡丹区", +"371703":"定陶区", +"371721":"曹县", +"371722":"单县", +"371723":"成武县", +"371724":"巨野县", +"371725":"郓城县", +"371726":"鄄城县", +"371727":"定陶县", +"371728":"东明县", +"372100":"烟台地区", +"372101":"烟台市", +"372102":"威海市", +"372121":"福山县", +"372122":"蓬莱县", +"372123":"黄县", +"372124":"招远县", +"372125":"掖县", +"372126":"莱西县", +"372127":"莱阳县", +"372128":"栖霞县", +"372129":"海阳县", +"372130":"乳山县", +"372131":"牟平县", +"372132":"文登县", +"372133":"荣城县", +"372134":"长岛县", +"372200":"潍坊地区", +"372201":"潍坊市", +"372221":"益都县", +"372222":"安丘县", +"372223":"寿光县", +"372224":"临朐县", +"372225":"昌乐县", +"372226":"昌邑县", +"372227":"高密县", +"372228":"诸城县", +"372229":"五莲县", +"372230":"平度县", +"372231":"潍县", +"372300":"滨州地区", +"372301":"滨州市", +"372321":"惠民县", +"372322":"滨县", +"372323":"阳信县", +"372324":"无棣县", +"372325":"沾化县", +"372326":"利津县", +"372327":"广饶县", +"372328":"博兴县", +"372329":"桓台县", +"372330":"邹平县", +"372331":"高青县", +"372332":"垦利县", +"372400":"德州地区", +"372401":"德州市", +"372402":"乐陵市", +"372403":"禹城市", +"372421":"陵县", +"372422":"平原县", +"372423":"夏津县", +"372424":"武城县", +"372425":"齐河县", +"372426":"禹城县", +"372427":"乐陵县", +"372428":"临邑县", +"372429":"商河县", +"372430":"济阳县", +"372431":"宁津县", +"372432":"庆云县", +"372500":"聊城地区", +"372501":"聊城市", +"372502":"东昌府区", +"372521":"聊城县", +"372522":"阳谷县", +"372523":"莘县", +"372524":"茌平县", +"372525":"东阿县", +"372526":"冠县", +"372527":"高唐县", +"372528":"临清县", +"372581":"临清市", +"372600":"泰安地区", +"372601":"泰安市", +"372602":"莱芜市", +"372603":"新泰市", +"372621":"泰安县", +"372622":"莱芜县", +"372623":"新泰县", +"372624":"宁阳县", +"372625":"肥城县", +"372626":"东平县", +"372627":"平阴县", +"372628":"新汶县", +"372629":"汶上县", +"372630":"泗水县", +"372700":"济宁地区", +"372701":"济宁市", +"372721":"济宁县", +"372722":"兖州县", +"372723":"曲阜县", +"372724":"泗水县", +"372725":"邹县", +"372726":"微山县", +"372727":"鱼台县", +"372728":"金乡县", +"372729":"嘉祥县", +"372730":"汶上县", +"372800":"临沂地区", +"372801":"临沂市", +"372802":"日照市", +"372821":"临沂县", +"372822":"郯城县", +"372823":"苍山县", +"372824":"莒南县", +"372825":"日照县", +"372826":"莒县", +"372827":"沂水县", +"372828":"沂源县", +"372829":"蒙阴县", +"372830":"平邑县", +"372831":"费县", +"372832":"沂南县", +"372833":"临沭县", +"372900":"菏泽地区", +"372901":"菏泽市", +"372921":"菏泽县", +"372922":"曹县", +"372923":"定陶县", +"372924":"成武县", +"372925":"单县", +"372926":"巨野县", +"372927":"梁山县", +"372928":"郓城县", +"372929":"鄄城县", +"372930":"东明县", +"379001":"青州市", +"379002":"龙口市", +"379003":"曲阜市", +"379004":"莱芜市", +"379005":"新泰市", +"379006":"胶州市", +"379007":"诸城市", +"379008":"莱阳市", +"379009":"莱州市", +"379010":"滕州市", +"379011":"文登市", +"379012":"荣城市", +"379013":"即墨市", +"379014":"平度市", +"379015":"莱西市", +"379016":"胶南市", +"379017":"蓬莱市", +"379018":"招远市", +"379019":"肥城市", +"379020":"章丘市", +"379021":"兖州市", +"379022":"邹城市", +"379023":"寿光市", +"379024":"乳山市", +"379025":"乐陵市", +"379026":"禹城市", +"379027":"安丘市", +"379028":"昌邑市", +"379029":"高密市", +"410000":"河南省", +"410100":"郑州市", +"410101":"市辖区", +"410102":"中原区", +"410103":"二七区", +"410104":"管城回族区", +"410105":"金水区", +"410106":"上街区", +"410107":"新密区", +"410108":"惠济区", +"410111":"金海区", +"410112":"郊区", +"410120":"市区", +"410121":"荥阳县", +"410122":"中牟县", +"410123":"新郑县", +"410124":"巩县", +"410125":"登封县", +"410126":"密县", +"410181":"巩义市", +"410182":"荥阳市", +"410183":"新密市", +"410184":"新郑市", +"410185":"登封市", +"410200":"开封市", +"410201":"市辖区", +"410202":"龙亭区", +"410203":"顺河回族区", +"410204":"鼓楼区", +"410205":"禹王台区", +"410211":"金明区", +"410212":"祥符区", +"410221":"杞县", +"410222":"通许县", +"410223":"尉氏县", +"410224":"开封县", +"410225":"兰考县", +"410300":"洛阳市", +"410301":"市辖区", +"410302":"老城区", +"410303":"西工区", +"410304":"瀍河回族区", +"410305":"涧西区", +"410306":"吉利区", +"410307":"偃师区", +"410308":"孟津区", +"410311":"洛龙区", +"410321":"偃师县", +"410322":"孟津县", +"410323":"新安县", +"410324":"栾川县", +"410325":"嵩县", +"410326":"汝阳县", +"410327":"宜阳县", +"410328":"洛宁县", +"410329":"伊川县", +"410381":"偃师市", +"410400":"平顶山市", +"410401":"市辖区", +"410402":"新华区", +"410403":"卫东区", +"410404":"石龙区", +"410411":"湛河区", +"410412":"舞钢区", +"410421":"宝丰县", +"410422":"叶县", +"410423":"鲁山县", +"410424":"临汝县", +"410425":"郏县", +"410426":"襄城县", +"410481":"舞钢市", +"410482":"汝州市", +"410500":"安阳市", +"410501":"市辖区", +"410502":"文峰区", +"410503":"北关区", +"410504":"铁西区", +"410505":"殷都区", +"410506":"龙安区", +"410511":"郊区", +"410521":"林县", +"410522":"安阳县", +"410523":"汤阴县", +"410524":"淇县", +"410525":"浚县", +"410526":"滑县", +"410527":"内黄县", +"410581":"林州市", +"410600":"鹤壁市", +"410601":"市辖区", +"410602":"鹤山区", +"410603":"山城区", +"410604":"马村区", +"410611":"淇滨区", +"410621":"浚县", +"410622":"淇县", +"410700":"新乡市", +"410701":"市辖区", +"410702":"红旗区", +"410703":"卫滨区", +"410704":"凤泉区", +"410711":"牧野区", +"410721":"新乡县", +"410722":"汲县", +"410723":"辉县", +"410724":"获嘉县", +"410725":"原阳县", +"410726":"延津县", +"410727":"封丘县", +"410728":"长垣县", +"410781":"卫辉市", +"410782":"辉县市", +"410783":"长垣市", +"410800":"焦作市", +"410801":"市辖区", +"410802":"解放区", +"410803":"中站区", +"410804":"马村区", +"410811":"山阳区", +"410821":"修武县", +"410822":"博爱县", +"410823":"武陟县", +"410824":"沁阳县", +"410825":"温县", +"410826":"孟县", +"410827":"济源县", +"410881":"济源市", +"410882":"沁阳市", +"410883":"孟州市", +"410900":"濮阳市", +"410901":"市辖区", +"410902":"华龙区", +"410911":"郊区", +"410921":"滑县", +"410922":"清丰县", +"410923":"南乐县", +"410924":"内黄县", +"410925":"长垣县", +"410926":"范县", +"410927":"台前县", +"410928":"濮阳县", +"411000":"许昌市", +"411001":"市辖区", +"411002":"魏都区", +"411003":"建安区", +"411021":"禹县", +"411022":"长葛县", +"411023":"许昌县", +"411024":"鄢陵县", +"411025":"襄城县", +"411081":"禹州市", +"411082":"长葛市", +"411100":"漯河市", +"411101":"市辖区", +"411102":"源汇区", +"411103":"郾城区", +"411104":"召陵区", +"411121":"舞阳县", +"411122":"临颍县", +"411123":"郾城县", +"411200":"三门峡市", +"411201":"市辖区", +"411202":"湖滨区", +"411203":"陕州区", +"411219":"义马市", +"411221":"渑池县", +"411222":"陕县", +"411223":"灵宝县", +"411224":"卢氏县", +"411281":"义马市", +"411282":"灵宝市", +"411300":"南阳市", +"411301":"市辖区", +"411302":"宛城区", +"411303":"卧龙区", +"411321":"南召县", +"411322":"方城县", +"411323":"西峡县", +"411324":"镇平县", +"411325":"内乡县", +"411326":"淅川县", +"411327":"社旗县", +"411328":"唐河县", +"411329":"新野县", +"411330":"桐柏县", +"411381":"邓州市", +"411400":"商丘市", +"411401":"市辖区", +"411402":"梁园区", +"411403":"睢阳区", +"411421":"民权县", +"411422":"睢县", +"411423":"宁陵县", +"411424":"柘城县", +"411425":"虞城县", +"411426":"夏邑县", +"411481":"永城市", +"411500":"信阳市", +"411501":"市辖区", +"411502":"浉河区", +"411503":"平桥区", +"411521":"罗山县", +"411522":"光山县", +"411523":"新县", +"411524":"商城县", +"411525":"固始县", +"411526":"潢川县", +"411527":"淮滨县", +"411528":"息县", +"411600":"周口市", +"411601":"市辖区", +"411602":"川汇区", +"411603":"淮阳区", +"411621":"扶沟县", +"411622":"西华县", +"411623":"商水县", +"411624":"沈丘县", +"411625":"郸城县", +"411626":"淮阳县", +"411627":"太康县", +"411628":"鹿邑县", +"411681":"项城市", +"411700":"驻马店市", +"411701":"市辖区", +"411702":"驿城区", +"411721":"西平县", +"411722":"上蔡县", +"411723":"平舆县", +"411724":"正阳县", +"411725":"确山县", +"411726":"泌阳县", +"411727":"汝南县", +"411728":"遂平县", +"411729":"新蔡县", +"412100":"安阳地区", +"412101":"安阳市", +"412102":"文峰区", +"412103":"北关区", +"412104":"铁西区", +"412111":"郊区", +"412121":"林县", +"412122":"安阳县", +"412123":"汤阴县", +"412124":"淇县", +"412125":"浚县", +"412126":"濮阳县", +"412127":"滑县", +"412128":"清丰县", +"412129":"南乐县", +"412130":"内黄县", +"412131":"长垣县", +"412132":"范县", +"412133":"台前县", +"412200":"新乡地区", +"412201":"新乡市", +"412202":"红旗区", +"412203":"新华区", +"412204":"北站区", +"412211":"郊区", +"412221":"沁阳县", +"412222":"博爱县", +"412223":"济源县", +"412224":"孟县", +"412225":"温县", +"412226":"武陟县", +"412227":"修武县", +"412228":"获嘉县", +"412229":"新乡县", +"412230":"辉县", +"412231":"汲县", +"412232":"原阳县", +"412233":"延津县", +"412234":"封丘县", +"412300":"商丘地区", +"412301":"商丘市", +"412302":"永城市", +"412321":"虞城县", +"412322":"商丘县", +"412323":"民权县", +"412324":"宁陵县", +"412325":"睢县", +"412326":"夏邑县", +"412327":"柘城县", +"412328":"永城县", +"412400":"开封地区", +"412421":"杞县", +"412422":"通许县", +"412423":"尉氏县", +"412424":"开封县", +"412425":"中牟县", +"412426":"新郑县", +"412427":"巩县", +"412428":"登封县", +"412429":"密县", +"412430":"兰考县", +"412500":"洛阳地区", +"412501":"三门峡市", +"412502":"义马市", +"412521":"偃师县", +"412522":"孟津县", +"412523":"新安县", +"412524":"渑池县", +"412525":"陕县", +"412526":"灵宝县", +"412527":"伊川县", +"412528":"汝阳县", +"412529":"嵩县", +"412530":"洛宁县", +"412531":"卢氏县", +"412532":"栾川县", +"412533":"临汝县", +"412534":"宜阳县", +"412600":"许昌地区", +"412601":"许昌市", +"412602":"漯河市", +"412621":"长葛县", +"412622":"禹县", +"412623":"鄢陵县", +"412624":"许昌县", +"412625":"郏县", +"412626":"临颍县", +"412627":"襄城县", +"412628":"宝丰县", +"412629":"郾城县", +"412630":"叶县", +"412631":"鲁山县", +"412632":"舞阳县", +"412700":"周口地区", +"412701":"周口市", +"412702":"项城市", +"412721":"扶沟县", +"412722":"西华县", +"412723":"商水县", +"412724":"太康县", +"412725":"鹿邑县", +"412726":"郸城县", +"412727":"淮阳县", +"412728":"沈丘县", +"412729":"项城县", +"412800":"驻马店地区", +"412801":"驻马店市", +"412821":"确山县", +"412822":"泌阳县", +"412823":"遂平县", +"412824":"西平县", +"412825":"上蔡县", +"412826":"汝南县", +"412827":"平舆县", +"412828":"新蔡县", +"412829":"正阳县", +"412900":"南阳地区", +"412901":"南阳市", +"412902":"邓州市", +"412903":"宛城区", +"412921":"南召县", +"412922":"方城县", +"412923":"西峡县", +"412924":"南阳县", +"412925":"镇平县", +"412926":"内乡县", +"412927":"淅川县", +"412928":"社旗县", +"412929":"唐河县", +"412930":"邓县", +"412931":"新野县", +"412932":"桐柏县", +"412933":"规划控制区", +"413000":"信阳地区", +"413001":"信阳市", +"413021":"息县", +"413022":"淮滨县", +"413023":"信阳县", +"413024":"潢川县", +"413025":"光山县", +"413026":"固始县", +"413027":"商城县", +"413028":"罗山县", +"413029":"新县", +"419000":"省直辖行政单位", +"419001":"义马市", +"419002":"汝州市", +"419003":"济源市", +"419004":"禹州市", +"419005":"卫辉市", +"419006":"辉县市", +"419007":"沁阳市", +"419008":"舞钢市", +"419009":"巩义市", +"419010":"灵宝市", +"419011":"长葛市", +"419012":"偃师市", +"419013":"邓州市", +"419014":"林州市", +"419015":"新密市", +"419016":"荥阳市", +"419017":"新郑市", +"419018":"登封市", +"420000":"湖北省", +"420100":"武汉市", +"420101":"市辖区", +"420102":"江岸区", +"420103":"江汉区", +"420104":"硚口区", +"420105":"汉阳区", +"420106":"武昌区", +"420107":"青山区", +"420109":"东湖管理分局", +"420111":"洪山区", +"420112":"东西湖区", +"420113":"汉南区", +"420114":"蔡甸区", +"420115":"江夏区", +"420116":"黄陂区", +"420117":"新洲区", +"420120":"市区", +"420121":"汉阳县", +"420122":"武昌县", +"420123":"黄陂县", +"420124":"新洲县", +"420200":"黄石市", +"420201":"市辖区", +"420202":"黄石港区", +"420203":"西塞山区", +"420204":"下陆区", +"420205":"铁山区", +"420211":"郊区", +"420220":"市区", +"420221":"大冶县", +"420222":"阳新县", +"420281":"大冶市", +"420300":"十堰市", +"420301":"市辖区", +"420302":"茅箭区", +"420303":"张湾区", +"420304":"郧阳区", +"420321":"郧县", +"420322":"郧西县", +"420323":"竹山县", +"420324":"竹溪县", +"420325":"房县", +"420381":"丹江口市", +"420400":"沙市", +"420500":"宜昌市", +"420501":"市辖区", +"420502":"西陵区", +"420503":"伍家岗区", +"420504":"点军区", +"420505":"猇亭区", +"420506":"夷陵区", +"420521":"宜昌县", +"420523":"枝江县", +"420525":"远安县", +"420526":"兴山县", +"420527":"秭归县", +"420528":"长阳土家族自治县", +"420529":"五峰土家族自治县", +"420581":"宜都市", +"420582":"当阳市", +"420583":"枝江市", +"420600":"襄阳市", +"420601":"市辖区", +"420602":"襄城区", +"420603":"樊东区", +"420604":"樊西区", +"420605":"郊区", +"420606":"樊城区", +"420607":"襄州区", +"420611":"郊区", +"420619":"随州市", +"420620":"老河口市", +"420621":"襄阳县", +"420622":"枣阳县", +"420623":"宜城县", +"420624":"南漳县", +"420625":"谷城县", +"420626":"保康县", +"420681":"随州市", +"420682":"老河口市", +"420683":"枣阳市", +"420684":"宜城市", +"420700":"鄂州市", +"420701":"市辖区", +"420702":"梁子湖区", +"420703":"华容区", +"420704":"鄂城区", +"420800":"荆门市", +"420801":"市辖区", +"420802":"东宝区", +"420803":"沙洋区", +"420804":"掇刀区", +"420821":"京山县", +"420822":"沙洋县", +"420881":"钟祥市", +"420882":"京山市", +"420900":"孝感市", +"420901":"市辖区", +"420902":"孝南区", +"420921":"孝昌县", +"420922":"大悟县", +"420923":"云梦县", +"420924":"汉川县", +"420981":"应城市", +"420982":"安陆市", +"420983":"广水市", +"420984":"汉川市", +"421000":"荆州市", +"421001":"市辖区", +"421002":"沙市区", +"421003":"荆州区", +"421004":"江陵区", +"421021":"松滋县", +"421022":"公安县", +"421023":"监利县", +"421024":"江陵县", +"421025":"京山县", +"421081":"石首市", +"421082":"钟祥市", +"421083":"洪湖市", +"421087":"松滋市", +"421088":"监利市", +"421100":"黄冈市", +"421101":"市辖区", +"421102":"黄州区", +"421103":"龙感湖管理区", +"421121":"团风县", +"421122":"红安县", +"421123":"罗田县", +"421124":"英山县", +"421125":"浠水县", +"421126":"蕲春县", +"421127":"黄梅县", +"421181":"麻城市", +"421182":"武穴市", +"421200":"咸宁市", +"421201":"市辖区", +"421202":"咸安区", +"421221":"嘉鱼县", +"421222":"通城县", +"421223":"崇阳县", +"421224":"通山县", +"421281":"赤壁市", +"421300":"随州市", +"421301":"市辖区", +"421302":"曾都区", +"421303":"曾都区", +"421321":"随县", +"421381":"广水市", +"422100":"黄冈地区", +"422101":"麻城市", +"422102":"武穴市", +"422103":"黄州市", +"422121":"黄冈县", +"422122":"新洲县", +"422123":"红安县", +"422124":"麻城县", +"422125":"罗田县", +"422126":"英山县", +"422127":"浠水县", +"422128":"蕲春县", +"422129":"广济县", +"422130":"黄梅县", +"422131":"鄂城县", +"422200":"孝感地区", +"422201":"孝感市", +"422202":"应城市", +"422203":"安陆市", +"422204":"广水市", +"422221":"孝感县", +"422222":"黄陂县", +"422223":"大悟县", +"422224":"应山县", +"422225":"安陆县", +"422226":"云梦县", +"422227":"应城县", +"422228":"汉川县", +"422300":"咸宁地区", +"422301":"咸宁市", +"422302":"赤壁市", +"422321":"咸宁县", +"422322":"嘉鱼县", +"422323":"蒲圻县", +"422324":"通城县", +"422325":"崇阳县", +"422326":"通山县", +"422327":"阳新县", +"422400":"荆州地区", +"422401":"仙桃市", +"422402":"石首市", +"422403":"洪湖市", +"422404":"天门市", +"422405":"潜江市", +"422406":"钟祥市", +"422421":"江陵县", +"422422":"松滋县", +"422423":"公安县", +"422424":"石首县", +"422425":"监利县", +"422426":"洪湖县", +"422427":"沔阳县", +"422428":"天门县", +"422429":"潜江县", +"422430":"荆门县", +"422431":"钟祥县", +"422432":"京山县", +"422500":"襄阳地区", +"422501":"随州市", +"422502":"老河口市", +"422521":"襄阳县", +"422522":"枣阳县", +"422523":"随县", +"422524":"宜城县", +"422525":"南漳县", +"422526":"光华县", +"422527":"谷城县", +"422528":"保康县", +"422600":"郧阳地区", +"422601":"丹江口市", +"422621":"均县", +"422622":"郧县", +"422623":"郧西县", +"422624":"竹山县", +"422625":"竹溪县", +"422626":"房县", +"422627":"神农架林区", +"422700":"宜昌地区", +"422701":"枝城市", +"422702":"当阳市", +"422721":"宜昌县", +"422722":"宜都县", +"422723":"枝江县", +"422724":"当阳县", +"422725":"远安县", +"422726":"兴山县", +"422727":"秭归县", +"422728":"长阳土家族自治县", +"422729":"五峰土家族自治县", +"422800":"恩施土家族苗族自治州", +"422801":"恩施市", +"422802":"利川市", +"422821":"恩施县", +"422822":"建始县", +"422823":"巴东县", +"422824":"利川县", +"422825":"宣恩县", +"422826":"咸丰县", +"422827":"来凤县", +"422828":"鹤峰县", +"422921":"神农架林区", +"423022":"沙洋监狱管理局", +"429001":"随州市", +"429002":"老河口市", +"429003":"枣阳市", +"429004":"仙桃市", +"429005":"潜江市", +"429006":"天门市", +"429007":"枝城市", +"429008":"当阳市", +"429009":"应城市", +"429010":"安陆市", +"429011":"广水市", +"429012":"石首市", +"429013":"洪湖市", +"429014":"钟祥市", +"429015":"丹江口市", +"429016":"大冶市", +"429017":"宜城市", +"429021":"神农架林区", +"430000":"湖南省", +"430100":"长沙市", +"430101":"市辖区", +"430102":"芙蓉区", +"430103":"天心区", +"430104":"岳麓区", +"430105":"开福区", +"430111":"雨花区", +"430112":"望城区", +"430120":"市区", +"430121":"长沙县", +"430122":"望城县", +"430123":"浏阳县", +"430124":"宁乡县", +"430181":"浏阳市", +"430182":"宁乡市", +"430200":"株洲市", +"430201":"市辖区", +"430202":"荷塘区", +"430203":"芦淞区", +"430204":"石峰区", +"430211":"天元区", +"430212":"渌口区", +"430219":"醴陵市", +"430220":"市区", +"430221":"株洲县", +"430222":"醴陵县", +"430223":"攸县", +"430224":"茶陵县", +"430225":"炎陵县", +"430281":"醴陵市", +"430300":"湘潭市", +"430301":"市辖区", +"430302":"雨湖区", +"430303":"湘江区", +"430304":"岳塘区", +"430305":"板塘区", +"430306":"韶山区", +"430311":"郊区", +"430312":"韶山区", +"430321":"湘潭县", +"430322":"湘乡县", +"430381":"湘乡市", +"430382":"韶山市", +"430400":"衡阳市", +"430401":"市辖区", +"430402":"江东区", +"430403":"城南区", +"430404":"城北区", +"430405":"珠晖区", +"430406":"雁峰区", +"430407":"石鼓区", +"430408":"蒸湘区", +"430411":"郊区", +"430412":"南岳区", +"430419":"耒阳市", +"430421":"衡阳县", +"430422":"衡南县", +"430423":"衡山县", +"430424":"衡东县", +"430425":"常宁县", +"430426":"祁东县", +"430427":"耒阳县", +"430481":"耒阳市", +"430482":"常宁市", +"430500":"邵阳市", +"430501":"市辖区", +"430502":"双清区", +"430503":"大祥区", +"430504":"桥头区", +"430511":"北塔区", +"430521":"邵东县", +"430522":"新邵县", +"430523":"邵阳县", +"430524":"隆回县", +"430525":"洞口县", +"430526":"武冈县", +"430527":"绥宁县", +"430528":"新宁县", +"430529":"城步苗族自治县", +"430581":"武冈市", +"430582":"邵东市", +"430600":"岳阳市", +"430601":"市辖区", +"430602":"岳阳楼区", +"430603":"云溪区", +"430611":"君山区", +"430621":"岳阳县", +"430622":"临湘县", +"430623":"华容县", +"430624":"湘阴县", +"430625":"汨罗县", +"430626":"平江县", +"430627":"汨罗县", +"430681":"汨罗市", +"430682":"临湘市", +"430700":"常德市", +"430701":"市辖区", +"430702":"武陵区", +"430703":"鼎城区", +"430721":"安乡县", +"430722":"汉寿县", +"430723":"澧县", +"430724":"临澧县", +"430725":"桃源县", +"430726":"石门县", +"430781":"津市市", +"430800":"张家界市", +"430801":"市辖区", +"430802":"永定区", +"430811":"武陵源区", +"430821":"慈利县", +"430822":"桑植县", +"430900":"益阳市", +"430901":"市辖区", +"430902":"资阳区", +"430903":"赫山区", +"430911":"市区", +"430921":"南县", +"430922":"桃江县", +"430923":"安化县", +"430981":"沅江市", +"431000":"郴州市", +"431001":"市辖区", +"431002":"北湖区", +"431003":"苏仙区", +"431021":"桂阳县", +"431022":"宜章县", +"431023":"永兴县", +"431024":"嘉禾县", +"431025":"临武县", +"431026":"汝城县", +"431027":"桂东县", +"431028":"安仁县", +"431081":"资兴市", +"431100":"永州市", +"431101":"市辖区", +"431102":"零陵区", +"431103":"冷水滩区", +"431121":"祁阳县", +"431122":"东安县", +"431123":"双牌县", +"431124":"道县", +"431125":"江永县", +"431126":"宁远县", +"431127":"蓝山县", +"431128":"新田县", +"431129":"江华瑶族自治县", +"431181":"祁阳市", +"431200":"怀化市", +"431201":"市辖区", +"431202":"鹤城区", +"431221":"中方县", +"431222":"沅陵县", +"431223":"辰溪县", +"431224":"溆浦县", +"431225":"会同县", +"431226":"麻阳苗族自治县", +"431227":"新晃侗族自治县", +"431228":"芷江侗族自治县", +"431229":"靖州苗族侗族自治县", +"431230":"通道侗族自治县", +"431281":"洪江市", +"431300":"娄底市", +"431301":"市辖区", +"431302":"娄星区", +"431321":"双峰县", +"431322":"新化县", +"431381":"冷水江市", +"431382":"涟源市", +"432100":"湘潭地区", +"432121":"湘潭县", +"432122":"湘乡县", +"432123":"醴陵县", +"432124":"浏阳县", +"432125":"攸县", +"432126":"茶陵县", +"432127":"酃县", +"432200":"岳阳地区", +"432201":"岳阳市", +"432221":"岳阳县", +"432222":"平江县", +"432223":"湘阴县", +"432224":"汨罗县", +"432225":"临湘市", +"432226":"华容县", +"432300":"益阳地区", +"432301":"益阳市", +"432302":"沅江市", +"432321":"益阳县", +"432322":"南县", +"432323":"沅江县", +"432324":"宁乡县", +"432325":"桃江县", +"432326":"安化县", +"432400":"常德地区", +"432401":"常德市", +"432402":"津市市", +"432421":"常德县", +"432422":"安乡县", +"432423":"汉寿县", +"432424":"澧县", +"432425":"临澧县", +"432426":"桃源县", +"432427":"石门县", +"432428":"慈利县", +"432500":"娄底地区", +"432501":"娄底市", +"432502":"冷水江市", +"432503":"涟源市", +"432521":"涟源县", +"432522":"双峰县", +"432523":"邵东县", +"432524":"新化县", +"432525":"新邵县", +"432600":"邵阳地区", +"432621":"邵阳县", +"432622":"隆回县", +"432623":"武冈县", +"432624":"洞口县", +"432625":"新宁县", +"432626":"绥宁县", +"432627":"城步苗族自治县", +"432700":"衡阳地区", +"432721":"衡阳县", +"432722":"衡南县", +"432723":"衡山县", +"432724":"衡东县", +"432725":"常宁县", +"432726":"祁东县", +"432727":"祁阳县", +"432800":"郴州地区", +"432801":"郴州市", +"432802":"资兴市", +"432821":"郴县", +"432822":"桂阳县", +"432823":"永兴县", +"432824":"宜章县", +"432825":"资兴县", +"432826":"嘉禾县", +"432827":"临武县", +"432828":"汝城县", +"432829":"桂东县", +"432830":"耒阳县", +"432831":"安仁县", +"432900":"零陵地区", +"432901":"永州市", +"432902":"冷水滩市", +"432921":"零陵县", +"432922":"东安县", +"432923":"道县", +"432924":"宁远县", +"432925":"江永县", +"432926":"江华瑶族自治县", +"432927":"蓝山县", +"432928":"新田县", +"432929":"双牌县", +"432930":"祁阳县", +"433000":"怀化地区", +"433001":"怀化市", +"433002":"洪江市", +"433021":"黔阳县", +"433022":"沅陵县", +"433023":"辰溪县", +"433024":"溆浦县", +"433025":"麻阳苗族自治县", +"433026":"新晃侗族自治县", +"433027":"芷江侗族自治县", +"433028":"怀化县", +"433029":"会同县", +"433030":"靖州苗族侗族自治县", +"433031":"通道侗族自治县", +"433100":"湘西土家族苗族自治州", +"433101":"吉首市", +"433102":"大庸市", +"433121":"吉首县", +"433122":"泸溪县", +"433123":"凤凰县", +"433124":"花垣县", +"433125":"保靖县", +"433126":"古丈县", +"433127":"永顺县", +"433128":"大庸县", +"433129":"桑植县", +"433130":"龙山县", +"439000":"省直辖行政单位", +"439001":"醴陵市", +"439002":"湘乡市", +"439003":"耒阳市", +"439004":"汨罗市", +"439005":"津市市", +"439006":"韶山市", +"439007":"临湘市", +"439008":"浏阳市", +"439009":"资兴市", +"439010":"沅江市", +"439011":"武冈市", +"440000":"广东省", +"440100":"广州市", +"440101":"市辖区", +"440102":"东山区", +"440103":"荔湾区", +"440104":"越秀区", +"440105":"海珠区", +"440106":"天河区", +"440107":"芳村区", +"440111":"白云区", +"440112":"黄埔区", +"440113":"番禺区", +"440114":"花都区", +"440115":"南沙区", +"440116":"萝岗区", +"440117":"从化区", +"440118":"增城区", +"440120":"市区", +"440121":"花县", +"440122":"从化县", +"440123":"新丰县", +"440124":"龙门县", +"440125":"增城县", +"440126":"番禺县", +"440127":"清远县", +"440128":"佛冈县", +"440181":"番禺市", +"440182":"花都市", +"440183":"增城市", +"440184":"从化市", +"440200":"韶关市", +"440201":"市辖区", +"440202":"北江区", +"440203":"武江区", +"440204":"浈江区", +"440205":"曲江区", +"440220":"韶关市区", +"440221":"曲江县", +"440222":"始兴县", +"440223":"南雄县", +"440224":"仁化县", +"440225":"乐昌县", +"440226":"连县", +"440227":"阳山县", +"440228":"英德县", +"440229":"翁源县", +"440230":"连山壮族瑶族自治县", +"440231":"连南瑶族自治县", +"440232":"乳源瑶族自治县", +"440233":"新丰县", +"440281":"乐昌市", +"440282":"南雄市", +"440300":"深圳市", +"440301":"市辖区", +"440302":"盐田区", +"440303":"罗湖区", +"440304":"福田区", +"440305":"南山区", +"440306":"宝安区", +"440307":"龙岗区", +"440308":"盐田区", +"440309":"龙华区", +"440310":"坪山区", +"440311":"光明区", +"440320":"市区", +"440321":"宝安县", +"440400":"珠海市", +"440401":"市辖区", +"440402":"香洲区", +"440403":"斗门区", +"440404":"金湾区", +"440421":"斗门县", +"440500":"汕头市", +"440501":"市辖区", +"440502":"同平区", +"440503":"安平区", +"440504":"公园区", +"440505":"金砂区", +"440506":"达濠区", +"440507":"龙湖区", +"440508":"金园区", +"440509":"升平区", +"440510":"河浦区", +"440511":"金平区", +"440512":"濠江区", +"440513":"潮阳区", +"440514":"潮南区", +"440515":"澄海区", +"440520":"潮州市", +"440521":"澄海县", +"440522":"饶平县", +"440523":"南澳县", +"440524":"潮阳县", +"440525":"揭阳县", +"440526":"揭西县", +"440527":"普宁县", +"440528":"惠来县", +"440581":"潮州市", +"440582":"潮阳市", +"440583":"澄海市", +"440600":"佛山市", +"440601":"市辖区", +"440602":"城区", +"440603":"石湾区", +"440604":"禅城区", +"440605":"南海区", +"440606":"顺德区", +"440607":"三水区", +"440608":"高明区", +"440620":"中山市", +"440621":"三水县", +"440622":"南海县", +"440623":"顺德县", +"440624":"高明县", +"440681":"顺德市", +"440682":"南海市", +"440683":"三水市", +"440684":"高明市", +"440700":"江门市", +"440701":"市辖区", +"440702":"城区", +"440703":"蓬江区", +"440704":"江海区", +"440705":"新会区", +"440711":"郊区", +"440721":"新会县", +"440722":"台山县", +"440723":"恩平县", +"440724":"开平县", +"440725":"鹤山县", +"440726":"阳江县", +"440727":"阳春县", +"440781":"台山市", +"440782":"新会市", +"440783":"开平市", +"440784":"鹤山市", +"440785":"恩平市", +"440800":"湛江市", +"440801":"市辖区", +"440802":"赤坎区", +"440803":"霞山区", +"440804":"坡头区", +"440811":"麻章区", +"440821":"吴川县", +"440822":"廉江县", +"440823":"遂溪县", +"440824":"海康县", +"440825":"徐闻县", +"440881":"廉江市", +"440882":"雷州市", +"440883":"吴川市", +"440900":"茂名市", +"440901":"市辖区", +"440902":"茂南区", +"440903":"茂港区", +"440904":"电白区", +"440921":"信宜县", +"440922":"高州县", +"440923":"电白县", +"440924":"化州县", +"440981":"高州市", +"440982":"化州市", +"440983":"信宜市", +"441000":"海口市", +"441001":"潮州市", +"441002":"新华区", +"441003":"立新区", +"441004":"东方红区", +"441005":"秀英区", +"441100":"三亚市", +"441200":"肇庆市", +"441201":"市辖区", +"441202":"端州区", +"441203":"鼎湖区", +"441204":"高要区", +"441221":"高要县", +"441222":"四会县", +"441223":"广宁县", +"441224":"怀集县", +"441225":"封开县", +"441226":"德庆县", +"441227":"云浮县", +"441228":"新兴县", +"441229":"郁南县", +"441230":"罗定县", +"441281":"云浮市", +"441282":"罗定市", +"441283":"高要市", +"441284":"四会市", +"441300":"惠州市", +"441301":"市辖区", +"441302":"惠城区", +"441303":"惠阳区", +"441321":"惠阳县", +"441322":"博罗县", +"441323":"惠东县", +"441324":"龙门县", +"441381":"惠阳市", +"441400":"梅州市", +"441401":"市辖区", +"441402":"梅江区", +"441403":"梅县区", +"441421":"梅县", +"441422":"大埔县", +"441423":"丰顺县", +"441424":"五华县", +"441425":"兴宁县", +"441426":"平远县", +"441427":"蕉岭县", +"441481":"兴宁市", +"441500":"汕尾市", +"441501":"市辖区", +"441502":"城区", +"441521":"海丰县", +"441522":"陆丰县", +"441523":"陆河县", +"441581":"陆丰市", +"441600":"河源市", +"441601":"市辖区", +"441602":"源城区", +"441611":"郊区", +"441621":"紫金县", +"441622":"龙川县", +"441623":"连平县", +"441624":"和平县", +"441625":"东源县", +"441700":"阳江市", +"441701":"市辖区", +"441702":"江城区", +"441703":"阳东区", +"441704":"阳东区", +"441721":"阳西县", +"441722":"阳春县", +"441723":"阳东县", +"441781":"阳春市", +"441800":"清远市", +"441801":"市辖区", +"441802":"清城区", +"441803":"清新区", +"441811":"清郊区", +"441821":"佛冈县", +"441822":"英德县", +"441823":"阳山县", +"441824":"连县", +"441825":"连山壮族瑶族自治县", +"441826":"连南瑶族自治县", +"441827":"清新县", +"441881":"英德市", +"441882":"连州市", +"441900":"东莞市", +"442000":"中山市", +"442100":"海南行政区", +"442101":"海口市", +"442102":"通什市", +"442121":"琼山县", +"442122":"文昌县", +"442123":"琼海县", +"442124":"万宁县", +"442125":"定安县", +"442126":"屯昌县", +"442127":"澄迈县", +"442128":"临高县", +"442129":"儋县", +"442130":"东方黎族自治县", +"442131":"乐东黎族自治县", +"442132":"琼中黎族苗族自治县", +"442133":"保亭黎族苗族自治县", +"442134":"陵水黎族自治县", +"442135":"白沙黎族自治县", +"442136":"昌江黎族自治县", +"442200":"黎族苗族自治州", +"442201":"三亚市", +"442202":"通什市", +"442221":"崖县", +"442222":"东方县", +"442223":"乐东县", +"442224":"琼中县", +"442225":"保亭县", +"442226":"陵水县", +"442227":"白沙县", +"442228":"昌江县", +"442229":"西沙群岛、南沙群岛、中沙群岛", +"442300":"汕头地区", +"442301":"汕头市", +"442302":"潮州市", +"442321":"潮安县", +"442322":"澄海县", +"442323":"饶平县", +"442324":"南澳县", +"442325":"潮阳县", +"442326":"揭阳县", +"442327":"揭西县", +"442328":"普宁县", +"442329":"惠来县", +"442330":"陆丰县", +"442331":"海丰县", +"442400":"梅县地区", +"442401":"梅县市", +"442421":"梅县", +"442422":"大埔县", +"442423":"丰顺县", +"442424":"五华县", +"442425":"兴宁县", +"442426":"平远县", +"442427":"蕉岭县", +"442500":"惠阳地区", +"442501":"惠州市", +"442502":"东莞市", +"442521":"惠阳县", +"442522":"紫金县", +"442523":"和平县", +"442524":"连平县", +"442525":"河源县", +"442526":"博罗县", +"442527":"东莞县", +"442528":"惠东县", +"442529":"龙川县", +"442530":"陆丰县", +"442531":"海丰县", +"442600":"韶关地区", +"442621":"始兴县", +"442622":"南雄县", +"442623":"仁化县", +"442624":"乐昌县", +"442625":"连县", +"442626":"阳山县", +"442627":"英德县", +"442628":"清远县", +"442629":"佛冈县", +"442630":"翁源县", +"442631":"连山壮族瑶族自治县", +"442632":"连南瑶族自治县", +"442633":"乳源瑶族自治县", +"442700":"佛山地区", +"442701":"佛山市", +"442702":"江门市", +"442721":"三水县", +"442722":"南海县", +"442723":"顺德县", +"442724":"中山县", +"442725":"斗门县", +"442726":"新会县", +"442727":"台山县", +"442728":"恩平县", +"442729":"开平县", +"442730":"高鹤县", +"442731":"鹤山县", +"442732":"高明县", +"442800":"肇庆地区", +"442801":"肇庆市", +"442821":"高要县", +"442822":"四会县", +"442823":"广宁县", +"442824":"怀集县", +"442825":"封开县", +"442826":"德庆县", +"442827":"云浮县", +"442828":"新兴县", +"442829":"郁南县", +"442830":"罗定县", +"442900":"湛江地区", +"442901":"湛江市", +"442902":"茂名市", +"442921":"阳江县", +"442922":"阳春县", +"442923":"信宜县", +"442924":"高州县", +"442925":"电白县", +"442926":"吴川县", +"442927":"化州县", +"442928":"廉江县", +"442929":"遂溪县", +"442930":"海康县", +"442931":"徐闻县", +"445100":"潮州市", +"445101":"市辖区", +"445102":"湘桥区", +"445103":"潮安区", +"445121":"潮安县", +"445122":"饶平县", +"445200":"揭阳市", +"445201":"市辖区", +"445202":"榕城区", +"445203":"揭东区", +"445221":"揭东县", +"445222":"揭西县", +"445223":"普宁县", +"445224":"惠来县", +"445281":"普宁市", +"445300":"云浮市", +"445301":"市辖区", +"445302":"云城区", +"445303":"云安区", +"445321":"新兴县", +"445322":"郁南县", +"445323":"云安县", +"445381":"罗定市", +"449000":"省直辖行政单位", +"449001":"潮州市", +"449002":"台山市", +"449003":"番禺市", +"449004":"南海市", +"449005":"云浮市", +"449006":"新会市", +"449007":"开平市", +"449008":"三水市", +"449009":"普宁市", +"449010":"罗定市", +"449011":"潮阳市", +"449012":"高州市", +"449013":"花都市", +"449014":"高要市", +"449015":"鹤山市", +"449016":"四会市", +"449017":"增城市", +"449018":"廉江市", +"449019":"英德市", +"449020":"恩平市", +"449021":"从化市", +"449022":"澄海市", +"449023":"高明市", +"449024":"连州市", +"449025":"雷州市", +"449026":"乐昌市", +"449027":"阳春市", +"449028":"惠阳市", +"449029":"吴川市", +"449030":"兴宁市", +"449031":"化州市", +"450000":"广西壮族自治区", +"450100":"南宁市", +"450101":"市辖区", +"450102":"兴宁区", +"450103":"青秀区", +"450104":"城北区", +"450105":"江南区", +"450106":"永新区", +"450107":"西乡塘区", +"450108":"良庆区", +"450109":"邕宁区", +"450110":"武鸣区", +"450111":"郊区", +"450121":"邕宁县", +"450122":"武鸣县", +"450123":"隆安县", +"450124":"马山县", +"450125":"上林县", +"450126":"宾阳县", +"450127":"横县", +"450181":"横州市", +"450200":"柳州市", +"450201":"市辖区", +"450202":"城中区", +"450203":"鱼峰区", +"450204":"柳南区", +"450205":"柳北区", +"450206":"柳江区", +"450211":"市郊区", +"450221":"柳江县", +"450222":"柳城县", +"450223":"鹿寨县", +"450224":"融安县", +"450225":"融水苗族自治县", +"450226":"三江侗族自治县", +"450300":"桂林市", +"450301":"市辖区", +"450302":"秀峰区", +"450303":"叠彩区", +"450304":"象山区", +"450305":"七星区", +"450306":"市郊区", +"450311":"雁山区", +"450312":"临桂区", +"450321":"阳朔县", +"450322":"临桂县", +"450323":"灵川县", +"450324":"全州县", +"450325":"兴安县", +"450326":"永福县", +"450327":"灌阳县", +"450328":"龙胜各族自治县", +"450329":"资源县", +"450330":"平乐县", +"450331":"荔蒲县", +"450332":"恭城瑶族自治县", +"450381":"荔浦市", +"450400":"梧州市", +"450401":"市辖区", +"450402":"白云区", +"450403":"万秀区", +"450404":"蝶山区", +"450405":"长洲区", +"450406":"龙圩区", +"450411":"市郊区", +"450421":"苍梧县", +"450422":"藤县", +"450423":"蒙山县", +"450481":"岑溪市", +"450500":"北海市", +"450501":"市辖区", +"450502":"海城区", +"450503":"银海区", +"450512":"铁山港区", +"450521":"合浦县", +"450600":"防城港市", +"450601":"市辖区", +"450602":"港口区", +"450603":"防城区", +"450621":"上思县", +"450681":"东兴市", +"450700":"钦州市", +"450701":"市辖区", +"450702":"钦南区", +"450703":"钦北区", +"450721":"灵山县", +"450722":"浦北县", +"450800":"贵港市", +"450801":"市辖区", +"450802":"港北区", +"450803":"港南区", +"450804":"覃塘区", +"450821":"平南县", +"450881":"桂平市", +"450900":"玉林市", +"450901":"市辖区", +"450902":"玉州区", +"450903":"福绵区", +"450921":"容县", +"450922":"陆川县", +"450923":"博白县", +"450924":"兴业县", +"450981":"北流市", +"451000":"百色市", +"451001":"市辖区", +"451002":"右江区", +"451003":"田阳区", +"451021":"田阳县", +"451022":"田东县", +"451023":"平果县", +"451024":"德保县", +"451025":"靖西县", +"451026":"那坡县", +"451027":"凌云县", +"451028":"乐业县", +"451029":"田林县", +"451030":"西林县", +"451031":"隆林各族自治县", +"451081":"靖西市", +"451082":"平果市", +"451100":"贺州市", +"451101":"市辖区", +"451102":"八步区", +"451103":"平桂区", +"451121":"昭平县", +"451122":"钟山县", +"451123":"富川瑶族自治县", +"451200":"河池市", +"451201":"市辖区", +"451202":"金城江区", +"451203":"宜州区", +"451221":"南丹县", +"451222":"天峨县", +"451223":"凤山县", +"451224":"东兰县", +"451225":"罗城仫佬族自治县", +"451226":"环江毛南族自治县", +"451227":"巴马瑶族自治县", +"451228":"都安瑶族自治县", +"451229":"大化瑶族自治县", +"451281":"宜州市", +"451300":"来宾市", +"451301":"市辖区", +"451302":"兴宾区", +"451321":"忻城县", +"451322":"象州县", +"451323":"武宣县", +"451324":"金秀瑶族自治县", +"451381":"合山市", +"451400":"崇左市", +"451401":"市辖区", +"451402":"江州区", +"451421":"扶绥县", +"451422":"宁明县", +"451423":"龙州县", +"451424":"大新县", +"451425":"天等县", +"451481":"凭祥市", +"452100":"南宁地区", +"452101":"凭祥市", +"452121":"邕宁县", +"452122":"横县", +"452123":"宾阳县", +"452124":"上林县", +"452125":"武鸣县", +"452126":"隆安县", +"452127":"马山县", +"452128":"扶绥县", +"452129":"崇左县", +"452130":"大新县", +"452131":"天等县", +"452132":"宁明县", +"452133":"龙州县", +"452200":"柳州地区", +"452201":"合山市", +"452221":"柳江县", +"452222":"柳城县", +"452223":"鹿寨县", +"452224":"象州县", +"452225":"武宣县", +"452226":"来宾县", +"452227":"融安县", +"452228":"三江侗族自治县", +"452229":"融水苗族自治县", +"452230":"金秀瑶族自治县", +"452231":"忻城县", +"452300":"桂林地区", +"452321":"临桂县", +"452322":"灵川县", +"452323":"全州县", +"452324":"兴安县", +"452325":"永福县", +"452326":"阳朔县", +"452327":"灌阳县", +"452328":"龙胜各族自治县", +"452329":"资源县", +"452330":"平乐县", +"452331":"荔蒲县", +"452332":"恭城瑶族自治县", +"452400":"贺州地区", +"452401":"岑溪市", +"452402":"贺州市", +"452421":"岑溪县", +"452422":"苍梧县", +"452423":"藤县", +"452424":"昭平县", +"452425":"蒙山县", +"452426":"贺县", +"452427":"钟山县", +"452428":"富川瑶族自治县", +"452500":"玉林地区", +"452501":"玉林市", +"452502":"贵港市", +"452503":"北流市", +"452504":"桂平市", +"452521":"玉林县", +"452522":"贵县", +"452523":"桂平县", +"452524":"平南县", +"452525":"容县", +"452526":"北流县", +"452527":"陆川县", +"452528":"博白县", +"452600":"百色地区", +"452601":"百色市", +"452621":"百色县", +"452622":"田阳县", +"452623":"田东县", +"452624":"平果县", +"452625":"德保县", +"452626":"靖西县", +"452627":"那坡县", +"452628":"凌云县", +"452629":"乐业县", +"452630":"田林县", +"452631":"隆林各族自治县", +"452632":"西林县", +"452700":"河池地区", +"452701":"河池市", +"452702":"宜州市", +"452721":"河池县", +"452722":"宜山县", +"452723":"罗城仫佬族自治县", +"452724":"环江毛南族自治县", +"452725":"南丹县", +"452726":"天峨县", +"452727":"凤山县", +"452728":"东兰县", +"452729":"巴马瑶族自治县", +"452730":"都安瑶族自治县", +"452731":"大化瑶族自治县", +"452800":"钦州地区", +"452801":"北海市", +"452802":"钦州市", +"452821":"上思县", +"452822":"防城各族自治县", +"452823":"钦州县", +"452824":"灵山县", +"452825":"合浦县", +"452826":"浦北县", +"460000":"海南省", +"460001":"通什市", +"460002":"琼海市", +"460003":"儋州市", +"460004":"琼山市", +"460005":"文昌市", +"460006":"万宁市", +"460007":"东方市", +"460021":"琼山县", +"460022":"文昌县", +"460023":"琼海县", +"460024":"万宁县", +"460025":"定安县", +"460026":"屯昌县", +"460027":"澄迈县", +"460028":"临高县", +"460029":"儋县", +"460030":"白沙黎族自治县", +"460031":"昌江黎族自治县", +"460032":"东方黎族自治县", +"460033":"乐东黎族自治县", +"460034":"陵水黎族自治县", +"460035":"保亭黎族苗族自治县", +"460036":"琼中黎族苗族自治县", +"460037":"西沙群岛", +"460038":"南沙群岛", +"460039":"中沙群岛的岛礁及其海域", +"460100":"海口市", +"460101":"市辖区", +"460102":"振东区", +"460103":"新华区", +"460104":"秀英区", +"460105":"秀英区", +"460106":"龙华区", +"460107":"琼山区", +"460108":"美兰区", +"460200":"三亚市", +"460201":"市辖区", +"460202":"海棠区", +"460203":"吉阳区", +"460204":"天涯区", +"460205":"崖州区", +"460300":"三沙市", +"460301":"西沙区", +"460302":"南沙区", +"460321":"西沙区", +"460322":"南沙区", +"460323":"中沙群岛的岛礁及其海域", +"460324":"永乐群岛的岛礁及其海域", +"460400":"儋州市", +"469001":"五指山市", +"469002":"琼海市", +"469003":"儋州市", +"469004":"琼山市", +"469005":"文昌市", +"469006":"万宁市", +"469007":"东方市", +"469021":"定安县", +"469022":"屯昌县", +"469023":"澄迈县", +"469024":"临高县", +"469025":"白沙黎族自治县", +"469026":"昌江黎族自治县", +"469027":"乐东黎族自治县", +"469028":"陵水黎族自治县", +"469029":"保亭黎族苗族自治县", +"469030":"琼中黎族苗族自治县", +"469031":"西沙群岛", +"469032":"南沙群岛", +"469033":"中沙群岛的岛礁及其海域", +"469034":"陵水黎族自治县", +"469035":"保亭黎族苗族自治县", +"469036":"琼中黎族苗族自治县", +"469037":"西沙群岛", +"469038":"南沙群岛", +"469039":"中沙群岛的岛礁及其海域", +"500000":"重庆市", +"500100":"市辖区", +"500101":"万州区", +"500102":"涪陵区", +"500103":"渝中区", +"500104":"大渡口区", +"500105":"江北区", +"500106":"沙坪坝区", +"500107":"九龙坡区", +"500108":"南岸区", +"500109":"北碚区", +"500110":"綦江区", +"500111":"大足区", +"500112":"渝北区", +"500113":"巴南区", +"500114":"黔江区", +"500115":"长寿区", +"500116":"江津区", +"500117":"合川区", +"500118":"永川区", +"500119":"南川区", +"500120":"璧山区", +"500151":"铜梁区", +"500152":"潼南区", +"500153":"荣昌区", +"500154":"开州区", +"500155":"梁平区", +"500156":"武隆区", +"500201":"渝中区", +"500211":"江北区", +"500212":"沙坪坝区", +"500213":"九龙坡区", +"500214":"南岸区", +"500215":"北碚区", +"500216":"万盛区", +"500217":"双桥区", +"500221":"长寿县", +"500222":"綦江县", +"500223":"潼南县", +"500224":"铜梁县", +"500225":"大足县", +"500226":"荣昌县", +"500227":"璧山县", +"500228":"梁平县", +"500229":"城口县", +"500230":"丰都县", +"500231":"垫江县", +"500232":"武隆县", +"500233":"忠县", +"500234":"开县", +"500235":"云阳县", +"500236":"奉节县", +"500237":"巫山县", +"500238":"巫溪县", +"500239":"黔江土家族苗族自治县", +"500240":"石柱土家族自治县", +"500241":"秀山土家族苗族自治县", +"500242":"酉阳土家族苗族自治县", +"500243":"彭水苗族土家族自治县", +"500300":"重庆市", +"500381":"江津市", +"500382":"合川市", +"500383":"永川市", +"500384":"南川市", +"510000":"四川省", +"510100":"成都市", +"510101":"市辖区", +"510102":"东城区", +"510103":"西城区", +"510104":"锦江区", +"510105":"青羊区", +"510106":"金牛区", +"510107":"武侯区", +"510108":"成华区", +"510111":"金牛区", +"510112":"龙泉驿区", +"510113":"青白江区", +"510114":"新都区", +"510115":"温江区", +"510116":"双流区", +"510117":"郫都区", +"510118":"新津区", +"510120":"市区", +"510121":"金堂县", +"510122":"双流县", +"510123":"温江县", +"510124":"郫县", +"510125":"新都县", +"510126":"彭县", +"510127":"灌县", +"510128":"崇庆县", +"510129":"大邑县", +"510130":"邛崃县", +"510131":"蒲江县", +"510132":"新津县", +"510181":"都江堰市", +"510182":"彭州市", +"510183":"邛崃市", +"510184":"崇州市", +"510185":"简阳市", +"510200":"重庆市", +"510201":"市辖区", +"510202":"市中区", +"510203":"大渡口区", +"510211":"江北区", +"510212":"沙坪坝区", +"510213":"九龙坡区", +"510214":"南岸区", +"510215":"北碚区", +"510216":"万盛区", +"510217":"双桥区", +"510218":"渝北区", +"510219":"巴南区", +"510220":"市区", +"510221":"长寿县", +"510222":"巴县", +"510223":"綦江县", +"510224":"江北县", +"510225":"江津县", +"510226":"合川县", +"510227":"潼南县", +"510228":"铜梁县", +"510229":"永川县", +"510230":"大足县", +"510231":"荣昌县", +"510232":"璧山县", +"510281":"永川市", +"510282":"江津市", +"510283":"合川市", +"510300":"自贡市", +"510301":"市辖区", +"510302":"自流井区", +"510303":"贡井区", +"510304":"大安区", +"510311":"沿滩区", +"510320":"市区", +"510321":"荣县", +"510322":"富顺县", +"510400":"攀枝花市", +"510401":"市辖区", +"510402":"东区", +"510403":"西区", +"510411":"仁和区", +"510420":"市区", +"510421":"米易县", +"510422":"盐边县", +"510500":"泸州市", +"510501":"市辖区", +"510502":"江阳区", +"510503":"纳溪区", +"510504":"龙马潭区", +"510521":"泸县", +"510522":"合江县", +"510523":"纳溪县", +"510524":"叙永县", +"510525":"古蔺县", +"510600":"德阳市", +"510601":"市辖区", +"510602":"市中区", +"510603":"旌阳区", +"510604":"罗江区", +"510621":"德阳县", +"510622":"绵竹县", +"510623":"中江县", +"510624":"广汉县", +"510625":"什邡县", +"510626":"罗江县", +"510681":"广汉市", +"510682":"什邡市", +"510683":"绵竹市", +"510700":"绵阳市", +"510701":"市辖区", +"510702":"市中区", +"510703":"涪城区", +"510704":"游仙区", +"510705":"安州区", +"510721":"江油县", +"510722":"三台县", +"510723":"盐亭县", +"510724":"安县", +"510725":"梓潼县", +"510726":"北川羌族自治县", +"510727":"平武县", +"510781":"江油市", +"510800":"广元市", +"510801":"市辖区", +"510802":"利州区", +"510811":"昭化区", +"510812":"朝天区", +"510821":"旺苍县", +"510822":"青川县", +"510823":"剑阁县", +"510824":"苍溪县", +"510900":"遂宁市", +"510901":"市辖区", +"510902":"市中区", +"510903":"船山区", +"510904":"安居区", +"510921":"蓬溪县", +"510922":"射洪县", +"510923":"大英县", +"510981":"射洪市", +"511000":"内江市", +"511001":"市辖区", +"511002":"市中区", +"511011":"东兴区", +"511021":"内江县", +"511022":"乐至县", +"511023":"安岳县", +"511024":"威远县", +"511025":"资中县", +"511026":"资阳市", +"511027":"简阳县", +"511028":"隆昌县", +"511081":"资阳市", +"511082":"简阳市", +"511083":"隆昌市", +"511100":"乐山市", +"511101":"市辖区", +"511102":"市中区", +"511111":"沙湾区", +"511112":"五通桥区", +"511113":"金口河区", +"511121":"仁寿县", +"511122":"眉山县", +"511123":"犍为县", +"511124":"井研县", +"511125":"峨眉县", +"511126":"夹江县", +"511127":"洪雅县", +"511128":"彭山县", +"511129":"沐川县", +"511130":"青神县", +"511131":"丹棱县", +"511132":"峨边彝族自治县", +"511133":"马边彝族自治县", +"511181":"峨眉山市", +"511200":"万县市", +"511201":"市辖区", +"511202":"龙宝区", +"511203":"天成区", +"511204":"五桥区", +"511221":"开县", +"511222":"忠县", +"511223":"梁平县", +"511224":"云阳县", +"511225":"奉节县", +"511226":"巫山县", +"511227":"巫溪县", +"511228":"城口县", +"511300":"南充市", +"511301":"市辖区", +"511302":"顺庆区", +"511303":"高坪区", +"511304":"嘉陵区", +"511321":"南部县", +"511322":"营山县", +"511323":"蓬安县", +"511324":"仪陇县", +"511325":"西充县", +"511381":"阆中市", +"511400":"眉山市", +"511401":"市辖区", +"511402":"东坡区", +"511403":"彭山区", +"511421":"仁寿县", +"511422":"彭山县", +"511423":"洪雅县", +"511424":"丹棱县", +"511425":"青神县", +"511500":"宜宾市", +"511501":"市辖区", +"511502":"翠屏区", +"511503":"南溪区", +"511504":"叙州区", +"511521":"宜宾县", +"511522":"南溪县", +"511523":"江安县", +"511524":"长宁县", +"511525":"高县", +"511526":"珙县", +"511527":"筠连县", +"511528":"兴文县", +"511529":"屏山县", +"511600":"广安市", +"511601":"市辖区", +"511602":"广安区", +"511603":"前锋区", +"511621":"岳池县", +"511622":"武胜县", +"511623":"邻水县", +"511681":"华蓥市", +"511700":"达州市", +"511701":"市辖区", +"511702":"通川区", +"511703":"达川区", +"511721":"达县", +"511722":"宣汉县", +"511723":"开江县", +"511724":"大竹县", +"511725":"渠县", +"511781":"万源市", +"511800":"雅安市", +"511801":"市辖区", +"511802":"雨城区", +"511803":"名山区", +"511821":"名山县", +"511822":"荥经县", +"511823":"汉源县", +"511824":"石棉县", +"511825":"天全县", +"511826":"芦山县", +"511827":"宝兴县", +"511900":"巴中市", +"511901":"市辖区", +"511902":"巴州区", +"511903":"恩阳区", +"511921":"通江县", +"511922":"南江县", +"511923":"平昌县", +"512000":"资阳市", +"512001":"市辖区", +"512002":"雁江区", +"512021":"安岳县", +"512022":"乐至县", +"512081":"简阳市", +"512100":"永川地区", +"512121":"江津县", +"512122":"合川县", +"512123":"潼南县", +"512124":"铜梁县", +"512125":"永川县", +"512126":"大足县", +"512127":"荣昌县", +"512128":"璧山县", +"512129":"蒲江县", +"512130":"邛崃县", +"512131":"大邑县", +"512132":"崇庆县", +"512200":"万县地区", +"512201":"万县市", +"512202":"市中区", +"512200":"万县地区", +"512201":"万县市", +"512221":"万县", +"512222":"开县", +"512223":"忠县", +"512224":"梁平县", +"512225":"云阳县", +"512226":"奉节县", +"512227":"巫山县", +"512228":"巫溪县", +"512229":"城口县", +"512230":"射洪县", +"512231":"遂宁县", +"512232":"蓬溪县", +"512233":"中江县", +"512234":"德阳县", +"512235":"绵竹县", +"512236":"安县", +"512237":"北川县", +"512300":"涪陵地区", +"512301":"涪陵市", +"512302":"南川市", +"512321":"涪陵县", +"512322":"垫江县", +"512323":"南川县", +"512324":"丰都县", +"512325":"石柱县", +"512326":"武隆县", +"512327":"彭水苗族土家族自治县", +"512328":"黔江土家族苗族自治县", +"512329":"酉阳土家族苗族自治县", +"512330":"秀山土家族苗族自治县", +"512400":"内江地区", +"512401":"内江市", +"512402":"泸州市", +"512421":"内江县", +"512422":"资中县", +"512423":"资阳县", +"512424":"简阳县", +"512425":"威远县", +"512426":"隆昌县", +"512427":"安岳县", +"512428":"乐至县", +"512429":"古蔺县", +"512430":"叙永县", +"512431":"长宁县", +"512432":"兴文县", +"512433":"珙县", +"512434":"高县", +"512435":"筠连县", +"512436":"屏山县", +"512500":"宜宾地区", +"512501":"宜宾市", +"512502":"泸州市", +"512521":"泸县", +"512522":"富顺县", +"512523":"合江县", +"512524":"纳溪县", +"512525":"叙永县", +"512526":"古蔺县", +"512527":"宜宾县", +"512528":"南溪县", +"512529":"江安县", +"512530":"长宁县", +"512531":"高县", +"512532":"筠连县", +"512533":"珙县", +"512534":"兴文县", +"512535":"屏山县", +"512600":"乐山地区", +"512601":"乐山市", +"512621":"仁寿县", +"512622":"眉山县", +"512623":"犍为县", +"512624":"井研县", +"512625":"峨眉县", +"512626":"夹江县", +"512627":"洪雅县", +"512628":"彭山县", +"512629":"沐川县", +"512630":"青神县", +"512631":"丹棱县", +"512632":"峨边彝族自治县", +"512633":"马边彝族自治县", +"512634":"金口河工农区", +"512700":"温江地区", +"512721":"温江县", +"512722":"郫县", +"512723":"新都县", +"512724":"广汉县", +"512725":"什邡县", +"512726":"彭县", +"512727":"灌县", +"512728":"崇庆县", +"512729":"大邑县", +"512730":"邛崃县", +"512731":"蒲江县", +"512732":"新津县", +"512800":"绵阳地区", +"512801":"绵阳市", +"512802":"市中区", +"512821":"德阳县", +"512822":"绵竹县", +"512823":"安县", +"512824":"江油县", +"512825":"梓潼县", +"512826":"剑阁县", +"512827":"广元县", +"512828":"旺苍县", +"512829":"青川县", +"512830":"平武县", +"512831":"北川县", +"512832":"遂宁县", +"512833":"三台县", +"512834":"中江县", +"512835":"蓬溪县", +"512836":"射洪县", +"512837":"盐亭县", +"512900":"南充地区", +"512901":"南充市", +"512902":"华蓥市", +"512903":"阆中市", +"512921":"南充县", +"512922":"南部县", +"512923":"岳池县", +"512924":"营山县", +"512925":"广安县", +"512926":"蓬安县", +"512927":"仪陇县", +"512928":"武胜县", +"512929":"西充县", +"512930":"阆中县", +"512931":"苍溪县", +"512932":"华云工农区", +"513000":"达川地区", +"513001":"达川市", +"513002":"万源市", +"513021":"达县", +"513022":"宣汉县", +"513023":"开江县", +"513024":"万源县", +"513025":"通江县", +"513026":"南江县", +"513027":"巴中县", +"513028":"平昌县", +"513029":"大竹县", +"513030":"渠县", +"513031":"邻水县", +"513032":"白沙工农区", +"513100":"雅安地区", +"513101":"雅安市", +"513121":"雅安县", +"513122":"名山县", +"513123":"荥经县", +"513124":"汉源县", +"513125":"石棉县", +"513126":"天全县", +"513127":"芦山县", +"513128":"宝兴县", +"513200":"阿坝藏族羌族自治州", +"513201":"马尔康市", +"513221":"汶川县", +"513222":"理县", +"513223":"茂县", +"513224":"松潘县", +"513225":"九寨沟县", +"513226":"金川县", +"513227":"小金县", +"513228":"黑水县", +"513229":"马尔康县", +"513230":"壤塘县", +"513231":"阿坝县", +"513232":"若尔盖县", +"513233":"红原县", +"513300":"甘孜藏族自治州", +"513301":"康定市", +"513321":"康定县", +"513322":"泸定县", +"513323":"丹巴县", +"513324":"九龙县", +"513325":"雅江县", +"513326":"道孚县", +"513327":"炉霍县", +"513328":"甘孜县", +"513329":"新龙县", +"513330":"德格县", +"513331":"白玉县", +"513332":"石渠县", +"513333":"色达县", +"513334":"理塘县", +"513335":"巴塘县", +"513336":"乡城县", +"513337":"稻城县", +"513338":"得荣县", +"513400":"凉山彝族自治州", +"513401":"西昌市", +"513402":"会理市", +"513421":"西昌县", +"513422":"木里藏族自治县", +"513423":"盐源县", +"513424":"德昌县", +"513425":"会理县", +"513426":"会东县", +"513427":"宁南县", +"513428":"普格县", +"513429":"布拖县", +"513430":"金阳县", +"513431":"昭觉县", +"513432":"喜德县", +"513433":"冕宁县", +"513434":"越西县", +"513435":"甘洛县", +"513436":"美姑县", +"513437":"雷波县", +"513438":"木里藏族自治县", +"513439":"冕宁县", +"513500":"黔江地区", +"513521":"石柱土家族自治县", +"513522":"秀山土家族苗族自治县", +"513523":"黔江土家族苗族自治县", +"513524":"酉阳土家族苗族自治县", +"513525":"彭水苗族土家族自治县", +"513600":"广安地区", +"513601":"华蓥市", +"513621":"岳池县", +"513622":"广安县", +"513623":"武胜县", +"513624":"邻水县", +"513700":"巴中地区", +"513701":"巴中市", +"513721":"通江县", +"513722":"南江县", +"513723":"平昌县", +"513800":"眉山地区", +"513821":"眉山县", +"513822":"仁寿县", +"513823":"彭山县", +"513824":"洪雅县", +"513825":"丹棱县", +"513826":"青神县", +"513900":"资阳地区", +"513901":"资阳市", +"513902":"简阳市", +"513921":"安岳县", +"513922":"乐至县", +"517000":"涪陵市", +"517002":"枳城区", +"517003":"李渡区", +"517021":"垫江县", +"517022":"丰都县", +"517023":"武隆县", +"517081":"南川市", +"519000":"直辖行政单位", +"519001":"广汉市", +"519002":"江油市", +"519003":"都江堰市", +"519004":"峨眉山市", +"519005":"永川市", +"519006":"合川市", +"519007":"江津市", +"519008":"阆中市", +"519009":"资阳市", +"519010":"彭州市", +"519011":"简阳市", +"519012":"邛崃市", +"519013":"崇州市", +"520000":"贵州省", +"520100":"贵阳市", +"520101":"市辖区", +"520102":"南明区", +"520103":"云岩区", +"520111":"花溪区", +"520112":"乌当区", +"520113":"白云区", +"520114":"小河区", +"520115":"观山湖区", +"520121":"开阳县", +"520122":"息烽县", +"520123":"修文县", +"520181":"清镇市", +"520200":"六盘水市", +"520201":"钟山区", +"520202":"盘县特区", +"520203":"六枝特区", +"520204":"水城区", +"520221":"水城县", +"520222":"盘县", +"520281":"盘州市", +"520300":"遵义市", +"520301":"市辖区", +"520302":"红花岗区", +"520303":"汇川区", +"520304":"播州区", +"520321":"遵义县", +"520322":"桐梓县", +"520323":"绥阳县", +"520324":"正安县", +"520325":"道真仡佬族苗族自治县", +"520326":"务川仡佬族苗族自治县", +"520327":"凤冈县", +"520328":"湄潭县", +"520329":"余庆县", +"520330":"习水县", +"520381":"赤水市", +"520382":"仁怀市", +"520400":"安顺市", +"520401":"市辖区", +"520402":"西秀区", +"520403":"平坝区", +"520421":"平坝县", +"520422":"普定县", +"520423":"镇宁布依族苗族自治县", +"520424":"关岭布依族苗族自治县", +"520425":"紫云苗族布依族自治县", +"520500":"毕节市", +"520502":"七星关区", +"520521":"大方县", +"520522":"黔西县", +"520523":"金沙县", +"520524":"织金县", +"520525":"纳雍县", +"520526":"威宁彝族回族苗族自治县", +"520527":"赫章县", +"520581":"黔西市", +"520600":"铜仁市", +"520602":"碧江区", +"520603":"万山区", +"520621":"江口县", +"520622":"玉屏侗族自治县", +"520623":"石阡县", +"520624":"思南县", +"520625":"印江土家族苗族自治县", +"520626":"德江县", +"520627":"沿河土家族自治县", +"520628":"松桃苗族自治县", +"522100":"遵义地区", +"522101":"遵义市", +"522102":"赤水市", +"522103":"仁怀市", +"522121":"遵义县", +"522122":"桐梓县", +"522123":"绥阳县", +"522124":"正安县", +"522125":"道真仡佬族苗族自治县", +"522126":"务川仡佬族苗族自治县", +"522127":"凤冈县", +"522128":"湄潭县", +"522129":"余庆县", +"522130":"仁怀县", +"522131":"赤水县", +"522132":"习水县", +"522200":"铜仁地区", +"522201":"铜仁市", +"522221":"铜仁县", +"522222":"江口县", +"522223":"玉屏侗族自治县", +"522224":"石阡县", +"522225":"思南县", +"522226":"印江土家族苗族自治县", +"522227":"德江县", +"522228":"沿河土家族自治县", +"522229":"松桃苗族自治县", +"522230":"万山特区", +"522300":"黔西南布依族苗族自治州", +"522301":"兴义市", +"522302":"兴仁市", +"522321":"兴义县", +"522322":"兴仁县", +"522323":"普安县", +"522324":"晴隆县", +"522325":"贞丰县", +"522326":"望谟县", +"522327":"册亨县", +"522328":"安龙县", +"522400":"毕节地区", +"522401":"毕节市", +"522421":"毕节县", +"522422":"大方县", +"522423":"黔西县", +"522424":"金沙县", +"522425":"织金县", +"522426":"纳雍县", +"522427":"威宁彝族回族苗族自治县", +"522428":"赫章县", +"522500":"安顺地区", +"522501":"安顺市", +"522502":"清镇市", +"522521":"安顺县", +"522522":"开阳县", +"522523":"息烽县", +"522524":"修文县", +"522525":"清镇县", +"522526":"平坝县", +"522527":"普定县", +"522528":"关岭布依族苗族自治县", +"522529":"镇宁布依族苗族自治县", +"522530":"紫云苗族布依族自治县", +"522600":"黔东南苗族侗族自治州", +"522601":"凯里市", +"522621":"凯里县", +"522622":"黄平县", +"522623":"施秉县", +"522624":"三穗县", +"522625":"镇远县", +"522626":"岑巩县", +"522627":"天柱县", +"522628":"锦屏县", +"522629":"剑河县", +"522630":"台江县", +"522631":"黎平县", +"522632":"榕江县", +"522633":"从江县", +"522634":"雷山县", +"522635":"麻江县", +"522636":"丹寨县", +"522700":"黔南布依族苗族自治州", +"522701":"都匀市", +"522702":"福泉市", +"522721":"都匀县", +"522722":"荔波县", +"522723":"贵定县", +"522724":"福泉县", +"522725":"瓮安县", +"522726":"独山县", +"522727":"平塘县", +"522728":"罗甸县", +"522729":"长顺县", +"522730":"龙里县", +"522731":"惠水县", +"522732":"三都水族自治县", +"530000":"云南省", +"530100":"昆明市", +"530101":"市辖区", +"530102":"五华区", +"530103":"盘龙区", +"530111":"官渡区", +"530112":"西山区", +"530113":"东川区", +"530114":"呈贡区", +"530115":"晋宁区", +"530120":"昆明市区", +"530121":"呈贡县", +"530122":"晋宁县", +"530123":"安宁县", +"530124":"富民县", +"530125":"宜良县", +"530126":"石林彝族自治县", +"530127":"嵩明县", +"530128":"禄劝彝族苗族自治县", +"530129":"寻甸回族彝族自治县", +"530181":"安宁市", +"530200":"东川市", +"530201":"市辖区", +"530300":"曲靖市", +"530301":"市辖区", +"530302":"麒麟区", +"530303":"沾益区", +"530304":"马龙区", +"530321":"马龙县", +"530322":"陆良县", +"530323":"师宗县", +"530324":"罗平县", +"530325":"富源县", +"530326":"会泽县", +"530327":"寻甸回族彝族自治县", +"530328":"沾益县", +"530381":"宣威市", +"530400":"玉溪市", +"530401":"市辖区", +"530402":"红塔区", +"530403":"江川区", +"530421":"江川县", +"530422":"澄江县", +"530423":"通海县", +"530424":"华宁县", +"530425":"易门县", +"530426":"峨山彝族自治县", +"530427":"新平彝族傣族自治县", +"530428":"元江哈尼族彝族傣族自治县", +"530481":"澄江市", +"530500":"保山市", +"530501":"市辖区", +"530502":"隆阳区", +"530521":"施甸县", +"530522":"腾冲县", +"530523":"龙陵县", +"530524":"昌宁县", +"530581":"腾冲市", +"530600":"昭通市", +"530601":"市辖区", +"530602":"昭阳区", +"530621":"鲁甸县", +"530622":"巧家县", +"530623":"盐津县", +"530624":"大关县", +"530625":"永善县", +"530626":"绥江县", +"530627":"镇雄县", +"530628":"彝良县", +"530629":"威信县", +"530630":"水富县", +"530681":"水富市", +"530700":"丽江市", +"530701":"市辖区", +"530702":"古城区", +"530721":"玉龙纳西族自治县", +"530722":"永胜县", +"530723":"华坪县", +"530724":"宁蒗彝族自治县", +"530800":"普洱市", +"530801":"市辖区", +"530802":"思茅区", +"530821":"宁洱哈尼族彝族自治县", +"530822":"墨江哈尼族自治县", +"530823":"景东彝族自治县", +"530824":"景谷傣族彝族自治县", +"530825":"镇沅彝族哈尼族拉祜族自治县", +"530826":"江城哈尼族彝族自治县", +"530827":"孟连傣族拉祜族佤族自治县", +"530828":"澜沧拉祜族自治县", +"530829":"西盟佤族自治县", +"530900":"临沧市", +"530901":"市辖区", +"530902":"临翔区", +"530921":"凤庆县", +"530922":"云县", +"530923":"永德县", +"530924":"镇康县", +"530925":"双江拉祜族佤族布朗族傣族自治县", +"530926":"耿马傣族佤族自治县", +"530927":"沧源佤族自治县", +"532100":"昭通地区", +"532101":"昭通市", +"532121":"昭通县", +"532122":"鲁甸县", +"532123":"巧家县", +"532124":"盐津县", +"532125":"大关县", +"532126":"永善县", +"532127":"绥江县", +"532128":"镇雄县", +"532129":"彝良县", +"532130":"威信县", +"532131":"水富县", +"532200":"曲靖地区", +"532201":"曲靖市", +"532202":"宣威市", +"532221":"曲靖县", +"532222":"沾益县", +"532223":"马龙县", +"532224":"宣威县", +"532225":"富源县", +"532226":"罗平县", +"532227":"师宗县", +"532228":"陆良县", +"532229":"宜良县", +"532230":"路南彝族自治县", +"532231":"寻甸回族彝族自治县", +"532232":"嵩明县", +"532233":"会泽县", +"532300":"楚雄彝族自治州", +"532301":"楚雄市", +"532302":"禄丰市", +"532321":"楚雄县", +"532322":"双柏县", +"532323":"牟定县", +"532324":"南华县", +"532325":"姚安县", +"532326":"大姚县", +"532327":"永仁县", +"532328":"元谋县", +"532329":"武定县", +"532330":"禄劝县", +"532331":"禄丰县", +"532400":"玉溪地区", +"532401":"玉溪市", +"532421":"玉溪县", +"532422":"江川县", +"532423":"澄江县", +"532424":"通海县", +"532425":"华宁县", +"532426":"易门县", +"532427":"峨山彝族自治县", +"532428":"新平彝族傣族自治县", +"532429":"元江哈尼族彝族傣族自治县", +"532500":"红河哈尼族彝族自治州", +"532501":"个旧市", +"532502":"开远市", +"532503":"蒙自市", +"532504":"弥勒市", +"532521":"开远县", +"532522":"蒙自县", +"532523":"屏边苗族自治县", +"532524":"建水县", +"532525":"石屏县", +"532526":"弥勒县", +"532527":"泸西县", +"532528":"元阳县", +"532529":"红河县", +"532530":"金平苗族瑶族傣族自治县", +"532531":"绿春县", +"532532":"河口瑶族自治县", +"532600":"文山壮族苗族自治州", +"532601":"文山市", +"532621":"文山县", +"532622":"砚山县", +"532623":"西畴县", +"532624":"麻栗坡县", +"532625":"马关县", +"532626":"丘北县", +"532627":"广南县", +"532628":"富宁县", +"532700":"思茅地区", +"532701":"思茅市", +"532721":"思茅县", +"532722":"普洱哈尼族彝族自治县", +"532723":"墨江哈尼族自治县", +"532724":"景东彝族自治县", +"532725":"景谷傣族彝族自治县", +"532726":"镇沅彝族哈尼族拉祜族自治县", +"532727":"江城哈尼族彝族自治县", +"532728":"孟连傣族拉祜族佤族自治县", +"532729":"澜沧拉祜族自治县", +"532730":"西盟佤族自治县", +"532800":"西双版纳傣族自治州", +"532801":"景洪市", +"532821":"景洪县", +"532822":"勐海县", +"532823":"勐腊县", +"532900":"大理白族自治州", +"532901":"大理市", +"532921":"大理县", +"532922":"漾濞彝族自治县", +"532923":"祥云县", +"532924":"宾川县", +"532925":"弥渡县", +"532926":"南涧彝族自治县", +"532927":"巍山彝族回族自治县", +"532928":"永平县", +"532929":"云龙县", +"532930":"洱源县", +"532931":"剑川县", +"532932":"鹤庆县", +"533000":"保山地区", +"533001":"保山市", +"533021":"保山县", +"533022":"施甸县", +"533023":"腾冲县", +"533024":"龙陵县", +"533025":"昌宁县", +"533100":"德宏傣族景颇族自治州", +"533101":"畹町市", +"533102":"瑞丽市", +"533103":"芒市", +"533121":"潞西县", +"533122":"梁河县", +"533123":"盈江县", +"533124":"陇川县", +"533125":"瑞丽县", +"533126":"畹町镇", +"533200":"丽江地区", +"533221":"丽江纳西族自治县", +"533222":"永胜县", +"533223":"华坪县", +"533224":"宁蒗彝族自治县", +"533300":"怒江傈僳族自治州", +"533301":"泸水市", +"533321":"泸水县", +"533322":"碧江县", +"533323":"福贡县", +"533324":"贡山独龙族怒族自治县", +"533325":"兰坪白族普米族自治县", +"533400":"迪庆藏族自治州", +"533401":"香格里拉市", +"533421":"香格里拉县", +"533422":"德钦县", +"533423":"维西傈僳族自治县", +"533500":"临沧地区", +"533521":"临沧县", +"533522":"凤庆县", +"533523":"云县", +"533524":"永德县", +"533525":"镇康县", +"533526":"双江拉祜族佤族布朗族傣族自治县", +"533527":"耿马傣族佤族自治县", +"533528":"沧源佤族自治县", +"540000":"西藏自治区", +"540100":"拉萨市", +"540101":"市辖区", +"540102":"城关区", +"540103":"堆龙德庆区", +"540104":"达孜区", +"540120":"市区", +"540121":"林周县", +"540122":"当雄县", +"540123":"尼木县", +"540124":"曲水县", +"540125":"堆龙德庆县", +"540126":"达孜县", +"540127":"墨竹工卡县", +"540128":"工布江达县", +"540129":"林芝县", +"540130":"米林县", +"540131":"墨脱县", +"540200":"日喀则市", +"540202":"桑珠孜区", +"540221":"南木林县", +"540222":"江孜县", +"540223":"定日县", +"540224":"萨迦县", +"540225":"拉孜县", +"540226":"昂仁县", +"540227":"谢通门县", +"540228":"白朗县", +"540229":"仁布县", +"540230":"康马县", +"540231":"定结县", +"540232":"仲巴县", +"540233":"亚东县", +"540234":"吉隆县", +"540235":"聂拉木县", +"540236":"萨嘎县", +"540237":"岗巴县", +"540300":"昌都市", +"540302":"卡若区", +"540321":"江达县", +"540322":"贡觉县", +"540323":"类乌齐县", +"540324":"丁青县", +"540325":"察雅县", +"540326":"八宿县", +"540327":"左贡县", +"540328":"芒康县", +"540329":"洛隆县", +"540330":"边坝县", +"540400":"林芝市", +"540402":"巴宜区", +"540421":"工布江达县", +"540422":"米林县", +"540423":"墨脱县", +"540424":"波密县", +"540425":"察隅县", +"540426":"朗县", +"540481":"米林市", +"540500":"山南市", +"540502":"乃东区", +"540521":"扎囊县", +"540522":"贡嘎县", +"540523":"桑日县", +"540524":"琼结县", +"540525":"曲松县", +"540526":"措美县", +"540527":"洛扎县", +"540528":"加查县", +"540529":"隆子县", +"540530":"错那县", +"540531":"浪卡子县", +"540581":"错那市", +"540600":"那曲市", +"540602":"色尼区", +"540621":"嘉黎县", +"540622":"比如县", +"540623":"聂荣县", +"540624":"安多县", +"540625":"申扎县", +"540626":"索县", +"540627":"班戈县", +"540628":"巴青县", +"540629":"尼玛县", +"540630":"双湖县", +"542100":"昌都地区", +"542121":"昌都县", +"542122":"江达县", +"542123":"贡觉县", +"542124":"类乌齐县", +"542125":"丁青县", +"542126":"察雅县", +"542127":"八宿县", +"542128":"左贡县", +"542129":"芒康县", +"542130":"波密县", +"542131":"察隅县", +"542132":"洛隆县", +"542133":"边坝县", +"542134":"盐井县", +"542135":"碧土县", +"542136":"妥坝县", +"542137":"生达县", +"542200":"山南地区", +"542221":"乃东县", +"542222":"扎囊县", +"542223":"贡嘎县", +"542224":"桑日县", +"542225":"琼结县", +"542226":"曲松县", +"542227":"措美县", +"542228":"洛扎县", +"542229":"加查县", +"542230":"朗县", +"542231":"隆子县", +"542232":"错那县", +"542233":"浪卡子县", +"542300":"日喀则地区", +"542301":"日喀则市", +"542321":"日喀则县", +"542322":"南木林县", +"542323":"江孜县", +"542324":"定日县", +"542325":"萨迦县", +"542326":"拉孜县", +"542327":"昂仁县", +"542328":"谢通门县", +"542329":"白朗县", +"542330":"仁布县", +"542331":"康马县", +"542332":"定结县", +"542333":"仲巴县", +"542334":"亚东县", +"542335":"吉隆县", +"542336":"聂拉木县", +"542337":"萨嘎县", +"542338":"岗巴县", +"542400":"那曲地区", +"542421":"那曲县", +"542422":"嘉黎县", +"542423":"比如县", +"542424":"聂荣县", +"542425":"安多县", +"542426":"申扎县", +"542427":"索县", +"542428":"班戈县", +"542429":"巴青县", +"542430":"尼玛县", +"542431":"双湖县", +"542500":"阿里地区", +"542521":"普兰县", +"542522":"札达县", +"542523":"噶尔县", +"542524":"日土县", +"542525":"革吉县", +"542526":"改则县", +"542527":"措勤县", +"542528":"隆格尔县", +"542600":"林芝地区", +"542621":"林芝县", +"542622":"工布江达县", +"542623":"米林县", +"542624":"墨脱县", +"542625":"波密县", +"542626":"察隅县", +"542627":"朗县", +"542700":"江孜地区", +"542721":"江孜县", +"542722":"浪卡子县", +"542723":"白朗县", +"542724":"仁布县", +"542725":"康马县", +"542726":"亚东县", +"542727":"岗巴县", +"610000":"陕西省", +"610100":"西安市", +"610101":"市辖区", +"610102":"新城区", +"610103":"碑林区", +"610104":"莲湖区", +"610106":"经济开发区", +"610111":"灞桥区", +"610112":"未央区", +"610113":"雁塔区", +"610114":"阎良区", +"610115":"临潼区", +"610116":"长安区", +"610117":"高陵区", +"610118":"鄠邑区", +"610120":"市区", +"610121":"长安县", +"610122":"蓝田县", +"610123":"临潼县", +"610124":"周至县", +"610125":"户县", +"610126":"高陵县", +"610200":"铜川市", +"610201":"市辖区", +"610202":"王益区", +"610203":"印台区", +"610204":"耀州区", +"610220":"市区", +"610221":"耀县", +"610222":"宜君县", +"610300":"宝鸡市", +"610301":"市辖区", +"610302":"渭滨区", +"610303":"金台区", +"610304":"陈仓区", +"610305":"凤翔区", +"610320":"市区", +"610321":"宝鸡县", +"610322":"凤翔县", +"610323":"岐山县", +"610324":"扶风县", +"610325":"武功县", +"610326":"眉县", +"610327":"陇县", +"610328":"千阳县", +"610329":"麟游县", +"610330":"凤县", +"610331":"太白县", +"610400":"咸阳市", +"610401":"市辖区", +"610402":"秦都区", +"610403":"杨陵区", +"610404":"渭城区", +"610421":"兴平县", +"610422":"三原县", +"610423":"泾阳县", +"610424":"乾县", +"610425":"礼泉县", +"610426":"永寿县", +"610427":"彬县", +"610428":"长武县", +"610429":"旬邑县", +"610430":"淳化县", +"610431":"武功县", +"610481":"兴平市", +"610482":"彬州市", +"610500":"渭南市", +"610501":"市辖区", +"610502":"临渭区", +"610503":"华州区", +"610521":"华县", +"610522":"潼关县", +"610523":"大荔县", +"610524":"合阳县", +"610525":"澄城县", +"610526":"蒲城县", +"610527":"白水县", +"610528":"富平县", +"610581":"韩城市", +"610582":"华阴市", +"610600":"延安市", +"610601":"市辖区", +"610602":"宝塔区", +"610603":"安塞区", +"610621":"延长县", +"610622":"延川县", +"610623":"子长县", +"610624":"安塞县", +"610625":"志丹县", +"610626":"吴起县", +"610627":"甘泉县", +"610628":"富县", +"610629":"洛川县", +"610630":"宜川县", +"610631":"黄龙县", +"610632":"黄陵县", +"610681":"子长市", +"610700":"汉中市", +"610701":"市辖区", +"610702":"汉台区", +"610703":"南郑区", +"610721":"南郑县", +"610722":"城固县", +"610723":"洋县", +"610724":"西乡县", +"610725":"勉县", +"610726":"宁强县", +"610727":"略阳县", +"610728":"镇巴县", +"610729":"留坝县", +"610730":"佛坪县", +"610800":"榆林市", +"610801":"市辖区", +"610802":"榆阳区", +"610803":"横山区", +"610821":"神木县", +"610822":"府谷县", +"610823":"横山县", +"610824":"靖边县", +"610825":"定边县", +"610826":"绥德县", +"610827":"米脂县", +"610828":"佳县", +"610829":"吴堡县", +"610830":"清涧县", +"610831":"子洲县", +"610881":"神木市", +"610900":"安康市", +"610901":"市辖区", +"610902":"汉滨区", +"610921":"汉阴县", +"610922":"石泉县", +"610923":"宁陕县", +"610924":"紫阳县", +"610925":"岚皋县", +"610926":"平利县", +"610927":"镇坪县", +"610928":"旬阳县", +"610929":"白河县", +"610981":"旬阳市", +"611000":"商洛市", +"611001":"市辖区", +"611002":"商州区", +"611021":"洛南县", +"611022":"丹凤县", +"611023":"商南县", +"611024":"山阳县", +"611025":"镇安县", +"611026":"柞水县", +"612100":"渭南地区", +"612101":"渭南市", +"612102":"韩城市", +"612103":"华阴市", +"612121":"蓝田县", +"612122":"临潼县", +"612123":"渭南县", +"612124":"华县", +"612125":"华阴县", +"612126":"潼关县", +"612127":"大荔县", +"612128":"蒲城县", +"612129":"澄城县", +"612130":"白水县", +"612131":"韩城县", +"612132":"合阳县", +"612133":"富平县", +"612200":"咸阳地区", +"612201":"咸阳市", +"612221":"兴平县", +"612222":"周至县", +"612223":"户县", +"612224":"三原县", +"612225":"泾阳县", +"612226":"高陵县", +"612227":"乾县", +"612228":"礼泉县", +"612229":"永寿县", +"612230":"彬县", +"612231":"长武县", +"612232":"旬邑县", +"612233":"淳化县", +"612300":"汉中地区", +"612301":"汉中市", +"612321":"南郑县", +"612322":"城固县", +"612323":"洋县", +"612324":"西乡县", +"612325":"勉县", +"612326":"宁强县", +"612327":"略阳县", +"612328":"镇巴县", +"612329":"留坝县", +"612330":"佛坪县", +"612400":"安康地区", +"612401":"安康市", +"612421":"安康县", +"612422":"汉阴县", +"612423":"石泉县", +"612424":"宁陕县", +"612425":"紫阳县", +"612426":"岚皋县", +"612427":"平利县", +"612428":"镇坪县", +"612429":"旬阳县", +"612430":"白河县", +"612500":"商洛地区", +"612501":"商州市", +"612521":"商县", +"612522":"洛南县", +"612523":"丹凤县", +"612524":"商南县", +"612525":"山阳县", +"612526":"镇安县", +"612527":"柞水县", +"612600":"延安地区", +"612601":"延安市", +"612621":"延长县", +"612622":"延川县", +"612623":"子长县", +"612624":"安塞县", +"612625":"志丹县", +"612626":"吴旗县", +"612627":"甘泉县", +"612628":"富县", +"612629":"洛川县", +"612630":"宜川县", +"612631":"黄龙县", +"612632":"黄陵县", +"612633":"宜君县", +"612700":"榆林地区", +"612701":"榆林市", +"612721":"榆林县", +"612722":"神木县", +"612723":"府谷县", +"612724":"横山县", +"612725":"靖边县", +"612726":"定边县", +"612727":"绥德县", +"612728":"米脂县", +"612729":"佳县", +"612730":"吴堡县", +"612731":"清涧县", +"612732":"子洲县", +"619001":"兴平市", +"619002":"韩城市", +"619003":"华阴市", +"620000":"甘肃省", +"620100":"兰州市", +"620101":"市辖区", +"620102":"城关区", +"620103":"七里河区", +"620104":"西固区", +"620105":"安宁区", +"620111":"红古区", +"620112":"白银区", +"620120":"市区", +"620121":"永登县", +"620122":"皋兰县", +"620123":"榆中县", +"620200":"嘉峪关市", +"620201":"市辖区", +"620202":"嘉峪关区", +"620300":"金昌市", +"620301":"市辖区", +"620302":"金川区", +"620320":"市区", +"620321":"永昌县", +"620400":"白银市", +"620401":"市辖区", +"620402":"白银区", +"620403":"平川区", +"620421":"靖远县", +"620422":"会宁县", +"620423":"景泰县", +"620500":"天水市", +"620501":"市辖区", +"620502":"秦州区", +"620503":"麦积区", +"620521":"清水县", +"620522":"秦安县", +"620523":"甘谷县", +"620524":"武山县", +"620525":"张家川回族自治县", +"620600":"武威市", +"620601":"市辖区", +"620602":"凉州区", +"620621":"民勤县", +"620622":"古浪县", +"620623":"天祝藏族自治县", +"620700":"张掖市", +"620701":"市辖区", +"620702":"甘州区", +"620721":"肃南裕固族自治县", +"620722":"民乐县", +"620723":"临泽县", +"620724":"高台县", +"620725":"山丹县", +"620800":"平凉市", +"620801":"市辖区", +"620802":"崆峒区", +"620821":"泾川县", +"620822":"灵台县", +"620823":"崇信县", +"620824":"华亭县", +"620825":"庄浪县", +"620826":"静宁县", +"620881":"华亭市", +"620900":"酒泉市", +"620901":"市辖区", +"620902":"肃州区", +"620921":"金塔县", +"620922":"瓜州县", +"620923":"肃北蒙古族自治县", +"620924":"阿克塞哈萨克族自治县", +"620925":"安西县", +"620981":"玉门市", +"620982":"敦煌市", +"621000":"庆阳市", +"621001":"市辖区", +"621002":"西峰区", +"621021":"庆城县", +"621022":"环县", +"621023":"华池县", +"621024":"合水县", +"621025":"正宁县", +"621026":"宁县", +"621027":"镇原县", +"621100":"定西市", +"621101":"市辖区", +"621102":"安定区", +"621121":"通渭县", +"621122":"陇西县", +"621123":"渭源县", +"621124":"临洮县", +"621125":"漳县", +"621126":"岷县", +"621200":"陇南市", +"621201":"市辖区", +"621202":"武都区", +"621221":"成县", +"621222":"文县", +"621223":"宕昌县", +"621224":"康县", +"621225":"西和县", +"621226":"礼县", +"621227":"徽县", +"621228":"两当县", +"622100":"酒泉地区", +"622101":"玉门市", +"622102":"酒泉市", +"622103":"敦煌市", +"622121":"酒泉县", +"622122":"敦煌县", +"622123":"金塔县", +"622124":"肃北蒙古族自治县", +"622125":"阿克塞哈萨克族自治县", +"622126":"安西县", +"622200":"张掖地区", +"622201":"张掖市", +"622221":"张掖县", +"622222":"肃南裕固族自治县", +"622223":"民乐县", +"622224":"临泽县", +"622225":"高台县", +"622226":"山丹县", +"622300":"武威地区", +"622301":"武威市", +"622321":"武威县", +"622322":"民勤县", +"622323":"古浪县", +"622324":"景泰县", +"622325":"永昌县", +"622326":"天祝藏族自治县", +"622327":"连古城国家级自然保护区管理局", +"622328":"石羊河林业总场", +"622329":"苏武山林场", +"622400":"定西地区", +"622421":"定西县", +"622422":"靖远县", +"622423":"会宁县", +"622424":"通渭县", +"622425":"陇西县", +"622426":"渭源县", +"622427":"临洮县", +"622428":"漳县", +"622429":"岷县", +"622500":"天水地区", +"622501":"天水市", +"622521":"张家川回族自治县", +"622522":"天水县", +"622523":"清水县", +"622524":"徽县", +"622525":"两当县", +"622526":"礼县", +"622527":"西和县", +"622528":"武山县", +"622529":"甘谷县", +"622530":"秦安县", +"622531":"漳县", +"622600":"陇南地区", +"622621":"武都县", +"622622":"岷县", +"622623":"宕昌县", +"622624":"成县", +"622625":"康县", +"622626":"文县", +"622627":"西和县", +"622628":"礼县", +"622629":"两当县", +"622630":"徽县", +"622700":"平凉地区", +"622701":"平凉市", +"622721":"平凉县", +"622722":"泾川县", +"622723":"灵台县", +"622724":"崇信县", +"622725":"华亭县", +"622726":"庄浪县", +"622727":"静宁县", +"622800":"庆阳地区", +"622801":"西峰市", +"622821":"庆阳县", +"622822":"环县", +"622823":"华池县", +"622824":"合水县", +"622825":"正宁县", +"622826":"宁县", +"622827":"镇原县", +"622900":"临夏回族自治州", +"622901":"临夏市", +"622921":"临夏县", +"622922":"康乐县", +"622923":"永靖县", +"622924":"广河县", +"622925":"和政县", +"622926":"东乡族自治县", +"622927":"积石山保安族东乡族撒拉族自治县", +"623000":"甘南藏族自治州", +"623001":"合作市", +"623021":"临潭县", +"623022":"卓尼县", +"623023":"舟曲县", +"623024":"迭部县", +"623025":"玛曲县", +"623026":"碌曲县", +"623027":"夏河县", +"630000":"青海省", +"630100":"西宁市", +"630101":"市辖区", +"630102":"城东区", +"630103":"城中区", +"630104":"城西区", +"630105":"城北区", +"630106":"湟中区", +"630111":"郊区", +"630120":"市区", +"630121":"大通回族土族自治县", +"630122":"湟中县", +"630123":"湟源县", +"630200":"海东市", +"630202":"乐都区", +"630203":"平安区", +"630221":"平安县", +"630222":"民和回族土族自治县", +"630223":"互助土族自治县", +"630224":"化隆回族自治县", +"630225":"循化撒拉族自治县", +"632100":"海东地区", +"632121":"平安县", +"632122":"民和回族土族自治县", +"632123":"乐都县", +"632124":"湟中县", +"632125":"湟源县", +"632126":"互助土族自治县", +"632127":"化隆回族自治县", +"632128":"循化撒拉族自治县", +"632200":"海北藏族自治州", +"632221":"门源回族自治县", +"632222":"祁连县", +"632223":"海晏县", +"632224":"刚察县", +"632300":"黄南藏族自治州", +"632301":"同仁市", +"632321":"同仁县", +"632322":"尖扎县", +"632323":"泽库县", +"632324":"河南蒙古族自治县", +"632400":"省直辖行政单位", +"632421":"河南蒙古族自治县", +"632500":"海南藏族自治州", +"632521":"共和县", +"632522":"同德县", +"632523":"贵德县", +"632524":"兴海县", +"632525":"贵南县", +"632600":"果洛藏族自治州", +"632621":"玛沁县", +"632622":"班玛县", +"632623":"甘德县", +"632624":"达日县", +"632625":"久治县", +"632626":"玛多县", +"632632":"班玛县", +"632700":"玉树藏族自治州", +"632701":"玉树市", +"632721":"玉树县", +"632722":"杂多县", +"632723":"称多县", +"632724":"治多县", +"632725":"囊谦县", +"632726":"曲麻莱县", +"632800":"海西蒙古族藏族自治州", +"632801":"格尔木市", +"632802":"德令哈市", +"632803":"茫崖市", +"632821":"乌兰县", +"632822":"都兰县", +"632823":"天峻县", +"632824":"大柴旦行政委员会", +"632825":"冷湖行政委员会", +"632826":"茫崖行政委员会", +"640000":"宁夏回族自治区", +"640100":"银川市", +"640101":"市辖区", +"640102":"城区", +"640103":"新城区", +"640104":"兴庆区", +"640105":"西夏区", +"640106":"金凤区", +"640111":"郊区", +"640120":"市区", +"640121":"永宁县", +"640122":"贺兰县", +"640181":"灵武市", +"640200":"石嘴山市", +"640201":"市辖区", +"640202":"大武口区", +"640203":"石嘴山区", +"640204":"石炭井区", +"640205":"惠农区", +"640211":"郊区", +"640220":"市区", +"640221":"平罗县", +"640222":"陶乐县", +"640223":"惠农县", +"640300":"吴忠市", +"640301":"市辖区", +"640302":"利通区", +"640303":"红寺堡区", +"640321":"中卫县", +"640322":"中宁县", +"640323":"盐池县", +"640324":"同心县", +"640381":"青铜峡市", +"640382":"灵武市", +"640400":"固原市", +"640401":"市辖区", +"640402":"原州区", +"640421":"海原县", +"640422":"西吉县", +"640423":"隆德县", +"640424":"泾源县", +"640425":"彭阳县", +"640500":"中卫市", +"640501":"市辖区", +"640502":"沙坡头区", +"640521":"中宁县", +"640522":"海原县", +"642100":"吴忠市", +"642101":"吴忠市", +"642102":"利通区", +"642103":"灵武市", +"642121":"吴忠县", +"642122":"青铜峡县", +"642123":"中卫县", +"642124":"中宁县", +"642125":"灵武县", +"642126":"盐池县", +"642127":"同心县", +"642200":"固原地区", +"642221":"固原县", +"642222":"海原县", +"642223":"西吉县", +"642224":"隆德县", +"642225":"泾源县", +"642226":"彭阳县", +"650000":"新疆维吾尔自治区", +"650100":"乌鲁木齐市", +"650101":"市辖区", +"650102":"天山区", +"650103":"沙依巴克区", +"650104":"新市区", +"650105":"水磨沟区", +"650106":"头屯河区", +"650107":"达坂城区", +"650108":"东山区", +"650109":"米东区", +"650120":"市区", +"650121":"乌鲁木齐县", +"650200":"克拉玛依市", +"650201":"市辖区", +"650202":"独山子区", +"650203":"克拉玛依区", +"650204":"白碱滩区", +"650205":"乌尔禾区", +"650300":"石河子市", +"650400":"吐鲁番市", +"650402":"高昌区", +"650421":"鄯善县", +"650422":"托克逊县", +"650500":"哈密市", +"650502":"伊州区", +"650521":"巴里坤哈萨克自治县", +"650522":"伊吾县", +"652100":"吐鲁番地区", +"652101":"吐鲁番市", +"652121":"吐鲁番县", +"652122":"鄯善县", +"652123":"托克逊县", +"652200":"哈密地区", +"652201":"哈密市", +"652221":"哈密县", +"652222":"巴里坤哈萨克自治县", +"652223":"伊吾县", +"652300":"昌吉回族自治州", +"652301":"昌吉市", +"652302":"阜康市", +"652303":"米泉市", +"652321":"昌吉县", +"652322":"米泉市", +"652323":"呼图壁县", +"652324":"玛纳斯县", +"652325":"奇台县", +"652326":"阜康市", +"652327":"吉木萨尔县", +"652328":"木垒哈萨克自治县", +"652400":"伊犁哈萨克自治州", +"652401":"伊宁市", +"652402":"奎屯市", +"652403":"二区", +"652404":"奎屯市", +"652421":"伊宁县", +"652422":"察布查尔锡伯自治县", +"652423":"霍城县", +"652424":"巩留县", +"652425":"新源县", +"652426":"昭苏县", +"652427":"特克斯县", +"652428":"尼勒克县", +"652500":"塔城地区", +"652521":"塔城县", +"652522":"额敏县", +"652523":"乌苏市", +"652524":"沙湾县", +"652525":"托里县", +"652526":"裕民县", +"652527":"和布克赛尔蒙古自治县", +"652600":"阿勒泰地区", +"652601":"阿勒泰县", +"652621":"阿勒泰县", +"652622":"布尔津县", +"652623":"富蕴县", +"652624":"福海县", +"652625":"哈巴河县", +"652626":"青河县", +"652627":"吉木乃县", +"652700":"博尔塔拉蒙古自治州", +"652701":"博乐市", +"652702":"阿拉山口市", +"652721":"博乐县", +"652722":"精河县", +"652723":"温泉县", +"652800":"巴音郭楞蒙古自治州", +"652801":"库尔勒市", +"652821":"库尔勒县", +"652822":"轮台县", +"652823":"尉犁县", +"652824":"若羌县", +"652825":"且末县", +"652826":"焉耆回族自治县", +"652827":"和静县", +"652828":"和硕县", +"652829":"博湖县", +"652900":"阿克苏地区", +"652901":"阿克苏市", +"652902":"库车市", +"652921":"阿克苏县", +"652922":"温宿县", +"652923":"库车县", +"652924":"沙雅县", +"652925":"新和县", +"652926":"拜城县", +"652927":"乌什县", +"652928":"阿瓦提县", +"652929":"柯坪县", +"653000":"克孜勒苏柯尔克孜自治州", +"653001":"阿图什市", +"653021":"阿图什县", +"653022":"阿克陶县", +"653023":"阿合奇县", +"653024":"乌恰县", +"653100":"喀什地区", +"653101":"喀什市", +"653121":"疏附县", +"653122":"疏勒县", +"653123":"英吉沙县", +"653124":"泽普县", +"653125":"莎车县", +"653126":"叶城县", +"653127":"麦盖提县", +"653128":"岳普湖县", +"653129":"伽师县", +"653130":"巴楚县", +"653131":"塔什库尔干塔吉克自治县", +"653200":"和田地区", +"653201":"和田市", +"653221":"和田县", +"653222":"墨玉县", +"653223":"皮山县", +"653224":"洛浦县", +"653225":"策勒县", +"653226":"于田县", +"653227":"民丰县", +"654000":"伊犁哈萨克自治州", +"654001":"奎屯市", +"654002":"伊宁市", +"654003":"奎屯市", +"654004":"霍尔果斯市", +"654021":"伊宁县", +"654022":"察布查尔锡伯自治县", +"654023":"霍城县", +"654024":"巩留县", +"654025":"新源县", +"654026":"昭苏县", +"654027":"特克斯县", +"654028":"尼勒克县", +"654100":"伊犁地区", +"654101":"伊宁市", +"654121":"伊宁县", +"654122":"察布查尔锡伯自治县", +"654123":"霍城县", +"654124":"巩留县", +"654125":"新源县", +"654126":"昭苏县", +"654127":"特克斯县", +"654128":"尼勒克县", +"654200":"塔城地区", +"654201":"塔城市", +"654202":"乌苏市", +"654203":"沙湾市", +"654221":"额敏县", +"654222":"乌苏市", +"654223":"沙湾县", +"654224":"托里县", +"654225":"裕民县", +"654226":"和布克赛尔蒙古自治县", +"654300":"阿勒泰地区", +"654301":"阿勒泰市", +"654321":"布尔津县", +"654322":"富蕴县", +"654323":"福海县", +"654324":"哈巴河县", +"654325":"青河县", +"654326":"吉木乃县", +"659001":"石河子市", +"659002":"阿拉尔市", +"659003":"图木舒克市", +"659004":"五家渠市", +"659005":"北屯市", +"659006":"铁门关市", +"659007":"双河市", +"659008":"可克达拉市", +"659009":"昆玉市", +"659010":"胡杨河市", +"659011":"新星市", +"659012":"白杨市", +"660000":"新疆生产建设兵团", +"662800":"新疆生产建设兵团农八师(石河子市)", +"710000":"台湾省", +"810000":"香港特别行政区", +"820000":"澳门特别行政区", +"830000":"台湾省", +}; diff --git a/src/module/data/international.js b/src/module/data/international.js new file mode 100644 index 0000000..46ce8ce --- /dev/null +++ b/src/module/data/international.js @@ -0,0 +1,249 @@ +/* + * ISO3166.1 - 国家或地区代码 +*/ +export default { +"100":"保加利亚", +"104":"缅甸", +"108":"布隆迪", +"112":"白俄罗斯", +"116":"柬埔寨", +"120":"喀麦隆", +"124":"加拿大", +"132":"佛得角", +"136":"开曼群岛", +"140":"中非", +"144":"斯里兰卡", +"148":"乍得", +"152":"智利", +"156":"中国", +"158":"台湾", +"162":"圣诞岛", +"166":"科科斯(基林)群岛", +"170":"哥伦比亚", +"174":"科摩罗", +"175":"马约特", +"178":"刚果(布)", +"180":"刚果(金)", +"184":"库克群岛", +"188":"哥斯达黎加", +"191":"克罗地亚", +"192":"古巴", +"196":"塞浦路斯", +"203":"捷克", +"204":"贝宁", +"208":"丹麦", +"212":"多米尼克", +"214":"多米尼加", +"218":"厄瓜多尔", +"222":"萨尔瓦多", +"226":"赤道几内亚", +"231":"埃塞俄比亚", +"232":"厄立特里亚", +"233":"爱沙尼亚", +"234":"法罗群岛", +"238":"福克兰群岛(马尔维纳斯)", +"239":"南乔治亚岛和南桑德韦奇岛", +"242":"斐济", +"246":"芬兰", +"248":"奥兰群岛", +"250":"法国", +"254":"法属圭亚那", +"258":"法属波利尼西亚", +"260":"法属南部领地", +"262":"吉布提", +"266":"加蓬", +"268":"格鲁吉亚", +"270":"冈比亚", +"275":"巴勒斯坦", +"276":"德国", +"288":"加纳", +"292":"直布罗陀", +"296":"基里巴斯", +"300":"希腊", +"304":"格陵兰", +"308":"格林纳达", +"312":"瓜德罗普", +"316":"关岛", +"320":"危地马拉", +"324":"几内亚", +"328":"圭亚那", +"332":"海地", +"334":"赫德岛和麦克唐纳岛", +"336":"梵蒂冈", +"340":"洪都拉斯", +"344":"香港", +"348":"匈牙利", +"352":"冰岛", +"356":"印度", +"360":"印度尼西亚", +"364":"伊朗", +"368":"伊拉克", +"372":"爱尔兰", +"376":"以色列", +"380":"意大利", +"384":"科特迪瓦", +"388":"牙买加", +"392":"日本", +"398":"哈萨克斯坦", +"400":"约旦", +"404":"肯尼亚", +"408":"朝鲜", +"410":"韩国", +"414":"科威特", +"417":"吉尔吉斯斯坦", +"418":"老挝", +"422":"黎巴嫩", +"426":"莱索托", +"428":"拉脱维亚", +"430":"利比里亚", +"434":"利比亚", +"438":"列支敦士登", +"440":"立陶宛", +"442":"卢森堡", +"446":"澳门", +"450":"马达加斯加", +"454":"马拉维", +"458":"马来西亚", +"462":"马尔代夫", +"466":"马里", +"470":"马耳他", +"474":"马提尼克", +"478":"毛里塔尼亚", +"480":"毛里求斯", +"484":"墨西哥", +"492":"摩纳哥", +"496":"蒙古", +"498":"摩尔多瓦", +"499":"黑山", +"500":"蒙特塞拉特", +"504":"摩洛哥", +"508":"莫桑比克", +"512":"阿曼", +"516":"纳米比亚", +"520":"瑙鲁", +"524":"尼泊尔", +"528":"荷兰", +"530":"荷属安的列斯", +"533":"阿鲁巴", +"540":"新喀里多尼亚", +"548":"瓦努阿图", +"554":"新西兰", +"558":"尼加拉瓜", +"562":"尼日尔", +"566":"尼日利亚", +"570":"纽埃", +"574":"诺福克岛", +"578":"挪威", +"580":"北马里亚纳", +"581":"美国本土外小岛屿", +"583":"密克罗尼西亚联邦", +"584":"马绍尔群岛", +"585":"帕劳", +"586":"巴基斯坦", +"591":"巴拿马", +"598":"巴布亚新几内亚", +"600":"巴拉圭", +"604":"秘鲁", +"608":"菲律宾", +"612":"皮特凯恩", +"616":"波兰", +"620":"葡萄牙", +"624":"几内亚比绍", +"626":"东帝汶", +"630":"波多黎各", +"634":"卡塔尔", +"638":"留尼汪", +"642":"罗马尼亚", +"643":"俄罗斯联邦", +"646":"卢旺达", +"654":"圣赫勒拿", +"659":"圣基茨和尼维斯", +"660":"安圭拉", +"662":"圣卢西亚", +"666":"圣皮埃尔和密克隆", +"670":"圣文森特和格林纳丁斯", +"674":"圣马力诺", +"678":"圣多美和普林西比", +"682":"沙特阿拉伯", +"686":"塞内加尔", +"688":"塞尔维亚", +"690":"塞舌尔", +"694":"塞拉利昂", +"702":"新加坡", +"703":"斯洛伐克", +"704":"越南", +"705":"斯洛文尼亚", +"706":"索马里", +"710":"南非", +"716":"津巴布韦", +"724":"西班牙", +"732":"西撒哈拉", +"736":"苏丹", +"740":"苏里南", +"744":"斯瓦尔巴岛和扬马延岛", +"748":"斯威士兰", +"752":"瑞典", +"756":"瑞士", +"760":"叙利亚", +"762":"塔吉克斯坦", +"764":"泰国", +"768":"多哥", +"772":"托克劳", +"776":"汤加", +"780":"特立尼达和多巴哥", +"784":"阿联酋", +"788":"突尼斯", +"792":"土耳其", +"795":"土库曼斯坦", +"796":"特克斯和凯科斯群岛", +"798":"图瓦卢", +"800":"乌干达", +"804":"乌克兰", +"807":"前南马其顿", +"818":"埃及", +"826":"英国", +"831":"格恩西岛", +"832":"泽西岛", +"833":"英国属地曼岛", +"834":"坦桑尼亚", +"840":"美国", +"850":"美属维尔京群岛", +"854":"布基纳法索", +"858":"乌拉圭", +"860":"乌兹别克斯坦", +"862":"委内瑞拉", +"876":"瓦利斯和富图纳", +"882":"萨摩亚", +"887":"也门", +"894":"赞比亚", +"004":"阿富汗", +"008":"阿尔巴尼亚", +"012":"阿尔及利亚", +"016":"美属萨摩亚", +"020":"安道尔", +"024":"安哥拉", +"010":"南极洲", +"028":"安提瓜和巴布达", +"032":"阿根廷", +"051":"亚美尼亚", +"036":"澳大利亚", +"040":"奥地利", +"031":"阿塞拜疆", +"044":"巴哈马", +"048":"巴林", +"050":"孟加拉国", +"052":"巴巴多斯", +"056":"比利时", +"084":"伯利兹", +"060":"百慕大", +"064":"不丹", +"068":"玻利维亚", +"070":"波黑", +"072":"博茨瓦纳", +"074":"布维岛", +"076":"巴西", +"086":"英属印度洋领地", +"096":"文莱", +"090":"所罗门群岛", +"092":"英属维尔京群岛" +}; diff --git a/src/module/method.js b/src/module/method.js new file mode 100644 index 0000000..32fc19f --- /dev/null +++ b/src/module/method.js @@ -0,0 +1,50 @@ +import _china from './data/china.js'; +import _international from './data/international.js'; + +export function isValid(id){ + id = id.toLowerCase(); + let id17 = id.substr(0,17); + let last = id.charAt(17); + let sum = 0; + let factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; + id17.split('').forEach(function(value,index){ + sum += factor[index]*value; + }); + let lastLetter = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"]; + let mod = sum%lastLetter.length; + return lastLetter[mod]==last; +}; + +export function parserInternational(id){ + let result = {}; + result['type'] = '外国人永久居留身份证'; + result['sign'] = _china[id.substring(1,3)+'0000']||''; + result['country'] = _international[id.substring(3,6)]||'无国籍'; + result['birthday'] = id.substring(6,14).replace(/(\d{4})(\d{2})(\d{2})/,'$1-$2-$3'); + result['sex'] = id.charAt(16)%2?'男':'女'; + result['isValid'] = isValid(id); + return result; +}; + +export function parserChina(id){ + let result = {}; + let code = id.substring(0,6); + let province_code = code.replace(/\d{4}$/,'0000'); + let city_code = code.replace(/\d{2}$/,'00'); + let district_code = code; + if(code.match(/^(81|82|83)0000/)){ + result['type'] = '港澳台居民居住证'; + result['sign'] = (_china[province_code]||''); + }else if(code.match(/^(11|12|31|50)\d{4}/)||code.match(/^\d{2}90\d{2}$/)){ + result['type'] = '居民身份证'; + result['sign'] = (_china[province_code]||'') + (city_code!=district_code?(_china[district_code]||''):''); + }else{ + result['type'] = '居民身份证'; + result['sign'] = (_china[province_code]||'') + (province_code!=city_code?(_china[city_code]||''):'') + (city_code!=district_code?(_china[district_code]||''):''); + } + result['country'] = '中国'; + result['birthday'] = id.substring(6,14).replace(/(\d{4})(\d{2})(\d{2})/,'$1-$2-$3'); + result['sex'] = id.charAt(16)%2?'男':'女'; + result['isValid'] = isValid(id); + return result; +}; diff --git a/static/image/bg.svg b/static/image/bg.svg new file mode 100644 index 0000000..ab41146 --- /dev/null +++ b/static/image/bg.svg @@ -0,0 +1,54 @@ + + + + 编组 5备份 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/image/word_map.png b/static/image/word_map.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3b9d2f361ef879ce561b8ed9f6036b51e80296 GIT binary patch literal 89439 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%0AJf_Mx$JUuicFJEF9 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 literal 0 HcmV?d00001 diff --git a/static/script/locationSearch.js b/static/script/locationSearch.js new file mode 100644 index 0000000..0497488 --- /dev/null +++ b/static/script/locationSearch.js @@ -0,0 +1,98 @@ +// 地址模糊搜索 +function locationSearch(data){ + const unitList = ['省','自治区','特别行政区','市','自治州','盟','自治县','县','自治旗','旗','地区','矿区','林区','特区','区']; + const peopleList = ['汉族','壮族','蒙古族','回族','藏族','维吾尔族','苗族','彝族','布依族','朝鲜族','满族','侗族','瑶族','白族','东乡族','锡伯族','土家族','哈尼族','哈萨克族','傣族','黎族','僳僳族','佤族','畲族','拉祜族','水族','纳西族','景颇族','柯尔克孜族','土族','高山族','达斡尔族','仫佬族','羌族','撒拉族','德昂族','仡佬族','阿昌族','普米族','布朗族','塔吉克族','怒族','乌孜别克族','俄罗斯族','鄂温克族','毛南族','保安族','裕固族','京族','塔塔尔族','独龙族','鄂伦春族','赫哲族','门巴族','珞巴族','基诺族']; + var hash = {}; + var map = {}; + for(var key in data){ + hash[key] = data[key]; + if(hash[key].indexOf('新区')==-1){ + unitList.forEach(function(unit){ + if(hash[key].lastIndexOf(unit)==hash[key].length-unit.length){ + if(hash[key].length-unit.length>=2){ + hash[key] = hash[key].replace(unit,''); + } + } + }); + } + peopleList.forEach(function(people){ + if(hash[key].indexOf('族')){ + if(hash[key].length-people.length>=2){ + hash[key] = hash[key].replace(people,''); + } + } + }); + } + var provinceName = ''; + var cityName = ''; + for(var key in hash){ + if(key.match(/0000$/)){ + map[key] = hash[key]; + }else if(key.match(/00$/)){ + provinceName = hash[key.replace(/\d{4}$/,'0000')]||''; + map[key] = provinceName+hash[key]+provinceName; + }else{ + provinceName = hash[key.replace(/\d{4}$/,'0000')]||''; + cityName = hash[key.replace(/\d{2}$/,'00')]||''; + map[key] = provinceName+hash[key]+cityName+provinceName+hash[key]+'|'+cityName+hash[key]+provinceName+cityName+hash[key]; + } + } + this.query = function(keyword){ + var temp = {}; + keyword = keyword.trim().replace(/[\s\#\-\/\.]+/g,'|'); + if(keyword.length>3){ + unitList.forEach(function(unit){ + for(var i=0;i<2;i++){ + var temp = '|'+keyword.replace(unit,'|'); + if(!temp.match(/\|\S{0,1}\|/)){ + keyword = keyword.replace(unit,'|'); + } + } + }); + peopleList.forEach(function(people){ + for(var i=0;i<2;i++){ + var temp = '|'+keyword.replace(peopleList,''); + if(!temp.match(/\|\S{0,1}\|/)){ + keyword = keyword.replace(peopleList,''); + } + } + }); + keyword = keyword.replace(/\|/g,''); + for(var key in map){ + if(map[key].indexOf(keyword)>-1){ + temp[key] = true; + } + } + }else{ + for(var key in map){ + if(data[key].indexOf(keyword)>-1){ + temp[key] = true; + } + } + } + var result = []; + for(var key in temp){ + if(key.match(/0000$/)){ + result.push({ + 'value':key, + 'name':data[key] + }); + }else if(key.match(/00$/)){ + if(!temp[key.replace(/\d{4}$/,'0000')]){ + result.push({ + 'value':key, + 'name':data[key.replace(/\d{4}$/,'0000')]+data[key] + }); + } + }else{ + if(!temp[key.replace(/\d{4}$/,'0000')]&&!temp[key.replace(/\d{2}$/,'00')]){ + result.push({ + 'value':key, + 'name':data[key.replace(/\d{4}$/,'0000')]+(data[key.replace(/\d{2}$/,'00')]||'')+data[key] + }); + } + } + } + return result; + }; +} diff --git a/static/style/index.css b/static/style/index.css new file mode 100644 index 0000000..ca116b8 --- /dev/null +++ b/static/style/index.css @@ -0,0 +1,527 @@ +html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}ol,ul{list-style:none}caption,th{text-align:left}h1,h3,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;*font-size:100%}legend{color:#000} +html{ + height:100%; +} +body{ + height: 100%; + font-size: 14px; + font-family: Arial,Helvetica,"Microsoft Yahei"; + color: rgb(110, 119, 129); +} +button, input { + font-family: Arial,Helvetica,"Microsoft Yahei"; +} +img{ + vertical-align: middle; +} +a{ + text-decoration: none; + color: rgb(110, 119, 129); +} +a:hover{ + text-decoration: underline; +} + +.wrapper{ + background: url('../image/word_map.png') center 10px no-repeat,url('../image/bg.svg') center top repeat-x; +} +.header{ + margin-bottom: 15px; +} +.container{ + padding-bottom: 30px; +} +.inner{ + max-width: 1000px; + padding: 0 10px; + margin: 0 auto; +} + +.mod-head .bd{ + height: 36px; + padding: 10px 0; + text-align: right; +} +.mod-head .btn{ + position: relative; + display: inline-block; + min-width: 56px; + height: 34px; + padding: 0 12px; + background: rgba(255,255,255,0.3); + border: 1px solid rgba(0,0,0,0.05); + border-radius: 6px; + line-height: 34px; + text-decoration: none; + text-align: center; + font-size: 14px; + color: #333; + overflow: hidden; + transition: color .2s,opacity .2s; + font-family: Tahoma,Arial, Helvetica,"Microsoft YaHei"; + outline: none; + -webkit-appearance: none; +} +.mod-head .btn:after { + content: " "; + position: absolute; + width: 100%; + height: 100%; + background: #000; + left: 0; + top: 0; + opacity: 0; + transition: opacity .2s; + border-radius: 6px; + overflow: hidden; + pointer-events: none; +} +.mod-head .btn span,.mod-head .btn svg{ + vertical-align: middle; +} +.mod-head .btn svg,.mod-head .btn svg+span{ + position: relative; + top: -1px; +} +.mod-head .btn:hover { + color: #000; + opacity: 1; +} +.mod-head .btn:hover:after { + opacity: .02; +} + +.mod-panel{ + margin-bottom: 75px; +} +.mod-panel .hd{ + min-height: 150px; + padding: 35px 0; + line-height: 22px; +} +.mod-panel .hd h1{ + margin-bottom: 10px; + line-height: 48px; + font-weight: bold; + font-size: 36px; + color:#1a2b3b; +} +.mod-panel .hd h1 span.tag{ + display: inline-block; + padding: 0 8px; + margin: 0 5px; + background: rgba(255, 255, 255,0.8); + line-height: 26px; + vertical-align: middle; + font-size: 13px; + color: rgb(110, 119, 129); + border-radius: 4px; + box-shadow: 0 1px 5px 0 rgba(0,0,0,0.03); +} +.mod-panel .hd p{ + line-height: 26px; + font-size: 15px; +} +.mod-panel .hd b{ + margin: 0 3px; + color: #fd7474; +} +.mod-panel .bd .box{ + margin-bottom: 20px; + background: #fff; + box-shadow: 0 1px 5px 0 rgba(0,0,0,0.05); + border: 1px solid rgba(0,0,0,0.075); +} +.mod-panel .bd .c-hd{ + padding: 10px 20px 10px 5px; + border-bottom: 1px solid #f4f4f4; +} +.mod-panel .bd .c-hd .title{ + height: 20px; + padding-left: 12px; + border-left: 3px solid #2095f2; + font-size: 18px; + font-weight: bold; + color: #1a2b3b; +} +.mod-panel .bd .c-hd .more{ + float: right; + text-decoration: none; + color: #999; +} +.mod-panel .bd .c-bd{ + padding:20px; +} +.mod-panel .bd .table-inner{ + padding-top:20px; +} +.mod-panel .bd table{ + width: 100%; + margin-bottom: 15px; +} +.mod-panel .bd caption{ + line-height: 30px; + font-size: 15px; + font-weight: bold; +} +.mod-panel .bd th,.mod-panel .bd td{ + padding: 6px 12px; + border: 1px solid #e2e2e2; + line-height: 22px; +} +.mod-panel .bd td.th{ + background: #f5f5f5; +} +.mod-panel .bd thead{ + background: #f5f5f5; +} +.mod-panel .bd select{ + height: 32px; + padding: 0 10px; + border: 1px solid #e2e2e2; + border-radius: 4px; + outline: none; +} +.mod-panel .bd input[type="text"],.mod-panel .bd input[type="search"]{ + width: 240px; + height: 32px; + padding: 0 10px; + border: 1px solid #e2e2e2; + border-radius: 4px; + vertical-align: middle; + outline: none; +} +.mod-panel .bd .btn { + height: 34px; + min-width: 80px; + background: #2095f2; + border: medium none; + line-height: 34px; + vertical-align: middle; + font-size: 15px; + color: #fff; + cursor: pointer; + outline: none; + border-radius: 4px; +} +.mod-panel .bd .btn:hover{ + background: #1b85da; +} +.mod-panel .bd .btn-green{ + background: #4bae4f; + color: #fff; +} +.mod-panel .bd .btn-green:hover{ + background: #47a04b; +} +.mod-panel .bd .btn-red{ + background: #f56954; + color: #fff; +} +.mod-panel .bd .btn-red:hover{ + background: #f4543c;; +} +.mod-panel .bd .btn-orange{ + background: #ff9000; + color: #fff; +} +.mod-panel .bd .btn-orange:hover{ + background: #e18309; +} +.mod-panel .bd .btn-small{ + min-width: 36px; + margin-right: -1px; + cursor: pointer; +} +.mod-panel .bd .btn[disabled]{ + background: #f0f0f0; + color: #aaa; +} +.mod-panel .bd textarea{ + display: block; + width: 100%; + height: 120px; + padding:5px 10px; + background: #fafafa; + border: 1px solid #ebebeb; + box-sizing: border-box; + border-radius: 5px; + resize: none; + outline: none; +} +.mod-panel .bd p{ + line-height: 22px; +} +.mod-panel .bd p span{ + margin-right: 4px; +} +.mod-panel .bd .text-green{ + color: #4bae4f; +} +.mod-panel .bd .text-red{ + color:#f56954; +} + +.mod-panel .suggestion{ + background: #fff; +} +.mod-panel .suggestion ul{ + border:1px solid #ebebeb; +} +.mod-panel .suggestion li{ + padding:0 10px; + line-height: 30px; + cursor: pointer; +} +.mod-panel .suggestion .active{ + background: #ccc; +} + +.mod-intro{ + margin-bottom: 65px; +} +.mod-intro .hd{ + margin: 0 5px 5px; + line-height: 30px; +} +.mod-intro .hd span{ + font-size: 18px; + font-weight: bold; + color: #646464; +} +.mod-intro .bd ul{ + overflow: hidden; +} +.mod-intro .bd li{ + float: left; + width: 33.33%; +} +.mod-intro .bd .item{ + padding: 15px 12px; + margin: 0 5px 10px; + background: rgb(246, 248, 250); + border-radius: 5px; +} +.mod-intro .bd p{ + line-height: 22px; +} +.mod-intro .bd p.q{ + font-weight: bold; + color: #646464; +} +.mod-intro .article p{ + line-height: 22px; + text-indent: 2em; +} +.mod-intro .table-inner{ + overflow-x: auto; +} + +.mod-article{ + margin-bottom: 65px; +} +.mod-article .bd{ + position: relative; + padding: 30px 0; +} +.mod-article .bd::before{ + position: absolute; + top: 0; + left: 0; + content: '“'; + font-size: 60px; + border-radius: 6px; +} +.mod-article .bd::after{ + position: absolute; + bottom: -10px; + right: 0; + content: '”'; + font-size: 60px; + border-radius: 6px; +} +.mod-article .bd p{ + margin-bottom: 12px; + line-height: 28px; + font-size: 15px; + text-indent: 2em; +} + +.mod-app{ + margin-bottom: 65px; +} +.mod-app .hd{ + margin: 0 5px 5px; + line-height: 30px; + text-align: center; +} +.mod-app .hd span{ + font-size: 18px; + font-weight: bold; + color: #646464; +} +.mod-app .bd ul{ + padding: 20px 0; + text-align: center; + overflow: hidden; +} +.mod-app .bd li{ + display: inline-block; + width: 12%; + margin-bottom: 15px; +} +.mod-app .bd .app span{ + display: block; + margin:0 15px; + line-height: 32px; + text-align: center; +} +.mod-app .bd .app span.icon{ + margin-bottom: 5px; +} + +.mod-copy{ + margin-bottom: 65px; + padding: 35px 0; + background: rgb(246, 248, 250); +} +.mod-copy .hd{ + margin: 0 5px 5px; + line-height: 30px; +} +.mod-copy .hd span{ + font-size: 18px; + font-weight: bold; + color: #646464; +} +.mod-copy .bd{ + margin:0 5px; +} +.mod-copy .bd p{ + line-height: 26px; + text-indent: 2em; + font-size: 15px; +} +.mod-copy .bd .buttons{ + margin: 15px 0; +} +.mod-copy .bd .text-red{ + font-weight: bold; + color: #fd7474; +} +.mod-copy .bd code{ + display: block; + margin-bottom: 15px; + padding: 8px 15px; + line-height: 20px; + background: #fff; + border: 1px solid rgba(27,31,36,.15); + border-radius: 5px; + word-break: break-word; +} + + +.mod-foot .bd{ + padding: 10px 0; + margin-bottom: 15px; + text-align: center; +} +.mod-foot .bd p{ + line-height: 22px; +} +.mod-foot .bd p a,.mod-foot .bd p span{ + vertical-align: middle; +} +.mod-foot .bd p.buttons{ + margin: 10px 0 5px; +} +.mod-foot .box{ + width: 200px; + height: 180px; + margin: 0 auto 20px; + line-height: 30px; + text-align: center; + overflow: hidden; +} +.mod-foot p{ + line-height: 30px; +} + +@media screen and (max-width: 1020px) { + .header{ + margin-bottom: 10px; + } + .inner{ + max-width: 640px; + } + + .mod-head .hd span.tag{ + padding: 5px 8px; + } + .mod-head .bd .btn{ + padding: 0 6px; + font-size: 13px; + } + + .mod-panel{ + margin-bottom: 25px; + } + .mod-panel .hd{ + float: none; + padding-top: 0; + width: auto; + margin-bottom: 15px; + } + .mod-panel .hd h1{ + margin-bottom: 5px; + line-height: 26px; + font-size: 20px; + } + .mod-panel .hd p{ + line-height: 22px; + font-size: 13px; + overflow: hidden; + } + + .mod-article{ + margin-bottom: 25px; + } + .mod-article .bd{ + padding: 15px 0; + } + .mod-article .bd::before{ + font-size: 48px; + } + .mod-article .bd::after{ + font-size: 48px; + } + .mod-article .bd p{ + margin-bottom: 7px; + line-height: 22px; + font-size: 14px; + } + + .mod-copy{ + padding: 15px 0 25px; + margin-bottom: 25px; + } + .mod-copy .bd p{ + line-height: 22px; + font-size: 14px; + } +} + +@media screen and (max-width: 640px) { + .mod-panel .inner{ + padding: 10px; + } + .mod-panel .bd .c-bd{ + padding: 15px 10px; + } + .mod-panel .bd input[type="text"]{ + width: 200px; + } + .mod-panel .bd .btn{ + min-width: 64px; + } +}