diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..e77d8b4 Binary files /dev/null and b/.DS_Store differ diff --git a/README.md b/README.md deleted file mode 100644 index 40210a4..0000000 --- a/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# 제로웨이스트샵 안내 지도 (가제) -- 최종 서비스 한 줄 소개 - - -## 프로젝트 구성 안내 ---- - -## 1. 프로젝트 소개 - -**사용하려는 데이터** - - 사용하려는 데이터(제안된 데이터 중 하나 또는 선택한 다른 데이터 세트)를 명시, 이에 대한 설명 - -**기술 스택** - - 백엔드 : TypeScript, Node.js, SQL - - 프론트엔드 : TypeScript, JavaScript, React - - 데이터분석 : Python - -**사용 라이브러리** - - 사용된 라이브러리 (numpy, matplotlib, wordcloud 등) - -**웹서비스 개요** - - 웹서비스에 대한 자세한 개요 - -## 2. 프로젝트 목표 - -**데이터 분석 결과로 도출되는 인사이트와 웹서비스의 해결과제에 대한 논의 (50자 이상)** - - 프로젝트 아이디어 동기 - - 문제를 해결하기 위한 특정 질문 명시 - - 데이터를 통해 탐색하려는 문제를 구체적으로 작성 - - -## 3. 프로젝트 기능 설명 - -**웹서비스의 유용성, 편의성 및 시각화의 실용성에 대한 설명** - - 주요 기능 (주된 활용성) 및 서브 기능 - - 프로젝트만의 차별점, 기대 효과 - -## 4. 프로젝트 구성도 - - 와이어프레임/스토리보드 추가 - -## 5. 프로젝트 팀원 역할 분담 -| 이름 | 담당 업무 | -| ------ | ------ | -| 김병용 | 백엔드 개발 | -| 박은정 | 백엔드 개발 | -| 안수진 | 백엔드 개발 | -| 이다솜 | 프론트엔드 개발 | -| 최규진 | 프론트엔드 개발 | -| 최영현 | 프론트엔드 개발 / 팀장 | - -**멤버별 responsibility** - -1. 팀장 - -- 기획 단계: 구체적인 설계와 지표에 따른 프로젝트 제안서 작성 -- 개발 단계: 팀원간의 일정 등 조율 + 프론트 or 백엔드 개발 -- 수정 단계: 기획, 스크럼 진행, 코치님 피드백 반영해서 수정, 발표 준비 - -2. 프론트엔드 - -- 기획 단계: 큰 주제에서 문제 해결 아이디어 도출, 데이터 수집, 와이어프레임 작성 -- 개발 단계: 와이어프레임을 기반으로 구현, 데이터 처리 및 시각화 담당, UI 디자인 완성 -- 수정 단계: 피드백 반영해서 프론트 디자인 수정 - - 3. 백엔드 & 데이터 담당 - -- 기획 단계: 기획 데이터 분석을 통해 해결하고자 하는 문제를 정의 -- 개발 단계: 웹 서버 사용자가 직접 백엔드에 저장할수 있는 기능 구현, 데이터 베이스 구축 및 API 활용, 데이터 분석 개념 총동원하기 -- 수정 단계: 코치님 피드백 반영해서 분석/ 시각화 방식 수정 - -## 6. 버전 - - 프로젝트의 버전 기입 - -## 7. FAQ - - 자주 받는 질문 정리 diff --git a/back/.DS_Store b/back/.DS_Store new file mode 100644 index 0000000..6efc0c4 Binary files /dev/null and b/back/.DS_Store differ diff --git a/back/.gitignore b/back/.gitignore new file mode 100644 index 0000000..1dcef2d --- /dev/null +++ b/back/.gitignore @@ -0,0 +1,2 @@ +node_modules +.env \ No newline at end of file diff --git a/back/index.js b/back/index.js new file mode 100644 index 0000000..20be955 --- /dev/null +++ b/back/index.js @@ -0,0 +1,14 @@ +// reference: +// https://nodejs.org/en/docs/guides/getting-started-guide/ +const app = require("./src/app"); +require("dotenv").config(); + +const PORT = process.env.SERVER_PORT || 5000; + +app + .listen(PORT, () => { + console.log(` 🚀Server started on port ${PORT}!`); + }) + .on("error", (err) => console.log(err)); +//---------------// +// const connection = require("./src/db/database.js"); diff --git a/back/package-lock.json b/back/package-lock.json new file mode 100644 index 0000000..2746aef --- /dev/null +++ b/back/package-lock.json @@ -0,0 +1,9458 @@ +{ + "name": "back", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "back", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@babel/plugin-transform-runtime": "^7.19.1", + "@glennsl/bs-json": "^5.0.4", + "@sindresorhus/is": "^5.3.0", + "axios": "^1.1.2", + "bcrypt": "^5.1.0", + "bluebird": "^3.7.2", + "bs-mysql2": "^10.0.2", + "cors": "^2.8.5", + "dotenv": "^16.0.3", + "express": "^4.18.2", + "express-async-handler": "^1.2.0", + "fs": "^0.0.1-security", + "jsonwebtoken": "^8.5.1", + "moment": "^2.29.4", + "moment-timezone": "^0.5.37", + "multer": "^1.4.5-lts.1", + "mysql": "^2.18.1", + "mysql2": "^2.3.3", + "mysql2-promise": "^0.1.4", + "negotiator": "^0.6.3", + "path": "^0.12.7", + "request": "^2.88.2" + }, + "devDependencies": { + "@babel/core": "^7.19.3", + "@babel/node": "^7.19.1", + "@babel/preset-env": "^7.19.3", + "nodemon": "^2.0.20" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.19.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", + "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", + "dependencies": { + "@babel/types": "^7.19.4", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "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/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "dependencies": { + "@babel/compat-data": "^7.19.3", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "dependencies": { + "@babel/types": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/node": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.19.1.tgz", + "integrity": "sha512-gfxJNrawPso6kx7SwKfAdX1rEzVc09speJLFKrdxuZXGlve92pjbB3nJVmuwrxNN4+jvytj2zvliNXuW6uaSOw==", + "dev": true, + "dependencies": { + "@babel/register": "^7.18.9", + "commander": "^4.0.1", + "core-js": "^3.25.1", + "node-environment-flags": "^1.0.5", + "regenerator-runtime": "^0.13.4", + "v8flags": "^3.1.1" + }, + "bin": { + "babel-node": "bin/babel-node.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", + "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.18.6", + "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.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", + "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@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-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@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-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@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-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.18.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@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-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@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-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "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.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", + "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "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-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.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.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "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-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", + "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz", + "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "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-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@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.18.6", + "@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-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.19.4", + "@babel/plugin-transform-classes": "^7.19.0", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.19.4", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.19.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.19.4", + "@babel/types": "^7.19.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@glennsl/bs-json": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@glennsl/bs-json/-/bs-json-5.0.4.tgz", + "integrity": "sha512-Th9DetZjRlMZrb74kgGJ44oWcoFyOTE884WlSuXft0Cd+J09vHRxiB7eVyK7Gthb4cSevsBBJDHYAbGGL25wPw==" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "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==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sindresorhus/is": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==" + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz", + "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bcrypt": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", + "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.10", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bn.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-2.0.0.tgz", + "integrity": "sha512-NmOLApC80+n+P28y06yHgwGlOCkq/X4jRh5s590959FZXSrM+I/61h0xxuIaYsg0mD44mEAZYG/rnclWuRoz+A==" + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-mysql2": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/bs-mysql2/-/bs-mysql2-10.0.2.tgz", + "integrity": "sha512-KExEeQx+qfiDCxVHzC9noeLsPqlzJDSj7FUSvmIWMJ+rkiXDo9wp6LVbEZ5TGc9MAR9jWNrhlhjpHS3MnIytNA==", + "dependencies": { + "mysql2": "^1.6.5" + } + }, + "node_modules/bs-mysql2/node_modules/denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/bs-mysql2/node_modules/iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bs-mysql2/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==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/bs-mysql2/node_modules/mysql2": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-1.7.0.tgz", + "integrity": "sha512-xTWWQPjP5rcrceZQ7CSTKR/4XIDeH/cRkNH/uzvVGQ7W5c7EJ0dXeJUusk7OKhIoHj7uFKUxDVSCfLIl+jluog==", + "dependencies": { + "denque": "^1.4.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.5.0", + "long": "^4.0.0", + "lru-cache": "^5.1.1", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.1" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/bs-mysql2/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "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==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/cardinal": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz", + "integrity": "sha512-3MxV0o9wOpQcobrcSrRpaSxlYkohCcZu0ytOjJUww/Yo/223q4Ecloo7odT+M0SI5kPgb1JhvSaF4EEuVXOLAQ==", + "dependencies": { + "ansicolors": "~0.2.1", + "redeyed": "~0.4.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "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==" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", + "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", + "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/double-ended-queue": { + "version": "2.0.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.0.0-0.tgz", + "integrity": "sha512-t5ouWOpItmHrm0J0+bX/cFrIjBFWnJkk5LbIJq6bbU/M4aLX2c3LrM4QYsBptwvlPe3WzdpQefQ0v1pe/A5wjg==" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-async-handler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz", + "integrity": "sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "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.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "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==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "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==" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.38", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.38.tgz", + "integrity": "sha512-nMIrzGah4+oYZPflDvLZUgoVUO4fvAqHstvG3xAUnMolWncuAiLDWNnJZj6EwJGMGfb1ZcuTFE6GI3hNOVWI/Q==", + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, + "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==" + }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/mysql2": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", + "dependencies": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2-promise": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/mysql2-promise/-/mysql2-promise-0.1.4.tgz", + "integrity": "sha512-/h8ubU/36aIPpbfB6CENw9ZdbzIhZMZOIbstJUHVKp4J9JBRSLScrYImVx+3yZilgag732UhpQMMK5+ktdhLCw==", + "dependencies": { + "mysql2": "^0.15.7", + "q": "^1.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2-promise/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/mysql2-promise/node_modules/lru-cache": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz", + "integrity": "sha512-dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ==" + }, + "node_modules/mysql2-promise/node_modules/mysql2": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-0.15.8.tgz", + "integrity": "sha512-3x5o6C20bfwJYPSoT74MOoad7/chJoq4qXHDL5VAuRBBrIyErovLoj04Dz/5EY9X2kTxWSGNiTegtxpROTd2YQ==", + "dependencies": { + "bn.js": "2.0.0", + "cardinal": "0.4.4", + "double-ended-queue": "2.0.0-0", + "named-placeholders": "0.1.3", + "readable-stream": "1.0.33" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/mysql2-promise/node_modules/named-placeholders": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-0.1.3.tgz", + "integrity": "sha512-Mt79RtxZ6MYTIEemPGv/YDKpbuavcAyGHb0r37xB2mnE5jej3uBzc4+nzOeoZ4nZiii1M32URKt9IjkSTZAmTA==", + "dependencies": { + "lru-cache": "2.5.0" + } + }, + "node_modules/mysql2-promise/node_modules/readable-stream": { + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "integrity": "sha512-72KxhcKi8bAvHP/cyyWSP+ODS5ef0DIRs0OzrhGXw31q41f19aoELCbvd42FjhpyEDxQMRiiC5rq9rfE5PzTqg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/mysql2-promise/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "dependencies": { + "lru-cache": "^4.1.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/named-placeholders/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", + "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==" + }, + "node_modules/node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-environment-flags/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "node_modules/nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", + "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", + "dev": true, + "dependencies": { + "array.prototype.reduce": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "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/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redeyed": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz", + "integrity": "sha512-pnk1vsaNLu1UAAClKsImKz9HjBvg9i8cbRqTRzJbiCjGF0fZSMqpdcA5W3juO3c4etFvTrabECkq9wjC45ZyxA==", + "dependencies": { + "esprima": "~1.0.4" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", + "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "dev": true + }, + "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/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.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/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-update-notifier": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", + "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "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/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "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.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "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/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" + }, + "@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.19.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", + "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", + "requires": { + "@babel/types": "^7.19.4", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "requires": { + "@babel/compat-data": "^7.19.3", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "requires": { + "@babel/types": "^7.19.4" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "dev": true, + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + }, + "@babel/helper-wrap-function": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + } + }, + "@babel/helpers": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/node": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.19.1.tgz", + "integrity": "sha512-gfxJNrawPso6kx7SwKfAdX1rEzVc09speJLFKrdxuZXGlve92pjbB3nJVmuwrxNN4+jvytj2zvliNXuW6uaSOw==", + "dev": true, + "requires": { + "@babel/register": "^7.18.9", + "commander": "^4.0.1", + "core-js": "^3.25.1", + "node-environment-flags": "^1.0.5", + "regenerator-runtime": "^0.13.4", + "v8flags": "^3.1.1" + } + }, + "@babel/parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "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.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", + "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.18.8" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@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.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", + "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@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-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", + "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz", + "integrity": "sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@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.18.6", + "@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-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.19.4", + "@babel/plugin-transform-classes": "^7.19.0", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.19.4", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.19.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/register": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + } + }, + "@babel/runtime": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.19.4", + "@babel/types": "^7.19.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@glennsl/bs-json": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@glennsl/bs-json/-/bs-json-5.0.4.tgz", + "integrity": "sha512-Th9DetZjRlMZrb74kgGJ44oWcoFyOTE884WlSuXft0Cd+J09vHRxiB7eVyK7Gthb4cSevsBBJDHYAbGGL25wPw==" + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@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==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@sindresorhus/is": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w==" + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "array.prototype.reduce": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz", + "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axios": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bcrypt": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", + "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.10", + "node-addon-api": "^5.0.0" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-2.0.0.tgz", + "integrity": "sha512-NmOLApC80+n+P28y06yHgwGlOCkq/X4jRh5s590959FZXSrM+I/61h0xxuIaYsg0mD44mEAZYG/rnclWuRoz+A==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "bs-mysql2": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/bs-mysql2/-/bs-mysql2-10.0.2.tgz", + "integrity": "sha512-KExEeQx+qfiDCxVHzC9noeLsPqlzJDSj7FUSvmIWMJ+rkiXDo9wp6LVbEZ5TGc9MAR9jWNrhlhjpHS3MnIytNA==", + "requires": { + "mysql2": "^1.6.5" + }, + "dependencies": { + "denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" + }, + "iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "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==", + "requires": { + "yallist": "^3.0.2" + } + }, + "mysql2": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-1.7.0.tgz", + "integrity": "sha512-xTWWQPjP5rcrceZQ7CSTKR/4XIDeH/cRkNH/uzvVGQ7W5c7EJ0dXeJUusk7OKhIoHj7uFKUxDVSCfLIl+jluog==", + "requires": { + "denque": "^1.4.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.5.0", + "long": "^4.0.0", + "lru-cache": "^5.1.1", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "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==" + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caniuse-lite": { + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==" + }, + "cardinal": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz", + "integrity": "sha512-3MxV0o9wOpQcobrcSrRpaSxlYkohCcZu0ytOjJUww/Yo/223q4Ecloo7odT+M0SI5kPgb1JhvSaF4EEuVXOLAQ==", + "requires": { + "ansicolors": "~0.2.1", + "redeyed": "~0.4.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "core-js": { + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz", + "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==", + "dev": true + }, + "core-js-compat": { + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", + "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "requires": { + "browserslist": "^4.21.4" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" + }, + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" + }, + "double-ended-queue": { + "version": "2.0.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.0.0-0.tgz", + "integrity": "sha512-t5ouWOpItmHrm0J0+bX/cFrIjBFWnJkk5LbIJq6bbU/M4aLX2c3LrM4QYsBptwvlPe3WzdpQefQ0v1pe/A5wjg==" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==" + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "express-async-handler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz", + "integrity": "sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w==" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "requires": { + "is-property": "^1.0.2" + } + }, + "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==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "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==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "minipass": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, + "moment-timezone": { + "version": "0.5.38", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.38.tgz", + "integrity": "sha512-nMIrzGah4+oYZPflDvLZUgoVUO4fvAqHstvG3xAUnMolWncuAiLDWNnJZj6EwJGMGfb1ZcuTFE6GI3hNOVWI/Q==", + "requires": { + "moment": ">= 2.9.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "mysql2": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", + "requires": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + } + } + }, + "mysql2-promise": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/mysql2-promise/-/mysql2-promise-0.1.4.tgz", + "integrity": "sha512-/h8ubU/36aIPpbfB6CENw9ZdbzIhZMZOIbstJUHVKp4J9JBRSLScrYImVx+3yZilgag732UhpQMMK5+ktdhLCw==", + "requires": { + "mysql2": "^0.15.7", + "q": "^1.3.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "lru-cache": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz", + "integrity": "sha512-dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ==" + }, + "mysql2": { + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-0.15.8.tgz", + "integrity": "sha512-3x5o6C20bfwJYPSoT74MOoad7/chJoq4qXHDL5VAuRBBrIyErovLoj04Dz/5EY9X2kTxWSGNiTegtxpROTd2YQ==", + "requires": { + "bn.js": "2.0.0", + "cardinal": "0.4.4", + "double-ended-queue": "2.0.0-0", + "named-placeholders": "0.1.3", + "readable-stream": "1.0.33" + } + }, + "named-placeholders": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-0.1.3.tgz", + "integrity": "sha512-Mt79RtxZ6MYTIEemPGv/YDKpbuavcAyGHb0r37xB2mnE5jej3uBzc4+nzOeoZ4nZiii1M32URKt9IjkSTZAmTA==", + "requires": { + "lru-cache": "2.5.0" + } + }, + "readable-stream": { + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "integrity": "sha512-72KxhcKi8bAvHP/cyyWSP+ODS5ef0DIRs0OzrhGXw31q41f19aoELCbvd42FjhpyEDxQMRiiC5rq9rfE5PzTqg==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + } + } + }, + "named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "requires": { + "lru-cache": "^4.1.3" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + } + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "node-addon-api": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", + "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==" + }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", + "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", + "dev": true, + "requires": { + "array.prototype.reduce": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.1" + } + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redeyed": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz", + "integrity": "sha512-pnk1vsaNLu1UAAClKsImKz9HjBvg9i8cbRqTRzJbiCjGF0fZSMqpdcA5W3juO3c4etFvTrabECkq9wjC45ZyxA==", + "requires": { + "esprima": "~1.0.4" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpu-core": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", + "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "dev": true + }, + "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 + } + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + } + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "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==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "simple-update-notifier": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", + "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", + "dev": true, + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "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" + } + }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==" + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "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==" + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "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==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "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.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "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 + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + } + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/back/package.json b/back/package.json new file mode 100644 index 0000000..7a0fa0b --- /dev/null +++ b/back/package.json @@ -0,0 +1,43 @@ +{ + "name": "back", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "nodemon index.js --exec babel-node", + "test": "echo \"Error: no test specified\" && exit 1", + "pm2": "pm2 start index.js --interpreter babel-node" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@babel/plugin-transform-runtime": "^7.19.1", + "@glennsl/bs-json": "^5.0.4", + "@sindresorhus/is": "^5.3.0", + "axios": "^1.1.2", + "bcrypt": "^5.1.0", + "bluebird": "^3.7.2", + "bs-mysql2": "^10.0.2", + "cors": "^2.8.5", + "dotenv": "^16.0.3", + "express": "^4.18.2", + "express-async-handler": "^1.2.0", + "fs": "^0.0.1-security", + "jsonwebtoken": "^8.5.1", + "moment": "^2.29.4", + "moment-timezone": "^0.5.37", + "multer": "^1.4.5-lts.1", + "mysql": "^2.18.1", + "mysql2": "^2.3.3", + "mysql2-promise": "^0.1.4", + "negotiator": "^0.6.3", + "path": "^0.12.7", + "request": "^2.88.2" + }, + "devDependencies": { + "@babel/core": "^7.19.3", + "@babel/node": "^7.19.1", + "@babel/preset-env": "^7.19.3", + "nodemon": "^2.0.20" + } +} diff --git a/back/src/app.js b/back/src/app.js new file mode 100644 index 0000000..7393918 --- /dev/null +++ b/back/src/app.js @@ -0,0 +1,51 @@ +// reference: +// https://nodejs.org/en/docs/guides/getting-started-guide/ + +// const { connection } = require("./src/db/database.js"); + +const express = require("express"); +const cors = require("cors"); +// const { errorMiddleware } = require("./middlewares/errorMiddleware"); +const userAuthRouter = require("./routers/userRouter"); +// router를 만들면 추가하기 +const storesRouter = require("./routers/storesRouter"); +const reviewRouter = require("./routers/reviewRouter"); +const myPageRouter = require("./routers/myPageRouter"); +const introRouter = require("./routers/introRouter"); +const socialLoginRouter = require("./routers/socialLoginRouter"); + +const app = express(); +// CORS 에러 방지 +app.use(cors()); + +// express 기본 제공 middleware +// express.json(): POST 등의 요청과 함께 오는 json형태의 데이터를 인식하고 핸들링할 수 있게 함. +// express.urlencoded: 주로 Form submit 에 의해 만들어지는 URL-Encoded 형태의 데이터를 인식하고 핸들링할 수 있게 함. +app.use(express.json()); +app.use(express.urlencoded({ extended: false })); + +// 기본 페이지 +app.get("/", (req, res) => { + res.send("안녕하세요, 7팀의 팀프로젝트 API 입니다."); +}); + +// router, service 구현 (userAuthRouter는 맨 위에 있어야 함.) +app.use(userAuthRouter); +app.use(reviewRouter); +app.use(introRouter); +app.use(socialLoginRouter); + +// app.use(connection); +// app.use(userList); +app.use(myPageRouter); +app.use(storesRouter); + +// 정적파일 경로 +app.use(express.static("uploads")); + +// 순서 중요 (router 에서 next() 시 아래의 에러 핸들링 middleware로 전달됨) +// app.use(errorMiddleware); + +// import error와 같이 export도 error발생 +// export { app }; +module.exports = app; diff --git a/back/src/data/1996to2020_trashData_tonPerDay.csv b/back/src/data/1996to2020_trashData_tonPerDay.csv new file mode 100644 index 0000000..d46df54 --- /dev/null +++ b/back/src/data/1996to2020_trashData_tonPerDay.csv @@ -0,0 +1,26 @@ +year,total +1996,180573 +1997,195275 +1998,190254 +1999,219217 +2000,234283 +2001,261032 +2002,277533 +2003,303029 +2004,311666 +2005,304357 +2006,328954 +2007,346669 +2008,368890 +2009,366921 +2010,374642 +2011,383333 +2012,394496 +2013,393116 +2014,401658 +2015,418214 +2016,429128 +2017,429531 +2018,446102 +2019,497238 +2020,534055 \ No newline at end of file diff --git "a/back/src/data/\352\265\255\353\257\274\355\231\230\352\262\275\354\235\230\354\213\235\354\241\260\354\202\254\354\233\220\354\236\220\353\243\214.csv" "b/back/src/data/\352\265\255\353\257\274\355\231\230\352\262\275\354\235\230\354\213\235\354\241\260\354\202\254\354\233\220\354\236\220\353\243\214.csv" new file mode 100644 index 0000000..a0b1f94 --- /dev/null +++ "b/back/src/data/\352\265\255\353\257\274\355\231\230\352\262\275\354\235\230\354\213\235\354\241\260\354\202\254\354\233\220\354\236\220\353\243\214.csv" @@ -0,0 +1,6 @@ +연령대,환경관심정도 +19-29세,67.682776 +30-39세,67.907489 +40-49세,69.837189 +50-59세,75.131467 +60-69세,78.786653 \ No newline at end of file diff --git "a/back/src/data/\354\271\234\355\231\230\352\262\275\354\240\201\354\212\265\352\264\200\354\213\244\354\262\234\354\226\264\353\240\244\354\233\200.csv" "b/back/src/data/\354\271\234\355\231\230\352\262\275\354\240\201\354\212\265\352\264\200\354\213\244\354\262\234\354\226\264\353\240\244\354\233\200.csv" new file mode 100644 index 0000000..12f8f71 --- /dev/null +++ "b/back/src/data/\354\271\234\355\231\230\352\262\275\354\240\201\354\212\265\352\264\200\354\213\244\354\262\234\354\226\264\353\240\244\354\233\200.csv" @@ -0,0 +1,10 @@ +원인,비율(%) +기타, 1.8 +주변 사람들이 친환경적으로 행동하는 것을 비웃거나 무시한다", 11.2 +친환경적 행동을 해도 환경문제가 개선되지 않을 것이라 실천의 필요를 못 느낀다", 17.9 +친환경 행동을 실천하고 싶지만 방법을 잘 모른다", 23.6 +친환경적인 행동이 나의 건강에는 오히려 해가 될 수 있다(예: 미세먼지 많은 날 걸어서 이동)", 33.6 +환경에 나쁜 영향을 주는 행동들이 이미 습관이 되어 바꾸기 어렵다", 36.3 +친환경적인 행동은 비용이 많이 든다", 41 +친환경적인 행동(예: 대중교통 이용)은 시간이 많이 소비된다", 43.7 +제품을 구매하거나 행동할 때 친환경적인 대안이 없거나 품질이 떨어진다", 44.1 \ No newline at end of file diff --git a/back/src/db/SGIS_adm_code.csv b/back/src/db/SGIS_adm_code.csv new file mode 100644 index 0000000..f7880fd --- /dev/null +++ b/back/src/db/SGIS_adm_code.csv @@ -0,0 +1,3501 @@ +1,11,서울특별시,010,종로구,53,사직동 +2,11,서울특별시,010,종로구,54,삼청동 +3,11,서울특별시,010,종로구,55,부암동 +4,11,서울특별시,010,종로구,56,평창동 +5,11,서울특별시,010,종로구,57,무악동 +6,11,서울특별시,010,종로구,58,교남동 +7,11,서울특별시,010,종로구,60,가회동 +8,11,서울특별시,010,종로구,61,종로1·2·3·4가동 +9,11,서울특별시,010,종로구,63,종로5·6가동 +10,11,서울특별시,010,종로구,64,이화동 +11,11,서울특별시,010,종로구,67,창신1동 +12,11,서울특별시,010,종로구,68,창신2동 +13,11,서울특별시,010,종로구,69,창신3동 +14,11,서울특별시,010,종로구,70,숭인1동 +15,11,서울특별시,010,종로구,71,숭인2동 +16,11,서울특별시,010,종로구,72,청운효자동 +17,11,서울특별시,010,종로구,73,혜화동 +18,11,서울특별시,020,중구,52,소공동 +19,11,서울특별시,020,중구,54,회현동 +20,11,서울특별시,020,중구,55,명동 +21,11,서울특별시,020,중구,57,필동 +22,11,서울특별시,020,중구,58,장충동 +23,11,서울특별시,020,중구,59,광희동 +24,11,서울특별시,020,중구,60,을지로동 +25,11,서울특별시,020,중구,65,신당5동 +26,11,서울특별시,020,중구,67,황학동 +27,11,서울특별시,020,중구,68,중림동 +28,11,서울특별시,020,중구,69,신당동 +29,11,서울특별시,020,중구,70,다산동 +30,11,서울특별시,020,중구,71,약수동 +31,11,서울특별시,020,중구,72,청구동 +32,11,서울특별시,020,중구,73,동화동 +33,11,서울특별시,030,용산구,51,후암동 +34,11,서울특별시,030,용산구,52,용산2가동 +35,11,서울특별시,030,용산구,53,남영동 +36,11,서울특별시,030,용산구,57,원효로2동 +37,11,서울특별시,030,용산구,58,효창동 +38,11,서울특별시,030,용산구,59,용문동 +39,11,서울특별시,030,용산구,63,이촌1동 +40,11,서울특별시,030,용산구,64,이촌2동 +41,11,서울특별시,030,용산구,65,이태원1동 +42,11,서울특별시,030,용산구,66,이태원2동 +43,11,서울특별시,030,용산구,69,서빙고동 +44,11,서울특별시,030,용산구,70,보광동 +45,11,서울특별시,030,용산구,71,청파동 +46,11,서울특별시,030,용산구,72,원효로1동 +47,11,서울특별시,030,용산구,73,한강로동 +48,11,서울특별시,030,용산구,74,한남동 +49,11,서울특별시,040,성동구,52,왕십리2동 +50,11,서울특별시,040,성동구,54,마장동 +51,11,서울특별시,040,성동구,55,사근동 +52,11,서울특별시,040,성동구,56,행당1동 +53,11,서울특별시,040,성동구,57,행당2동 +54,11,서울특별시,040,성동구,58,응봉동 +55,11,서울특별시,040,성동구,59,금호1가동 +56,11,서울특별시,040,성동구,62,금호4가동 +57,11,서울특별시,040,성동구,65,성수1가1동 +58,11,서울특별시,040,성동구,66,성수1가2동 +59,11,서울특별시,040,성동구,67,성수2가1동 +60,11,서울특별시,040,성동구,68,성수2가3동 +61,11,서울특별시,040,성동구,69,송정동 +62,11,서울특별시,040,성동구,70,용답동 +63,11,서울특별시,040,성동구,71,왕십리도선동 +64,11,서울특별시,040,성동구,72,금호2·3가동 +65,11,서울특별시,040,성동구,73,옥수동 +66,11,서울특별시,050,광진구,53,화양동 +67,11,서울특별시,050,광진구,54,군자동 +68,11,서울특별시,050,광진구,55,중곡1동 +69,11,서울특별시,050,광진구,56,중곡2동 +70,11,서울특별시,050,광진구,57,중곡3동 +71,11,서울특별시,050,광진구,58,중곡4동 +72,11,서울특별시,050,광진구,59,능동 +73,11,서울특별시,050,광진구,60,구의1동 +74,11,서울특별시,050,광진구,61,구의2동 +75,11,서울특별시,050,광진구,62,구의3동 +76,11,서울특별시,050,광진구,63,광장동 +77,11,서울특별시,050,광진구,64,자양1동 +78,11,서울특별시,050,광진구,65,자양2동 +79,11,서울특별시,050,광진구,66,자양3동 +80,11,서울특별시,050,광진구,67,자양4동 +81,11,서울특별시,060,동대문구,71,회기동 +82,11,서울특별시,060,동대문구,72,휘경1동 +83,11,서울특별시,060,동대문구,73,휘경2동 +84,11,서울특별시,060,동대문구,80,청량리동 +85,11,서울특별시,060,동대문구,81,용신동 +86,11,서울특별시,060,동대문구,82,제기동 +87,11,서울특별시,060,동대문구,83,전농1동 +88,11,서울특별시,060,동대문구,84,전농2동 +89,11,서울특별시,060,동대문구,86,답십리2동 +90,11,서울특별시,060,동대문구,87,장안1동 +91,11,서울특별시,060,동대문구,88,장안2동 +92,11,서울특별시,060,동대문구,89,이문1동 +93,11,서울특별시,060,동대문구,90,이문2동 +94,11,서울특별시,060,동대문구,91,답십리1동 +95,11,서울특별시,070,중랑구,52,면목2동 +96,11,서울특별시,070,중랑구,54,면목4동 +97,11,서울특별시,070,중랑구,55,면목5동 +98,11,서울특별시,070,중랑구,57,면목7동 +99,11,서울특별시,070,중랑구,59,상봉1동 +100,11,서울특별시,070,중랑구,60,상봉2동 +101,11,서울특별시,070,중랑구,61,중화1동 +102,11,서울특별시,070,중랑구,62,중화2동 +103,11,서울특별시,070,중랑구,64,묵1동 +104,11,서울특별시,070,중랑구,65,묵2동 +105,11,서울특별시,070,중랑구,68,망우3동 +106,11,서울특별시,070,중랑구,69,신내1동 +107,11,서울특별시,070,중랑구,70,신내2동 +108,11,서울특별시,070,중랑구,71,면목본동 +109,11,서울특별시,070,중랑구,72,면목3·8동 +110,11,서울특별시,070,중랑구,73,망우본동 +111,11,서울특별시,080,성북구,58,돈암1동 +112,11,서울특별시,080,성북구,59,돈암2동 +113,11,서울특별시,080,성북구,60,안암동 +114,11,서울특별시,080,성북구,61,보문동 +115,11,서울특별시,080,성북구,62,정릉1동 +116,11,서울특별시,080,성북구,63,정릉2동 +117,11,서울특별시,080,성북구,64,정릉3동 +118,11,서울특별시,080,성북구,65,정릉4동 +119,11,서울특별시,080,성북구,66,길음1동 +120,11,서울특별시,080,성북구,68,길음2동 +121,11,서울특별시,080,성북구,71,월곡1동 +122,11,서울특별시,080,성북구,72,월곡2동 +123,11,서울특별시,080,성북구,76,장위1동 +124,11,서울특별시,080,성북구,77,장위2동 +125,11,서울특별시,080,성북구,78,장위3동 +126,11,서울특별시,080,성북구,81,성북동 +127,11,서울특별시,080,성북구,82,삼선동 +128,11,서울특별시,080,성북구,83,동선동 +129,11,서울특별시,080,성북구,84,종암동 +130,11,서울특별시,080,성북구,85,석관동 +131,11,서울특별시,090,강북구,60,번1동 +132,11,서울특별시,090,강북구,61,번2동 +133,11,서울특별시,090,강북구,62,번3동 +134,11,서울특별시,090,강북구,63,수유1동 +135,11,서울특별시,090,강북구,64,수유2동 +136,11,서울특별시,090,강북구,65,수유3동 +137,11,서울특별시,090,강북구,69,삼양동 +138,11,서울특별시,090,강북구,70,미아동 +139,11,서울특별시,090,강북구,71,송중동 +140,11,서울특별시,090,강북구,72,송천동 +141,11,서울특별시,090,강북구,73,삼각산동 +142,11,서울특별시,090,강북구,74,우이동 +143,11,서울특별시,090,강북구,75,인수동 +144,11,서울특별시,100,도봉구,51,쌍문1동 +145,11,서울특별시,100,도봉구,52,쌍문2동 +146,11,서울특별시,100,도봉구,53,쌍문3동 +147,11,서울특별시,100,도봉구,54,쌍문4동 +148,11,서울특별시,100,도봉구,55,방학1동 +149,11,서울특별시,100,도봉구,56,방학2동 +150,11,서울특별시,100,도봉구,57,방학3동 +151,11,서울특별시,100,도봉구,59,창1동 +152,11,서울특별시,100,도봉구,60,창2동 +153,11,서울특별시,100,도봉구,61,창3동 +154,11,서울특별시,100,도봉구,62,창4동 +155,11,서울특별시,100,도봉구,63,창5동 +156,11,서울특별시,100,도봉구,64,도봉1동 +157,11,서울특별시,100,도봉구,65,도봉2동 +158,11,서울특별시,110,노원구,51,월계1동 +159,11,서울특별시,110,노원구,52,월계2동 +160,11,서울특별시,110,노원구,53,월계3동 +161,11,서울특별시,110,노원구,56,공릉2동 +162,11,서울특별시,110,노원구,58,하계1동 +163,11,서울특별시,110,노원구,59,하계2동 +164,11,서울특별시,110,노원구,60,중계본동 +165,11,서울특별시,110,노원구,61,중계1동 +166,11,서울특별시,110,노원구,64,중계4동 +167,11,서울특별시,110,노원구,65,상계1동 +168,11,서울특별시,110,노원구,66,상계2동 +169,11,서울특별시,110,노원구,69,상계5동 +170,11,서울특별시,110,노원구,72,상계8동 +171,11,서울특별시,110,노원구,73,상계9동 +172,11,서울특별시,110,노원구,74,상계10동 +173,11,서울특별시,110,노원구,76,상계3·4동 +174,11,서울특별시,110,노원구,77,상계6·7동 +175,11,서울특별시,110,노원구,78,중계2·3동 +176,11,서울특별시,110,노원구,79,공릉1동 +177,11,서울특별시,120,은평구,51,녹번동 +178,11,서울특별시,120,은평구,52,불광1동 +179,11,서울특별시,120,은평구,55,갈현1동 +180,11,서울특별시,120,은평구,56,갈현2동 +181,11,서울특별시,120,은평구,57,구산동 +182,11,서울특별시,120,은평구,58,대조동 +183,11,서울특별시,120,은평구,59,응암1동 +184,11,서울특별시,120,은평구,60,응암2동 +185,11,서울특별시,120,은평구,65,신사1동 +186,11,서울특별시,120,은평구,66,신사2동 +187,11,서울특별시,120,은평구,67,증산동 +188,11,서울특별시,120,은평구,68,수색동 +189,11,서울특별시,120,은평구,71,진관동 +190,11,서울특별시,120,은평구,72,불광2동 +191,11,서울특별시,120,은평구,73,응암3동 +192,11,서울특별시,120,은평구,74,역촌동 +193,11,서울특별시,130,서대문구,52,천연동 +194,11,서울특별시,130,서대문구,62,홍제1동 +195,11,서울특별시,130,서대문구,64,홍제3동 +196,11,서울특별시,130,서대문구,65,홍제2동 +197,11,서울특별시,130,서대문구,66,홍은1동 +198,11,서울특별시,130,서대문구,68,홍은2동 +199,11,서울특별시,130,서대문구,69,남가좌1동 +200,11,서울특별시,130,서대문구,70,남가좌2동 +201,11,서울특별시,130,서대문구,71,북가좌1동 +202,11,서울특별시,130,서대문구,72,북가좌2동 +203,11,서울특별시,130,서대문구,73,충현동 +204,11,서울특별시,130,서대문구,74,북아현동 +205,11,서울특별시,130,서대문구,75,신촌동 +206,11,서울특별시,130,서대문구,76,연희동 +207,11,서울특별시,140,마포구,59,용강동 +208,11,서울특별시,140,마포구,60,대흥동 +209,11,서울특별시,140,마포구,61,염리동 +210,11,서울특별시,140,마포구,63,신수동 +211,11,서울특별시,140,마포구,66,서교동 +212,11,서울특별시,140,마포구,68,합정동 +213,11,서울특별시,140,마포구,69,망원1동 +214,11,서울특별시,140,마포구,70,망원2동 +215,11,서울특별시,140,마포구,71,연남동 +216,11,서울특별시,140,마포구,72,성산1동 +217,11,서울특별시,140,마포구,73,성산2동 +218,11,서울특별시,140,마포구,74,상암동 +219,11,서울특별시,140,마포구,75,도화동 +220,11,서울특별시,140,마포구,76,서강동 +221,11,서울특별시,140,마포구,77,공덕동 +222,11,서울특별시,140,마포구,78,아현동 +223,11,서울특별시,150,양천구,51,목1동 +224,11,서울특별시,150,양천구,52,목2동 +225,11,서울특별시,150,양천구,53,목3동 +226,11,서울특별시,150,양천구,54,목4동 +227,11,서울특별시,150,양천구,57,신월1동 +228,11,서울특별시,150,양천구,58,신월2동 +229,11,서울특별시,150,양천구,59,신월3동 +230,11,서울특별시,150,양천구,60,신월4동 +231,11,서울특별시,150,양천구,61,신월5동 +232,11,서울특별시,150,양천구,62,신월6동 +233,11,서울특별시,150,양천구,63,신월7동 +234,11,서울특별시,150,양천구,64,신정1동 +235,11,서울특별시,150,양천구,65,신정2동 +236,11,서울특별시,150,양천구,66,신정3동 +237,11,서울특별시,150,양천구,69,신정6동 +238,11,서울특별시,150,양천구,70,신정7동 +239,11,서울특별시,150,양천구,71,목5동 +240,11,서울특별시,150,양천구,72,신정4동 +241,11,서울특별시,160,강서구,51,염창동 +242,11,서울특별시,160,강서구,52,등촌1동 +243,11,서울특별시,160,강서구,53,등촌2동 +244,11,서울특별시,160,강서구,54,등촌3동 +245,11,서울특별시,160,강서구,55,화곡본동 +246,11,서울특별시,160,강서구,57,화곡2동 +247,11,서울특별시,160,강서구,58,화곡3동 +248,11,서울특별시,160,강서구,59,화곡4동 +249,11,서울특별시,160,강서구,61,화곡6동 +250,11,서울특별시,160,강서구,63,화곡8동 +251,11,서울특별시,160,강서구,64,가양1동 +252,11,서울특별시,160,강서구,65,가양2동 +253,11,서울특별시,160,강서구,66,가양3동 +254,11,서울특별시,160,강서구,67,발산1동 +255,11,서울특별시,160,강서구,69,공항동 +256,11,서울특별시,160,강서구,70,방화1동 +257,11,서울특별시,160,강서구,71,방화2동 +258,11,서울특별시,160,강서구,72,방화3동 +259,11,서울특별시,160,강서구,73,화곡1동 +260,11,서울특별시,160,강서구,74,우장산동 +261,11,서울특별시,170,구로구,51,신도림동 +262,11,서울특별시,170,구로구,52,구로1동 +263,11,서울특별시,170,구로구,54,구로3동 +264,11,서울특별시,170,구로구,55,구로4동 +265,11,서울특별시,170,구로구,56,구로5동 +266,11,서울특별시,170,구로구,61,고척1동 +267,11,서울특별시,170,구로구,62,고척2동 +268,11,서울특별시,170,구로구,64,개봉2동 +269,11,서울특별시,170,구로구,65,개봉3동 +270,11,서울특별시,170,구로구,67,오류1동 +271,11,서울특별시,170,구로구,69,수궁동 +272,11,서울특별시,170,구로구,70,가리봉동 +273,11,서울특별시,170,구로구,71,구로2동 +274,11,서울특별시,170,구로구,72,개봉1동 +275,11,서울특별시,170,구로구,73,오류2동 +276,11,서울특별시,170,구로구,74,항동 +277,11,서울특별시,180,금천구,51,가산동 +278,11,서울특별시,180,금천구,52,독산1동 +279,11,서울특별시,180,금천구,53,독산2동 +280,11,서울특별시,180,금천구,54,독산3동 +281,11,서울특별시,180,금천구,55,독산4동 +282,11,서울특별시,180,금천구,57,시흥1동 +283,11,서울특별시,180,금천구,58,시흥2동 +284,11,서울특별시,180,금천구,59,시흥3동 +285,11,서울특별시,180,금천구,60,시흥4동 +286,11,서울특별시,180,금천구,61,시흥5동 +287,11,서울특별시,190,영등포구,54,여의동 +288,11,서울특별시,190,영등포구,55,당산1동 +289,11,서울특별시,190,영등포구,56,당산2동 +290,11,서울특별시,190,영등포구,61,양평1동 +291,11,서울특별시,190,영등포구,62,양평2동 +292,11,서울특별시,190,영등포구,63,신길1동 +293,11,서울특별시,190,영등포구,65,신길3동 +294,11,서울특별시,190,영등포구,66,신길4동 +295,11,서울특별시,190,영등포구,67,신길5동 +296,11,서울특별시,190,영등포구,68,신길6동 +297,11,서울특별시,190,영등포구,69,신길7동 +298,11,서울특별시,190,영등포구,70,대림1동 +299,11,서울특별시,190,영등포구,71,대림2동 +300,11,서울특별시,190,영등포구,72,대림3동 +301,11,서울특별시,190,영등포구,73,영등포본동 +302,11,서울특별시,190,영등포구,74,영등포동 +303,11,서울특별시,190,영등포구,75,도림동 +304,11,서울특별시,190,영등포구,76,문래동 +305,11,서울특별시,200,동작구,52,노량진2동 +306,11,서울특별시,200,동작구,53,상도1동 +307,11,서울특별시,200,동작구,54,상도2동 +308,11,서울특별시,200,동작구,55,상도3동 +309,11,서울특별시,200,동작구,56,상도4동 +310,11,서울특별시,200,동작구,63,사당1동 +311,11,서울특별시,200,동작구,65,사당3동 +312,11,서울특별시,200,동작구,66,사당4동 +313,11,서울특별시,200,동작구,67,사당5동 +314,11,서울특별시,200,동작구,68,대방동 +315,11,서울특별시,200,동작구,69,신대방1동 +316,11,서울특별시,200,동작구,70,신대방2동 +317,11,서울특별시,200,동작구,71,흑석동 +318,11,서울특별시,200,동작구,72,노량진1동 +319,11,서울특별시,200,동작구,73,사당2동 +320,11,서울특별시,210,관악구,52,보라매동 +321,11,서울특별시,210,관악구,54,청림동 +322,11,서울특별시,210,관악구,57,행운동 +323,11,서울특별시,210,관악구,58,낙성대동 +324,11,서울특별시,210,관악구,61,중앙동 +325,11,서울특별시,210,관악구,62,인헌동 +326,11,서울특별시,210,관악구,63,남현동 +327,11,서울특별시,210,관악구,64,서원동 +328,11,서울특별시,210,관악구,65,신원동 +329,11,서울특별시,210,관악구,66,서림동 +330,11,서울특별시,210,관악구,68,신사동 +331,11,서울특별시,210,관악구,69,신림동 +332,11,서울특별시,210,관악구,71,난향동 +333,11,서울특별시,210,관악구,72,조원동 +334,11,서울특별시,210,관악구,73,대학동 +335,11,서울특별시,210,관악구,78,은천동 +336,11,서울특별시,210,관악구,79,성현동 +337,11,서울특별시,210,관악구,80,청룡동 +338,11,서울특별시,210,관악구,81,난곡동 +339,11,서울특별시,210,관악구,82,삼성동 +340,11,서울특별시,210,관악구,83,미성동 +341,11,서울특별시,220,서초구,51,서초1동 +342,11,서울특별시,220,서초구,52,서초2동 +343,11,서울특별시,220,서초구,53,서초3동 +344,11,서울특별시,220,서초구,54,서초4동 +345,11,서울특별시,220,서초구,55,잠원동 +346,11,서울특별시,220,서초구,56,반포본동 +347,11,서울특별시,220,서초구,57,반포1동 +348,11,서울특별시,220,서초구,58,반포2동 +349,11,서울특별시,220,서초구,59,반포3동 +350,11,서울특별시,220,서초구,60,반포4동 +351,11,서울특별시,220,서초구,61,방배본동 +352,11,서울특별시,220,서초구,62,방배1동 +353,11,서울특별시,220,서초구,63,방배2동 +354,11,서울특별시,220,서초구,64,방배3동 +355,11,서울특별시,220,서초구,65,방배4동 +356,11,서울특별시,220,서초구,66,양재1동 +357,11,서울특별시,220,서초구,67,양재2동 +358,11,서울특별시,220,서초구,68,내곡동 +359,11,서울특별시,230,강남구,51,신사동 +360,11,서울특별시,230,강남구,52,논현1동 +361,11,서울특별시,230,강남구,53,논현2동 +362,11,서울특별시,230,강남구,58,삼성1동 +363,11,서울특별시,230,강남구,59,삼성2동 +364,11,서울특별시,230,강남구,60,대치1동 +365,11,서울특별시,230,강남구,63,대치4동 +366,11,서울특별시,230,강남구,64,역삼1동 +367,11,서울특별시,230,강남구,65,역삼2동 +368,11,서울특별시,230,강남구,66,도곡1동 +369,11,서울특별시,230,강남구,67,도곡2동 +370,11,서울특별시,230,강남구,68,개포1동 +371,11,서울특별시,230,강남구,71,개포4동 +372,11,서울특별시,230,강남구,72,일원본동 +373,11,서울특별시,230,강남구,73,일원1동 +374,11,서울특별시,230,강남구,74,일원2동 +375,11,서울특별시,230,강남구,75,수서동 +376,11,서울특별시,230,강남구,76,세곡동 +377,11,서울특별시,230,강남구,77,압구정동 +378,11,서울특별시,230,강남구,78,청담동 +379,11,서울특별시,230,강남구,79,대치2동 +380,11,서울특별시,230,강남구,80,개포2동 +381,11,서울특별시,240,송파구,51,풍납1동 +382,11,서울특별시,240,송파구,52,풍납2동 +383,11,서울특별시,240,송파구,53,거여1동 +384,11,서울특별시,240,송파구,54,거여2동 +385,11,서울특별시,240,송파구,55,마천1동 +386,11,서울특별시,240,송파구,56,마천2동 +387,11,서울특별시,240,송파구,57,방이1동 +388,11,서울특별시,240,송파구,58,방이2동 +389,11,서울특별시,240,송파구,59,오륜동 +390,11,서울특별시,240,송파구,60,오금동 +391,11,서울특별시,240,송파구,61,송파1동 +392,11,서울특별시,240,송파구,62,송파2동 +393,11,서울특별시,240,송파구,63,석촌동 +394,11,서울특별시,240,송파구,64,삼전동 +395,11,서울특별시,240,송파구,65,가락본동 +396,11,서울특별시,240,송파구,66,가락1동 +397,11,서울특별시,240,송파구,67,가락2동 +398,11,서울특별시,240,송파구,68,문정1동 +399,11,서울특별시,240,송파구,69,문정2동 +400,11,서울특별시,240,송파구,71,잠실본동 +401,11,서울특별시,240,송파구,75,잠실4동 +402,11,서울특별시,240,송파구,77,잠실6동 +403,11,서울특별시,240,송파구,78,잠실7동 +404,11,서울특별시,240,송파구,79,잠실2동 +405,11,서울특별시,240,송파구,80,잠실3동 +406,11,서울특별시,240,송파구,81,장지동 +407,11,서울특별시,240,송파구,82,위례동 +408,11,서울특별시,250,강동구,51,강일동 +409,11,서울특별시,250,강동구,52,상일동 +410,11,서울특별시,250,강동구,53,명일1동 +411,11,서울특별시,250,강동구,54,명일2동 +412,11,서울특별시,250,강동구,55,고덕1동 +413,11,서울특별시,250,강동구,56,고덕2동 +414,11,서울특별시,250,강동구,58,암사2동 +415,11,서울특별시,250,강동구,59,암사3동 +416,11,서울특별시,250,강동구,61,천호1동 +417,11,서울특별시,250,강동구,63,천호3동 +418,11,서울특별시,250,강동구,65,성내1동 +419,11,서울특별시,250,강동구,66,성내2동 +420,11,서울특별시,250,강동구,67,성내3동 +421,11,서울특별시,250,강동구,70,둔촌1동 +422,11,서울특별시,250,강동구,71,둔촌2동 +423,11,서울특별시,250,강동구,72,암사1동 +424,11,서울특별시,250,강동구,73,천호2동 +425,11,서울특별시,250,강동구,74,길동 +426,21,부산광역시,010,중구,51,중앙동 +427,21,부산광역시,010,중구,52,동광동 +428,21,부산광역시,010,중구,53,대청동 +429,21,부산광역시,010,중구,54,보수동 +430,21,부산광역시,010,중구,56,부평동 +431,21,부산광역시,010,중구,57,광복동 +432,21,부산광역시,010,중구,58,남포동 +433,21,부산광역시,010,중구,59,영주1동 +434,21,부산광역시,010,중구,60,영주2동 +435,21,부산광역시,020,서구,51,동대신1동 +436,21,부산광역시,020,서구,52,동대신2동 +437,21,부산광역시,020,서구,53,동대신3동 +438,21,부산광역시,020,서구,54,서대신1동 +439,21,부산광역시,020,서구,56,서대신3동 +440,21,부산광역시,020,서구,57,서대신4동 +441,21,부산광역시,020,서구,59,부민동 +442,21,부산광역시,020,서구,61,아미동 +443,21,부산광역시,020,서구,63,초장동 +444,21,부산광역시,020,서구,64,충무동 +445,21,부산광역시,020,서구,65,남부민1동 +446,21,부산광역시,020,서구,68,암남동 +447,21,부산광역시,020,서구,69,남부민2동 +448,21,부산광역시,030,동구,51,초량1동 +449,21,부산광역시,030,동구,52,초량2동 +450,21,부산광역시,030,동구,53,초량3동 +451,21,부산광역시,030,동구,55,초량6동 +452,21,부산광역시,030,동구,56,수정1동 +453,21,부산광역시,030,동구,57,수정2동 +454,21,부산광역시,030,동구,59,수정4동 +455,21,부산광역시,030,동구,60,수정5동 +456,21,부산광역시,030,동구,66,범일2동 +457,21,부산광역시,030,동구,68,범일5동 +458,21,부산광역시,030,동구,70,좌천동 +459,21,부산광역시,030,동구,71,범일1동 +460,21,부산광역시,040,영도구,53,남항동 +461,21,부산광역시,040,영도구,54,영선1동 +462,21,부산광역시,040,영도구,55,영선2동 +463,21,부산광역시,040,영도구,59,봉래1동 +464,21,부산광역시,040,영도구,63,청학1동 +465,21,부산광역시,040,영도구,64,청학2동 +466,21,부산광역시,040,영도구,65,동삼1동 +467,21,부산광역시,040,영도구,66,동삼2동 +468,21,부산광역시,040,영도구,67,동삼3동 +469,21,부산광역시,040,영도구,68,신선동 +470,21,부산광역시,040,영도구,69,봉래2동 +471,21,부산광역시,050,부산진구,52,부전2동 +472,21,부산광역시,050,부산진구,54,연지동 +473,21,부산광역시,050,부산진구,55,초읍동 +474,21,부산광역시,050,부산진구,56,양정1동 +475,21,부산광역시,050,부산진구,57,양정2동 +476,21,부산광역시,050,부산진구,61,전포2동 +477,21,부산광역시,050,부산진구,64,부암1동 +478,21,부산광역시,050,부산진구,66,부암3동 +479,21,부산광역시,050,부산진구,68,당감2동 +480,21,부산광역시,050,부산진구,70,당감4동 +481,21,부산광역시,050,부산진구,72,가야2동 +482,21,부산광역시,050,부산진구,74,개금1동 +483,21,부산광역시,050,부산진구,75,개금2동 +484,21,부산광역시,050,부산진구,76,개금3동 +485,21,부산광역시,050,부산진구,77,범천1동 +486,21,부산광역시,050,부산진구,80,당감1동 +487,21,부산광역시,050,부산진구,81,가야1동 +488,21,부산광역시,050,부산진구,82,부전1동 +489,21,부산광역시,050,부산진구,83,전포1동 +490,21,부산광역시,050,부산진구,84,범천2동 +491,21,부산광역시,060,동래구,51,수민동 +492,21,부산광역시,060,동래구,52,복산동 +493,21,부산광역시,060,동래구,55,온천1동 +494,21,부산광역시,060,동래구,56,온천2동 +495,21,부산광역시,060,동래구,57,온천3동 +496,21,부산광역시,060,동래구,58,사직1동 +497,21,부산광역시,060,동래구,59,사직2동 +498,21,부산광역시,060,동래구,60,사직3동 +499,21,부산광역시,060,동래구,61,안락1동 +500,21,부산광역시,060,동래구,62,안락2동 +501,21,부산광역시,060,동래구,63,명장1동 +502,21,부산광역시,060,동래구,64,명장2동 +503,21,부산광역시,060,동래구,65,명륜동 +504,21,부산광역시,070,남구,53,대연3동 +505,21,부산광역시,070,남구,54,대연4동 +506,21,부산광역시,070,남구,55,대연5동 +507,21,부산광역시,070,남구,56,대연6동 +508,21,부산광역시,070,남구,57,용호1동 +509,21,부산광역시,070,남구,58,용호2동 +510,21,부산광역시,070,남구,59,용호3동 +511,21,부산광역시,070,남구,60,용호4동 +512,21,부산광역시,070,남구,61,용당동 +513,21,부산광역시,070,남구,62,감만1동 +514,21,부산광역시,070,남구,63,감만2동 +515,21,부산광역시,070,남구,66,문현1동 +516,21,부산광역시,070,남구,67,문현2동 +517,21,부산광역시,070,남구,68,문현3동 +518,21,부산광역시,070,남구,69,문현4동 +519,21,부산광역시,070,남구,70,대연1동 +520,21,부산광역시,070,남구,71,우암동 +521,21,부산광역시,080,북구,51,구포1동 +522,21,부산광역시,080,북구,52,구포2동 +523,21,부산광역시,080,북구,53,구포3동 +524,21,부산광역시,080,북구,54,금곡동 +525,21,부산광역시,080,북구,55,화명1동 +526,21,부산광역시,080,북구,56,덕천1동 +527,21,부산광역시,080,북구,57,덕천2동 +528,21,부산광역시,080,북구,58,덕천3동 +529,21,부산광역시,080,북구,59,만덕1동 +530,21,부산광역시,080,북구,60,만덕2동 +531,21,부산광역시,080,북구,61,만덕3동 +532,21,부산광역시,080,북구,62,화명2동 +533,21,부산광역시,080,북구,63,화명3동 +534,21,부산광역시,090,해운대구,53,중1동 +535,21,부산광역시,090,해운대구,54,중2동 +536,21,부산광역시,090,해운대구,56,송정동 +537,21,부산광역시,090,해운대구,58,반여2동 +538,21,부산광역시,090,해운대구,59,반여3동 +539,21,부산광역시,090,해운대구,62,반송2동 +540,21,부산광역시,090,해운대구,64,재송1동 +541,21,부산광역시,090,해운대구,65,재송2동 +542,21,부산광역시,090,해운대구,66,좌1동 +543,21,부산광역시,090,해운대구,67,좌2동 +544,21,부산광역시,090,해운대구,68,좌3동 +545,21,부산광역시,090,해운대구,69,좌4동 +546,21,부산광역시,090,해운대구,70,반여1동 +547,21,부산광역시,090,해운대구,71,반여4동 +548,21,부산광역시,090,해운대구,72,반송1동 +549,21,부산광역시,090,해운대구,73,우1동 +550,21,부산광역시,090,해운대구,74,우2동 +551,21,부산광역시,090,해운대구,75,우3동 +552,21,부산광역시,100,사하구,51,괴정1동 +553,21,부산광역시,100,사하구,52,괴정2동 +554,21,부산광역시,100,사하구,53,괴정3동 +555,21,부산광역시,100,사하구,54,괴정4동 +556,21,부산광역시,100,사하구,55,당리동 +557,21,부산광역시,100,사하구,56,하단1동 +558,21,부산광역시,100,사하구,57,하단2동 +559,21,부산광역시,100,사하구,58,신평1동 +560,21,부산광역시,100,사하구,59,신평2동 +561,21,부산광역시,100,사하구,60,장림1동 +562,21,부산광역시,100,사하구,61,장림2동 +563,21,부산광역시,100,사하구,62,다대1동 +564,21,부산광역시,100,사하구,63,다대2동 +565,21,부산광역시,100,사하구,64,구평동 +566,21,부산광역시,100,사하구,65,감천1동 +567,21,부산광역시,100,사하구,66,감천2동 +568,21,부산광역시,110,금정구,51,서1동 +569,21,부산광역시,110,금정구,52,서2동 +570,21,부산광역시,110,금정구,57,부곡1동 +571,21,부산광역시,110,금정구,58,부곡2동 +572,21,부산광역시,110,금정구,59,부곡3동 +573,21,부산광역시,110,금정구,60,부곡4동 +574,21,부산광역시,110,금정구,61,장전1동 +575,21,부산광역시,110,금정구,64,선두구동 +576,21,부산광역시,110,금정구,67,청룡노포동 +577,21,부산광역시,110,금정구,68,남산동 +578,21,부산광역시,110,금정구,69,구서1동 +579,21,부산광역시,110,금정구,70,구서2동 +580,21,부산광역시,110,금정구,71,금성동 +581,21,부산광역시,110,금정구,72,서3동 +582,21,부산광역시,110,금정구,73,금사회동동 +583,21,부산광역시,110,금정구,74,장전2동 +584,21,부산광역시,120,강서구,51,대저1동 +585,21,부산광역시,120,강서구,52,대저2동 +586,21,부산광역시,120,강서구,53,강동동 +587,21,부산광역시,120,강서구,55,가락동 +588,21,부산광역시,120,강서구,56,녹산동 +589,21,부산광역시,120,강서구,58,가덕도동 +590,21,부산광역시,120,강서구,59,명지1동 +591,21,부산광역시,120,강서구,60,명지2동 +592,21,부산광역시,130,연제구,51,거제1동 +593,21,부산광역시,130,연제구,52,거제2동 +594,21,부산광역시,130,연제구,53,거제3동 +595,21,부산광역시,130,연제구,54,거제4동 +596,21,부산광역시,130,연제구,55,연산1동 +597,21,부산광역시,130,연제구,56,연산2동 +598,21,부산광역시,130,연제구,57,연산3동 +599,21,부산광역시,130,연제구,58,연산4동 +600,21,부산광역시,130,연제구,59,연산5동 +601,21,부산광역시,130,연제구,60,연산6동 +602,21,부산광역시,130,연제구,62,연산8동 +603,21,부산광역시,130,연제구,63,연산9동 +604,21,부산광역시,140,수영구,51,남천1동 +605,21,부산광역시,140,수영구,52,남천2동 +606,21,부산광역시,140,수영구,53,수영동 +607,21,부산광역시,140,수영구,54,망미1동 +608,21,부산광역시,140,수영구,55,망미2동 +609,21,부산광역시,140,수영구,56,광안1동 +610,21,부산광역시,140,수영구,57,광안2동 +611,21,부산광역시,140,수영구,58,광안3동 +612,21,부산광역시,140,수영구,59,광안4동 +613,21,부산광역시,140,수영구,60,민락동 +614,21,부산광역시,150,사상구,51,삼락동 +615,21,부산광역시,150,사상구,52,모라1동 +616,21,부산광역시,150,사상구,54,모라3동 +617,21,부산광역시,150,사상구,55,덕포1동 +618,21,부산광역시,150,사상구,56,덕포2동 +619,21,부산광역시,150,사상구,57,괘법동 +620,21,부산광역시,150,사상구,60,주례1동 +621,21,부산광역시,150,사상구,61,주례2동 +622,21,부산광역시,150,사상구,62,주례3동 +623,21,부산광역시,150,사상구,63,학장동 +624,21,부산광역시,150,사상구,64,엄궁동 +625,21,부산광역시,150,사상구,65,감전동 +626,21,부산광역시,310,기장군,11,기장읍 +627,21,부산광역시,310,기장군,12,장안읍 +628,21,부산광역시,310,기장군,13,정관읍 +629,21,부산광역시,310,기장군,31,일광면 +630,21,부산광역시,310,기장군,33,철마면 +631,22,대구광역시,010,중구,54,삼덕동 +632,22,대구광역시,010,중구,56,성내1동 +633,22,대구광역시,010,중구,59,성내2동 +634,22,대구광역시,010,중구,61,성내3동 +635,22,대구광역시,010,중구,62,대신동 +636,22,대구광역시,010,중구,64,남산1동 +637,22,대구광역시,010,중구,65,남산2동 +638,22,대구광역시,010,중구,66,남산3동 +639,22,대구광역시,010,중구,67,남산4동 +640,22,대구광역시,010,중구,68,대봉1동 +641,22,대구광역시,010,중구,69,대봉2동 +642,22,대구광역시,010,중구,70,동인동 +643,22,대구광역시,020,동구,51,신암1동 +644,22,대구광역시,020,동구,52,신암2동 +645,22,대구광역시,020,동구,53,신암3동 +646,22,대구광역시,020,동구,54,신암4동 +647,22,대구광역시,020,동구,55,신암5동 +648,22,대구광역시,020,동구,56,신천1·2동 +649,22,대구광역시,020,동구,58,신천3동 +650,22,대구광역시,020,동구,59,신천4동 +651,22,대구광역시,020,동구,60,효목1동 +652,22,대구광역시,020,동구,61,효목2동 +653,22,대구광역시,020,동구,62,도평동 +654,22,대구광역시,020,동구,63,불로·봉무동 +655,22,대구광역시,020,동구,65,지저동 +656,22,대구광역시,020,동구,66,동촌동 +657,22,대구광역시,020,동구,68,방촌동 +658,22,대구광역시,020,동구,69,해안동 +659,22,대구광역시,020,동구,71,공산동 +660,22,대구광역시,020,동구,73,안심1동 +661,22,대구광역시,020,동구,74,안심2동 +662,22,대구광역시,020,동구,76,안심3동 +663,22,대구광역시,020,동구,77,안심4동 +664,22,대구광역시,020,동구,78,혁신동 +665,22,대구광역시,030,서구,51,내당1동 +666,22,대구광역시,030,서구,52,내당2·3동 +667,22,대구광역시,030,서구,53,내당4동 +668,22,대구광역시,030,서구,54,비산1동 +669,22,대구광역시,030,서구,55,비산2·3동 +670,22,대구광역시,030,서구,56,비산4동 +671,22,대구광역시,030,서구,57,비산5동 +672,22,대구광역시,030,서구,58,비산6동 +673,22,대구광역시,030,서구,59,비산7동 +674,22,대구광역시,030,서구,60,평리1동 +675,22,대구광역시,030,서구,61,평리2동 +676,22,대구광역시,030,서구,62,평리3동 +677,22,대구광역시,030,서구,63,평리4동 +678,22,대구광역시,030,서구,64,평리5동 +679,22,대구광역시,030,서구,65,평리6동 +680,22,대구광역시,030,서구,66,상중이동 +681,22,대구광역시,030,서구,68,원대동 +682,22,대구광역시,040,남구,51,이천동 +683,22,대구광역시,040,남구,53,봉덕1동 +684,22,대구광역시,040,남구,54,봉덕2동 +685,22,대구광역시,040,남구,55,봉덕3동 +686,22,대구광역시,040,남구,56,대명1동 +687,22,대구광역시,040,남구,57,대명2동 +688,22,대구광역시,040,남구,58,대명3동 +689,22,대구광역시,040,남구,59,대명4동 +690,22,대구광역시,040,남구,60,대명5동 +691,22,대구광역시,040,남구,61,대명6동 +692,22,대구광역시,040,남구,64,대명9동 +693,22,대구광역시,040,남구,65,대명10동 +694,22,대구광역시,040,남구,66,대명11동 +695,22,대구광역시,050,북구,51,고성동 +696,22,대구광역시,050,북구,52,칠성동 +697,22,대구광역시,050,북구,55,침산1동 +698,22,대구광역시,050,북구,56,침산2동 +699,22,대구광역시,050,북구,57,침산3동 +700,22,대구광역시,050,북구,61,산격1동 +701,22,대구광역시,050,북구,62,산격2동 +702,22,대구광역시,050,북구,63,산격3동 +703,22,대구광역시,050,북구,64,산격4동 +704,22,대구광역시,050,북구,65,복현1동 +705,22,대구광역시,050,북구,66,복현2동 +706,22,대구광역시,050,북구,70,검단동 +707,22,대구광역시,050,북구,71,무태조야동 +708,22,대구광역시,050,북구,74,태전2동 +709,22,대구광역시,050,북구,75,관문동 +710,22,대구광역시,050,북구,76,읍내동 +711,22,대구광역시,050,북구,77,관음동 +712,22,대구광역시,050,북구,78,태전1동 +713,22,대구광역시,050,북구,79,구암동 +714,22,대구광역시,050,북구,81,노원동 +715,22,대구광역시,050,북구,82,동천동 +716,22,대구광역시,050,북구,83,국우동 +717,22,대구광역시,050,북구,84,대현동 +718,22,대구광역시,060,수성구,51,범어1동 +719,22,대구광역시,060,수성구,52,범어2동 +720,22,대구광역시,060,수성구,53,범어3동 +721,22,대구광역시,060,수성구,54,범어4동 +722,22,대구광역시,060,수성구,55,만촌1동 +723,22,대구광역시,060,수성구,56,만촌2동 +724,22,대구광역시,060,수성구,57,만촌3동 +725,22,대구광역시,060,수성구,58,수성1가동 +726,22,대구광역시,060,수성구,59,수성2·3가동 +727,22,대구광역시,060,수성구,60,수성4가동 +728,22,대구광역시,060,수성구,61,황금1동 +729,22,대구광역시,060,수성구,62,황금2동 +730,22,대구광역시,060,수성구,63,중동 +731,22,대구광역시,060,수성구,64,상동 +732,22,대구광역시,060,수성구,65,파동 +733,22,대구광역시,060,수성구,66,두산동 +734,22,대구광역시,060,수성구,67,지산1동 +735,22,대구광역시,060,수성구,68,지산2동 +736,22,대구광역시,060,수성구,69,범물1동 +737,22,대구광역시,060,수성구,70,범물2동 +738,22,대구광역시,060,수성구,71,고산1동 +739,22,대구광역시,060,수성구,72,고산2동 +740,22,대구광역시,060,수성구,73,고산3동 +741,22,대구광역시,070,달서구,55,두류3동 +742,22,대구광역시,070,달서구,56,본리동 +743,22,대구광역시,070,달서구,57,감삼동 +744,22,대구광역시,070,달서구,58,죽전동 +745,22,대구광역시,070,달서구,59,장기동 +746,22,대구광역시,070,달서구,60,이곡1동 +747,22,대구광역시,070,달서구,61,신당동 +748,22,대구광역시,070,달서구,62,월성1동 +749,22,대구광역시,070,달서구,63,월성2동 +750,22,대구광역시,070,달서구,64,진천동 +751,22,대구광역시,070,달서구,65,상인1동 +752,22,대구광역시,070,달서구,66,상인2동 +753,22,대구광역시,070,달서구,67,상인3동 +754,22,대구광역시,070,달서구,68,도원동 +755,22,대구광역시,070,달서구,69,송현1동 +756,22,대구광역시,070,달서구,70,송현2동 +757,22,대구광역시,070,달서구,71,본동 +758,22,대구광역시,070,달서구,72,용산1동 +759,22,대구광역시,070,달서구,73,용산2동 +760,22,대구광역시,070,달서구,74,이곡2동 +761,22,대구광역시,070,달서구,75,성당동 +762,22,대구광역시,070,달서구,76,두류1·2동 +763,22,대구광역시,310,달성군,11,화원읍 +764,22,대구광역시,310,달성군,12,논공읍 +765,22,대구광역시,310,달성군,13,다사읍 +766,22,대구광역시,310,달성군,14,유가읍 +767,22,대구광역시,310,달성군,15,옥포읍 +768,22,대구광역시,310,달성군,16,현풍읍 +769,22,대구광역시,310,달성군,31,가창면 +770,22,대구광역시,310,달성군,32,하빈면 +771,22,대구광역시,310,달성군,36,구지면 +772,23,인천광역시,010,중구,52,연안동 +773,23,인천광역시,010,중구,53,신포동 +774,23,인천광역시,010,중구,54,신흥동 +775,23,인천광역시,010,중구,56,도원동 +776,23,인천광역시,010,중구,57,율목동 +777,23,인천광역시,010,중구,58,동인천동 +778,23,인천광역시,010,중구,60,북성동 +779,23,인천광역시,010,중구,61,송월동 +780,23,인천광역시,010,중구,63,용유동 +781,23,인천광역시,010,중구,64,운서동 +782,23,인천광역시,010,중구,65,영종동 +783,23,인천광역시,010,중구,66,영종1동 +784,23,인천광역시,020,동구,51,만석동 +785,23,인천광역시,020,동구,52,화수1·화평동 +786,23,인천광역시,020,동구,53,화수2동 +787,23,인천광역시,020,동구,55,송현1·2동 +788,23,인천광역시,020,동구,57,송현3동 +789,23,인천광역시,020,동구,58,송림1동 +790,23,인천광역시,020,동구,59,송림2동 +791,23,인천광역시,020,동구,60,송림3·5동 +792,23,인천광역시,020,동구,61,송림4동 +793,23,인천광역시,020,동구,63,송림6동 +794,23,인천광역시,020,동구,64,금창동 +795,23,인천광역시,040,연수구,51,옥련1동 +796,23,인천광역시,040,연수구,52,선학동 +797,23,인천광역시,040,연수구,53,연수1동 +798,23,인천광역시,040,연수구,54,연수2동 +799,23,인천광역시,040,연수구,55,연수3동 +800,23,인천광역시,040,연수구,56,청학동 +801,23,인천광역시,040,연수구,57,동춘1동 +802,23,인천광역시,040,연수구,58,동춘2동 +803,23,인천광역시,040,연수구,59,동춘3동 +804,23,인천광역시,040,연수구,60,옥련2동 +805,23,인천광역시,040,연수구,64,송도1동 +806,23,인천광역시,040,연수구,65,송도3동 +807,23,인천광역시,040,연수구,66,송도2동 +808,23,인천광역시,040,연수구,68,송도4동 +809,23,인천광역시,040,연수구,69,송도5동 +810,23,인천광역시,050,남동구,51,구월1동 +811,23,인천광역시,050,남동구,52,구월2동 +812,23,인천광역시,050,남동구,53,구월3동 +813,23,인천광역시,050,남동구,54,구월4동 +814,23,인천광역시,050,남동구,55,간석1동 +815,23,인천광역시,050,남동구,56,간석2동 +816,23,인천광역시,050,남동구,57,간석3동 +817,23,인천광역시,050,남동구,58,간석4동 +818,23,인천광역시,050,남동구,59,만수1동 +819,23,인천광역시,050,남동구,60,만수2동 +820,23,인천광역시,050,남동구,61,만수3동 +821,23,인천광역시,050,남동구,62,만수4동 +822,23,인천광역시,050,남동구,63,만수5동 +823,23,인천광역시,050,남동구,64,만수6동 +824,23,인천광역시,050,남동구,67,남촌도림동 +825,23,인천광역시,050,남동구,72,논현1동 +826,23,인천광역시,050,남동구,73,논현2동 +827,23,인천광역시,050,남동구,74,논현고잔동 +828,23,인천광역시,050,남동구,75,장수서창동 +829,23,인천광역시,050,남동구,76,서창2동 +830,23,인천광역시,060,부평구,51,부평1동 +831,23,인천광역시,060,부평구,52,부평2동 +832,23,인천광역시,060,부평구,53,부평3동 +833,23,인천광역시,060,부평구,54,부평4동 +834,23,인천광역시,060,부평구,55,부평5동 +835,23,인천광역시,060,부평구,56,부평6동 +836,23,인천광역시,060,부평구,57,산곡1동 +837,23,인천광역시,060,부평구,58,산곡2동 +838,23,인천광역시,060,부평구,59,산곡3동 +839,23,인천광역시,060,부평구,60,산곡4동 +840,23,인천광역시,060,부평구,61,청천1동 +841,23,인천광역시,060,부평구,62,청천2동 +842,23,인천광역시,060,부평구,63,갈산1동 +843,23,인천광역시,060,부평구,64,갈산2동 +844,23,인천광역시,060,부평구,65,삼산1동 +845,23,인천광역시,060,부평구,66,부개1동 +846,23,인천광역시,060,부평구,67,부개2동 +847,23,인천광역시,060,부평구,68,부개3동 +848,23,인천광역시,060,부평구,69,일신동 +849,23,인천광역시,060,부평구,70,십정1동 +850,23,인천광역시,060,부평구,71,십정2동 +851,23,인천광역시,060,부평구,72,삼산2동 +852,23,인천광역시,070,계양구,51,효성1동 +853,23,인천광역시,070,계양구,52,효성2동 +854,23,인천광역시,070,계양구,53,계산1동 +855,23,인천광역시,070,계양구,54,계산2동 +856,23,인천광역시,070,계양구,55,계산3동 +857,23,인천광역시,070,계양구,56,작전1동 +858,23,인천광역시,070,계양구,57,작전2동 +859,23,인천광역시,070,계양구,58,작전서운동 +860,23,인천광역시,070,계양구,61,계양2동 +861,23,인천광역시,070,계양구,62,계산4동 +862,23,인천광역시,070,계양구,63,계양1동 +863,23,인천광역시,070,계양구,64,계양3동 +864,23,인천광역시,080,서구,51,검암경서동 +865,23,인천광역시,080,서구,53,연희동 +866,23,인천광역시,080,서구,54,가정1동 +867,23,인천광역시,080,서구,55,가정2동 +868,23,인천광역시,080,서구,56,가정3동 +869,23,인천광역시,080,서구,58,석남1동 +870,23,인천광역시,080,서구,59,석남2동 +871,23,인천광역시,080,서구,60,석남3동 +872,23,인천광역시,080,서구,62,가좌1동 +873,23,인천광역시,080,서구,63,가좌2동 +874,23,인천광역시,080,서구,64,가좌3동 +875,23,인천광역시,080,서구,65,가좌4동 +876,23,인천광역시,080,서구,73,신현원창동 +877,23,인천광역시,080,서구,74,청라1동 +878,23,인천광역시,080,서구,78,청라2동 +879,23,인천광역시,080,서구,79,청라3동 +880,23,인천광역시,080,서구,80,검단동 +881,23,인천광역시,080,서구,81,불로대곡동 +882,23,인천광역시,080,서구,84,오류왕길동 +883,23,인천광역시,080,서구,85,당하동 +884,23,인천광역시,080,서구,86,마전동 +885,23,인천광역시,080,서구,87,원당동 +886,23,인천광역시,080,서구,88,아라동 +887,23,인천광역시,090,미추홀구,52,숭의2동 +888,23,인천광역시,090,미추홀구,54,숭의4동 +889,23,인천광역시,090,미추홀구,56,용현2동 +890,23,인천광역시,090,미추홀구,57,용현3동 +891,23,인천광역시,090,미추홀구,59,용현5동 +892,23,인천광역시,090,미추홀구,60,학익1동 +893,23,인천광역시,090,미추홀구,61,학익2동 +894,23,인천광역시,090,미추홀구,62,도화1동 +895,23,인천광역시,090,미추홀구,65,주안1동 +896,23,인천광역시,090,미추홀구,66,주안2동 +897,23,인천광역시,090,미추홀구,67,주안3동 +898,23,인천광역시,090,미추홀구,68,주안4동 +899,23,인천광역시,090,미추홀구,69,주안5동 +900,23,인천광역시,090,미추홀구,70,주안6동 +901,23,인천광역시,090,미추홀구,71,주안7동 +902,23,인천광역시,090,미추홀구,72,주안8동 +903,23,인천광역시,090,미추홀구,73,관교동 +904,23,인천광역시,090,미추홀구,74,문학동 +905,23,인천광역시,090,미추홀구,75,숭의1·3동 +906,23,인천광역시,090,미추홀구,76,용현1·4동 +907,23,인천광역시,090,미추홀구,77,도화2·3동 +908,23,인천광역시,310,강화군,11,강화읍 +909,23,인천광역시,310,강화군,31,선원면 +910,23,인천광역시,310,강화군,32,불은면 +911,23,인천광역시,310,강화군,33,길상면 +912,23,인천광역시,310,강화군,34,화도면 +913,23,인천광역시,310,강화군,35,양도면 +914,23,인천광역시,310,강화군,36,내가면 +915,23,인천광역시,310,강화군,37,하점면 +916,23,인천광역시,310,강화군,38,양사면 +917,23,인천광역시,310,강화군,39,송해면 +918,23,인천광역시,310,강화군,40,교동면 +919,23,인천광역시,310,강화군,41,삼산면 +920,23,인천광역시,310,강화군,42,서도면 +921,23,인천광역시,320,옹진군,31,북도면 +922,23,인천광역시,320,옹진군,32,연평면 +923,23,인천광역시,320,옹진군,33,백령면 +924,23,인천광역시,320,옹진군,34,대청면 +925,23,인천광역시,320,옹진군,35,덕적면 +926,23,인천광역시,320,옹진군,36,자월면 +927,23,인천광역시,320,옹진군,37,영흥면 +928,24,광주광역시,010,동구,51,충장동 +929,24,광주광역시,010,동구,54,동명동 +930,24,광주광역시,010,동구,56,계림1동 +931,24,광주광역시,010,동구,58,계림2동 +932,24,광주광역시,010,동구,59,산수1동 +933,24,광주광역시,010,동구,61,산수2동 +934,24,광주광역시,010,동구,62,지산1동 +935,24,광주광역시,010,동구,63,지산2동 +936,24,광주광역시,010,동구,64,서남동 +937,24,광주광역시,010,동구,68,학동 +938,24,광주광역시,010,동구,71,학운동 +939,24,광주광역시,010,동구,72,지원1동 +940,24,광주광역시,010,동구,73,지원2동 +941,24,광주광역시,020,서구,51,양동 +942,24,광주광역시,020,서구,53,양3동 +943,24,광주광역시,020,서구,54,농성1동 +944,24,광주광역시,020,서구,55,농성2동 +945,24,광주광역시,020,서구,56,광천동 +946,24,광주광역시,020,서구,57,유덕동 +947,24,광주광역시,020,서구,58,상무1동 +948,24,광주광역시,020,서구,59,상무2동 +949,24,광주광역시,020,서구,60,화정1동 +950,24,광주광역시,020,서구,61,화정2동 +951,24,광주광역시,020,서구,62,화정3동 +952,24,광주광역시,020,서구,63,화정4동 +953,24,광주광역시,020,서구,64,서창동 +954,24,광주광역시,020,서구,66,치평동 +955,24,광주광역시,020,서구,67,풍암동 +956,24,광주광역시,020,서구,68,금호1동 +957,24,광주광역시,020,서구,69,금호2동 +958,24,광주광역시,020,서구,70,동천동 +959,24,광주광역시,030,남구,51,양림동 +960,24,광주광역시,030,남구,52,방림1동 +961,24,광주광역시,030,남구,53,방림2동 +962,24,광주광역시,030,남구,54,사직동 +963,24,광주광역시,030,남구,57,월산동 +964,24,광주광역시,030,남구,60,월산4동 +965,24,광주광역시,030,남구,61,월산5동 +966,24,광주광역시,030,남구,62,백운1동 +967,24,광주광역시,030,남구,63,백운2동 +968,24,광주광역시,030,남구,64,주월1동 +969,24,광주광역시,030,남구,65,주월2동 +970,24,광주광역시,030,남구,66,효덕동 +971,24,광주광역시,030,남구,67,송암동 +972,24,광주광역시,030,남구,68,봉선1동 +973,24,광주광역시,030,남구,69,봉선2동 +974,24,광주광역시,030,남구,70,대촌동 +975,24,광주광역시,040,북구,51,중흥1동 +976,24,광주광역시,040,북구,52,중흥2동 +977,24,광주광역시,040,북구,53,중흥3동 +978,24,광주광역시,040,북구,54,중앙동 +979,24,광주광역시,040,북구,55,임동 +980,24,광주광역시,040,북구,56,신안동 +981,24,광주광역시,040,북구,57,용봉동 +982,24,광주광역시,040,북구,58,운암1동 +983,24,광주광역시,040,북구,59,운암2동 +984,24,광주광역시,040,북구,60,운암3동 +985,24,광주광역시,040,북구,61,동림동 +986,24,광주광역시,040,북구,62,우산동 +987,24,광주광역시,040,북구,63,풍향동 +988,24,광주광역시,040,북구,64,문화동 +989,24,광주광역시,040,북구,65,문흥1동 +990,24,광주광역시,040,북구,66,문흥2동 +991,24,광주광역시,040,북구,67,두암1동 +992,24,광주광역시,040,북구,68,두암2동 +993,24,광주광역시,040,북구,69,두암3동 +994,24,광주광역시,040,북구,70,삼각동 +995,24,광주광역시,040,북구,71,매곡동 +996,24,광주광역시,040,북구,72,오치1동 +997,24,광주광역시,040,북구,73,오치2동 +998,24,광주광역시,040,북구,74,석곡동 +999,24,광주광역시,040,북구,78,일곡동 +1000,24,광주광역시,040,북구,80,양산동 +1001,24,광주광역시,040,북구,81,건국동 +1002,24,광주광역시,040,북구,82,신용동 +1003,24,광주광역시,050,광산구,51,송정1동 +1004,24,광주광역시,050,광산구,52,송정2동 +1005,24,광주광역시,050,광산구,54,도산동 +1006,24,광주광역시,050,광산구,55,신흥동 +1007,24,광주광역시,050,광산구,56,어룡동 +1008,24,광주광역시,050,광산구,58,우산동 +1009,24,광주광역시,050,광산구,59,월곡1동 +1010,24,광주광역시,050,광산구,60,월곡2동 +1011,24,광주광역시,050,광산구,61,비아동 +1012,24,광주광역시,050,광산구,63,하남동 +1013,24,광주광역시,050,광산구,64,임곡동 +1014,24,광주광역시,050,광산구,65,동곡동 +1015,24,광주광역시,050,광산구,66,평동 +1016,24,광주광역시,050,광산구,67,삼도동 +1017,24,광주광역시,050,광산구,68,본량동 +1018,24,광주광역시,050,광산구,69,첨단1동 +1019,24,광주광역시,050,광산구,70,첨단2동 +1020,24,광주광역시,050,광산구,71,운남동 +1021,24,광주광역시,050,광산구,73,신창동 +1022,24,광주광역시,050,광산구,74,신가동 +1023,24,광주광역시,050,광산구,75,수완동 +1024,25,대전광역시,010,동구,53,효동 +1025,25,대전광역시,010,동구,55,판암1동 +1026,25,대전광역시,010,동구,56,판암2동 +1027,25,대전광역시,010,동구,57,용운동 +1028,25,대전광역시,010,동구,60,자양동 +1029,25,대전광역시,010,동구,63,가양1동 +1030,25,대전광역시,010,동구,64,가양2동 +1031,25,대전광역시,010,동구,65,용전동 +1032,25,대전광역시,010,동구,68,홍도동 +1033,25,대전광역시,010,동구,73,대청동 +1034,25,대전광역시,010,동구,75,산내동 +1035,25,대전광역시,010,동구,76,중앙동 +1036,25,대전광역시,010,동구,77,신인동 +1037,25,대전광역시,010,동구,78,대동 +1038,25,대전광역시,010,동구,79,성남동 +1039,25,대전광역시,010,동구,80,삼성동 +1040,25,대전광역시,020,중구,51,은행선화동 +1041,25,대전광역시,020,중구,53,목동 +1042,25,대전광역시,020,중구,54,중촌동 +1043,25,대전광역시,020,중구,55,대흥동 +1044,25,대전광역시,020,중구,56,문창동 +1045,25,대전광역시,020,중구,57,석교동 +1046,25,대전광역시,020,중구,58,대사동 +1047,25,대전광역시,020,중구,59,부사동 +1048,25,대전광역시,020,중구,60,용두동 +1049,25,대전광역시,020,중구,62,오류동 +1050,25,대전광역시,020,중구,63,태평1동 +1051,25,대전광역시,020,중구,64,태평2동 +1052,25,대전광역시,020,중구,65,유천1동 +1053,25,대전광역시,020,중구,66,유천2동 +1054,25,대전광역시,020,중구,67,문화1동 +1055,25,대전광역시,020,중구,68,문화2동 +1056,25,대전광역시,020,중구,69,산성동 +1057,25,대전광역시,030,서구,51,복수동 +1058,25,대전광역시,030,서구,52,도마1동 +1059,25,대전광역시,030,서구,53,도마2동 +1060,25,대전광역시,030,서구,54,정림동 +1061,25,대전광역시,030,서구,55,변동 +1062,25,대전광역시,030,서구,56,용문동 +1063,25,대전광역시,030,서구,57,탄방동 +1064,25,대전광역시,030,서구,59,둔산1동 +1065,25,대전광역시,030,서구,60,둔산2동 +1066,25,대전광역시,030,서구,61,괴정동 +1067,25,대전광역시,030,서구,62,가장동 +1068,25,대전광역시,030,서구,63,내동 +1069,25,대전광역시,030,서구,64,갈마1동 +1070,25,대전광역시,030,서구,65,갈마2동 +1071,25,대전광역시,030,서구,66,월평1동 +1072,25,대전광역시,030,서구,67,월평2동 +1073,25,대전광역시,030,서구,68,월평3동 +1074,25,대전광역시,030,서구,69,만년동 +1075,25,대전광역시,030,서구,70,가수원동 +1076,25,대전광역시,030,서구,71,기성동 +1077,25,대전광역시,030,서구,72,관저1동 +1078,25,대전광역시,030,서구,73,관저2동 +1079,25,대전광역시,030,서구,74,둔산3동 +1080,25,대전광역시,040,유성구,51,진잠동 +1081,25,대전광역시,040,유성구,54,온천2동 +1082,25,대전광역시,040,유성구,55,신성동 +1083,25,대전광역시,040,유성구,57,전민동 +1084,25,대전광역시,040,유성구,59,노은1동 +1085,25,대전광역시,040,유성구,61,구즉동 +1086,25,대전광역시,040,유성구,63,관평동 +1087,25,대전광역시,040,유성구,64,온천1동 +1088,25,대전광역시,040,유성구,65,원신흥동 +1089,25,대전광역시,040,유성구,66,노은2동 +1090,25,대전광역시,040,유성구,67,노은3동 +1091,25,대전광역시,050,대덕구,51,오정동 +1092,25,대전광역시,050,대덕구,52,대화동 +1093,25,대전광역시,050,대덕구,53,회덕동 +1094,25,대전광역시,050,대덕구,54,비래동 +1095,25,대전광역시,050,대덕구,55,중리동 +1096,25,대전광역시,050,대덕구,56,법1동 +1097,25,대전광역시,050,대덕구,57,법2동 +1098,25,대전광역시,050,대덕구,58,신탄진동 +1099,25,대전광역시,050,대덕구,59,석봉동 +1100,25,대전광역시,050,대덕구,60,덕암동 +1101,25,대전광역시,050,대덕구,61,목상동 +1102,25,대전광역시,050,대덕구,62,송촌동 +1103,26,울산광역시,010,중구,51,학성동 +1104,26,울산광역시,010,중구,52,반구1동 +1105,26,울산광역시,010,중구,53,반구2동 +1106,26,울산광역시,010,중구,54,복산1동 +1107,26,울산광역시,010,중구,55,복산2동 +1108,26,울산광역시,010,중구,59,우정동 +1109,26,울산광역시,010,중구,60,태화동 +1110,26,울산광역시,010,중구,61,다운동 +1111,26,울산광역시,010,중구,62,병영1동 +1112,26,울산광역시,010,중구,63,병영2동 +1113,26,울산광역시,010,중구,64,약사동 +1114,26,울산광역시,010,중구,66,성안동 +1115,26,울산광역시,010,중구,67,중앙동 +1116,26,울산광역시,020,남구,51,신정1동 +1117,26,울산광역시,020,남구,52,신정2동 +1118,26,울산광역시,020,남구,53,신정3동 +1119,26,울산광역시,020,남구,54,신정4동 +1120,26,울산광역시,020,남구,55,신정5동 +1121,26,울산광역시,020,남구,56,달동 +1122,26,울산광역시,020,남구,57,삼산동 +1123,26,울산광역시,020,남구,58,삼호동 +1124,26,울산광역시,020,남구,59,무거동 +1125,26,울산광역시,020,남구,60,옥동 +1126,26,울산광역시,020,남구,61,야음장생포동 +1127,26,울산광역시,020,남구,62,대현동 +1128,26,울산광역시,020,남구,63,수암동 +1129,26,울산광역시,020,남구,64,선암동 +1130,26,울산광역시,030,동구,51,방어동 +1131,26,울산광역시,030,동구,52,일산동 +1132,26,울산광역시,030,동구,53,화정동 +1133,26,울산광역시,030,동구,54,대송동 +1134,26,울산광역시,030,동구,55,전하1동 +1135,26,울산광역시,030,동구,58,남목1동 +1136,26,울산광역시,030,동구,59,남목2동 +1137,26,울산광역시,030,동구,60,남목3동 +1138,26,울산광역시,030,동구,61,전하2동 +1139,26,울산광역시,040,북구,51,농소1동 +1140,26,울산광역시,040,북구,52,농소2동 +1141,26,울산광역시,040,북구,53,농소3동 +1142,26,울산광역시,040,북구,54,강동동 +1143,26,울산광역시,040,북구,56,효문동 +1144,26,울산광역시,040,북구,57,송정동 +1145,26,울산광역시,040,북구,58,양정동 +1146,26,울산광역시,040,북구,59,염포동 +1147,26,울산광역시,310,울주군,11,온산읍 +1148,26,울산광역시,310,울주군,12,언양읍 +1149,26,울산광역시,310,울주군,13,온양읍 +1150,26,울산광역시,310,울주군,14,범서읍 +1151,26,울산광역시,310,울주군,15,청량읍 +1152,26,울산광역시,310,울주군,16,삼남읍 +1153,26,울산광역시,310,울주군,31,서생면 +1154,26,울산광역시,310,울주군,34,웅촌면 +1155,26,울산광역시,310,울주군,36,두동면 +1156,26,울산광역시,310,울주군,37,두서면 +1157,26,울산광역시,310,울주군,38,상북면 +1158,26,울산광역시,310,울주군,40,삼동면 +1159,29,세종특별자치시,010,세종시,11,조치원읍 +1160,29,세종특별자치시,010,세종시,31,연기면 +1161,29,세종특별자치시,010,세종시,32,연동면 +1162,29,세종특별자치시,010,세종시,33,부강면 +1163,29,세종특별자치시,010,세종시,34,금남면 +1164,29,세종특별자치시,010,세종시,35,장군면 +1165,29,세종특별자치시,010,세종시,36,연서면 +1166,29,세종특별자치시,010,세종시,37,전의면 +1167,29,세종특별자치시,010,세종시,38,전동면 +1168,29,세종특별자치시,010,세종시,39,소정면 +1169,29,세종특별자치시,010,세종시,53,도담동 +1170,29,세종특별자치시,010,세종시,56,종촌동 +1171,29,세종특별자치시,010,세종시,59,아름동 +1172,29,세종특별자치시,010,세종시,60,고운동 +1173,29,세종특별자치시,010,세종시,61,한솔동 +1174,29,세종특별자치시,010,세종시,64,대평동 +1175,29,세종특별자치시,010,세종시,65,소담동 +1176,29,세종특별자치시,010,세종시,66,보람동 +1177,29,세종특별자치시,010,세종시,67,새롬동 +1178,29,세종특별자치시,010,세종시,68,다정동 +1179,31,경기도,011,수원시 장안구,54,파장동 +1180,31,경기도,011,수원시 장안구,55,율천동 +1181,31,경기도,011,수원시 장안구,56,정자1동 +1182,31,경기도,011,수원시 장안구,57,정자2동 +1183,31,경기도,011,수원시 장안구,58,영화동 +1184,31,경기도,011,수원시 장안구,59,송죽동 +1185,31,경기도,011,수원시 장안구,60,조원1동 +1186,31,경기도,011,수원시 장안구,61,연무동 +1187,31,경기도,011,수원시 장안구,62,정자3동 +1188,31,경기도,011,수원시 장안구,63,조원2동 +1189,31,경기도,012,수원시 권선구,52,세류1동 +1190,31,경기도,012,수원시 권선구,53,세류2동 +1191,31,경기도,012,수원시 권선구,54,세류3동 +1192,31,경기도,012,수원시 권선구,55,평동 +1193,31,경기도,012,수원시 권선구,56,서둔동 +1194,31,경기도,012,수원시 권선구,57,구운동 +1195,31,경기도,012,수원시 권선구,60,권선1동 +1196,31,경기도,012,수원시 권선구,61,곡선동 +1197,31,경기도,012,수원시 권선구,62,입북동 +1198,31,경기도,012,수원시 권선구,64,권선2동 +1199,31,경기도,012,수원시 권선구,65,금곡동 +1200,31,경기도,012,수원시 권선구,66,호매실동 +1201,31,경기도,013,수원시 팔달구,53,지동 +1202,31,경기도,013,수원시 팔달구,54,우만1동 +1203,31,경기도,013,수원시 팔달구,55,우만2동 +1204,31,경기도,013,수원시 팔달구,56,인계동 +1205,31,경기도,013,수원시 팔달구,67,매교동 +1206,31,경기도,013,수원시 팔달구,68,매산동 +1207,31,경기도,013,수원시 팔달구,69,고등동 +1208,31,경기도,013,수원시 팔달구,70,화서1동 +1209,31,경기도,013,수원시 팔달구,71,화서2동 +1210,31,경기도,013,수원시 팔달구,72,행궁동 +1211,31,경기도,014,수원시 영통구,51,매탄1동 +1212,31,경기도,014,수원시 영통구,52,매탄2동 +1213,31,경기도,014,수원시 영통구,53,매탄3동 +1214,31,경기도,014,수원시 영통구,54,매탄4동 +1215,31,경기도,014,수원시 영통구,60,원천동 +1216,31,경기도,014,수원시 영통구,62,광교1동 +1217,31,경기도,014,수원시 영통구,63,광교2동 +1218,31,경기도,014,수원시 영통구,64,영통1동 +1219,31,경기도,014,수원시 영통구,65,영통2동 +1220,31,경기도,014,수원시 영통구,66,영통3동 +1221,31,경기도,014,수원시 영통구,67,망포1동 +1222,31,경기도,014,수원시 영통구,68,망포2동 +1223,31,경기도,021,성남시 수정구,51,신흥1동 +1224,31,경기도,021,성남시 수정구,52,신흥2동 +1225,31,경기도,021,성남시 수정구,53,신흥3동 +1226,31,경기도,021,성남시 수정구,54,태평1동 +1227,31,경기도,021,성남시 수정구,55,태평2동 +1228,31,경기도,021,성남시 수정구,56,태평3동 +1229,31,경기도,021,성남시 수정구,57,태평4동 +1230,31,경기도,021,성남시 수정구,58,수진1동 +1231,31,경기도,021,성남시 수정구,59,수진2동 +1232,31,경기도,021,성남시 수정구,60,단대동 +1233,31,경기도,021,성남시 수정구,61,산성동 +1234,31,경기도,021,성남시 수정구,62,양지동 +1235,31,경기도,021,성남시 수정구,64,신촌동 +1236,31,경기도,021,성남시 수정구,65,고등동 +1237,31,경기도,021,성남시 수정구,66,시흥동 +1238,31,경기도,021,성남시 수정구,67,복정동 +1239,31,경기도,021,성남시 수정구,68,위례동 +1240,31,경기도,022,성남시 중원구,51,성남동 +1241,31,경기도,022,성남시 중원구,53,금광1동 +1242,31,경기도,022,성남시 중원구,54,금광2동 +1243,31,경기도,022,성남시 중원구,55,은행1동 +1244,31,경기도,022,성남시 중원구,56,은행2동 +1245,31,경기도,022,성남시 중원구,57,상대원1동 +1246,31,경기도,022,성남시 중원구,58,상대원2동 +1247,31,경기도,022,성남시 중원구,59,상대원3동 +1248,31,경기도,022,성남시 중원구,60,하대원동 +1249,31,경기도,022,성남시 중원구,61,도촌동 +1250,31,경기도,022,성남시 중원구,62,중앙동 +1251,31,경기도,023,성남시 분당구,51,분당동 +1252,31,경기도,023,성남시 분당구,52,수내3동 +1253,31,경기도,023,성남시 분당구,53,수내1동 +1254,31,경기도,023,성남시 분당구,54,수내2동 +1255,31,경기도,023,성남시 분당구,55,정자2동 +1256,31,경기도,023,성남시 분당구,56,정자3동 +1257,31,경기도,023,성남시 분당구,58,서현1동 +1258,31,경기도,023,성남시 분당구,59,서현2동 +1259,31,경기도,023,성남시 분당구,60,이매1동 +1260,31,경기도,023,성남시 분당구,61,이매2동 +1261,31,경기도,023,성남시 분당구,62,야탑1동 +1262,31,경기도,023,성남시 분당구,63,야탑3동 +1263,31,경기도,023,성남시 분당구,64,야탑2동 +1264,31,경기도,023,성남시 분당구,67,구미동 +1265,31,경기도,023,성남시 분당구,68,운중동 +1266,31,경기도,023,성남시 분당구,71,금곡동 +1267,31,경기도,023,성남시 분당구,72,구미1동 +1268,31,경기도,023,성남시 분당구,74,삼평동 +1269,31,경기도,023,성남시 분당구,75,판교동 +1270,31,경기도,023,성남시 분당구,76,백현동 +1271,31,경기도,023,성남시 분당구,77,정자1동 +1272,31,경기도,023,성남시 분당구,78,정자동 +1273,31,경기도,030,의정부시,52,의정부2동 +1274,31,경기도,030,의정부시,55,호원1동 +1275,31,경기도,030,의정부시,56,장암동 +1276,31,경기도,030,의정부시,57,신곡1동 +1277,31,경기도,030,의정부시,58,신곡2동 +1278,31,경기도,030,의정부시,59,송산1동 +1279,31,경기도,030,의정부시,60,자금동 +1280,31,경기도,030,의정부시,64,녹양동 +1281,31,경기도,030,의정부시,65,호원2동 +1282,31,경기도,030,의정부시,67,흥선동 +1283,31,경기도,030,의정부시,68,가능동 +1284,31,경기도,030,의정부시,69,의정부1동 +1285,31,경기도,030,의정부시,70,송산2동 +1286,31,경기도,030,의정부시,71,송산3동 +1287,31,경기도,041,안양시 만안구,51,안양1동 +1288,31,경기도,041,안양시 만안구,52,안양2동 +1289,31,경기도,041,안양시 만안구,53,안양3동 +1290,31,경기도,041,안양시 만안구,54,안양4동 +1291,31,경기도,041,안양시 만안구,55,안양5동 +1292,31,경기도,041,안양시 만안구,56,안양6동 +1293,31,경기도,041,안양시 만안구,57,안양7동 +1294,31,경기도,041,안양시 만안구,58,안양8동 +1295,31,경기도,041,안양시 만안구,59,안양9동 +1296,31,경기도,041,안양시 만안구,60,석수1동 +1297,31,경기도,041,안양시 만안구,61,석수2동 +1298,31,경기도,041,안양시 만안구,62,석수3동 +1299,31,경기도,041,안양시 만안구,63,박달1동 +1300,31,경기도,041,안양시 만안구,64,박달2동 +1301,31,경기도,042,안양시 동안구,51,비산1동 +1302,31,경기도,042,안양시 동안구,52,비산2동 +1303,31,경기도,042,안양시 동안구,53,비산3동 +1304,31,경기도,042,안양시 동안구,54,부흥동 +1305,31,경기도,042,안양시 동안구,55,달안동 +1306,31,경기도,042,안양시 동안구,56,관양1동 +1307,31,경기도,042,안양시 동안구,57,관양2동 +1308,31,경기도,042,안양시 동안구,58,부림동 +1309,31,경기도,042,안양시 동안구,59,평촌동 +1310,31,경기도,042,안양시 동안구,60,평안동 +1311,31,경기도,042,안양시 동안구,61,귀인동 +1312,31,경기도,042,안양시 동안구,62,호계1동 +1313,31,경기도,042,안양시 동안구,63,호계2동 +1314,31,경기도,042,안양시 동안구,64,호계3동 +1315,31,경기도,042,안양시 동안구,65,범계동 +1316,31,경기도,042,안양시 동안구,66,신촌동 +1317,31,경기도,042,안양시 동안구,67,갈산동 +1318,31,경기도,050,부천시,87,심곡동 +1319,31,경기도,050,부천시,88,부천동 +1320,31,경기도,050,부천시,89,중동 +1321,31,경기도,050,부천시,90,신중동 +1322,31,경기도,050,부천시,91,상동 +1323,31,경기도,050,부천시,92,대산동 +1324,31,경기도,050,부천시,93,소사본동 +1325,31,경기도,050,부천시,94,범안동 +1326,31,경기도,050,부천시,95,성곡동 +1327,31,경기도,050,부천시,96,오정동 +1328,31,경기도,060,광명시,51,광명1동 +1329,31,경기도,060,광명시,52,광명2동 +1330,31,경기도,060,광명시,53,광명3동 +1331,31,경기도,060,광명시,54,광명4동 +1332,31,경기도,060,광명시,55,광명5동 +1333,31,경기도,060,광명시,56,광명6동 +1334,31,경기도,060,광명시,57,광명7동 +1335,31,경기도,060,광명시,58,철산1동 +1336,31,경기도,060,광명시,59,철산2동 +1337,31,경기도,060,광명시,60,철산3동 +1338,31,경기도,060,광명시,61,철산4동 +1339,31,경기도,060,광명시,62,하안1동 +1340,31,경기도,060,광명시,63,하안2동 +1341,31,경기도,060,광명시,64,하안3동 +1342,31,경기도,060,광명시,65,하안4동 +1343,31,경기도,060,광명시,66,소하1동 +1344,31,경기도,060,광명시,67,소하2동 +1345,31,경기도,060,광명시,68,학온동 +1346,31,경기도,070,평택시,11,팽성읍 +1347,31,경기도,070,평택시,12,안중읍 +1348,31,경기도,070,평택시,13,포승읍 +1349,31,경기도,070,평택시,14,청북읍 +1350,31,경기도,070,평택시,31,진위면 +1351,31,경기도,070,평택시,32,서탄면 +1352,31,경기도,070,평택시,33,고덕면 +1353,31,경기도,070,평택시,34,오성면 +1354,31,경기도,070,평택시,37,현덕면 +1355,31,경기도,070,평택시,51,중앙동 +1356,31,경기도,070,평택시,52,서정동 +1357,31,경기도,070,평택시,53,송탄동 +1358,31,경기도,070,평택시,55,지산동 +1359,31,경기도,070,평택시,56,송북동 +1360,31,경기도,070,평택시,57,신장1동 +1361,31,경기도,070,평택시,58,신장2동 +1362,31,경기도,070,평택시,59,신평동 +1363,31,경기도,070,평택시,60,원평동 +1364,31,경기도,070,평택시,61,통복동 +1365,31,경기도,070,평택시,62,비전1동 +1366,31,경기도,070,평택시,64,세교동 +1367,31,경기도,070,평택시,65,비전2동 +1368,31,경기도,070,평택시,66,용이동 +1369,31,경기도,080,동두천시,51,생연1동 +1370,31,경기도,080,동두천시,52,생연2동 +1371,31,경기도,080,동두천시,53,중앙동 +1372,31,경기도,080,동두천시,55,보산동 +1373,31,경기도,080,동두천시,56,불현동 +1374,31,경기도,080,동두천시,58,소요동 +1375,31,경기도,080,동두천시,60,상패동 +1376,31,경기도,080,동두천시,61,송내동 +1377,31,경기도,091,안산시 상록구,51,일동 +1378,31,경기도,091,안산시 상록구,54,본오1동 +1379,31,경기도,091,안산시 상록구,55,본오2동 +1380,31,경기도,091,안산시 상록구,56,본오3동 +1381,31,경기도,091,안산시 상록구,57,부곡동 +1382,31,경기도,091,안산시 상록구,58,월피동 +1383,31,경기도,091,안산시 상록구,62,성포동 +1384,31,경기도,091,안산시 상록구,71,반월동 +1385,31,경기도,091,안산시 상록구,73,안산동 +1386,31,경기도,091,안산시 상록구,74,이동 +1387,31,경기도,091,안산시 상록구,76,사동 +1388,31,경기도,091,안산시 상록구,77,사이동 +1389,31,경기도,091,안산시 상록구,78,해양동 +1390,31,경기도,092,안산시 단원구,59,와동 +1391,31,경기도,092,안산시 단원구,66,초지동 +1392,31,경기도,092,안산시 단원구,68,선부1동 +1393,31,경기도,092,안산시 단원구,69,선부2동 +1394,31,경기도,092,안산시 단원구,70,선부3동 +1395,31,경기도,092,안산시 단원구,72,대부동 +1396,31,경기도,092,안산시 단원구,73,호수동 +1397,31,경기도,092,안산시 단원구,74,고잔동 +1398,31,경기도,092,안산시 단원구,75,중앙동 +1399,31,경기도,092,안산시 단원구,76,원곡동 +1400,31,경기도,092,안산시 단원구,77,신길동 +1401,31,경기도,092,안산시 단원구,78,백운동 +1402,31,경기도,101,고양시 덕양구,51,주교동 +1403,31,경기도,101,고양시 덕양구,52,원신동 +1404,31,경기도,101,고양시 덕양구,53,흥도동 +1405,31,경기도,101,고양시 덕양구,54,성사1동 +1406,31,경기도,101,고양시 덕양구,55,성사2동 +1407,31,경기도,101,고양시 덕양구,56,효자동 +1408,31,경기도,101,고양시 덕양구,58,창릉동 +1409,31,경기도,101,고양시 덕양구,59,고양동 +1410,31,경기도,101,고양시 덕양구,60,관산동 +1411,31,경기도,101,고양시 덕양구,61,능곡동 +1412,31,경기도,101,고양시 덕양구,62,화정1동 +1413,31,경기도,101,고양시 덕양구,63,화정2동 +1414,31,경기도,101,고양시 덕양구,64,행주동 +1415,31,경기도,101,고양시 덕양구,65,행신1동 +1416,31,경기도,101,고양시 덕양구,66,행신2동 +1417,31,경기도,101,고양시 덕양구,67,화전동 +1418,31,경기도,101,고양시 덕양구,68,대덕동 +1419,31,경기도,101,고양시 덕양구,69,행신3동 +1420,31,경기도,101,고양시 덕양구,70,삼송동 +1421,31,경기도,103,고양시 일산동구,51,식사동 +1422,31,경기도,103,고양시 일산동구,52,중산동 +1423,31,경기도,103,고양시 일산동구,53,정발산동 +1424,31,경기도,103,고양시 일산동구,54,풍산동 +1425,31,경기도,103,고양시 일산동구,55,백석1동 +1426,31,경기도,103,고양시 일산동구,56,마두1동 +1427,31,경기도,103,고양시 일산동구,57,마두2동 +1428,31,경기도,103,고양시 일산동구,58,장항1동 +1429,31,경기도,103,고양시 일산동구,59,장항2동 +1430,31,경기도,103,고양시 일산동구,60,고봉동 +1431,31,경기도,103,고양시 일산동구,61,백석2동 +1432,31,경기도,104,고양시 일산서구,51,일산1동 +1433,31,경기도,104,고양시 일산서구,52,일산2동 +1434,31,경기도,104,고양시 일산서구,53,일산3동 +1435,31,경기도,104,고양시 일산서구,54,탄현동 +1436,31,경기도,104,고양시 일산서구,55,주엽1동 +1437,31,경기도,104,고양시 일산서구,56,주엽2동 +1438,31,경기도,104,고양시 일산서구,57,대화동 +1439,31,경기도,104,고양시 일산서구,58,송포동 +1440,31,경기도,104,고양시 일산서구,59,송산동 +1441,31,경기도,110,과천시,51,중앙동 +1442,31,경기도,110,과천시,52,갈현동 +1443,31,경기도,110,과천시,53,별양동 +1444,31,경기도,110,과천시,54,부림동 +1445,31,경기도,110,과천시,55,과천동 +1446,31,경기도,110,과천시,56,문원동 +1447,31,경기도,120,구리시,51,갈매동 +1448,31,경기도,120,구리시,52,동구동 +1449,31,경기도,120,구리시,53,인창동 +1450,31,경기도,120,구리시,54,교문1동 +1451,31,경기도,120,구리시,55,교문2동 +1452,31,경기도,120,구리시,56,수택1동 +1453,31,경기도,120,구리시,57,수택2동 +1454,31,경기도,120,구리시,58,수택3동 +1455,31,경기도,130,남양주시,11,와부읍 +1456,31,경기도,130,남양주시,12,진접읍 +1457,31,경기도,130,남양주시,13,화도읍 +1458,31,경기도,130,남양주시,14,진건읍 +1459,31,경기도,130,남양주시,15,오남읍 +1460,31,경기도,130,남양주시,16,퇴계원읍 +1461,31,경기도,130,남양주시,31,별내면 +1462,31,경기도,130,남양주시,34,수동면 +1463,31,경기도,130,남양주시,35,조안면 +1464,31,경기도,130,남양주시,51,호평동 +1465,31,경기도,130,남양주시,52,평내동 +1466,31,경기도,130,남양주시,53,금곡동 +1467,31,경기도,130,남양주시,54,양정동 +1468,31,경기도,130,남양주시,57,별내동 +1469,31,경기도,130,남양주시,58,다산1동 +1470,31,경기도,130,남양주시,59,다산2동 +1471,31,경기도,140,오산시,51,중앙동 +1472,31,경기도,140,오산시,52,대원동 +1473,31,경기도,140,오산시,53,남촌동 +1474,31,경기도,140,오산시,54,신장동 +1475,31,경기도,140,오산시,55,세마동 +1476,31,경기도,140,오산시,56,초평동 +1477,31,경기도,150,시흥시,51,대야동 +1478,31,경기도,150,시흥시,52,신천동 +1479,31,경기도,150,시흥시,53,신현동 +1480,31,경기도,150,시흥시,54,은행동 +1481,31,경기도,150,시흥시,55,매화동 +1482,31,경기도,150,시흥시,56,목감동 +1483,31,경기도,150,시흥시,59,과림동 +1484,31,경기도,150,시흥시,61,정왕2동 +1485,31,경기도,150,시흥시,62,정왕3동 +1486,31,경기도,150,시흥시,64,정왕본동 +1487,31,경기도,150,시흥시,65,정왕1동 +1488,31,경기도,150,시흥시,67,능곡동 +1489,31,경기도,150,시흥시,68,군자동 +1490,31,경기도,150,시흥시,69,월곶동 +1491,31,경기도,150,시흥시,70,연성동 +1492,31,경기도,150,시흥시,71,장곡동 +1493,31,경기도,150,시흥시,72,정왕4동 +1494,31,경기도,150,시흥시,73,배곧동 +1495,31,경기도,160,군포시,51,군포1동 +1496,31,경기도,160,군포시,52,군포2동 +1497,31,경기도,160,군포시,54,산본1동 +1498,31,경기도,160,군포시,55,산본2동 +1499,31,경기도,160,군포시,56,금정동 +1500,31,경기도,160,군포시,57,재궁동 +1501,31,경기도,160,군포시,58,오금동 +1502,31,경기도,160,군포시,59,수리동 +1503,31,경기도,160,군포시,60,궁내동 +1504,31,경기도,160,군포시,61,광정동 +1505,31,경기도,160,군포시,62,대야동 +1506,31,경기도,170,의왕시,51,고천동 +1507,31,경기도,170,의왕시,52,부곡동 +1508,31,경기도,170,의왕시,53,오전동 +1509,31,경기도,170,의왕시,54,내손1동 +1510,31,경기도,170,의왕시,55,내손2동 +1511,31,경기도,170,의왕시,56,청계동 +1512,31,경기도,180,하남시,51,천현동 +1513,31,경기도,180,하남시,52,신장1동 +1514,31,경기도,180,하남시,53,신장2동 +1515,31,경기도,180,하남시,54,덕풍1동 +1516,31,경기도,180,하남시,55,덕풍2동 +1517,31,경기도,180,하남시,56,덕풍3동 +1518,31,경기도,180,하남시,59,춘궁동 +1519,31,경기도,180,하남시,60,초이동 +1520,31,경기도,180,하남시,61,풍산동 +1521,31,경기도,180,하남시,62,미사1동 +1522,31,경기도,180,하남시,63,미사2동 +1523,31,경기도,180,하남시,65,위례동 +1524,31,경기도,180,하남시,66,감북동 +1525,31,경기도,180,하남시,67,감일동 +1526,31,경기도,191,용인시 처인구,11,포곡읍 +1527,31,경기도,191,용인시 처인구,12,모현읍 +1528,31,경기도,191,용인시 처인구,13,이동읍 +1529,31,경기도,191,용인시 처인구,14,남사읍 +1530,31,경기도,191,용인시 처인구,34,원삼면 +1531,31,경기도,191,용인시 처인구,35,백암면 +1532,31,경기도,191,용인시 처인구,36,양지면 +1533,31,경기도,191,용인시 처인구,51,중앙동 +1534,31,경기도,191,용인시 처인구,52,역삼동 +1535,31,경기도,191,용인시 처인구,53,유림동 +1536,31,경기도,191,용인시 처인구,54,동부동 +1537,31,경기도,192,용인시 기흥구,52,구갈동 +1538,31,경기도,192,용인시 기흥구,54,기흥동 +1539,31,경기도,192,용인시 기흥구,55,서농동 +1540,31,경기도,192,용인시 기흥구,56,구성동 +1541,31,경기도,192,용인시 기흥구,57,마북동 +1542,31,경기도,192,용인시 기흥구,59,보정동 +1543,31,경기도,192,용인시 기흥구,60,상하동 +1544,31,경기도,192,용인시 기흥구,61,신갈동 +1545,31,경기도,192,용인시 기흥구,63,영덕1동 +1546,31,경기도,192,용인시 기흥구,64,영덕2동 +1547,31,경기도,192,용인시 기흥구,65,상갈동 +1548,31,경기도,192,용인시 기흥구,66,보라동 +1549,31,경기도,192,용인시 기흥구,67,동백1동 +1550,31,경기도,192,용인시 기흥구,68,동백2동 +1551,31,경기도,192,용인시 기흥구,69,동백3동 +1552,31,경기도,193,용인시 수지구,51,풍덕천1동 +1553,31,경기도,193,용인시 수지구,52,풍덕천2동 +1554,31,경기도,193,용인시 수지구,53,신봉동 +1555,31,경기도,193,용인시 수지구,54,죽전1동 +1556,31,경기도,193,용인시 수지구,55,죽전2동 +1557,31,경기도,193,용인시 수지구,56,동천동 +1558,31,경기도,193,용인시 수지구,57,상현1동 +1559,31,경기도,193,용인시 수지구,58,상현2동 +1560,31,경기도,193,용인시 수지구,59,성복동 +1561,31,경기도,200,파주시,11,문산읍 +1562,31,경기도,200,파주시,12,파주읍 +1563,31,경기도,200,파주시,13,법원읍 +1564,31,경기도,200,파주시,15,조리읍 +1565,31,경기도,200,파주시,21,진동면 +1566,31,경기도,200,파주시,26,장단면 +1567,31,경기도,200,파주시,27,진서면 +1568,31,경기도,200,파주시,31,월롱면 +1569,31,경기도,200,파주시,32,탄현면 +1570,31,경기도,200,파주시,35,광탄면 +1571,31,경기도,200,파주시,36,파평면 +1572,31,경기도,200,파주시,37,적성면 +1573,31,경기도,200,파주시,38,군내면 +1574,31,경기도,200,파주시,52,금촌2동 +1575,31,경기도,200,파주시,53,금촌1동 +1576,31,경기도,200,파주시,54,금촌3동 +1577,31,경기도,200,파주시,55,교하동 +1578,31,경기도,200,파주시,56,운정1동 +1579,31,경기도,200,파주시,57,운정2동 +1580,31,경기도,200,파주시,58,운정3동 +1581,31,경기도,210,이천시,11,장호원읍 +1582,31,경기도,210,이천시,12,부발읍 +1583,31,경기도,210,이천시,31,신둔면 +1584,31,경기도,210,이천시,32,백사면 +1585,31,경기도,210,이천시,33,호법면 +1586,31,경기도,210,이천시,34,마장면 +1587,31,경기도,210,이천시,35,대월면 +1588,31,경기도,210,이천시,36,모가면 +1589,31,경기도,210,이천시,37,설성면 +1590,31,경기도,210,이천시,38,율면 +1591,31,경기도,210,이천시,51,창전동 +1592,31,경기도,210,이천시,52,중리동 +1593,31,경기도,210,이천시,53,관고동 +1594,31,경기도,210,이천시,54,증포동 +1595,31,경기도,220,안성시,11,공도읍 +1596,31,경기도,220,안성시,31,보개면 +1597,31,경기도,220,안성시,32,금광면 +1598,31,경기도,220,안성시,33,서운면 +1599,31,경기도,220,안성시,34,미양면 +1600,31,경기도,220,안성시,35,대덕면 +1601,31,경기도,220,안성시,36,양성면 +1602,31,경기도,220,안성시,38,원곡면 +1603,31,경기도,220,안성시,39,일죽면 +1604,31,경기도,220,안성시,40,죽산면 +1605,31,경기도,220,안성시,41,삼죽면 +1606,31,경기도,220,안성시,42,고삼면 +1607,31,경기도,220,안성시,51,안성1동 +1608,31,경기도,220,안성시,52,안성2동 +1609,31,경기도,220,안성시,53,안성3동 +1610,31,경기도,230,김포시,11,통진읍 +1611,31,경기도,230,김포시,12,고촌읍 +1612,31,경기도,230,김포시,13,양촌읍 +1613,31,경기도,230,김포시,34,대곶면 +1614,31,경기도,230,김포시,35,월곶면 +1615,31,경기도,230,김포시,36,하성면 +1616,31,경기도,230,김포시,53,사우동 +1617,31,경기도,230,김포시,54,풍무동 +1618,31,경기도,230,김포시,56,장기동 +1619,31,경기도,230,김포시,60,운양동 +1620,31,경기도,230,김포시,61,김포본동 +1621,31,경기도,230,김포시,62,장기본동 +1622,31,경기도,230,김포시,63,구래동 +1623,31,경기도,230,김포시,64,마산동 +1624,31,경기도,240,화성시,12,봉담읍 +1625,31,경기도,240,화성시,13,우정읍 +1626,31,경기도,240,화성시,14,향남읍 +1627,31,경기도,240,화성시,15,남양읍 +1628,31,경기도,240,화성시,31,매송면 +1629,31,경기도,240,화성시,33,비봉면 +1630,31,경기도,240,화성시,35,마도면 +1631,31,경기도,240,화성시,36,송산면 +1632,31,경기도,240,화성시,37,서신면 +1633,31,경기도,240,화성시,38,팔탄면 +1634,31,경기도,240,화성시,39,장안면 +1635,31,경기도,240,화성시,42,양감면 +1636,31,경기도,240,화성시,43,정남면 +1637,31,경기도,240,화성시,52,진안동 +1638,31,경기도,240,화성시,53,병점1동 +1639,31,경기도,240,화성시,54,병점2동 +1640,31,경기도,240,화성시,55,반월동 +1641,31,경기도,240,화성시,56,기배동 +1642,31,경기도,240,화성시,57,화산동 +1643,31,경기도,240,화성시,60,동탄2동 +1644,31,경기도,240,화성시,61,동탄1동 +1645,31,경기도,240,화성시,62,동탄3동 +1646,31,경기도,240,화성시,64,동탄4동 +1647,31,경기도,240,화성시,65,동탄5동 +1648,31,경기도,240,화성시,67,새솔동 +1649,31,경기도,240,화성시,69,동탄7동 +1650,31,경기도,240,화성시,70,동탄6동 +1651,31,경기도,240,화성시,71,동탄8동 +1652,31,경기도,250,광주시,11,오포읍 +1653,31,경기도,250,광주시,12,초월읍 +1654,31,경기도,250,광주시,14,곤지암읍 +1655,31,경기도,250,광주시,34,도척면 +1656,31,경기도,250,광주시,35,퇴촌면 +1657,31,경기도,250,광주시,36,남종면 +1658,31,경기도,250,광주시,38,남한산성면 +1659,31,경기도,250,광주시,54,경안동 +1660,31,경기도,250,광주시,55,송정동 +1661,31,경기도,250,광주시,56,쌍령동 +1662,31,경기도,250,광주시,57,탄벌동 +1663,31,경기도,250,광주시,58,광남1동 +1664,31,경기도,250,광주시,59,광남2동 +1665,31,경기도,260,양주시,11,백석읍 +1666,31,경기도,260,양주시,31,은현면 +1667,31,경기도,260,양주시,32,남면 +1668,31,경기도,260,양주시,33,광적면 +1669,31,경기도,260,양주시,34,장흥면 +1670,31,경기도,260,양주시,51,양주1동 +1671,31,경기도,260,양주시,52,양주2동 +1672,31,경기도,260,양주시,53,회천1동 +1673,31,경기도,260,양주시,54,회천2동 +1674,31,경기도,260,양주시,55,회천3동 +1675,31,경기도,260,양주시,56,회천4동 +1676,31,경기도,270,포천시,11,소흘읍 +1677,31,경기도,270,포천시,31,군내면 +1678,31,경기도,270,포천시,32,내촌면 +1679,31,경기도,270,포천시,33,가산면 +1680,31,경기도,270,포천시,34,신북면 +1681,31,경기도,270,포천시,35,창수면 +1682,31,경기도,270,포천시,36,영중면 +1683,31,경기도,270,포천시,37,일동면 +1684,31,경기도,270,포천시,38,이동면 +1685,31,경기도,270,포천시,39,영북면 +1686,31,경기도,270,포천시,40,관인면 +1687,31,경기도,270,포천시,41,화현면 +1688,31,경기도,270,포천시,51,포천동 +1689,31,경기도,270,포천시,52,선단동 +1690,31,경기도,280,여주시,11,가남읍 +1691,31,경기도,280,여주시,31,점동면 +1692,31,경기도,280,여주시,32,능서면 +1693,31,경기도,280,여주시,33,흥천면 +1694,31,경기도,280,여주시,34,금사면 +1695,31,경기도,280,여주시,35,산북면 +1696,31,경기도,280,여주시,36,대신면 +1697,31,경기도,280,여주시,37,북내면 +1698,31,경기도,280,여주시,38,강천면 +1699,31,경기도,280,여주시,51,여흥동 +1700,31,경기도,280,여주시,52,중앙동 +1701,31,경기도,280,여주시,53,오학동 +1702,31,경기도,350,연천군,11,연천읍 +1703,31,경기도,350,연천군,12,전곡읍 +1704,31,경기도,350,연천군,31,군남면 +1705,31,경기도,350,연천군,32,청산면 +1706,31,경기도,350,연천군,33,백학면 +1707,31,경기도,350,연천군,34,미산면 +1708,31,경기도,350,연천군,35,왕징면 +1709,31,경기도,350,연천군,36,신서면 +1710,31,경기도,350,연천군,37,중면 +1711,31,경기도,350,연천군,38,장남면 +1712,31,경기도,370,가평군,11,가평읍 +1713,31,경기도,370,가평군,31,설악면 +1714,31,경기도,370,가평군,32,청평면 +1715,31,경기도,370,가평군,33,상면 +1716,31,경기도,370,가평군,35,북면 +1717,31,경기도,370,가평군,36,조종면 +1718,31,경기도,380,양평군,11,양평읍 +1719,31,경기도,380,양평군,31,강상면 +1720,31,경기도,380,양평군,32,강하면 +1721,31,경기도,380,양평군,33,양서면 +1722,31,경기도,380,양평군,34,옥천면 +1723,31,경기도,380,양평군,35,서종면 +1724,31,경기도,380,양평군,36,단월면 +1725,31,경기도,380,양평군,37,청운면 +1726,31,경기도,380,양평군,38,양동면 +1727,31,경기도,380,양평군,39,지평면 +1728,31,경기도,380,양평군,40,용문면 +1729,31,경기도,380,양평군,41,개군면 +1730,32,강원도,010,춘천시,11,신북읍 +1731,32,강원도,010,춘천시,31,동면 +1732,32,강원도,010,춘천시,32,동산면 +1733,32,강원도,010,춘천시,33,신동면 +1734,32,강원도,010,춘천시,34,동내면 +1735,32,강원도,010,춘천시,35,남면 +1736,32,강원도,010,춘천시,36,남산면 +1737,32,강원도,010,춘천시,37,서면 +1738,32,강원도,010,춘천시,38,사북면 +1739,32,강원도,010,춘천시,39,북산면 +1740,32,강원도,010,춘천시,52,교동 +1741,32,강원도,010,춘천시,53,조운동 +1742,32,강원도,010,춘천시,54,약사명동 +1743,32,강원도,010,춘천시,57,근화동 +1744,32,강원도,010,춘천시,58,소양동 +1745,32,강원도,010,춘천시,60,후평1동 +1746,32,강원도,010,춘천시,61,후평2동 +1747,32,강원도,010,춘천시,62,후평3동 +1748,32,강원도,010,춘천시,63,효자1동 +1749,32,강원도,010,춘천시,64,효자2동 +1750,32,강원도,010,춘천시,65,효자3동 +1751,32,강원도,010,춘천시,66,석사동 +1752,32,강원도,010,춘천시,67,퇴계동 +1753,32,강원도,010,춘천시,68,강남동 +1754,32,강원도,010,춘천시,71,신사우동 +1755,32,강원도,020,원주시,11,문막읍 +1756,32,강원도,020,원주시,31,소초면 +1757,32,강원도,020,원주시,32,호저면 +1758,32,강원도,020,원주시,33,지정면 +1759,32,강원도,020,원주시,34,부론면 +1760,32,강원도,020,원주시,35,귀래면 +1761,32,강원도,020,원주시,36,흥업면 +1762,32,강원도,020,원주시,37,판부면 +1763,32,강원도,020,원주시,38,신림면 +1764,32,강원도,020,원주시,51,중앙동 +1765,32,강원도,020,원주시,52,원인동 +1766,32,강원도,020,원주시,53,개운동 +1767,32,강원도,020,원주시,54,명륜1동 +1768,32,강원도,020,원주시,55,명륜2동 +1769,32,강원도,020,원주시,56,단구동 +1770,32,강원도,020,원주시,57,일산동 +1771,32,강원도,020,원주시,58,학성동 +1772,32,강원도,020,원주시,60,단계동 +1773,32,강원도,020,원주시,61,우산동 +1774,32,강원도,020,원주시,62,태장1동 +1775,32,강원도,020,원주시,63,태장2동 +1776,32,강원도,020,원주시,64,봉산동 +1777,32,강원도,020,원주시,66,행구동 +1778,32,강원도,020,원주시,67,무실동 +1779,32,강원도,020,원주시,68,반곡관설동 +1780,32,강원도,030,강릉시,11,주문진읍 +1781,32,강원도,030,강릉시,31,성산면 +1782,32,강원도,030,강릉시,32,왕산면 +1783,32,강원도,030,강릉시,33,구정면 +1784,32,강원도,030,강릉시,34,강동면 +1785,32,강원도,030,강릉시,35,옥계면 +1786,32,강원도,030,강릉시,36,사천면 +1787,32,강원도,030,강릉시,37,연곡면 +1788,32,강원도,030,강릉시,51,홍제동 +1789,32,강원도,030,강릉시,52,중앙동 +1790,32,강원도,030,강릉시,54,옥천동 +1791,32,강원도,030,강릉시,55,교1동 +1792,32,강원도,030,강릉시,56,교2동 +1793,32,강원도,030,강릉시,57,포남1동 +1794,32,강원도,030,강릉시,58,포남2동 +1795,32,강원도,030,강릉시,59,초당동 +1796,32,강원도,030,강릉시,60,송정동 +1797,32,강원도,030,강릉시,61,내곡동 +1798,32,강원도,030,강릉시,62,강남동 +1799,32,강원도,030,강릉시,65,성덕동 +1800,32,강원도,030,강릉시,67,경포동 +1801,32,강원도,040,동해시,51,천곡동 +1802,32,강원도,040,동해시,52,송정동 +1803,32,강원도,040,동해시,53,북삼동 +1804,32,강원도,040,동해시,54,부곡동 +1805,32,강원도,040,동해시,55,동호동 +1806,32,강원도,040,동해시,57,발한동 +1807,32,강원도,040,동해시,59,묵호동 +1808,32,강원도,040,동해시,60,북평동 +1809,32,강원도,040,동해시,63,망상동 +1810,32,강원도,040,동해시,65,삼화동 +1811,32,강원도,050,태백시,51,황지동 +1812,32,강원도,050,태백시,52,황연동 +1813,32,강원도,050,태백시,53,삼수동 +1814,32,강원도,050,태백시,54,상장동 +1815,32,강원도,050,태백시,55,구문소동 +1816,32,강원도,050,태백시,56,장성동 +1817,32,강원도,050,태백시,58,철암동 +1818,32,강원도,050,태백시,62,문곡소도동 +1819,32,강원도,060,속초시,51,영랑동 +1820,32,강원도,060,속초시,52,동명동 +1821,32,강원도,060,속초시,54,금호동 +1822,32,강원도,060,속초시,56,교동 +1823,32,강원도,060,속초시,57,노학동 +1824,32,강원도,060,속초시,58,조양동 +1825,32,강원도,060,속초시,59,청호동 +1826,32,강원도,060,속초시,60,대포동 +1827,32,강원도,070,삼척시,11,도계읍 +1828,32,강원도,070,삼척시,12,원덕읍 +1829,32,강원도,070,삼척시,31,근덕면 +1830,32,강원도,070,삼척시,32,하장면 +1831,32,강원도,070,삼척시,33,노곡면 +1832,32,강원도,070,삼척시,34,미로면 +1833,32,강원도,070,삼척시,35,가곡면 +1834,32,강원도,070,삼척시,36,신기면 +1835,32,강원도,070,삼척시,51,남양동 +1836,32,강원도,070,삼척시,52,성내동 +1837,32,강원도,070,삼척시,53,교동 +1838,32,강원도,070,삼척시,54,정라동 +1839,32,강원도,310,홍천군,11,홍천읍 +1840,32,강원도,310,홍천군,31,화촌면 +1841,32,강원도,310,홍천군,32,두촌면 +1842,32,강원도,310,홍천군,33,내촌면 +1843,32,강원도,310,홍천군,34,서석면 +1844,32,강원도,310,홍천군,36,남면 +1845,32,강원도,310,홍천군,37,서면 +1846,32,강원도,310,홍천군,38,북방면 +1847,32,강원도,310,홍천군,39,내면 +1848,32,강원도,310,홍천군,40,영귀미면 +1849,32,강원도,320,횡성군,11,횡성읍 +1850,32,강원도,320,횡성군,31,우천면 +1851,32,강원도,320,횡성군,32,안흥면 +1852,32,강원도,320,횡성군,33,둔내면 +1853,32,강원도,320,횡성군,34,갑천면 +1854,32,강원도,320,횡성군,35,청일면 +1855,32,강원도,320,횡성군,36,공근면 +1856,32,강원도,320,횡성군,37,서원면 +1857,32,강원도,320,횡성군,38,강림면 +1858,32,강원도,330,영월군,11,영월읍 +1859,32,강원도,330,영월군,12,상동읍 +1860,32,강원도,330,영월군,31,중동면 +1861,32,강원도,330,영월군,33,북면 +1862,32,강원도,330,영월군,34,남면 +1863,32,강원도,330,영월군,36,주천면 +1864,32,강원도,330,영월군,38,김삿갓면 +1865,32,강원도,330,영월군,39,한반도면 +1866,32,강원도,330,영월군,40,무릉도원면 +1867,32,강원도,340,평창군,11,평창읍 +1868,32,강원도,340,평창군,31,미탄면 +1869,32,강원도,340,평창군,32,방림면 +1870,32,강원도,340,평창군,33,대화면 +1871,32,강원도,340,평창군,34,봉평면 +1872,32,강원도,340,평창군,35,용평면 +1873,32,강원도,340,평창군,36,진부면 +1874,32,강원도,340,평창군,37,대관령면 +1875,32,강원도,350,정선군,11,정선읍 +1876,32,강원도,350,정선군,12,고한읍 +1877,32,강원도,350,정선군,13,사북읍 +1878,32,강원도,350,정선군,14,신동읍 +1879,32,강원도,350,정선군,32,남면 +1880,32,강원도,350,정선군,34,북평면 +1881,32,강원도,350,정선군,35,임계면 +1882,32,강원도,350,정선군,36,화암면 +1883,32,강원도,350,정선군,37,여량면 +1884,32,강원도,360,철원군,11,철원읍 +1885,32,강원도,360,철원군,12,김화읍 +1886,32,강원도,360,철원군,13,갈말읍 +1887,32,강원도,360,철원군,14,동송읍 +1888,32,강원도,360,철원군,21,근북면 +1889,32,강원도,360,철원군,26,근동면 +1890,32,강원도,360,철원군,27,원동면 +1891,32,강원도,360,철원군,28,원남면 +1892,32,강원도,360,철원군,29,임남면 +1893,32,강원도,360,철원군,31,서면 +1894,32,강원도,360,철원군,32,근남면 +1895,32,강원도,370,화천군,11,화천읍 +1896,32,강원도,370,화천군,31,간동면 +1897,32,강원도,370,화천군,32,하남면 +1898,32,강원도,370,화천군,33,상서면 +1899,32,강원도,370,화천군,34,사내면 +1900,32,강원도,380,양구군,11,양구읍 +1901,32,강원도,380,양구군,32,동면 +1902,32,강원도,380,양구군,33,방산면 +1903,32,강원도,380,양구군,34,해안면 +1904,32,강원도,380,양구군,35,국토정중앙면 +1905,32,강원도,390,인제군,11,인제읍 +1906,32,강원도,390,인제군,31,남면 +1907,32,강원도,390,인제군,32,북면 +1908,32,강원도,390,인제군,33,기린면 +1909,32,강원도,390,인제군,34,서화면 +1910,32,강원도,390,인제군,35,상남면 +1911,32,강원도,400,고성군,11,간성읍 +1912,32,강원도,400,고성군,12,거진읍 +1913,32,강원도,400,고성군,26,수동면 +1914,32,강원도,400,고성군,31,현내면 +1915,32,강원도,400,고성군,32,죽왕면 +1916,32,강원도,400,고성군,33,토성면 +1917,32,강원도,410,양양군,11,양양읍 +1918,32,강원도,410,양양군,31,서면 +1919,32,강원도,410,양양군,32,손양면 +1920,32,강원도,410,양양군,33,현북면 +1921,32,강원도,410,양양군,34,현남면 +1922,32,강원도,410,양양군,35,강현면 +1923,33,충청북도,020,충주시,11,주덕읍 +1924,33,충청북도,020,충주시,31,살미면 +1925,33,충청북도,020,충주시,32,수안보면 +1926,33,충청북도,020,충주시,34,신니면 +1927,33,충청북도,020,충주시,35,노은면 +1928,33,충청북도,020,충주시,36,앙성면 +1929,33,충청북도,020,충주시,38,금가면 +1930,33,충청북도,020,충주시,39,동량면 +1931,33,충청북도,020,충주시,40,산척면 +1932,33,충청북도,020,충주시,41,엄정면 +1933,33,충청북도,020,충주시,42,소태면 +1934,33,충청북도,020,충주시,43,대소원면 +1935,33,충청북도,020,충주시,44,중앙탑면 +1936,33,충청북도,020,충주시,51,성내·충인동 +1937,33,충청북도,020,충주시,53,교현·안림동 +1938,33,충청북도,020,충주시,54,교현2동 +1939,33,충청북도,020,충주시,55,용산동 +1940,33,충청북도,020,충주시,56,지현동 +1941,33,충청북도,020,충주시,57,문화동 +1942,33,충청북도,020,충주시,58,호암·직동 +1943,33,충청북도,020,충주시,60,달천동 +1944,33,충청북도,020,충주시,61,봉방동 +1945,33,충청북도,020,충주시,62,칠금·금릉동 +1946,33,충청북도,020,충주시,63,연수동 +1947,33,충청북도,020,충주시,64,목행·용탄동 +1948,33,충청북도,030,제천시,11,봉양읍 +1949,33,충청북도,030,제천시,31,금성면 +1950,33,충청북도,030,제천시,32,청풍면 +1951,33,충청북도,030,제천시,33,수산면 +1952,33,충청북도,030,제천시,34,덕산면 +1953,33,충청북도,030,제천시,35,한수면 +1954,33,충청북도,030,제천시,36,백운면 +1955,33,충청북도,030,제천시,37,송학면 +1956,33,충청북도,030,제천시,51,교동 +1957,33,충청북도,030,제천시,56,용두동 +1958,33,충청북도,030,제천시,59,청전동 +1959,33,충청북도,030,제천시,60,화산동 +1960,33,충청북도,030,제천시,70,남현동 +1961,33,충청북도,030,제천시,71,영서동 +1962,33,충청북도,030,제천시,72,신백동 +1963,33,충청북도,030,제천시,73,의림지동 +1964,33,충청북도,030,제천시,74,중앙동 +1965,33,충청북도,041,청주시 상당구,31,낭성면 +1966,33,충청북도,041,청주시 상당구,32,미원면 +1967,33,충청북도,041,청주시 상당구,33,가덕면 +1968,33,충청북도,041,청주시 상당구,34,남일면 +1969,33,충청북도,041,청주시 상당구,35,문의면 +1970,33,충청북도,041,청주시 상당구,51,중앙동 +1971,33,충청북도,041,청주시 상당구,52,성안동 +1972,33,충청북도,041,청주시 상당구,53,탑·대성동 +1973,33,충청북도,041,청주시 상당구,54,영운동 +1974,33,충청북도,041,청주시 상당구,55,금천동 +1975,33,충청북도,041,청주시 상당구,56,용담·명암·산성동 +1976,33,충청북도,041,청주시 상당구,57,용암1동 +1977,33,충청북도,041,청주시 상당구,58,용암2동 +1978,33,충청북도,042,청주시 서원구,31,남이면 +1979,33,충청북도,042,청주시 서원구,32,현도면 +1980,33,충청북도,042,청주시 서원구,51,사직1동 +1981,33,충청북도,042,청주시 서원구,52,사직2동 +1982,33,충청북도,042,청주시 서원구,53,사창동 +1983,33,충청북도,042,청주시 서원구,54,모충동 +1984,33,충청북도,042,청주시 서원구,55,산남동 +1985,33,충청북도,042,청주시 서원구,56,분평동 +1986,33,충청북도,042,청주시 서원구,57,수곡1동 +1987,33,충청북도,042,청주시 서원구,58,수곡2동 +1988,33,충청북도,042,청주시 서원구,59,성화·개신·죽림동 +1989,33,충청북도,043,청주시 흥덕구,11,오송읍 +1990,33,충청북도,043,청주시 흥덕구,31,강내면 +1991,33,충청북도,043,청주시 흥덕구,32,옥산면 +1992,33,충청북도,043,청주시 흥덕구,51,운천·신봉동 +1993,33,충청북도,043,청주시 흥덕구,52,복대1동 +1994,33,충청북도,043,청주시 흥덕구,53,복대2동 +1995,33,충청북도,043,청주시 흥덕구,54,가경동 +1996,33,충청북도,043,청주시 흥덕구,55,봉명1동 +1997,33,충청북도,043,청주시 흥덕구,56,봉명2·송정동 +1998,33,충청북도,043,청주시 흥덕구,57,강서1동 +1999,33,충청북도,043,청주시 흥덕구,58,강서2동 +2000,33,충청북도,044,청주시 청원구,11,내수읍 +2001,33,충청북도,044,청주시 청원구,12,오창읍 +2002,33,충청북도,044,청주시 청원구,31,북이면 +2003,33,충청북도,044,청주시 청원구,51,오근장동 +2004,33,충청북도,044,청주시 청원구,52,우암동 +2005,33,충청북도,044,청주시 청원구,53,내덕1동 +2006,33,충청북도,044,청주시 청원구,54,내덕2동 +2007,33,충청북도,044,청주시 청원구,55,율량·사천동 +2008,33,충청북도,320,보은군,11,보은읍 +2009,33,충청북도,320,보은군,31,속리산면 +2010,33,충청북도,320,보은군,32,장안면 +2011,33,충청북도,320,보은군,33,마로면 +2012,33,충청북도,320,보은군,34,탄부면 +2013,33,충청북도,320,보은군,35,삼승면 +2014,33,충청북도,320,보은군,36,수한면 +2015,33,충청북도,320,보은군,37,회남면 +2016,33,충청북도,320,보은군,38,회인면 +2017,33,충청북도,320,보은군,39,내북면 +2018,33,충청북도,320,보은군,40,산외면 +2019,33,충청북도,330,옥천군,11,옥천읍 +2020,33,충청북도,330,옥천군,31,동이면 +2021,33,충청북도,330,옥천군,32,안남면 +2022,33,충청북도,330,옥천군,33,안내면 +2023,33,충청북도,330,옥천군,34,청성면 +2024,33,충청북도,330,옥천군,35,청산면 +2025,33,충청북도,330,옥천군,36,이원면 +2026,33,충청북도,330,옥천군,37,군서면 +2027,33,충청북도,330,옥천군,38,군북면 +2028,33,충청북도,340,영동군,11,영동읍 +2029,33,충청북도,340,영동군,31,용산면 +2030,33,충청북도,340,영동군,32,황간면 +2031,33,충청북도,340,영동군,33,추풍령면 +2032,33,충청북도,340,영동군,34,매곡면 +2033,33,충청북도,340,영동군,35,상촌면 +2034,33,충청북도,340,영동군,36,양강면 +2035,33,충청북도,340,영동군,37,용화면 +2036,33,충청북도,340,영동군,38,학산면 +2037,33,충청북도,340,영동군,39,양산면 +2038,33,충청북도,340,영동군,40,심천면 +2039,33,충청북도,350,진천군,11,진천읍 +2040,33,충청북도,350,진천군,12,덕산읍 +2041,33,충청북도,350,진천군,32,초평면 +2042,33,충청북도,350,진천군,33,문백면 +2043,33,충청북도,350,진천군,34,백곡면 +2044,33,충청북도,350,진천군,35,이월면 +2045,33,충청북도,350,진천군,36,광혜원면 +2046,33,충청북도,360,괴산군,11,괴산읍 +2047,33,충청북도,360,괴산군,31,감물면 +2048,33,충청북도,360,괴산군,32,장연면 +2049,33,충청북도,360,괴산군,33,연풍면 +2050,33,충청북도,360,괴산군,34,칠성면 +2051,33,충청북도,360,괴산군,35,문광면 +2052,33,충청북도,360,괴산군,36,청천면 +2053,33,충청북도,360,괴산군,37,청안면 +2054,33,충청북도,360,괴산군,38,사리면 +2055,33,충청북도,360,괴산군,39,소수면 +2056,33,충청북도,360,괴산군,40,불정면 +2057,33,충청북도,370,음성군,11,음성읍 +2058,33,충청북도,370,음성군,12,금왕읍 +2059,33,충청북도,370,음성군,31,소이면 +2060,33,충청북도,370,음성군,32,원남면 +2061,33,충청북도,370,음성군,33,맹동면 +2062,33,충청북도,370,음성군,34,대소면 +2063,33,충청북도,370,음성군,35,삼성면 +2064,33,충청북도,370,음성군,36,생극면 +2065,33,충청북도,370,음성군,37,감곡면 +2066,33,충청북도,380,단양군,11,단양읍 +2067,33,충청북도,380,단양군,12,매포읍 +2068,33,충청북도,380,단양군,31,단성면 +2069,33,충청북도,380,단양군,32,대강면 +2070,33,충청북도,380,단양군,33,가곡면 +2071,33,충청북도,380,단양군,34,영춘면 +2072,33,충청북도,380,단양군,35,어상천면 +2073,33,충청북도,380,단양군,36,적성면 +2074,33,충청북도,390,증평군,14,증평읍 +2075,33,충청북도,390,증평군,31,도안면 +2076,34,충청남도,011,천안시 동남구,11,목천읍 +2077,34,충청남도,011,천안시 동남구,31,풍세면 +2078,34,충청남도,011,천안시 동남구,32,광덕면 +2079,34,충청남도,011,천안시 동남구,33,북면 +2080,34,충청남도,011,천안시 동남구,34,성남면 +2081,34,충청남도,011,천안시 동남구,35,수신면 +2082,34,충청남도,011,천안시 동남구,36,병천면 +2083,34,충청남도,011,천안시 동남구,37,동면 +2084,34,충청남도,011,천안시 동남구,51,중앙동 +2085,34,충청남도,011,천안시 동남구,52,문성동 +2086,34,충청남도,011,천안시 동남구,53,원성1동 +2087,34,충청남도,011,천안시 동남구,54,원성2동 +2088,34,충청남도,011,천안시 동남구,55,봉명동 +2089,34,충청남도,011,천안시 동남구,56,일봉동 +2090,34,충청남도,011,천안시 동남구,57,신방동 +2091,34,충청남도,011,천안시 동남구,58,청룡동 +2092,34,충청남도,011,천안시 동남구,59,신안동 +2093,34,충청남도,012,천안시 서북구,11,성환읍 +2094,34,충청남도,012,천안시 서북구,12,성거읍 +2095,34,충청남도,012,천안시 서북구,13,직산읍 +2096,34,충청남도,012,천안시 서북구,31,입장면 +2097,34,충청남도,012,천안시 서북구,51,성정1동 +2098,34,충청남도,012,천안시 서북구,52,성정2동 +2099,34,충청남도,012,천안시 서북구,53,쌍용1동 +2100,34,충청남도,012,천안시 서북구,54,쌍용2동 +2101,34,충청남도,012,천안시 서북구,55,쌍용3동 +2102,34,충청남도,012,천안시 서북구,58,백석동 +2103,34,충청남도,012,천안시 서북구,59,불당동 +2104,34,충청남도,012,천안시 서북구,60,부성1동 +2105,34,충청남도,012,천안시 서북구,61,부성2동 +2106,34,충청남도,020,공주시,11,유구읍 +2107,34,충청남도,020,공주시,31,이인면 +2108,34,충청남도,020,공주시,32,탄천면 +2109,34,충청남도,020,공주시,33,계룡면 +2110,34,충청남도,020,공주시,34,반포면 +2111,34,충청남도,020,공주시,36,의당면 +2112,34,충청남도,020,공주시,37,정안면 +2113,34,충청남도,020,공주시,38,우성면 +2114,34,충청남도,020,공주시,39,사곡면 +2115,34,충청남도,020,공주시,40,신풍면 +2116,34,충청남도,020,공주시,51,중학동 +2117,34,충청남도,020,공주시,55,금학동 +2118,34,충청남도,020,공주시,56,옥룡동 +2119,34,충청남도,020,공주시,57,신관동 +2120,34,충청남도,020,공주시,58,웅진동 +2121,34,충청남도,020,공주시,59,월송동 +2122,34,충청남도,030,보령시,11,웅천읍 +2123,34,충청남도,030,보령시,31,주포면 +2124,34,충청남도,030,보령시,32,주교면 +2125,34,충청남도,030,보령시,33,오천면 +2126,34,충청남도,030,보령시,34,천북면 +2127,34,충청남도,030,보령시,35,청소면 +2128,34,충청남도,030,보령시,36,청라면 +2129,34,충청남도,030,보령시,37,남포면 +2130,34,충청남도,030,보령시,38,주산면 +2131,34,충청남도,030,보령시,39,미산면 +2132,34,충청남도,030,보령시,40,성주면 +2133,34,충청남도,030,보령시,51,대천1동 +2134,34,충청남도,030,보령시,52,대천2동 +2135,34,충청남도,030,보령시,53,대천3동 +2136,34,충청남도,030,보령시,54,대천4동 +2137,34,충청남도,030,보령시,56,대천5동 +2138,34,충청남도,040,아산시,11,염치읍 +2139,34,충청남도,040,아산시,12,배방읍 +2140,34,충청남도,040,아산시,31,송악면 +2141,34,충청남도,040,아산시,33,탕정면 +2142,34,충청남도,040,아산시,34,음봉면 +2143,34,충청남도,040,아산시,35,둔포면 +2144,34,충청남도,040,아산시,36,영인면 +2145,34,충청남도,040,아산시,37,인주면 +2146,34,충청남도,040,아산시,38,선장면 +2147,34,충청남도,040,아산시,39,도고면 +2148,34,충청남도,040,아산시,40,신창면 +2149,34,충청남도,040,아산시,51,온양1동 +2150,34,충청남도,040,아산시,52,온양2동 +2151,34,충청남도,040,아산시,53,온양3동 +2152,34,충청남도,040,아산시,54,온양4동 +2153,34,충청남도,040,아산시,55,온양5동 +2154,34,충청남도,040,아산시,56,온양6동 +2155,34,충청남도,050,서산시,11,대산읍 +2156,34,충청남도,050,서산시,31,인지면 +2157,34,충청남도,050,서산시,32,부석면 +2158,34,충청남도,050,서산시,33,팔봉면 +2159,34,충청남도,050,서산시,34,지곡면 +2160,34,충청남도,050,서산시,35,성연면 +2161,34,충청남도,050,서산시,36,음암면 +2162,34,충청남도,050,서산시,37,운산면 +2163,34,충청남도,050,서산시,38,해미면 +2164,34,충청남도,050,서산시,39,고북면 +2165,34,충청남도,050,서산시,51,부춘동 +2166,34,충청남도,050,서산시,52,동문1동 +2167,34,충청남도,050,서산시,53,동문2동 +2168,34,충청남도,050,서산시,54,수석동 +2169,34,충청남도,050,서산시,55,석남동 +2170,34,충청남도,060,논산시,11,강경읍 +2171,34,충청남도,060,논산시,12,연무읍 +2172,34,충청남도,060,논산시,31,성동면 +2173,34,충청남도,060,논산시,32,광석면 +2174,34,충청남도,060,논산시,33,노성면 +2175,34,충청남도,060,논산시,34,상월면 +2176,34,충청남도,060,논산시,35,부적면 +2177,34,충청남도,060,논산시,36,연산면 +2178,34,충청남도,060,논산시,37,벌곡면 +2179,34,충청남도,060,논산시,38,양촌면 +2180,34,충청남도,060,논산시,39,가야곡면 +2181,34,충청남도,060,논산시,40,은진면 +2182,34,충청남도,060,논산시,41,채운면 +2183,34,충청남도,060,논산시,51,취암동 +2184,34,충청남도,060,논산시,52,부창동 +2185,34,충청남도,070,계룡시,31,두마면 +2186,34,충청남도,070,계룡시,33,엄사면 +2187,34,충청남도,070,계룡시,34,신도안면 +2188,34,충청남도,070,계룡시,51,금암동 +2189,34,충청남도,080,당진시,11,합덕읍 +2190,34,충청남도,080,당진시,12,송악읍 +2191,34,충청남도,080,당진시,31,고대면 +2192,34,충청남도,080,당진시,32,석문면 +2193,34,충청남도,080,당진시,33,대호지면 +2194,34,충청남도,080,당진시,34,정미면 +2195,34,충청남도,080,당진시,35,면천면 +2196,34,충청남도,080,당진시,36,순성면 +2197,34,충청남도,080,당진시,37,우강면 +2198,34,충청남도,080,당진시,38,신평면 +2199,34,충청남도,080,당진시,39,송산면 +2200,34,충청남도,080,당진시,51,당진1동 +2201,34,충청남도,080,당진시,52,당진2동 +2202,34,충청남도,080,당진시,53,당진3동 +2203,34,충청남도,310,금산군,11,금산읍 +2204,34,충청남도,310,금산군,31,금성면 +2205,34,충청남도,310,금산군,32,제원면 +2206,34,충청남도,310,금산군,33,부리면 +2207,34,충청남도,310,금산군,34,군북면 +2208,34,충청남도,310,금산군,35,남일면 +2209,34,충청남도,310,금산군,36,남이면 +2210,34,충청남도,310,금산군,37,진산면 +2211,34,충청남도,310,금산군,38,복수면 +2212,34,충청남도,310,금산군,39,추부면 +2213,34,충청남도,330,부여군,11,부여읍 +2214,34,충청남도,330,부여군,31,규암면 +2215,34,충청남도,330,부여군,32,은산면 +2216,34,충청남도,330,부여군,33,외산면 +2217,34,충청남도,330,부여군,34,내산면 +2218,34,충청남도,330,부여군,35,구룡면 +2219,34,충청남도,330,부여군,36,홍산면 +2220,34,충청남도,330,부여군,37,옥산면 +2221,34,충청남도,330,부여군,38,남면 +2222,34,충청남도,330,부여군,39,충화면 +2223,34,충청남도,330,부여군,40,양화면 +2224,34,충청남도,330,부여군,41,임천면 +2225,34,충청남도,330,부여군,42,장암면 +2226,34,충청남도,330,부여군,43,세도면 +2227,34,충청남도,330,부여군,44,석성면 +2228,34,충청남도,330,부여군,45,초촌면 +2229,34,충청남도,340,서천군,11,장항읍 +2230,34,충청남도,340,서천군,12,서천읍 +2231,34,충청남도,340,서천군,31,마서면 +2232,34,충청남도,340,서천군,32,화양면 +2233,34,충청남도,340,서천군,33,기산면 +2234,34,충청남도,340,서천군,34,한산면 +2235,34,충청남도,340,서천군,35,마산면 +2236,34,충청남도,340,서천군,36,시초면 +2237,34,충청남도,340,서천군,37,문산면 +2238,34,충청남도,340,서천군,38,판교면 +2239,34,충청남도,340,서천군,39,종천면 +2240,34,충청남도,340,서천군,40,비인면 +2241,34,충청남도,340,서천군,41,서면 +2242,34,충청남도,350,청양군,11,청양읍 +2243,34,충청남도,350,청양군,31,운곡면 +2244,34,충청남도,350,청양군,32,대치면 +2245,34,충청남도,350,청양군,33,정산면 +2246,34,충청남도,350,청양군,34,목면 +2247,34,충청남도,350,청양군,35,청남면 +2248,34,충청남도,350,청양군,36,장평면 +2249,34,충청남도,350,청양군,37,남양면 +2250,34,충청남도,350,청양군,38,화성면 +2251,34,충청남도,350,청양군,39,비봉면 +2252,34,충청남도,360,홍성군,11,홍성읍 +2253,34,충청남도,360,홍성군,12,광천읍 +2254,34,충청남도,360,홍성군,13,홍북읍 +2255,34,충청남도,360,홍성군,32,금마면 +2256,34,충청남도,360,홍성군,33,홍동면 +2257,34,충청남도,360,홍성군,34,장곡면 +2258,34,충청남도,360,홍성군,35,은하면 +2259,34,충청남도,360,홍성군,36,결성면 +2260,34,충청남도,360,홍성군,37,서부면 +2261,34,충청남도,360,홍성군,38,갈산면 +2262,34,충청남도,360,홍성군,39,구항면 +2263,34,충청남도,370,예산군,11,예산읍 +2264,34,충청남도,370,예산군,12,삽교읍 +2265,34,충청남도,370,예산군,31,대술면 +2266,34,충청남도,370,예산군,32,신양면 +2267,34,충청남도,370,예산군,33,광시면 +2268,34,충청남도,370,예산군,34,대흥면 +2269,34,충청남도,370,예산군,35,응봉면 +2270,34,충청남도,370,예산군,36,덕산면 +2271,34,충청남도,370,예산군,37,봉산면 +2272,34,충청남도,370,예산군,38,고덕면 +2273,34,충청남도,370,예산군,39,신암면 +2274,34,충청남도,370,예산군,40,오가면 +2275,34,충청남도,380,태안군,11,태안읍 +2276,34,충청남도,380,태안군,12,안면읍 +2277,34,충청남도,380,태안군,31,고남면 +2278,34,충청남도,380,태안군,32,남면 +2279,34,충청남도,380,태안군,33,근흥면 +2280,34,충청남도,380,태안군,34,소원면 +2281,34,충청남도,380,태안군,35,원북면 +2282,34,충청남도,380,태안군,36,이원면 +2283,35,전라북도,011,전주시 완산구,60,동서학동 +2284,35,전라북도,011,전주시 완산구,61,서서학동 +2285,35,전라북도,011,전주시 완산구,62,중화산1동 +2286,35,전라북도,011,전주시 완산구,63,중화산2동 +2287,35,전라북도,011,전주시 완산구,64,평화1동 +2288,35,전라북도,011,전주시 완산구,65,평화2동 +2289,35,전라북도,011,전주시 완산구,66,서신동 +2290,35,전라북도,011,전주시 완산구,67,삼천1동 +2291,35,전라북도,011,전주시 완산구,68,삼천2동 +2292,35,전라북도,011,전주시 완산구,69,삼천3동 +2293,35,전라북도,011,전주시 완산구,70,효자1동 +2294,35,전라북도,011,전주시 완산구,71,효자2동 +2295,35,전라북도,011,전주시 완산구,72,효자3동 +2296,35,전라북도,011,전주시 완산구,74,중앙동 +2297,35,전라북도,011,전주시 완산구,75,풍남동 +2298,35,전라북도,011,전주시 완산구,76,노송동 +2299,35,전라북도,011,전주시 완산구,77,완산동 +2300,35,전라북도,011,전주시 완산구,78,효자4동 +2301,35,전라북도,011,전주시 완산구,79,효자5동 +2302,35,전라북도,012,전주시 덕진구,54,인후1동 +2303,35,전라북도,012,전주시 덕진구,55,인후2동 +2304,35,전라북도,012,전주시 덕진구,56,인후3동 +2305,35,전라북도,012,전주시 덕진구,57,덕진동 +2306,35,전라북도,012,전주시 덕진구,58,금암1동 +2307,35,전라북도,012,전주시 덕진구,59,금암2동 +2308,35,전라북도,012,전주시 덕진구,60,팔복동 +2309,35,전라북도,012,전주시 덕진구,61,우아1동 +2310,35,전라북도,012,전주시 덕진구,62,우아2동 +2311,35,전라북도,012,전주시 덕진구,63,호성동 +2312,35,전라북도,012,전주시 덕진구,65,송천1동 +2313,35,전라북도,012,전주시 덕진구,66,송천2동 +2314,35,전라북도,012,전주시 덕진구,67,조촌동 +2315,35,전라북도,012,전주시 덕진구,69,진북동 +2316,35,전라북도,012,전주시 덕진구,70,혁신동 +2317,35,전라북도,012,전주시 덕진구,71,여의동 +2318,35,전라북도,020,군산시,11,옥구읍 +2319,35,전라북도,020,군산시,31,옥산면 +2320,35,전라북도,020,군산시,32,회현면 +2321,35,전라북도,020,군산시,33,임피면 +2322,35,전라북도,020,군산시,34,서수면 +2323,35,전라북도,020,군산시,35,대야면 +2324,35,전라북도,020,군산시,36,개정면 +2325,35,전라북도,020,군산시,37,성산면 +2326,35,전라북도,020,군산시,38,나포면 +2327,35,전라북도,020,군산시,39,옥도면 +2328,35,전라북도,020,군산시,40,옥서면 +2329,35,전라북도,020,군산시,51,해신동 +2330,35,전라북도,020,군산시,53,월명동 +2331,35,전라북도,020,군산시,55,신풍동 +2332,35,전라북도,020,군산시,56,삼학동 +2333,35,전라북도,020,군산시,60,중앙동 +2334,35,전라북도,020,군산시,64,흥남동 +2335,35,전라북도,020,군산시,65,조촌동 +2336,35,전라북도,020,군산시,66,경암동 +2337,35,전라북도,020,군산시,67,구암동 +2338,35,전라북도,020,군산시,68,개정동 +2339,35,전라북도,020,군산시,69,수송동 +2340,35,전라북도,020,군산시,70,나운1동 +2341,35,전라북도,020,군산시,71,나운2동 +2342,35,전라북도,020,군산시,72,소룡동 +2343,35,전라북도,020,군산시,73,미성동 +2344,35,전라북도,020,군산시,74,나운3동 +2345,35,전라북도,030,익산시,11,함열읍 +2346,35,전라북도,030,익산시,31,오산면 +2347,35,전라북도,030,익산시,32,황등면 +2348,35,전라북도,030,익산시,33,함라면 +2349,35,전라북도,030,익산시,34,웅포면 +2350,35,전라북도,030,익산시,35,성당면 +2351,35,전라북도,030,익산시,36,용안면 +2352,35,전라북도,030,익산시,37,낭산면 +2353,35,전라북도,030,익산시,38,망성면 +2354,35,전라북도,030,익산시,39,여산면 +2355,35,전라북도,030,익산시,40,금마면 +2356,35,전라북도,030,익산시,41,왕궁면 +2357,35,전라북도,030,익산시,42,춘포면 +2358,35,전라북도,030,익산시,43,삼기면 +2359,35,전라북도,030,익산시,44,용동면 +2360,35,전라북도,030,익산시,51,중앙동 +2361,35,전라북도,030,익산시,53,평화동 +2362,35,전라북도,030,익산시,55,인화동 +2363,35,전라북도,030,익산시,57,동산동 +2364,35,전라북도,030,익산시,58,마동 +2365,35,전라북도,030,익산시,59,남중동 +2366,35,전라북도,030,익산시,61,모현동 +2367,35,전라북도,030,익산시,62,송학동 +2368,35,전라북도,030,익산시,65,신동 +2369,35,전라북도,030,익산시,66,영등1동 +2370,35,전라북도,030,익산시,69,팔봉동 +2371,35,전라북도,030,익산시,70,삼성동 +2372,35,전라북도,030,익산시,71,영등2동 +2373,35,전라북도,030,익산시,72,어양동 +2374,35,전라북도,040,정읍시,11,신태인읍 +2375,35,전라북도,040,정읍시,31,북면 +2376,35,전라북도,040,정읍시,32,입암면 +2377,35,전라북도,040,정읍시,33,소성면 +2378,35,전라북도,040,정읍시,34,고부면 +2379,35,전라북도,040,정읍시,35,영원면 +2380,35,전라북도,040,정읍시,36,덕천면 +2381,35,전라북도,040,정읍시,37,이평면 +2382,35,전라북도,040,정읍시,38,정우면 +2383,35,전라북도,040,정읍시,39,태인면 +2384,35,전라북도,040,정읍시,40,감곡면 +2385,35,전라북도,040,정읍시,41,옹동면 +2386,35,전라북도,040,정읍시,42,칠보면 +2387,35,전라북도,040,정읍시,43,산내면 +2388,35,전라북도,040,정읍시,44,산외면 +2389,35,전라북도,040,정읍시,51,수성동 +2390,35,전라북도,040,정읍시,52,장명동 +2391,35,전라북도,040,정읍시,53,내장상동 +2392,35,전라북도,040,정읍시,54,시기동 +2393,35,전라북도,040,정읍시,57,연지동 +2394,35,전라북도,040,정읍시,58,농소동 +2395,35,전라북도,040,정읍시,59,상교동 +2396,35,전라북도,040,정읍시,60,초산동 +2397,35,전라북도,050,남원시,11,운봉읍 +2398,35,전라북도,050,남원시,31,주천면 +2399,35,전라북도,050,남원시,32,수지면 +2400,35,전라북도,050,남원시,33,송동면 +2401,35,전라북도,050,남원시,34,주생면 +2402,35,전라북도,050,남원시,35,금지면 +2403,35,전라북도,050,남원시,36,대강면 +2404,35,전라북도,050,남원시,37,대산면 +2405,35,전라북도,050,남원시,38,사매면 +2406,35,전라북도,050,남원시,39,덕과면 +2407,35,전라북도,050,남원시,40,보절면 +2408,35,전라북도,050,남원시,41,산동면 +2409,35,전라북도,050,남원시,42,이백면 +2410,35,전라북도,050,남원시,43,인월면 +2411,35,전라북도,050,남원시,44,아영면 +2412,35,전라북도,050,남원시,45,산내면 +2413,35,전라북도,050,남원시,51,동충동 +2414,35,전라북도,050,남원시,52,죽항동 +2415,35,전라북도,050,남원시,54,노암동 +2416,35,전라북도,050,남원시,55,금동 +2417,35,전라북도,050,남원시,56,왕정동 +2418,35,전라북도,050,남원시,57,향교동 +2419,35,전라북도,050,남원시,59,도통동 +2420,35,전라북도,060,김제시,11,만경읍 +2421,35,전라북도,060,김제시,31,죽산면 +2422,35,전라북도,060,김제시,32,백산면 +2423,35,전라북도,060,김제시,33,용지면 +2424,35,전라북도,060,김제시,34,백구면 +2425,35,전라북도,060,김제시,35,부량면 +2426,35,전라북도,060,김제시,36,공덕면 +2427,35,전라북도,060,김제시,37,청하면 +2428,35,전라북도,060,김제시,38,성덕면 +2429,35,전라북도,060,김제시,39,진봉면 +2430,35,전라북도,060,김제시,40,금구면 +2431,35,전라북도,060,김제시,41,봉남면 +2432,35,전라북도,060,김제시,42,황산면 +2433,35,전라북도,060,김제시,43,금산면 +2434,35,전라북도,060,김제시,44,광활면 +2435,35,전라북도,060,김제시,51,요촌동 +2436,35,전라북도,060,김제시,52,신풍동 +2437,35,전라북도,060,김제시,54,검산동 +2438,35,전라북도,060,김제시,58,교월동 +2439,35,전라북도,310,완주군,11,삼례읍 +2440,35,전라북도,310,완주군,12,봉동읍 +2441,35,전라북도,310,완주군,13,용진읍 +2442,35,전라북도,310,완주군,32,상관면 +2443,35,전라북도,310,완주군,33,이서면 +2444,35,전라북도,310,완주군,34,소양면 +2445,35,전라북도,310,완주군,35,구이면 +2446,35,전라북도,310,완주군,36,고산면 +2447,35,전라북도,310,완주군,37,비봉면 +2448,35,전라북도,310,완주군,38,운주면 +2449,35,전라북도,310,완주군,39,화산면 +2450,35,전라북도,310,완주군,40,동상면 +2451,35,전라북도,310,완주군,41,경천면 +2452,35,전라북도,320,진안군,11,진안읍 +2453,35,전라북도,320,진안군,31,용담면 +2454,35,전라북도,320,진안군,32,안천면 +2455,35,전라북도,320,진안군,33,동향면 +2456,35,전라북도,320,진안군,34,상전면 +2457,35,전라북도,320,진안군,35,백운면 +2458,35,전라북도,320,진안군,36,성수면 +2459,35,전라북도,320,진안군,37,마령면 +2460,35,전라북도,320,진안군,38,부귀면 +2461,35,전라북도,320,진안군,39,정천면 +2462,35,전라북도,320,진안군,40,주천면 +2463,35,전라북도,330,무주군,11,무주읍 +2464,35,전라북도,330,무주군,31,무풍면 +2465,35,전라북도,330,무주군,32,설천면 +2466,35,전라북도,330,무주군,33,적상면 +2467,35,전라북도,330,무주군,34,안성면 +2468,35,전라북도,330,무주군,35,부남면 +2469,35,전라북도,340,장수군,11,장수읍 +2470,35,전라북도,340,장수군,31,산서면 +2471,35,전라북도,340,장수군,32,번암면 +2472,35,전라북도,340,장수군,33,장계면 +2473,35,전라북도,340,장수군,34,천천면 +2474,35,전라북도,340,장수군,35,계남면 +2475,35,전라북도,340,장수군,36,계북면 +2476,35,전라북도,350,임실군,11,임실읍 +2477,35,전라북도,350,임실군,31,청웅면 +2478,35,전라북도,350,임실군,32,운암면 +2479,35,전라북도,350,임실군,33,신평면 +2480,35,전라북도,350,임실군,34,성수면 +2481,35,전라북도,350,임실군,35,오수면 +2482,35,전라북도,350,임실군,36,신덕면 +2483,35,전라북도,350,임실군,37,삼계면 +2484,35,전라북도,350,임실군,38,관촌면 +2485,35,전라북도,350,임실군,39,강진면 +2486,35,전라북도,350,임실군,40,덕치면 +2487,35,전라북도,350,임실군,41,지사면 +2488,35,전라북도,360,순창군,11,순창읍 +2489,35,전라북도,360,순창군,31,인계면 +2490,35,전라북도,360,순창군,32,동계면 +2491,35,전라북도,360,순창군,33,적성면 +2492,35,전라북도,360,순창군,34,유등면 +2493,35,전라북도,360,순창군,35,풍산면 +2494,35,전라북도,360,순창군,36,금과면 +2495,35,전라북도,360,순창군,37,팔덕면 +2496,35,전라북도,360,순창군,38,복흥면 +2497,35,전라북도,360,순창군,39,쌍치면 +2498,35,전라북도,360,순창군,40,구림면 +2499,35,전라북도,370,고창군,11,고창읍 +2500,35,전라북도,370,고창군,31,고수면 +2501,35,전라북도,370,고창군,32,아산면 +2502,35,전라북도,370,고창군,33,무장면 +2503,35,전라북도,370,고창군,34,공음면 +2504,35,전라북도,370,고창군,35,상하면 +2505,35,전라북도,370,고창군,36,해리면 +2506,35,전라북도,370,고창군,37,성송면 +2507,35,전라북도,370,고창군,38,대산면 +2508,35,전라북도,370,고창군,39,심원면 +2509,35,전라북도,370,고창군,40,흥덕면 +2510,35,전라북도,370,고창군,41,성내면 +2511,35,전라북도,370,고창군,42,신림면 +2512,35,전라북도,370,고창군,43,부안면 +2513,35,전라북도,380,부안군,11,부안읍 +2514,35,전라북도,380,부안군,31,주산면 +2515,35,전라북도,380,부안군,32,동진면 +2516,35,전라북도,380,부안군,33,행안면 +2517,35,전라북도,380,부안군,34,계화면 +2518,35,전라북도,380,부안군,35,보안면 +2519,35,전라북도,380,부안군,36,변산면 +2520,35,전라북도,380,부안군,37,진서면 +2521,35,전라북도,380,부안군,38,백산면 +2522,35,전라북도,380,부안군,39,상서면 +2523,35,전라북도,380,부안군,40,하서면 +2524,35,전라북도,380,부안군,41,줄포면 +2525,35,전라북도,380,부안군,42,위도면 +2526,36,전라남도,010,목포시,51,용당1동 +2527,36,전라남도,010,목포시,52,용당2동 +2528,36,전라남도,010,목포시,53,연동 +2529,36,전라남도,010,목포시,55,산정동 +2530,36,전라남도,010,목포시,56,연산동 +2531,36,전라남도,010,목포시,57,원산동 +2532,36,전라남도,010,목포시,58,대성동 +2533,36,전라남도,010,목포시,60,목원동 +2534,36,전라남도,010,목포시,62,동명동 +2535,36,전라남도,010,목포시,63,삼학동 +2536,36,전라남도,010,목포시,64,만호동 +2537,36,전라남도,010,목포시,65,유달동 +2538,36,전라남도,010,목포시,67,죽교동 +2539,36,전라남도,010,목포시,68,북항동 +2540,36,전라남도,010,목포시,69,용해동 +2541,36,전라남도,010,목포시,70,이로동 +2542,36,전라남도,010,목포시,71,상동 +2543,36,전라남도,010,목포시,72,하당동 +2544,36,전라남도,010,목포시,73,신흥동 +2545,36,전라남도,010,목포시,74,삼향동 +2546,36,전라남도,010,목포시,75,옥암동 +2547,36,전라남도,010,목포시,76,부흥동 +2548,36,전라남도,010,목포시,77,부주동 +2549,36,전라남도,020,여수시,11,돌산읍 +2550,36,전라남도,020,여수시,31,소라면 +2551,36,전라남도,020,여수시,32,율촌면 +2552,36,전라남도,020,여수시,33,화양면 +2553,36,전라남도,020,여수시,34,남면 +2554,36,전라남도,020,여수시,35,화정면 +2555,36,전라남도,020,여수시,36,삼산면 +2556,36,전라남도,020,여수시,51,동문동 +2557,36,전라남도,020,여수시,52,한려동 +2558,36,전라남도,020,여수시,53,중앙동 +2559,36,전라남도,020,여수시,54,충무동 +2560,36,전라남도,020,여수시,55,광림동 +2561,36,전라남도,020,여수시,56,서강동 +2562,36,전라남도,020,여수시,57,대교동 +2563,36,전라남도,020,여수시,58,국동 +2564,36,전라남도,020,여수시,59,월호동 +2565,36,전라남도,020,여수시,60,여서동 +2566,36,전라남도,020,여수시,61,문수동 +2567,36,전라남도,020,여수시,62,미평동 +2568,36,전라남도,020,여수시,63,둔덕동 +2569,36,전라남도,020,여수시,64,만덕동 +2570,36,전라남도,020,여수시,65,쌍봉동 +2571,36,전라남도,020,여수시,66,시전동 +2572,36,전라남도,020,여수시,67,여천동 +2573,36,전라남도,020,여수시,68,주삼동 +2574,36,전라남도,020,여수시,69,삼일동 +2575,36,전라남도,020,여수시,70,묘도동 +2576,36,전라남도,030,순천시,11,승주읍 +2577,36,전라남도,030,순천시,31,주암면 +2578,36,전라남도,030,순천시,32,송광면 +2579,36,전라남도,030,순천시,33,외서면 +2580,36,전라남도,030,순천시,34,낙안면 +2581,36,전라남도,030,순천시,35,별량면 +2582,36,전라남도,030,순천시,36,상사면 +2583,36,전라남도,030,순천시,37,해룡면 +2584,36,전라남도,030,순천시,38,서면 +2585,36,전라남도,030,순천시,39,황전면 +2586,36,전라남도,030,순천시,40,월등면 +2587,36,전라남도,030,순천시,51,향동 +2588,36,전라남도,030,순천시,54,매곡동 +2589,36,전라남도,030,순천시,55,삼산동 +2590,36,전라남도,030,순천시,56,조곡동 +2591,36,전라남도,030,순천시,57,덕연동 +2592,36,전라남도,030,순천시,58,풍덕동 +2593,36,전라남도,030,순천시,59,남제동 +2594,36,전라남도,030,순천시,60,저전동 +2595,36,전라남도,030,순천시,61,장천동 +2596,36,전라남도,030,순천시,62,중앙동 +2597,36,전라남도,030,순천시,63,도사동 +2598,36,전라남도,030,순천시,66,왕조1동 +2599,36,전라남도,030,순천시,67,왕조2동 +2600,36,전라남도,040,나주시,11,남평읍 +2601,36,전라남도,040,나주시,31,세지면 +2602,36,전라남도,040,나주시,32,왕곡면 +2603,36,전라남도,040,나주시,33,반남면 +2604,36,전라남도,040,나주시,34,공산면 +2605,36,전라남도,040,나주시,35,동강면 +2606,36,전라남도,040,나주시,36,다시면 +2607,36,전라남도,040,나주시,37,문평면 +2608,36,전라남도,040,나주시,38,노안면 +2609,36,전라남도,040,나주시,39,금천면 +2610,36,전라남도,040,나주시,40,산포면 +2611,36,전라남도,040,나주시,41,다도면 +2612,36,전라남도,040,나주시,42,봉황면 +2613,36,전라남도,040,나주시,51,송월동 +2614,36,전라남도,040,나주시,52,영강동 +2615,36,전라남도,040,나주시,54,금남동 +2616,36,전라남도,040,나주시,55,성북동 +2617,36,전라남도,040,나주시,58,영산동 +2618,36,전라남도,040,나주시,60,이창동 +2619,36,전라남도,040,나주시,61,빛가람동 +2620,36,전라남도,060,광양시,11,광양읍 +2621,36,전라남도,060,광양시,31,봉강면 +2622,36,전라남도,060,광양시,32,옥룡면 +2623,36,전라남도,060,광양시,33,옥곡면 +2624,36,전라남도,060,광양시,34,진상면 +2625,36,전라남도,060,광양시,35,진월면 +2626,36,전라남도,060,광양시,36,다압면 +2627,36,전라남도,060,광양시,51,골약동 +2628,36,전라남도,060,광양시,53,중마동 +2629,36,전라남도,060,광양시,54,광영동 +2630,36,전라남도,060,광양시,55,태인동 +2631,36,전라남도,060,광양시,56,금호동 +2632,36,전라남도,310,담양군,11,담양읍 +2633,36,전라남도,310,담양군,31,봉산면 +2634,36,전라남도,310,담양군,32,고서면 +2635,36,전라남도,310,담양군,34,창평면 +2636,36,전라남도,310,담양군,35,대덕면 +2637,36,전라남도,310,담양군,36,무정면 +2638,36,전라남도,310,담양군,37,금성면 +2639,36,전라남도,310,담양군,38,용면 +2640,36,전라남도,310,담양군,39,월산면 +2641,36,전라남도,310,담양군,40,수북면 +2642,36,전라남도,310,담양군,41,대전면 +2643,36,전라남도,310,담양군,42,가사문학면 +2644,36,전라남도,320,곡성군,11,곡성읍 +2645,36,전라남도,320,곡성군,31,오곡면 +2646,36,전라남도,320,곡성군,32,삼기면 +2647,36,전라남도,320,곡성군,33,석곡면 +2648,36,전라남도,320,곡성군,34,목사동면 +2649,36,전라남도,320,곡성군,35,죽곡면 +2650,36,전라남도,320,곡성군,36,고달면 +2651,36,전라남도,320,곡성군,37,옥과면 +2652,36,전라남도,320,곡성군,38,입면 +2653,36,전라남도,320,곡성군,39,겸면 +2654,36,전라남도,320,곡성군,40,오산면 +2655,36,전라남도,330,구례군,11,구례읍 +2656,36,전라남도,330,구례군,31,문척면 +2657,36,전라남도,330,구례군,32,간전면 +2658,36,전라남도,330,구례군,33,토지면 +2659,36,전라남도,330,구례군,34,마산면 +2660,36,전라남도,330,구례군,35,광의면 +2661,36,전라남도,330,구례군,36,용방면 +2662,36,전라남도,330,구례군,37,산동면 +2663,36,전라남도,350,고흥군,11,고흥읍 +2664,36,전라남도,350,고흥군,12,도양읍 +2665,36,전라남도,350,고흥군,31,풍양면 +2666,36,전라남도,350,고흥군,32,도덕면 +2667,36,전라남도,350,고흥군,33,금산면 +2668,36,전라남도,350,고흥군,34,도화면 +2669,36,전라남도,350,고흥군,35,포두면 +2670,36,전라남도,350,고흥군,36,봉래면 +2671,36,전라남도,350,고흥군,37,동일면 +2672,36,전라남도,350,고흥군,38,점암면 +2673,36,전라남도,350,고흥군,39,영남면 +2674,36,전라남도,350,고흥군,40,과역면 +2675,36,전라남도,350,고흥군,41,남양면 +2676,36,전라남도,350,고흥군,42,동강면 +2677,36,전라남도,350,고흥군,43,대서면 +2678,36,전라남도,350,고흥군,44,두원면 +2679,36,전라남도,360,보성군,11,보성읍 +2680,36,전라남도,360,보성군,12,벌교읍 +2681,36,전라남도,360,보성군,31,노동면 +2682,36,전라남도,360,보성군,32,미력면 +2683,36,전라남도,360,보성군,33,겸백면 +2684,36,전라남도,360,보성군,34,율어면 +2685,36,전라남도,360,보성군,35,복내면 +2686,36,전라남도,360,보성군,36,문덕면 +2687,36,전라남도,360,보성군,37,조성면 +2688,36,전라남도,360,보성군,38,득량면 +2689,36,전라남도,360,보성군,39,회천면 +2690,36,전라남도,360,보성군,40,웅치면 +2691,36,전라남도,370,화순군,11,화순읍 +2692,36,전라남도,370,화순군,31,한천면 +2693,36,전라남도,370,화순군,32,춘양면 +2694,36,전라남도,370,화순군,33,청풍면 +2695,36,전라남도,370,화순군,34,이양면 +2696,36,전라남도,370,화순군,35,능주면 +2697,36,전라남도,370,화순군,36,도곡면 +2698,36,전라남도,370,화순군,37,도암면 +2699,36,전라남도,370,화순군,38,이서면 +2700,36,전라남도,370,화순군,40,동복면 +2701,36,전라남도,370,화순군,42,동면 +2702,36,전라남도,370,화순군,43,백아면 +2703,36,전라남도,370,화순군,44,사평면 +2704,36,전라남도,380,장흥군,11,장흥읍 +2705,36,전라남도,380,장흥군,12,관산읍 +2706,36,전라남도,380,장흥군,13,대덕읍 +2707,36,전라남도,380,장흥군,31,용산면 +2708,36,전라남도,380,장흥군,32,안양면 +2709,36,전라남도,380,장흥군,33,장동면 +2710,36,전라남도,380,장흥군,34,장평면 +2711,36,전라남도,380,장흥군,35,유치면 +2712,36,전라남도,380,장흥군,36,부산면 +2713,36,전라남도,380,장흥군,37,회진면 +2714,36,전라남도,390,강진군,11,강진읍 +2715,36,전라남도,390,강진군,31,군동면 +2716,36,전라남도,390,강진군,32,칠량면 +2717,36,전라남도,390,강진군,33,대구면 +2718,36,전라남도,390,강진군,34,마량면 +2719,36,전라남도,390,강진군,35,도암면 +2720,36,전라남도,390,강진군,36,신전면 +2721,36,전라남도,390,강진군,37,성전면 +2722,36,전라남도,390,강진군,38,작천면 +2723,36,전라남도,390,강진군,39,병영면 +2724,36,전라남도,390,강진군,40,옴천면 +2725,36,전라남도,400,해남군,11,해남읍 +2726,36,전라남도,400,해남군,31,삼산면 +2727,36,전라남도,400,해남군,32,화산면 +2728,36,전라남도,400,해남군,33,현산면 +2729,36,전라남도,400,해남군,34,송지면 +2730,36,전라남도,400,해남군,35,북평면 +2731,36,전라남도,400,해남군,36,북일면 +2732,36,전라남도,400,해남군,37,옥천면 +2733,36,전라남도,400,해남군,38,계곡면 +2734,36,전라남도,400,해남군,39,마산면 +2735,36,전라남도,400,해남군,40,황산면 +2736,36,전라남도,400,해남군,41,산이면 +2737,36,전라남도,400,해남군,42,문내면 +2738,36,전라남도,400,해남군,43,화원면 +2739,36,전라남도,410,영암군,11,영암읍 +2740,36,전라남도,410,영암군,12,삼호읍 +2741,36,전라남도,410,영암군,31,덕진면 +2742,36,전라남도,410,영암군,32,금정면 +2743,36,전라남도,410,영암군,33,신북면 +2744,36,전라남도,410,영암군,34,시종면 +2745,36,전라남도,410,영암군,35,도포면 +2746,36,전라남도,410,영암군,36,군서면 +2747,36,전라남도,410,영암군,37,서호면 +2748,36,전라남도,410,영암군,38,학산면 +2749,36,전라남도,410,영암군,39,미암면 +2750,36,전라남도,420,무안군,11,무안읍 +2751,36,전라남도,420,무안군,12,일로읍 +2752,36,전라남도,420,무안군,13,삼향읍 +2753,36,전라남도,420,무안군,32,몽탄면 +2754,36,전라남도,420,무안군,33,청계면 +2755,36,전라남도,420,무안군,34,현경면 +2756,36,전라남도,420,무안군,35,망운면 +2757,36,전라남도,420,무안군,36,해제면 +2758,36,전라남도,420,무안군,37,운남면 +2759,36,전라남도,430,함평군,11,함평읍 +2760,36,전라남도,430,함평군,31,손불면 +2761,36,전라남도,430,함평군,32,신광면 +2762,36,전라남도,430,함평군,33,학교면 +2763,36,전라남도,430,함평군,34,엄다면 +2764,36,전라남도,430,함평군,35,대동면 +2765,36,전라남도,430,함평군,36,나산면 +2766,36,전라남도,430,함평군,37,해보면 +2767,36,전라남도,430,함평군,38,월야면 +2768,36,전라남도,440,영광군,11,영광읍 +2769,36,전라남도,440,영광군,12,백수읍 +2770,36,전라남도,440,영광군,13,홍농읍 +2771,36,전라남도,440,영광군,31,대마면 +2772,36,전라남도,440,영광군,32,묘량면 +2773,36,전라남도,440,영광군,33,불갑면 +2774,36,전라남도,440,영광군,34,군서면 +2775,36,전라남도,440,영광군,35,군남면 +2776,36,전라남도,440,영광군,36,염산면 +2777,36,전라남도,440,영광군,37,법성면 +2778,36,전라남도,440,영광군,38,낙월면 +2779,36,전라남도,450,장성군,11,장성읍 +2780,36,전라남도,450,장성군,31,진원면 +2781,36,전라남도,450,장성군,32,남면 +2782,36,전라남도,450,장성군,33,동화면 +2783,36,전라남도,450,장성군,34,삼서면 +2784,36,전라남도,450,장성군,35,삼계면 +2785,36,전라남도,450,장성군,36,황룡면 +2786,36,전라남도,450,장성군,37,서삼면 +2787,36,전라남도,450,장성군,38,북일면 +2788,36,전라남도,450,장성군,39,북이면 +2789,36,전라남도,450,장성군,40,북하면 +2790,36,전라남도,460,완도군,11,완도읍 +2791,36,전라남도,460,완도군,12,금일읍 +2792,36,전라남도,460,완도군,13,노화읍 +2793,36,전라남도,460,완도군,31,군외면 +2794,36,전라남도,460,완도군,32,신지면 +2795,36,전라남도,460,완도군,33,고금면 +2796,36,전라남도,460,완도군,34,약산면 +2797,36,전라남도,460,완도군,35,청산면 +2798,36,전라남도,460,완도군,36,소안면 +2799,36,전라남도,460,완도군,37,금당면 +2800,36,전라남도,460,완도군,38,보길면 +2801,36,전라남도,460,완도군,39,생일면 +2802,36,전라남도,470,진도군,11,진도읍 +2803,36,전라남도,470,진도군,31,군내면 +2804,36,전라남도,470,진도군,32,고군면 +2805,36,전라남도,470,진도군,33,의신면 +2806,36,전라남도,470,진도군,34,임회면 +2807,36,전라남도,470,진도군,35,지산면 +2808,36,전라남도,470,진도군,36,조도면 +2809,36,전라남도,480,신안군,11,지도읍 +2810,36,전라남도,480,신안군,12,압해읍 +2811,36,전라남도,480,신안군,31,증도면 +2812,36,전라남도,480,신안군,32,임자면 +2813,36,전라남도,480,신안군,33,자은면 +2814,36,전라남도,480,신안군,34,비금면 +2815,36,전라남도,480,신안군,35,도초면 +2816,36,전라남도,480,신안군,36,흑산면 +2817,36,전라남도,480,신안군,37,하의면 +2818,36,전라남도,480,신안군,38,신의면 +2819,36,전라남도,480,신안군,39,장산면 +2820,36,전라남도,480,신안군,40,안좌면 +2821,36,전라남도,480,신안군,41,팔금면 +2822,36,전라남도,480,신안군,42,암태면 +2823,37,경상북도,011,포항시 남구,11,구룡포읍 +2824,37,경상북도,011,포항시 남구,12,연일읍 +2825,37,경상북도,011,포항시 남구,13,오천읍 +2826,37,경상북도,011,포항시 남구,31,대송면 +2827,37,경상북도,011,포항시 남구,32,동해면 +2828,37,경상북도,011,포항시 남구,33,장기면 +2829,37,경상북도,011,포항시 남구,35,호미곶면 +2830,37,경상북도,011,포항시 남구,55,송도동 +2831,37,경상북도,011,포항시 남구,56,청림동 +2832,37,경상북도,011,포항시 남구,57,제철동 +2833,37,경상북도,011,포항시 남구,58,효곡동 +2834,37,경상북도,011,포항시 남구,59,대이동 +2835,37,경상북도,011,포항시 남구,60,상대동 +2836,37,경상북도,011,포항시 남구,61,해도동 +2837,37,경상북도,012,포항시 북구,11,흥해읍 +2838,37,경상북도,012,포항시 북구,31,신광면 +2839,37,경상북도,012,포항시 북구,32,청하면 +2840,37,경상북도,012,포항시 북구,33,송라면 +2841,37,경상북도,012,포항시 북구,34,기계면 +2842,37,경상북도,012,포항시 북구,35,죽장면 +2843,37,경상북도,012,포항시 북구,36,기북면 +2844,37,경상북도,012,포항시 북구,58,양학동 +2845,37,경상북도,012,포항시 북구,61,용흥동 +2846,37,경상북도,012,포항시 북구,63,우창동 +2847,37,경상북도,012,포항시 북구,64,두호동 +2848,37,경상북도,012,포항시 북구,65,장량동 +2849,37,경상북도,012,포항시 북구,66,환여동 +2850,37,경상북도,012,포항시 북구,67,중앙동 +2851,37,경상북도,012,포항시 북구,68,죽도동 +2852,37,경상북도,020,경주시,11,감포읍 +2853,37,경상북도,020,경주시,12,안강읍 +2854,37,경상북도,020,경주시,13,건천읍 +2855,37,경상북도,020,경주시,14,외동읍 +2856,37,경상북도,020,경주시,32,양남면 +2857,37,경상북도,020,경주시,33,내남면 +2858,37,경상북도,020,경주시,34,산내면 +2859,37,경상북도,020,경주시,35,서면 +2860,37,경상북도,020,경주시,36,현곡면 +2861,37,경상북도,020,경주시,37,강동면 +2862,37,경상북도,020,경주시,38,천북면 +2863,37,경상북도,020,경주시,39,문무대왕면 +2864,37,경상북도,020,경주시,51,중부동 +2865,37,경상북도,020,경주시,55,성건동 +2866,37,경상북도,020,경주시,58,월성동 +2867,37,경상북도,020,경주시,59,선도동 +2868,37,경상북도,020,경주시,62,용강동 +2869,37,경상북도,020,경주시,63,황성동 +2870,37,경상북도,020,경주시,64,동천동 +2871,37,경상북도,020,경주시,66,불국동 +2872,37,경상북도,020,경주시,67,보덕동 +2873,37,경상북도,020,경주시,68,황오동 +2874,37,경상북도,020,경주시,69,황남동 +2875,37,경상북도,030,김천시,11,아포읍 +2876,37,경상북도,030,김천시,31,농소면 +2877,37,경상북도,030,김천시,32,남면 +2878,37,경상북도,030,김천시,33,개령면 +2879,37,경상북도,030,김천시,34,감문면 +2880,37,경상북도,030,김천시,35,어모면 +2881,37,경상북도,030,김천시,36,봉산면 +2882,37,경상북도,030,김천시,37,대항면 +2883,37,경상북도,030,김천시,38,감천면 +2884,37,경상북도,030,김천시,39,조마면 +2885,37,경상북도,030,김천시,40,구성면 +2886,37,경상북도,030,김천시,41,지례면 +2887,37,경상북도,030,김천시,42,부항면 +2888,37,경상북도,030,김천시,43,대덕면 +2889,37,경상북도,030,김천시,44,증산면 +2890,37,경상북도,030,김천시,55,양금동 +2891,37,경상북도,030,김천시,56,대신동 +2892,37,경상북도,030,김천시,58,대곡동 +2893,37,경상북도,030,김천시,59,지좌동 +2894,37,경상북도,030,김천시,60,자산동 +2895,37,경상북도,030,김천시,61,평화남산동 +2896,37,경상북도,030,김천시,62,율곡동 +2897,37,경상북도,040,안동시,11,풍산읍 +2898,37,경상북도,040,안동시,31,와룡면 +2899,37,경상북도,040,안동시,32,북후면 +2900,37,경상북도,040,안동시,33,서후면 +2901,37,경상북도,040,안동시,34,풍천면 +2902,37,경상북도,040,안동시,35,일직면 +2903,37,경상북도,040,안동시,36,남후면 +2904,37,경상북도,040,안동시,37,남선면 +2905,37,경상북도,040,안동시,38,임하면 +2906,37,경상북도,040,안동시,39,길안면 +2907,37,경상북도,040,안동시,40,임동면 +2908,37,경상북도,040,안동시,41,예안면 +2909,37,경상북도,040,안동시,42,도산면 +2910,37,경상북도,040,안동시,43,녹전면 +2911,37,경상북도,040,안동시,51,중구동 +2912,37,경상북도,040,안동시,52,명륜동 +2913,37,경상북도,040,안동시,54,용상동 +2914,37,경상북도,040,안동시,56,태화동 +2915,37,경상북도,040,안동시,58,평화동 +2916,37,경상북도,040,안동시,59,안기동 +2917,37,경상북도,040,안동시,60,옥동 +2918,37,경상북도,040,안동시,61,송하동 +2919,37,경상북도,040,안동시,62,서구동 +2920,37,경상북도,040,안동시,63,강남동 +2921,37,경상북도,050,구미시,11,선산읍 +2922,37,경상북도,050,구미시,12,고아읍 +2923,37,경상북도,050,구미시,13,산동읍 +2924,37,경상북도,050,구미시,31,무을면 +2925,37,경상북도,050,구미시,32,옥성면 +2926,37,경상북도,050,구미시,33,도개면 +2927,37,경상북도,050,구미시,34,해평면 +2928,37,경상북도,050,구미시,36,장천면 +2929,37,경상북도,050,구미시,51,송정동 +2930,37,경상북도,050,구미시,52,원평1동 +2931,37,경상북도,050,구미시,53,원평2동 +2932,37,경상북도,050,구미시,55,도량동 +2933,37,경상북도,050,구미시,56,지산동 +2934,37,경상북도,050,구미시,57,선주원남동 +2935,37,경상북도,050,구미시,59,형곡1동 +2936,37,경상북도,050,구미시,60,형곡2동 +2937,37,경상북도,050,구미시,61,신평1동 +2938,37,경상북도,050,구미시,62,신평2동 +2939,37,경상북도,050,구미시,66,광평동 +2940,37,경상북도,050,구미시,67,상모사곡동 +2941,37,경상북도,050,구미시,69,임오동 +2942,37,경상북도,050,구미시,70,인동동 +2943,37,경상북도,050,구미시,71,진미동 +2944,37,경상북도,050,구미시,72,양포동 +2945,37,경상북도,050,구미시,73,비산동 +2946,37,경상북도,050,구미시,74,공단동 +2947,37,경상북도,060,영주시,11,풍기읍 +2948,37,경상북도,060,영주시,31,이산면 +2949,37,경상북도,060,영주시,32,평은면 +2950,37,경상북도,060,영주시,33,문수면 +2951,37,경상북도,060,영주시,34,장수면 +2952,37,경상북도,060,영주시,35,안정면 +2953,37,경상북도,060,영주시,36,봉현면 +2954,37,경상북도,060,영주시,37,순흥면 +2955,37,경상북도,060,영주시,38,단산면 +2956,37,경상북도,060,영주시,39,부석면 +2957,37,경상북도,060,영주시,51,상망동 +2958,37,경상북도,060,영주시,53,하망동 +2959,37,경상북도,060,영주시,55,영주1동 +2960,37,경상북도,060,영주시,58,영주2동 +2961,37,경상북도,060,영주시,59,휴천1동 +2962,37,경상북도,060,영주시,60,휴천2동 +2963,37,경상북도,060,영주시,61,휴천3동 +2964,37,경상북도,060,영주시,62,가흥1동 +2965,37,경상북도,060,영주시,63,가흥2동 +2966,37,경상북도,070,영천시,11,금호읍 +2967,37,경상북도,070,영천시,31,청통면 +2968,37,경상북도,070,영천시,32,신녕면 +2969,37,경상북도,070,영천시,33,화산면 +2970,37,경상북도,070,영천시,34,화북면 +2971,37,경상북도,070,영천시,35,화남면 +2972,37,경상북도,070,영천시,36,자양면 +2973,37,경상북도,070,영천시,37,임고면 +2974,37,경상북도,070,영천시,38,고경면 +2975,37,경상북도,070,영천시,39,북안면 +2976,37,경상북도,070,영천시,40,대창면 +2977,37,경상북도,070,영천시,51,동부동 +2978,37,경상북도,070,영천시,52,중앙동 +2979,37,경상북도,070,영천시,53,서부동 +2980,37,경상북도,070,영천시,54,완산동 +2981,37,경상북도,070,영천시,55,남부동 +2982,37,경상북도,080,상주시,11,함창읍 +2983,37,경상북도,080,상주시,32,중동면 +2984,37,경상북도,080,상주시,33,낙동면 +2985,37,경상북도,080,상주시,34,청리면 +2986,37,경상북도,080,상주시,35,공성면 +2987,37,경상북도,080,상주시,36,외남면 +2988,37,경상북도,080,상주시,37,내서면 +2989,37,경상북도,080,상주시,38,모동면 +2990,37,경상북도,080,상주시,39,모서면 +2991,37,경상북도,080,상주시,40,화동면 +2992,37,경상북도,080,상주시,41,화서면 +2993,37,경상북도,080,상주시,42,화북면 +2994,37,경상북도,080,상주시,43,외서면 +2995,37,경상북도,080,상주시,44,은척면 +2996,37,경상북도,080,상주시,45,공검면 +2997,37,경상북도,080,상주시,46,이안면 +2998,37,경상북도,080,상주시,47,화남면 +2999,37,경상북도,080,상주시,48,사벌국면 +3000,37,경상북도,080,상주시,52,남원동 +3001,37,경상북도,080,상주시,53,북문동 +3002,37,경상북도,080,상주시,54,계림동 +3003,37,경상북도,080,상주시,55,동문동 +3004,37,경상북도,080,상주시,56,동성동 +3005,37,경상북도,080,상주시,57,신흥동 +3006,37,경상북도,090,문경시,11,문경읍 +3007,37,경상북도,090,문경시,12,가은읍 +3008,37,경상북도,090,문경시,31,영순면 +3009,37,경상북도,090,문경시,32,산양면 +3010,37,경상북도,090,문경시,33,호계면 +3011,37,경상북도,090,문경시,34,산북면 +3012,37,경상북도,090,문경시,35,동로면 +3013,37,경상북도,090,문경시,36,마성면 +3014,37,경상북도,090,문경시,37,농암면 +3015,37,경상북도,090,문경시,57,점촌1동 +3016,37,경상북도,090,문경시,58,점촌2동 +3017,37,경상북도,090,문경시,59,점촌3동 +3018,37,경상북도,090,문경시,60,점촌4동 +3019,37,경상북도,090,문경시,61,점촌5동 +3020,37,경상북도,100,경산시,11,하양읍 +3021,37,경상북도,100,경산시,12,진량읍 +3022,37,경상북도,100,경산시,13,압량읍 +3023,37,경상북도,100,경산시,31,와촌면 +3024,37,경상북도,100,경산시,32,자인면 +3025,37,경상북도,100,경산시,33,용성면 +3026,37,경상북도,100,경산시,34,남산면 +3027,37,경상북도,100,경산시,36,남천면 +3028,37,경상북도,100,경산시,51,중앙동 +3029,37,경상북도,100,경산시,52,동부동 +3030,37,경상북도,100,경산시,53,서부1동 +3031,37,경상북도,100,경산시,54,남부동 +3032,37,경상북도,100,경산시,55,북부동 +3033,37,경상북도,100,경산시,56,중방동 +3034,37,경상북도,100,경산시,57,서부2동 +3035,37,경상북도,310,군위군,11,군위읍 +3036,37,경상북도,310,군위군,31,소보면 +3037,37,경상북도,310,군위군,32,효령면 +3038,37,경상북도,310,군위군,33,부계면 +3039,37,경상북도,310,군위군,34,우보면 +3040,37,경상북도,310,군위군,35,의흥면 +3041,37,경상북도,310,군위군,36,산성면 +3042,37,경상북도,310,군위군,38,삼국유사면 +3043,37,경상북도,320,의성군,11,의성읍 +3044,37,경상북도,320,의성군,31,단촌면 +3045,37,경상북도,320,의성군,32,점곡면 +3046,37,경상북도,320,의성군,33,옥산면 +3047,37,경상북도,320,의성군,34,사곡면 +3048,37,경상북도,320,의성군,35,춘산면 +3049,37,경상북도,320,의성군,36,가음면 +3050,37,경상북도,320,의성군,37,금성면 +3051,37,경상북도,320,의성군,38,봉양면 +3052,37,경상북도,320,의성군,39,비안면 +3053,37,경상북도,320,의성군,40,구천면 +3054,37,경상북도,320,의성군,41,단밀면 +3055,37,경상북도,320,의성군,42,단북면 +3056,37,경상북도,320,의성군,43,안계면 +3057,37,경상북도,320,의성군,44,다인면 +3058,37,경상북도,320,의성군,45,신평면 +3059,37,경상북도,320,의성군,46,안평면 +3060,37,경상북도,320,의성군,47,안사면 +3061,37,경상북도,330,청송군,11,청송읍 +3062,37,경상북도,330,청송군,32,부남면 +3063,37,경상북도,330,청송군,33,현동면 +3064,37,경상북도,330,청송군,34,현서면 +3065,37,경상북도,330,청송군,35,안덕면 +3066,37,경상북도,330,청송군,36,파천면 +3067,37,경상북도,330,청송군,37,진보면 +3068,37,경상북도,330,청송군,38,주왕산면 +3069,37,경상북도,340,영양군,11,영양읍 +3070,37,경상북도,340,영양군,31,입암면 +3071,37,경상북도,340,영양군,32,청기면 +3072,37,경상북도,340,영양군,33,일월면 +3073,37,경상북도,340,영양군,34,수비면 +3074,37,경상북도,340,영양군,35,석보면 +3075,37,경상북도,350,영덕군,11,영덕읍 +3076,37,경상북도,350,영덕군,31,강구면 +3077,37,경상북도,350,영덕군,32,남정면 +3078,37,경상북도,350,영덕군,33,달산면 +3079,37,경상북도,350,영덕군,34,지품면 +3080,37,경상북도,350,영덕군,35,축산면 +3081,37,경상북도,350,영덕군,36,영해면 +3082,37,경상북도,350,영덕군,37,병곡면 +3083,37,경상북도,350,영덕군,38,창수면 +3084,37,경상북도,360,청도군,11,화양읍 +3085,37,경상북도,360,청도군,12,청도읍 +3086,37,경상북도,360,청도군,31,각남면 +3087,37,경상북도,360,청도군,32,풍각면 +3088,37,경상북도,360,청도군,33,각북면 +3089,37,경상북도,360,청도군,34,이서면 +3090,37,경상북도,360,청도군,35,운문면 +3091,37,경상북도,360,청도군,36,금천면 +3092,37,경상북도,360,청도군,37,매전면 +3093,37,경상북도,370,고령군,12,대가야읍 +3094,37,경상북도,370,고령군,31,덕곡면 +3095,37,경상북도,370,고령군,32,운수면 +3096,37,경상북도,370,고령군,33,성산면 +3097,37,경상북도,370,고령군,34,다산면 +3098,37,경상북도,370,고령군,35,개진면 +3099,37,경상북도,370,고령군,36,우곡면 +3100,37,경상북도,370,고령군,37,쌍림면 +3101,37,경상북도,380,성주군,11,성주읍 +3102,37,경상북도,380,성주군,31,선남면 +3103,37,경상북도,380,성주군,32,용암면 +3104,37,경상북도,380,성주군,33,수륜면 +3105,37,경상북도,380,성주군,34,가천면 +3106,37,경상북도,380,성주군,35,금수면 +3107,37,경상북도,380,성주군,36,대가면 +3108,37,경상북도,380,성주군,37,벽진면 +3109,37,경상북도,380,성주군,38,초전면 +3110,37,경상북도,380,성주군,39,월항면 +3111,37,경상북도,390,칠곡군,11,왜관읍 +3112,37,경상북도,390,칠곡군,12,북삼읍 +3113,37,경상북도,390,칠곡군,13,석적읍 +3114,37,경상북도,390,칠곡군,31,지천면 +3115,37,경상북도,390,칠곡군,32,동명면 +3116,37,경상북도,390,칠곡군,33,가산면 +3117,37,경상북도,390,칠곡군,36,약목면 +3118,37,경상북도,390,칠곡군,37,기산면 +3119,37,경상북도,400,예천군,11,예천읍 +3120,37,경상북도,400,예천군,31,용문면 +3121,37,경상북도,400,예천군,34,감천면 +3122,37,경상북도,400,예천군,35,보문면 +3123,37,경상북도,400,예천군,36,호명면 +3124,37,경상북도,400,예천군,37,유천면 +3125,37,경상북도,400,예천군,38,용궁면 +3126,37,경상북도,400,예천군,39,개포면 +3127,37,경상북도,400,예천군,40,지보면 +3128,37,경상북도,400,예천군,41,풍양면 +3129,37,경상북도,400,예천군,42,효자면 +3130,37,경상북도,400,예천군,43,은풍면 +3131,37,경상북도,410,봉화군,11,봉화읍 +3132,37,경상북도,410,봉화군,31,물야면 +3133,37,경상북도,410,봉화군,32,봉성면 +3134,37,경상북도,410,봉화군,33,법전면 +3135,37,경상북도,410,봉화군,34,춘양면 +3136,37,경상북도,410,봉화군,35,소천면 +3137,37,경상북도,410,봉화군,36,석포면 +3138,37,경상북도,410,봉화군,37,재산면 +3139,37,경상북도,410,봉화군,38,명호면 +3140,37,경상북도,410,봉화군,39,상운면 +3141,37,경상북도,420,울진군,11,울진읍 +3142,37,경상북도,420,울진군,12,평해읍 +3143,37,경상북도,420,울진군,31,북면 +3144,37,경상북도,420,울진군,33,근남면 +3145,37,경상북도,420,울진군,35,기성면 +3146,37,경상북도,420,울진군,36,온정면 +3147,37,경상북도,420,울진군,37,죽변면 +3148,37,경상북도,420,울진군,38,후포면 +3149,37,경상북도,420,울진군,39,금강송면 +3150,37,경상북도,420,울진군,40,매화면 +3151,37,경상북도,430,울릉군,11,울릉읍 +3152,37,경상북도,430,울릉군,31,서면 +3153,37,경상북도,430,울릉군,32,북면 +3154,38,경상남도,030,진주시,11,문산읍 +3155,38,경상남도,030,진주시,31,내동면 +3156,38,경상남도,030,진주시,32,정촌면 +3157,38,경상남도,030,진주시,33,금곡면 +3158,38,경상남도,030,진주시,34,진성면 +3159,38,경상남도,030,진주시,35,일반성면 +3160,38,경상남도,030,진주시,36,이반성면 +3161,38,경상남도,030,진주시,37,사봉면 +3162,38,경상남도,030,진주시,38,지수면 +3163,38,경상남도,030,진주시,39,대곡면 +3164,38,경상남도,030,진주시,40,금산면 +3165,38,경상남도,030,진주시,41,집현면 +3166,38,경상남도,030,진주시,42,미천면 +3167,38,경상남도,030,진주시,43,명석면 +3168,38,경상남도,030,진주시,44,대평면 +3169,38,경상남도,030,진주시,45,수곡면 +3170,38,경상남도,030,진주시,65,상평동 +3171,38,경상남도,030,진주시,66,초장동 +3172,38,경상남도,030,진주시,67,평거동 +3173,38,경상남도,030,진주시,68,신안동 +3174,38,경상남도,030,진주시,69,이현동 +3175,38,경상남도,030,진주시,70,판문동 +3176,38,경상남도,030,진주시,71,가호동 +3177,38,경상남도,030,진주시,72,천전동 +3178,38,경상남도,030,진주시,73,성북동 +3179,38,경상남도,030,진주시,74,중앙동 +3180,38,경상남도,030,진주시,75,상봉동 +3181,38,경상남도,030,진주시,76,충무공동 +3182,38,경상남도,030,진주시,77,상대동 +3183,38,경상남도,030,진주시,78,하대동 +3184,38,경상남도,050,통영시,11,산양읍 +3185,38,경상남도,050,통영시,31,용남면 +3186,38,경상남도,050,통영시,32,도산면 +3187,38,경상남도,050,통영시,33,광도면 +3188,38,경상남도,050,통영시,34,욕지면 +3189,38,경상남도,050,통영시,35,한산면 +3190,38,경상남도,050,통영시,36,사량면 +3191,38,경상남도,050,통영시,52,명정동 +3192,38,경상남도,050,통영시,53,중앙동 +3193,38,경상남도,050,통영시,54,정량동 +3194,38,경상남도,050,통영시,55,북신동 +3195,38,경상남도,050,통영시,56,무전동 +3196,38,경상남도,050,통영시,62,도천동 +3197,38,경상남도,050,통영시,63,미수동 +3198,38,경상남도,050,통영시,64,봉평동 +3199,38,경상남도,060,사천시,11,사천읍 +3200,38,경상남도,060,사천시,31,정동면 +3201,38,경상남도,060,사천시,32,사남면 +3202,38,경상남도,060,사천시,33,용현면 +3203,38,경상남도,060,사천시,34,축동면 +3204,38,경상남도,060,사천시,35,곤양면 +3205,38,경상남도,060,사천시,36,곤명면 +3206,38,경상남도,060,사천시,37,서포면 +3207,38,경상남도,060,사천시,51,동서동 +3208,38,경상남도,060,사천시,52,선구동 +3209,38,경상남도,060,사천시,53,동서금동 +3210,38,경상남도,060,사천시,55,벌용동 +3211,38,경상남도,060,사천시,57,향촌동 +3212,38,경상남도,060,사천시,59,남양동 +3213,38,경상남도,070,김해시,11,진영읍 +3214,38,경상남도,070,김해시,32,주촌면 +3215,38,경상남도,070,김해시,33,진례면 +3216,38,경상남도,070,김해시,34,한림면 +3217,38,경상남도,070,김해시,35,생림면 +3218,38,경상남도,070,김해시,36,상동면 +3219,38,경상남도,070,김해시,37,대동면 +3220,38,경상남도,070,김해시,51,동상동 +3221,38,경상남도,070,김해시,52,회현동 +3222,38,경상남도,070,김해시,53,부원동 +3223,38,경상남도,070,김해시,54,내외동 +3224,38,경상남도,070,김해시,55,북부동 +3225,38,경상남도,070,김해시,56,칠산서부동 +3226,38,경상남도,070,김해시,58,활천동 +3227,38,경상남도,070,김해시,59,삼안동 +3228,38,경상남도,070,김해시,60,불암동 +3229,38,경상남도,070,김해시,61,장유1동 +3230,38,경상남도,070,김해시,62,장유2동 +3231,38,경상남도,070,김해시,63,장유3동 +3232,38,경상남도,080,밀양시,11,삼랑진읍 +3233,38,경상남도,080,밀양시,12,하남읍 +3234,38,경상남도,080,밀양시,31,부북면 +3235,38,경상남도,080,밀양시,32,상동면 +3236,38,경상남도,080,밀양시,33,산외면 +3237,38,경상남도,080,밀양시,34,산내면 +3238,38,경상남도,080,밀양시,35,단장면 +3239,38,경상남도,080,밀양시,36,상남면 +3240,38,경상남도,080,밀양시,37,초동면 +3241,38,경상남도,080,밀양시,38,무안면 +3242,38,경상남도,080,밀양시,39,청도면 +3243,38,경상남도,080,밀양시,51,내일동 +3244,38,경상남도,080,밀양시,52,내이동 +3245,38,경상남도,080,밀양시,53,교동 +3246,38,경상남도,080,밀양시,54,삼문동 +3247,38,경상남도,080,밀양시,55,가곡동 +3248,38,경상남도,090,거제시,31,일운면 +3249,38,경상남도,090,거제시,32,동부면 +3250,38,경상남도,090,거제시,33,남부면 +3251,38,경상남도,090,거제시,34,거제면 +3252,38,경상남도,090,거제시,35,둔덕면 +3253,38,경상남도,090,거제시,36,사등면 +3254,38,경상남도,090,거제시,37,연초면 +3255,38,경상남도,090,거제시,38,하청면 +3256,38,경상남도,090,거제시,39,장목면 +3257,38,경상남도,090,거제시,53,능포동 +3258,38,경상남도,090,거제시,54,아주동 +3259,38,경상남도,090,거제시,55,옥포1동 +3260,38,경상남도,090,거제시,56,옥포2동 +3261,38,경상남도,090,거제시,57,장평동 +3262,38,경상남도,090,거제시,58,고현동 +3263,38,경상남도,090,거제시,59,상문동 +3264,38,경상남도,090,거제시,60,수양동 +3265,38,경상남도,090,거제시,61,장승포동 +3266,38,경상남도,100,양산시,12,물금읍 +3267,38,경상남도,100,양산시,31,동면 +3268,38,경상남도,100,양산시,32,원동면 +3269,38,경상남도,100,양산시,33,상북면 +3270,38,경상남도,100,양산시,34,하북면 +3271,38,경상남도,100,양산시,52,삼성동 +3272,38,경상남도,100,양산시,53,강서동 +3273,38,경상남도,100,양산시,54,서창동 +3274,38,경상남도,100,양산시,55,소주동 +3275,38,경상남도,100,양산시,56,평산동 +3276,38,경상남도,100,양산시,57,덕계동 +3277,38,경상남도,100,양산시,58,중앙동 +3278,38,경상남도,100,양산시,59,양주동 +3279,38,경상남도,111,창원시 의창구,11,동읍 +3280,38,경상남도,111,창원시 의창구,31,북면 +3281,38,경상남도,111,창원시 의창구,32,대산면 +3282,38,경상남도,111,창원시 의창구,51,의창동 +3283,38,경상남도,111,창원시 의창구,52,팔룡동 +3284,38,경상남도,111,창원시 의창구,53,명곡동 +3285,38,경상남도,111,창원시 의창구,54,봉림동 +3286,38,경상남도,111,창원시 의창구,55,용지동 +3287,38,경상남도,112,창원시 성산구,51,반송동 +3288,38,경상남도,112,창원시 성산구,52,중앙동 +3289,38,경상남도,112,창원시 성산구,53,상남동 +3290,38,경상남도,112,창원시 성산구,54,사파동 +3291,38,경상남도,112,창원시 성산구,55,가음정동 +3292,38,경상남도,112,창원시 성산구,56,성주동 +3293,38,경상남도,112,창원시 성산구,57,웅남동 +3294,38,경상남도,113,창원시 마산합포구,31,구산면 +3295,38,경상남도,113,창원시 마산합포구,32,진동면 +3296,38,경상남도,113,창원시 마산합포구,33,진북면 +3297,38,경상남도,113,창원시 마산합포구,34,진전면 +3298,38,경상남도,113,창원시 마산합포구,51,현동 +3299,38,경상남도,113,창원시 마산합포구,52,가포동 +3300,38,경상남도,113,창원시 마산합포구,53,월영동 +3301,38,경상남도,113,창원시 마산합포구,54,문화동 +3302,38,경상남도,113,창원시 마산합포구,57,완월동 +3303,38,경상남도,113,창원시 마산합포구,58,자산동 +3304,38,경상남도,113,창원시 마산합포구,64,합포동 +3305,38,경상남도,113,창원시 마산합포구,65,산호동 +3306,38,경상남도,113,창원시 마산합포구,66,반월중앙동 +3307,38,경상남도,113,창원시 마산합포구,67,오동동 +3308,38,경상남도,113,창원시 마산합포구,68,교방동 +3309,38,경상남도,114,창원시 마산회원구,11,내서읍 +3310,38,경상남도,114,창원시 마산회원구,51,회원1동 +3311,38,경상남도,114,창원시 마산회원구,52,회원2동 +3312,38,경상남도,114,창원시 마산회원구,55,회성동 +3313,38,경상남도,114,창원시 마산회원구,56,양덕1동 +3314,38,경상남도,114,창원시 마산회원구,57,양덕2동 +3315,38,경상남도,114,창원시 마산회원구,58,합성1동 +3316,38,경상남도,114,창원시 마산회원구,59,합성2동 +3317,38,경상남도,114,창원시 마산회원구,60,구암1동 +3318,38,경상남도,114,창원시 마산회원구,61,구암2동 +3319,38,경상남도,114,창원시 마산회원구,62,봉암동 +3320,38,경상남도,114,창원시 마산회원구,63,석전동 +3321,38,경상남도,115,창원시 진해구,54,여좌동 +3322,38,경상남도,115,창원시 진해구,55,태백동 +3323,38,경상남도,115,창원시 진해구,56,경화동 +3324,38,경상남도,115,창원시 진해구,57,병암동 +3325,38,경상남도,115,창원시 진해구,58,석동 +3326,38,경상남도,115,창원시 진해구,59,이동 +3327,38,경상남도,115,창원시 진해구,60,자은동 +3328,38,경상남도,115,창원시 진해구,61,덕산동 +3329,38,경상남도,115,창원시 진해구,62,풍호동 +3330,38,경상남도,115,창원시 진해구,63,웅천동 +3331,38,경상남도,115,창원시 진해구,64,웅동1동 +3332,38,경상남도,115,창원시 진해구,65,웅동2동 +3333,38,경상남도,115,창원시 진해구,66,충무동 +3334,38,경상남도,310,의령군,11,의령읍 +3335,38,경상남도,310,의령군,31,가례면 +3336,38,경상남도,310,의령군,32,칠곡면 +3337,38,경상남도,310,의령군,33,대의면 +3338,38,경상남도,310,의령군,34,화정면 +3339,38,경상남도,310,의령군,35,용덕면 +3340,38,경상남도,310,의령군,36,정곡면 +3341,38,경상남도,310,의령군,37,지정면 +3342,38,경상남도,310,의령군,38,낙서면 +3343,38,경상남도,310,의령군,39,부림면 +3344,38,경상남도,310,의령군,40,봉수면 +3345,38,경상남도,310,의령군,41,궁류면 +3346,38,경상남도,310,의령군,42,유곡면 +3347,38,경상남도,320,함안군,11,가야읍 +3348,38,경상남도,320,함안군,12,칠원읍 +3349,38,경상남도,320,함안군,31,함안면 +3350,38,경상남도,320,함안군,32,군북면 +3351,38,경상남도,320,함안군,33,법수면 +3352,38,경상남도,320,함안군,34,대산면 +3353,38,경상남도,320,함안군,35,칠서면 +3354,38,경상남도,320,함안군,36,칠북면 +3355,38,경상남도,320,함안군,38,산인면 +3356,38,경상남도,320,함안군,39,여항면 +3357,38,경상남도,330,창녕군,11,창녕읍 +3358,38,경상남도,330,창녕군,12,남지읍 +3359,38,경상남도,330,창녕군,31,고암면 +3360,38,경상남도,330,창녕군,32,성산면 +3361,38,경상남도,330,창녕군,33,대합면 +3362,38,경상남도,330,창녕군,34,이방면 +3363,38,경상남도,330,창녕군,35,유어면 +3364,38,경상남도,330,창녕군,36,대지면 +3365,38,경상남도,330,창녕군,37,계성면 +3366,38,경상남도,330,창녕군,38,영산면 +3367,38,경상남도,330,창녕군,39,장마면 +3368,38,경상남도,330,창녕군,40,도천면 +3369,38,경상남도,330,창녕군,41,길곡면 +3370,38,경상남도,330,창녕군,42,부곡면 +3371,38,경상남도,340,고성군,11,고성읍 +3372,38,경상남도,340,고성군,31,삼산면 +3373,38,경상남도,340,고성군,32,하일면 +3374,38,경상남도,340,고성군,33,하이면 +3375,38,경상남도,340,고성군,34,상리면 +3376,38,경상남도,340,고성군,35,대가면 +3377,38,경상남도,340,고성군,36,영현면 +3378,38,경상남도,340,고성군,37,영오면 +3379,38,경상남도,340,고성군,38,개천면 +3380,38,경상남도,340,고성군,39,구만면 +3381,38,경상남도,340,고성군,40,회화면 +3382,38,경상남도,340,고성군,41,마암면 +3383,38,경상남도,340,고성군,42,동해면 +3384,38,경상남도,340,고성군,43,거류면 +3385,38,경상남도,350,남해군,11,남해읍 +3386,38,경상남도,350,남해군,31,이동면 +3387,38,경상남도,350,남해군,32,상주면 +3388,38,경상남도,350,남해군,33,삼동면 +3389,38,경상남도,350,남해군,34,미조면 +3390,38,경상남도,350,남해군,35,남면 +3391,38,경상남도,350,남해군,36,서면 +3392,38,경상남도,350,남해군,37,고현면 +3393,38,경상남도,350,남해군,38,설천면 +3394,38,경상남도,350,남해군,39,창선면 +3395,38,경상남도,360,하동군,11,하동읍 +3396,38,경상남도,360,하동군,31,화개면 +3397,38,경상남도,360,하동군,32,악양면 +3398,38,경상남도,360,하동군,33,적량면 +3399,38,경상남도,360,하동군,34,횡천면 +3400,38,경상남도,360,하동군,35,고전면 +3401,38,경상남도,360,하동군,36,금남면 +3402,38,경상남도,360,하동군,37,금성면 +3403,38,경상남도,360,하동군,38,진교면 +3404,38,경상남도,360,하동군,39,양보면 +3405,38,경상남도,360,하동군,40,북천면 +3406,38,경상남도,360,하동군,41,청암면 +3407,38,경상남도,360,하동군,42,옥종면 +3408,38,경상남도,370,산청군,11,산청읍 +3409,38,경상남도,370,산청군,31,차황면 +3410,38,경상남도,370,산청군,32,오부면 +3411,38,경상남도,370,산청군,33,생초면 +3412,38,경상남도,370,산청군,34,금서면 +3413,38,경상남도,370,산청군,35,삼장면 +3414,38,경상남도,370,산청군,36,시천면 +3415,38,경상남도,370,산청군,37,단성면 +3416,38,경상남도,370,산청군,38,신안면 +3417,38,경상남도,370,산청군,39,생비량면 +3418,38,경상남도,370,산청군,40,신등면 +3419,38,경상남도,380,함양군,11,함양읍 +3420,38,경상남도,380,함양군,31,마천면 +3421,38,경상남도,380,함양군,32,휴천면 +3422,38,경상남도,380,함양군,33,유림면 +3423,38,경상남도,380,함양군,34,수동면 +3424,38,경상남도,380,함양군,35,지곡면 +3425,38,경상남도,380,함양군,36,안의면 +3426,38,경상남도,380,함양군,37,서하면 +3427,38,경상남도,380,함양군,38,서상면 +3428,38,경상남도,380,함양군,39,백전면 +3429,38,경상남도,380,함양군,40,병곡면 +3430,38,경상남도,390,거창군,11,거창읍 +3431,38,경상남도,390,거창군,31,주상면 +3432,38,경상남도,390,거창군,32,웅양면 +3433,38,경상남도,390,거창군,33,고제면 +3434,38,경상남도,390,거창군,34,북상면 +3435,38,경상남도,390,거창군,35,위천면 +3436,38,경상남도,390,거창군,36,마리면 +3437,38,경상남도,390,거창군,37,남상면 +3438,38,경상남도,390,거창군,38,남하면 +3439,38,경상남도,390,거창군,39,신원면 +3440,38,경상남도,390,거창군,40,가조면 +3441,38,경상남도,390,거창군,41,가북면 +3442,38,경상남도,400,합천군,11,합천읍 +3443,38,경상남도,400,합천군,31,봉산면 +3444,38,경상남도,400,합천군,32,묘산면 +3445,38,경상남도,400,합천군,33,가야면 +3446,38,경상남도,400,합천군,34,야로면 +3447,38,경상남도,400,합천군,35,율곡면 +3448,38,경상남도,400,합천군,36,초계면 +3449,38,경상남도,400,합천군,37,쌍책면 +3450,38,경상남도,400,합천군,38,덕곡면 +3451,38,경상남도,400,합천군,39,청덕면 +3452,38,경상남도,400,합천군,40,적중면 +3453,38,경상남도,400,합천군,41,대양면 +3454,38,경상남도,400,합천군,42,쌍백면 +3455,38,경상남도,400,합천군,43,삼가면 +3456,38,경상남도,400,합천군,44,가회면 +3457,38,경상남도,400,합천군,45,대병면 +3458,38,경상남도,400,합천군,46,용주면 +3459,39,제주특별자치도,010,제주시,11,한림읍 +3460,39,제주특별자치도,010,제주시,12,애월읍 +3461,39,제주특별자치도,010,제주시,13,구좌읍 +3462,39,제주특별자치도,010,제주시,14,조천읍 +3463,39,제주특별자치도,010,제주시,31,한경면 +3464,39,제주특별자치도,010,제주시,32,추자면 +3465,39,제주특별자치도,010,제주시,33,우도면 +3466,39,제주특별자치도,010,제주시,51,일도1동 +3467,39,제주특별자치도,010,제주시,52,일도2동 +3468,39,제주특별자치도,010,제주시,53,이도1동 +3469,39,제주특별자치도,010,제주시,54,이도2동 +3470,39,제주특별자치도,010,제주시,55,삼도1동 +3471,39,제주특별자치도,010,제주시,56,삼도2동 +3472,39,제주특별자치도,010,제주시,57,용담1동 +3473,39,제주특별자치도,010,제주시,58,용담2동 +3474,39,제주특별자치도,010,제주시,59,건입동 +3475,39,제주특별자치도,010,제주시,60,화북동 +3476,39,제주특별자치도,010,제주시,61,삼양동 +3477,39,제주특별자치도,010,제주시,62,봉개동 +3478,39,제주특별자치도,010,제주시,63,아라동 +3479,39,제주특별자치도,010,제주시,64,오라동 +3480,39,제주특별자치도,010,제주시,65,연동 +3481,39,제주특별자치도,010,제주시,66,노형동 +3482,39,제주특별자치도,010,제주시,67,외도동 +3483,39,제주특별자치도,010,제주시,68,이호동 +3484,39,제주특별자치도,010,제주시,69,도두동 +3485,39,제주특별자치도,020,서귀포시,11,대정읍 +3486,39,제주특별자치도,020,서귀포시,12,남원읍 +3487,39,제주특별자치도,020,서귀포시,13,성산읍 +3488,39,제주특별자치도,020,서귀포시,31,안덕면 +3489,39,제주특별자치도,020,서귀포시,32,표선면 +3490,39,제주특별자치도,020,서귀포시,51,송산동 +3491,39,제주특별자치도,020,서귀포시,52,정방동 +3492,39,제주특별자치도,020,서귀포시,53,중앙동 +3493,39,제주특별자치도,020,서귀포시,54,천지동 +3494,39,제주특별자치도,020,서귀포시,55,효돈동 +3495,39,제주특별자치도,020,서귀포시,56,영천동 +3496,39,제주특별자치도,020,서귀포시,57,동홍동 +3497,39,제주특별자치도,020,서귀포시,58,서홍동 +3498,39,제주특별자치도,020,서귀포시,59,대륜동 +3499,39,제주특별자치도,020,서귀포시,60,대천동 +3500,39,제주특별자치도,020,서귀포시,61,중문동 +3501,39,제주특별자치도,020,서귀포시,62,예래동 \ No newline at end of file diff --git a/back/src/db/database.js b/back/src/db/database.js new file mode 100644 index 0000000..5db2a16 --- /dev/null +++ b/back/src/db/database.js @@ -0,0 +1,78 @@ +// references: +// https://github.com/sidorares/node-mysql2 +// const mysql = require("mysql2"); +// // const app = require("../app"); +// const User = require("./models/User"); +// // require("dotenv").config({ path: "../../.env" }); +// require("dotenv").config(); + +//----------정상작동-start---------// +// Error: Can't add new command when connection is in closed state +// const connection = mysql.createConnection({ +// host: process.env.DB_HOST, +// user: process.env.DB_USER, +// password: process.env.DB_PASSWORD, +// database: process.env.DB_DATABASE, +// }); + +// connection.connect(); + +// connection.query( +// "SELECT 10 + 1 AS solution", +// function (error, results, fields) { +// if (error) throw error; +// console.log( +// "정상적으로 MySQL 서버에 연결되었습니다. '1' + '1'은?: ", +// results[0].solution +// ); +// } +// ); + +// connection.query("SELECT * FROM users", function (error, results, fields) { +// if (error) throw error; +// console.log(results); +// }); + +// connection.end(); + +// // module.exports = { connection }; +// module.exports = { connection, User }; + +//----------정상작동-end---------// + +// -----------start---------// +// https://github.com/sidorares/node-mysql2/issues/939 +// const mysql = require("mysql2"); +const mysql = require("mysql2/promise"); +const app = require("../app"); +const User = require("./models/User"); +// require("dotenv").config({ path: "../../.env" }); +// const bluebird = require("bluebird"); +require("dotenv").config(); + +// Error: Can't add new command when connection is in closed state +const dbConfig = { + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_DATABASE, + connectionLimit: 10, + queueLimit: 0, // unlimited + // Promise: bluebird, +}; +// exporting MySQL connection pool object +const pool = mysql.createPool(dbConfig); +const connection = mysql.createConnection(dbConfig); +// connection.connect(); +// connection.query( +// "SELECT 10 + 1 AS solution", +// function (error, results, fields) { +// if (error) throw error; +// console.log( +// "정상적으로 MySQL 서버에 연결되었습니다.(connection) '1' + '1'은?: ", +// results[0].solution +// ); +// } +// ); +// connection.end(); +module.exports = { pool, connection, User }; diff --git a/back/src/db/dbDiagram.sql b/back/src/db/dbDiagram.sql new file mode 100644 index 0000000..8c711da --- /dev/null +++ b/back/src/db/dbDiagram.sql @@ -0,0 +1,61 @@ +CREATE TABLE `users` ( + `user_id` int PRIMARY KEY AUTO_INCREMENT, + `email` varchar(255) NOT NULL UNIQUE, + `password` varchar(255) NOT NULL, + `nickname` varchar(255) NOT NULL DEFAULT (U.email) UNIQUE, + `profile_photo` varchar(255) DEFAULT (./default.jpg), + `created_time` timestamp DEFAULT current_timestamp, + `updated_time` timestamp DEFAULT current_timestamp ON UPDATE current_timestamp, + `current_latitude` varchar(255) NOT NULL, + `current_longitude` varchar(255) NOT NULL +); + +CREATE TABLE `stores` ( + `store_id` int PRIMARY KEY AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `description` varchar(255) NOT NULL, + `tag` ENUM ('zero_waste', 'refill') NOT NULL, + `phone` int, + `latitude` varchar(255) NOT NULL, + `longitude` varchar(255) NOT NULL, + `address_detail` varchar(255) NOT NULL +); + +CREATE TABLE `like_store` ( + `like_store_id` int PRIMARY KEY AUTO_INCREMENT, + `time` timestamp NOT NULL DEFAULT current_timestamp ON UPDATE current_timestamp, + `user_id` int NOT NULL, + `store_id` int NOT NULL +); + +CREATE TABLE `reviews` ( + `review_id` int PRIMARY KEY AUTO_INCREMENT, + `star` int, + `description` varchar(500), + `photo` varchar(255), + `photo2` varchar(255), + `created_time` timestamp DEFAULT current_timestamp, + `updated_time` timestamp DEFAULT current_timestamp ON UPDATE current_timestamp, + `user_id` int NOT NULL, + `store_id` int NOT NULL +); + +CREATE TABLE `like_reviews` ( + `like_review_id` int PRIMARY KEY AUTO_INCREMENT, + `created_time` timestamp DEFAULT current_timestamp ON UPDATE current_timestamp, + `tag` ENUM ('like', 'dislike') NOT NULL, + `user_id` int NOT NULL, + `review_id` int NOT NULL +); + +ALTER TABLE `like_store` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`); + +ALTER TABLE `like_store` ADD FOREIGN KEY (`store_id`) REFERENCES `stores` (`store_id`); + +ALTER TABLE `reviews` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`); + +ALTER TABLE `reviews` ADD FOREIGN KEY (`store_id`) REFERENCES `stores` (`store_id`); + +ALTER TABLE `like_reviews` ADD FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`); + +ALTER TABLE `like_reviews` ADD FOREIGN KEY (`review_id`) REFERENCES `reviews` (`review_id`); diff --git a/back/src/db/models/Review.js b/back/src/db/models/Review.js new file mode 100644 index 0000000..6d54d28 --- /dev/null +++ b/back/src/db/models/Review.js @@ -0,0 +1,17 @@ +const { pool } = require("../database"); + +class Review { + static async findAll() { + const [results, fields, error] = await pool.query( + { + sql: "SELECT * FROM reviews" + }, + function (error, results, fields) { + if (error) throw error; + console.log(results); + } + ); + return JSON.stringify(results); + } + } + module.exports = { Review }; \ No newline at end of file diff --git a/back/src/db/models/User.js b/back/src/db/models/User.js new file mode 100644 index 0000000..c0eb5da --- /dev/null +++ b/back/src/db/models/User.js @@ -0,0 +1,31 @@ +// const mysql = require("mysql2"); +const { pool } = require("../database"); +// const express = require("express"); +class User { + static async findAll() { + const [results, fields, error] = await pool.query( + { + sql: "SELECT * FROM users", + timeout: 4000, // 40s + }, + function (error, results, fields) { + if (error) throw error; + console.log(results); + } + ); + return JSON.stringify(results); + } +} +module.exports = { User }; + +// // userRouter.js +// // option 3. 코드 파일 분리 +// // User.js -> userService.js에서 타입문제 발생 +// userAuthRouter.get("/userlist", async (req, res, next) => { +// try { +// const [results, fields, error] = await userAuthService.getUsers(); +// res.status(200).send(results); +// } catch (err) { +// next(err); +// } +// }); diff --git a/back/src/db/seoulCityInfo.csv b/back/src/db/seoulCityInfo.csv new file mode 100644 index 0000000..21ce5cc --- /dev/null +++ b/back/src/db/seoulCityInfo.csv @@ -0,0 +1,424 @@ +dong,gu,si_do +천호2동,강동구,서울시 +암사1동,강동구,서울시 +둔촌2동,강동구,서울시 +둔촌1동,강동구,서울시 +성내3동,강동구,서울시 +성내2동,강동구,서울시 +성내1동,강동구,서울시 +천호3동,강동구,서울시 +천호1동,강동구,서울시 +암사3동,강동구,서울시 +암사2동,강동구,서울시 +고덕2동,강동구,서울시 +고덕1동,강동구,서울시 +명일2동,강동구,서울시 +명일1동,강동구,서울시 +상일동,강동구,서울시 +강일동,강동구,서울시 +위례동,송파구,서울시 +장지동,송파구,서울시 +잠실3동,송파구,서울시 +잠실2동,송파구,서울시 +잠실7동,송파구,서울시 +잠실6동,송파구,서울시 +잠실4동,송파구,서울시 +잠실본동,송파구,서울시 +문정2동,송파구,서울시 +문정1동,송파구,서울시 +가락2동,송파구,서울시 +가락1동,송파구,서울시 +가락본동,송파구,서울시 +삼전동,송파구,서울시 +석촌동,송파구,서울시 +송파2동,송파구,서울시 +송파1동,송파구,서울시 +오금동,송파구,서울시 +오륜동,송파구,서울시 +방이2동,송파구,서울시 +방이1동,송파구,서울시 +마천2동,송파구,서울시 +마천1동,송파구,서울시 +거여2동,송파구,서울시 +거여1동,송파구,서울시 +풍납2동,송파구,서울시 +풍납1동,송파구,서울시 +개포2동,강남구,서울시 +대치2동,강남구,서울시 +청담동,강남구,서울시 +압구정동,강남구,서울시 +세곡동,강남구,서울시 +수서동,강남구,서울시 +일원2동,강남구,서울시 +일원1동,강남구,서울시 +일원본동,강남구,서울시 +개포4동,강남구,서울시 +개포1동,강남구,서울시 +도곡2동,강남구,서울시 +도곡1동,강남구,서울시 +역삼2동,강남구,서울시 +역삼1동,강남구,서울시 +대치4동,강남구,서울시 +대치1동,강남구,서울시 +삼성2동,강남구,서울시 +삼성1동,강남구,서울시 +논현2동,강남구,서울시 +논현1동,강남구,서울시 +신사동,강남구,서울시 +내곡동,서초구,서울시 +양재2동,서초구,서울시 +양재1동,서초구,서울시 +방배4동,서초구,서울시 +방배3동,서초구,서울시 +방배2동,서초구,서울시 +방배1동,서초구,서울시 +방배본동,서초구,서울시 +반포4동,서초구,서울시 +반포3동,서초구,서울시 +반포2동,서초구,서울시 +반포1동,서초구,서울시 +반포본동,서초구,서울시 +잠원동,서초구,서울시 +서초4동,서초구,서울시 +서초3동,서초구,서울시 +서초2동,서초구,서울시 +서초1동,서초구,서울시 +미성동,관악구,서울시 +삼성동,관악구,서울시 +난곡동,관악구,서울시 +청룡동,관악구,서울시 +성현동,관악구,서울시 +은천동,관악구,서울시 +대학동,관악구,서울시 +조원동,관악구,서울시 +난향동,관악구,서울시 +신림동,관악구,서울시 +신사동,관악구,서울시 +서림동,관악구,서울시 +신원동,관악구,서울시 +서원동,관악구,서울시 +남현동,관악구,서울시 +인헌동,관악구,서울시 +중앙동,관악구,서울시 +낙성대동,관악구,서울시 +행운동,관악구,서울시 +청림동,관악구,서울시 +보라매동,관악구,서울시 +사당2동,동작구,서울시 +노량진1동,동작구,서울시 +흑석동,동작구,서울시 +신대방2동,동작구,서울시 +신대방1동,동작구,서울시 +대방동,동작구,서울시 +사당5동,동작구,서울시 +사당4동,동작구,서울시 +사당3동,동작구,서울시 +사당1동,동작구,서울시 +상도4동,동작구,서울시 +상도3동,동작구,서울시 +상도2동,동작구,서울시 +상도1동,동작구,서울시 +노량진2동,동작구,서울시 +문래동,영등포구,서울시 +도림동,영등포구,서울시 +영등포동,영등포구,서울시 +영등포본동,영등포구,서울시 +대림3동,영등포구,서울시 +대림2동,영등포구,서울시 +대림1동,영등포구,서울시 +신길7동,영등포구,서울시 +신길6동,영등포구,서울시 +신길5동,영등포구,서울시 +신길4동,영등포구,서울시 +신길3동,영등포구,서울시 +신길1동,영등포구,서울시 +양평2동,영등포구,서울시 +양평1동,영등포구,서울시 +당산2동,영등포구,서울시 +당산1동,영등포구,서울시 +여의동,영등포구,서울시 +시흥5동,금천구,서울시 +시흥4동,금천구,서울시 +시흥3동,금천구,서울시 +시흥2동,금천구,서울시 +시흥1동,금천구,서울시 +독산4동,금천구,서울시 +독산3동,금천구,서울시 +독산2동,금천구,서울시 +독산1동,금천구,서울시 +가산동,금천구,서울시 +개봉1동,구로구,서울시 +구로2동,구로구,서울시 +가리봉동,구로구,서울시 +수궁동,구로구,서울시 +오류2동,구로구,서울시 +오류1동,구로구,서울시 +개봉3동,구로구,서울시 +개봉2동,구로구,서울시 +고척2동,구로구,서울시 +고척1동,구로구,서울시 +구로5동,구로구,서울시 +구로4동,구로구,서울시 +구로3동,구로구,서울시 +구로1동,구로구,서울시 +신도림동,구로구,서울시 +우장산동,강서구,서울시 +화곡1동,강서구,서울시 +방화3동,강서구,서울시 +방화2동,강서구,서울시 +방화1동,강서구,서울시 +공항동,강서구,서울시 +발산1동,강서구,서울시 +가양3동,강서구,서울시 +가양2동,강서구,서울시 +가양1동,강서구,서울시 +화곡8동,강서구,서울시 +화곡6동,강서구,서울시 +화곡4동,강서구,서울시 +화곡3동,강서구,서울시 +화곡2동,강서구,서울시 +화곡본동,강서구,서울시 +등촌3동,강서구,서울시 +등촌2동,강서구,서울시 +등촌1동,강서구,서울시 +염창동,강서구,서울시 +신정4동,양천구,서울시 +목5동,양천구,서울시 +신정7동,양천구,서울시 +신정6동,양천구,서울시 +신정3동,양천구,서울시 +신정2동,양천구,서울시 +신정1동,양천구,서울시 +신월7동,양천구,서울시 +신월6동,양천구,서울시 +신월5동,양천구,서울시 +신월4동,양천구,서울시 +신월3동,양천구,서울시 +신월2동,양천구,서울시 +신월1동,양천구,서울시 +목4동,양천구,서울시 +목3동,양천구,서울시 +목2동,양천구,서울시 +목1동,양천구,서울시 +아현동,마포구,서울시 +공덕동,마포구,서울시 +서강동,마포구,서울시 +도화동,마포구,서울시 +상암동,마포구,서울시 +성산2동,마포구,서울시 +성산1동,마포구,서울시 +연남동,마포구,서울시 +망원2동,마포구,서울시 +망원1동,마포구,서울시 +합정동,마포구,서울시 +서교동,마포구,서울시 +신수동,마포구,서울시 +염리동,마포구,서울시 +대흥동,마포구,서울시 +용강동,마포구,서울시 +연희동,서대문구,서울시 +신촌동,서대문구,서울시 +북아현동,서대문구,서울시 +충현동,서대문구,서울시 +북가좌2동,서대문구,서울시 +북가좌1동,서대문구,서울시 +남가좌2동,서대문구,서울시 +남가좌1동,서대문구,서울시 +홍은2동,서대문구,서울시 +홍은1동,서대문구,서울시 +홍제2동,서대문구,서울시 +홍제3동,서대문구,서울시 +홍제1동,서대문구,서울시 +천연동,서대문구,서울시 +역촌동,은평구,서울시 +응암3동,은평구,서울시 +불광2동,은평구,서울시 +진관동,은평구,서울시 +수색동,은평구,서울시 +증산동,은평구,서울시 +신사2동,은평구,서울시 +신사1동,은평구,서울시 +응암2동,은평구,서울시 +응암1동,은평구,서울시 +대조동,은평구,서울시 +구산동,은평구,서울시 +갈현2동,은평구,서울시 +갈현1동,은평구,서울시 +불광1동,은평구,서울시 +녹번동,은평구,서울시 +릉1동,노원구,서울시 +계23동,노원구,서울시 +계67동,노원구,서울시 +계34동,노원구,서울시 +계10동,노원구,서울시 +계9동,노원구,서울시 +계8동,노원구,서울시 +계5동,노원구,서울시 +계2동,노원구,서울시 +계1동,노원구,서울시 +계4동,노원구,서울시 +계1동,노원구,서울시 +계본동,노원구,서울시 +계2동,노원구,서울시 +계1동,노원구,서울시 +릉2동,노원구,서울시 +계3동,노원구,서울시 +계2동,노원구,서울시 +계1동,노원구,서울시 +도봉2동,도봉구,서울시 +도봉1동,도봉구,서울시 +창5동,도봉구,서울시 +창4동,도봉구,서울시 +창3동,도봉구,서울시 +창2동,도봉구,서울시 +창1동,도봉구,서울시 +방학3동,도봉구,서울시 +방학2동,도봉구,서울시 +방학1동,도봉구,서울시 +쌍문4동,도봉구,서울시 +쌍문3동,도봉구,서울시 +쌍문2동,도봉구,서울시 +쌍문1동,도봉구,서울시 +인수동,강북구,서울시 +우이동,강북구,서울시 +삼각산동,강북구,서울시 +송천동,강북구,서울시 +송중동,강북구,서울시 +미아동,강북구,서울시 +삼양동,강북구,서울시 +수유3동,강북구,서울시 +수유2동,강북구,서울시 +수유1동,강북구,서울시 +번3동,강북구,서울시 +번2동,강북구,서울시 +번1동,강북구,서울시 +석관동,성북구,서울시 +종암동,성북구,서울시 +동선동,성북구,서울시 +삼선동,성북구,서울시 +성북동,성북구,서울시 +장위3동,성북구,서울시 +장위2동,성북구,서울시 +장위1동,성북구,서울시 +월곡2동,성북구,서울시 +월곡1동,성북구,서울시 +길음2동,성북구,서울시 +길음1동,성북구,서울시 +정릉4동,성북구,서울시 +정릉3동,성북구,서울시 +정릉2동,성북구,서울시 +정릉1동,성북구,서울시 +보문동,성북구,서울시 +안암동,성북구,서울시 +돈암2동,성북구,서울시 +돈암1동,성북구,서울시 +망우본동,중랑구,서울시 +면목38동,중랑구,서울시 +면목본동,중랑구,서울시 +신내2동,중랑구,서울시 +신내1동,중랑구,서울시 +망우3동,중랑구,서울시 +묵2동,중랑구,서울시 +묵1동,중랑구,서울시 +중화2동,중랑구,서울시 +중화1동,중랑구,서울시 +상봉2동,중랑구,서울시 +상봉1동,중랑구,서울시 +면목7동,중랑구,서울시 +면목5동,중랑구,서울시 +면목4동,중랑구,서울시 +면목2동,중랑구,서울시 +답십리1동,동대문구,서울시 +이문2동,동대문구,서울시 +이문1동,동대문구,서울시 +장안2동,동대문구,서울시 +장안1동,동대문구,서울시 +답십리2동,동대문구,서울시 +전농2동,동대문구,서울시 +전농1동,동대문구,서울시 +제기동,동대문구,서울시 +용신동,동대문구,서울시 +청량리동,동대문구,서울시 +휘경2동,동대문구,서울시 +휘경1동,동대문구,서울시 +회기동,동대문구,서울시 +자양4동,광진구,서울시 +자양3동,광진구,서울시 +자양2동,광진구,서울시 +자양1동,광진구,서울시 +광장동,광진구,서울시 +구의3동,광진구,서울시 +구의2동,광진구,서울시 +구의1동,광진구,서울시 +능동,광진구,서울시 +중곡4동,광진구,서울시 +중곡3동,광진구,서울시 +중곡2동,광진구,서울시 +중곡1동,광진구,서울시 +군자동,광진구,서울시 +화양동,광진구,서울시 +옥수동,성동구,서울시 +금호23가동,성동구,서울시 +왕십리도선동,성동구,서울시 +용답동,성동구,서울시 +송정동,성동구,서울시 +성수2가3동,성동구,서울시 +성수2가1동,성동구,서울시 +성수1가2동,성동구,서울시 +성수1가1동,성동구,서울시 +금호4가동,성동구,서울시 +금호1가동,성동구,서울시 +응봉동,성동구,서울시 +행당2동,성동구,서울시 +행당1동,성동구,서울시 +사근동,성동구,서울시 +마장동,성동구,서울시 +왕십리2동,성동구,서울시 +한남동,용산구,서울시 +한강로동,용산구,서울시 +원효로1동,용산구,서울시 +청파동,용산구,서울시 +보광동,용산구,서울시 +서빙고동,용산구,서울시 +이태원2동,용산구,서울시 +이태원1동,용산구,서울시 +이촌2동,용산구,서울시 +이촌1동,용산구,서울시 +용문동,용산구,서울시 +효창동,용산구,서울시 +원효로2동,용산구,서울시 +남영동,용산구,서울시 +용산2가동,용산구,서울시 +후암동,용산구,서울시 +동화동,중구,서울시 +청구동,중구,서울시 +약수동,중구,서울시 +다산동,중구,서울시 +신당동,중구,서울시 +중림동,중구,서울시 +황학동,중구,서울시 +신당5동,중구,서울시 +을지로동,중구,서울시 +광희동,중구,서울시 +장충동,중구,서울시 +필동,중구,서울시 +명동,중구,서울시 +회현동,중구,서울시 +소공동,중구,서울시 +혜화동,종로구,서울시 +청운효자동,종로구,서울시 +숭인2동,종로구,서울시 +숭인1동,종로구,서울시 +창신3동,종로구,서울시 +창신2동,종로구,서울시 +창신1동,종로구,서울시 +이화동,종로구,서울시 +종로56가동,종로구,서울시 +종로1234가동,종로구,서울시 +가회동,종로구,서울시 +교남동,종로구,서울시 +무악동,종로구,서울시 +평창동,종로구,서울시 +부암동,종로구,서울시 +삼청동,종로구,서울시 +사직동,종로구,서울시 diff --git a/back/src/db/seoulCityInfo.json b/back/src/db/seoulCityInfo.json new file mode 100644 index 0000000..81c4187 --- /dev/null +++ b/back/src/db/seoulCityInfo.json @@ -0,0 +1,2554 @@ +{ + "DESCRIPTION": { + "si_do": "서울시", + "gu": "자치구", + "dong": "행정동", + "ADMDONG_ID": "행정동_ID" + }, + "DATA": [ + { + "si_do": "서울시", + "gu": "강동구", + "dong": "길동", + "admdong_id": "1125074" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "천호2동", + "admdong_id": "1125073" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "암사1동", + "admdong_id": "1125072" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "둔촌2동", + "admdong_id": "1125071" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "둔촌1동", + "admdong_id": "1125070" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "성내3동", + "admdong_id": "1125067" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "성내2동", + "admdong_id": "1125066" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "성내1동", + "admdong_id": "1125065" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "천호3동", + "admdong_id": "1125063" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "천호1동", + "admdong_id": "1125061" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "암사3동", + "admdong_id": "1125059" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "암사2동", + "admdong_id": "1125058" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "고덕2동", + "admdong_id": "1125056" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "고덕1동", + "admdong_id": "1125055" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "명일2동", + "admdong_id": "1125054" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "명일1동", + "admdong_id": "1125053" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "상일동", + "admdong_id": "1125052" + }, + { + "si_do": "서울시", + "gu": "강동구", + "dong": "강일동", + "admdong_id": "1125051" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "위례동", + "admdong_id": "1124082" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "장지동", + "admdong_id": "1124081" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "잠실3동", + "admdong_id": "1124080" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "잠실2동", + "admdong_id": "1124079" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "잠실7동", + "admdong_id": "1124078" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "잠실6동", + "admdong_id": "1124077" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "잠실4동", + "admdong_id": "1124075" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "잠실본동", + "admdong_id": "1124071" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "문정2동", + "admdong_id": "1124069" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "문정1동", + "admdong_id": "1124068" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "가락2동", + "admdong_id": "1124067" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "가락1동", + "admdong_id": "1124066" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "가락본동", + "admdong_id": "1124065" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "삼전동", + "admdong_id": "1124064" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "석촌동", + "admdong_id": "1124063" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "송파2동", + "admdong_id": "1124062" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "송파1동", + "admdong_id": "1124061" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "오금동", + "admdong_id": "1124060" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "오륜동", + "admdong_id": "1124059" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "방이2동", + "admdong_id": "1124058" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "방이1동", + "admdong_id": "1124057" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "마천2동", + "admdong_id": "1124056" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "마천1동", + "admdong_id": "1124055" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "거여2동", + "admdong_id": "1124054" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "거여1동", + "admdong_id": "1124053" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "풍납2동", + "admdong_id": "1124052" + }, + { + "si_do": "서울시", + "gu": "송파구", + "dong": "풍납1동", + "admdong_id": "1124051" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "개포2동", + "admdong_id": "1123080" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "대치2동", + "admdong_id": "1123079" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "청담동", + "admdong_id": "1123078" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "압구정동", + "admdong_id": "1123077" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "세곡동", + "admdong_id": "1123076" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "수서동", + "admdong_id": "1123075" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "일원2동", + "admdong_id": "1123074" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "일원1동", + "admdong_id": "1123073" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "일원본동", + "admdong_id": "1123072" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "개포4동", + "admdong_id": "1123071" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "개포1동", + "admdong_id": "1123068" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "도곡2동", + "admdong_id": "1123067" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "도곡1동", + "admdong_id": "1123066" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "역삼2동", + "admdong_id": "1123065" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "역삼1동", + "admdong_id": "1123064" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "대치4동", + "admdong_id": "1123063" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "대치1동", + "admdong_id": "1123060" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "삼성2동", + "admdong_id": "1123059" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "삼성1동", + "admdong_id": "1123058" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "논현2동", + "admdong_id": "1123053" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "논현1동", + "admdong_id": "1123052" + }, + { + "si_do": "서울시", + "gu": "강남구", + "dong": "신사동", + "admdong_id": "1123051" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "내곡동", + "admdong_id": "1122068" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "양재2동", + "admdong_id": "1122067" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "양재1동", + "admdong_id": "1122066" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "방배4동", + "admdong_id": "1122065" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "방배3동", + "admdong_id": "1122064" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "방배2동", + "admdong_id": "1122063" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "방배1동", + "admdong_id": "1122062" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "방배본동", + "admdong_id": "1122061" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "반포4동", + "admdong_id": "1122060" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "반포3동", + "admdong_id": "1122059" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "반포2동", + "admdong_id": "1122058" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "반포1동", + "admdong_id": "1122057" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "반포본동", + "admdong_id": "1122056" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "잠원동", + "admdong_id": "1122055" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "서초4동", + "admdong_id": "1122054" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "서초3동", + "admdong_id": "1122053" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "서초2동", + "admdong_id": "1122052" + }, + { + "si_do": "서울시", + "gu": "서초구", + "dong": "서초1동", + "admdong_id": "1122051" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "미성동", + "admdong_id": "1121083" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "삼성동", + "admdong_id": "1121082" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "난곡동", + "admdong_id": "1121081" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "청룡동", + "admdong_id": "1121080" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "성현동", + "admdong_id": "1121079" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "은천동", + "admdong_id": "1121078" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "대학동", + "admdong_id": "1121073" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "조원동", + "admdong_id": "1121072" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "난향동", + "admdong_id": "1121071" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "신림동", + "admdong_id": "1121069" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "신사동", + "admdong_id": "1121068" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "서림동", + "admdong_id": "1121066" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "신원동", + "admdong_id": "1121065" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "서원동", + "admdong_id": "1121064" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "남현동", + "admdong_id": "1121063" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "인헌동", + "admdong_id": "1121062" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "중앙동", + "admdong_id": "1121061" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "낙성대동", + "admdong_id": "1121058" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "행운동", + "admdong_id": "1121057" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "청림동", + "admdong_id": "1121054" + }, + { + "si_do": "서울시", + "gu": "관악구", + "dong": "보라매동", + "admdong_id": "1121052" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "사당2동", + "admdong_id": "1120073" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "노량진1동", + "admdong_id": "1120072" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "흑석동", + "admdong_id": "1120071" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "신대방2동", + "admdong_id": "1120070" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "신대방1동", + "admdong_id": "1120069" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "대방동", + "admdong_id": "1120068" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "사당5동", + "admdong_id": "1120067" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "사당4동", + "admdong_id": "1120066" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "사당3동", + "admdong_id": "1120065" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "사당1동", + "admdong_id": "1120063" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "상도4동", + "admdong_id": "1120056" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "상도3동", + "admdong_id": "1120055" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "상도2동", + "admdong_id": "1120054" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "상도1동", + "admdong_id": "1120053" + }, + { + "si_do": "서울시", + "gu": "동작구", + "dong": "노량진2동", + "admdong_id": "1120052" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "문래동", + "admdong_id": "1119076" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "도림동", + "admdong_id": "1119075" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "영등포동", + "admdong_id": "1119074" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "영등포본동", + "admdong_id": "1119073" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "대림3동", + "admdong_id": "1119072" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "대림2동", + "admdong_id": "1119071" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "대림1동", + "admdong_id": "1119070" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "신길7동", + "admdong_id": "1119069" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "신길6동", + "admdong_id": "1119068" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "신길5동", + "admdong_id": "1119067" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "신길4동", + "admdong_id": "1119066" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "신길3동", + "admdong_id": "1119065" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "신길1동", + "admdong_id": "1119063" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "양평2동", + "admdong_id": "1119062" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "양평1동", + "admdong_id": "1119061" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "당산2동", + "admdong_id": "1119056" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "당산1동", + "admdong_id": "1119055" + }, + { + "si_do": "서울시", + "gu": "영등포구", + "dong": "여의동", + "admdong_id": "1119054" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "시흥5동", + "admdong_id": "1118061" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "시흥4동", + "admdong_id": "1118060" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "시흥3동", + "admdong_id": "1118059" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "시흥2동", + "admdong_id": "1118058" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "시흥1동", + "admdong_id": "1118057" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "독산4동", + "admdong_id": "1118055" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "독산3동", + "admdong_id": "1118054" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "독산2동", + "admdong_id": "1118053" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "독산1동", + "admdong_id": "1118052" + }, + { + "si_do": "서울시", + "gu": "금천구", + "dong": "가산동", + "admdong_id": "1118051" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "개봉1동", + "admdong_id": "1117072" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "구로2동", + "admdong_id": "1117071" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "가리봉동", + "admdong_id": "1117070" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "수궁동", + "admdong_id": "1117069" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "오류2동", + "admdong_id": "1117068" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "오류1동", + "admdong_id": "1117067" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "개봉3동", + "admdong_id": "1117065" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "개봉2동", + "admdong_id": "1117064" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "고척2동", + "admdong_id": "1117062" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "고척1동", + "admdong_id": "1117061" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "구로5동", + "admdong_id": "1117056" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "구로4동", + "admdong_id": "1117055" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "구로3동", + "admdong_id": "1117054" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "구로1동", + "admdong_id": "1117052" + }, + { + "si_do": "서울시", + "gu": "구로구", + "dong": "신도림동", + "admdong_id": "1117051" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "우장산동", + "admdong_id": "1116074" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "화곡1동", + "admdong_id": "1116073" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "방화3동", + "admdong_id": "1116072" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "방화2동", + "admdong_id": "1116071" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "방화1동", + "admdong_id": "1116070" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "공항동", + "admdong_id": "1116069" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "발산1동", + "admdong_id": "1116067" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "가양3동", + "admdong_id": "1116066" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "가양2동", + "admdong_id": "1116065" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "가양1동", + "admdong_id": "1116064" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "화곡8동", + "admdong_id": "1116063" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "화곡6동", + "admdong_id": "1116061" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "화곡4동", + "admdong_id": "1116059" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "화곡3동", + "admdong_id": "1116058" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "화곡2동", + "admdong_id": "1116057" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "화곡본동", + "admdong_id": "1116055" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "등촌3동", + "admdong_id": "1116054" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "등촌2동", + "admdong_id": "1116053" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "등촌1동", + "admdong_id": "1116052" + }, + { + "si_do": "서울시", + "gu": "강서구", + "dong": "염창동", + "admdong_id": "1116051" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신정4동", + "admdong_id": "1115072" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "목5동", + "admdong_id": "1115071" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신정7동", + "admdong_id": "1115070" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신정6동", + "admdong_id": "1115069" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신정3동", + "admdong_id": "1115066" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신정2동", + "admdong_id": "1115065" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신정1동", + "admdong_id": "1115064" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신월7동", + "admdong_id": "1115063" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신월6동", + "admdong_id": "1115062" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신월5동", + "admdong_id": "1115061" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신월4동", + "admdong_id": "1115060" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신월3동", + "admdong_id": "1115059" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신월2동", + "admdong_id": "1115058" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "신월1동", + "admdong_id": "1115057" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "목4동", + "admdong_id": "1115054" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "목3동", + "admdong_id": "1115053" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "목2동", + "admdong_id": "1115052" + }, + { + "si_do": "서울시", + "gu": "양천구", + "dong": "목1동", + "admdong_id": "1115051" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "아현동", + "admdong_id": "1114078" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "공덕동", + "admdong_id": "1114077" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "서강동", + "admdong_id": "1114076" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "도화동", + "admdong_id": "1114075" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "상암동", + "admdong_id": "1114074" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "성산2동", + "admdong_id": "1114073" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "성산1동", + "admdong_id": "1114072" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "연남동", + "admdong_id": "1114071" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "망원2동", + "admdong_id": "1114070" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "망원1동", + "admdong_id": "1114069" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "합정동", + "admdong_id": "1114068" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "서교동", + "admdong_id": "1114066" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "신수동", + "admdong_id": "1114063" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "염리동", + "admdong_id": "1114061" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "대흥동", + "admdong_id": "1114060" + }, + { + "si_do": "서울시", + "gu": "마포구", + "dong": "용강동", + "admdong_id": "1114059" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "연희동", + "admdong_id": "1113076" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "신촌동", + "admdong_id": "1113075" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "북아현동", + "admdong_id": "1113074" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "충현동", + "admdong_id": "1113073" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "북가좌2동", + "admdong_id": "1113072" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "북가좌1동", + "admdong_id": "1113071" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "남가좌2동", + "admdong_id": "1113070" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "남가좌1동", + "admdong_id": "1113069" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "홍은2동", + "admdong_id": "1113068" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "홍은1동", + "admdong_id": "1113066" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "홍제2동", + "admdong_id": "1113065" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "홍제3동", + "admdong_id": "1113064" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "홍제1동", + "admdong_id": "1113062" + }, + { + "si_do": "서울시", + "gu": "서대문구", + "dong": "천연동", + "admdong_id": "1113052" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "역촌동", + "admdong_id": "1112074" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "응암3동", + "admdong_id": "1112073" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "불광2동", + "admdong_id": "1112072" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "진관동", + "admdong_id": "1112071" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "수색동", + "admdong_id": "1112068" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "증산동", + "admdong_id": "1112067" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "신사2동", + "admdong_id": "1112066" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "신사1동", + "admdong_id": "1112065" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "응암2동", + "admdong_id": "1112060" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "응암1동", + "admdong_id": "1112059" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "대조동", + "admdong_id": "1112058" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "구산동", + "admdong_id": "1112057" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "갈현2동", + "admdong_id": "1112056" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "갈현1동", + "admdong_id": "1112055" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "불광1동", + "admdong_id": "1112052" + }, + { + "si_do": "서울시", + "gu": "은평구", + "dong": "녹번동", + "admdong_id": "1112051" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "공릉1동", + "admdong_id": "1111079" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "중계2,3동", + "admdong_id": "1111078" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "상계6,7동", + "admdong_id": "1111077" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "상계3,4동", + "admdong_id": "1111076" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "상계10동", + "admdong_id": "1111074" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "상계9동", + "admdong_id": "1111073" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "상계8동", + "admdong_id": "1111072" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "상계5동", + "admdong_id": "1111069" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "상계2동", + "admdong_id": "1111066" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "상계1동", + "admdong_id": "1111065" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "중계4동", + "admdong_id": "1111064" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "중계1동", + "admdong_id": "1111061" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "중계본동", + "admdong_id": "1111060" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "하계2동", + "admdong_id": "1111059" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "하계1동", + "admdong_id": "1111058" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "공릉2동", + "admdong_id": "1111056" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "월계3동", + "admdong_id": "1111053" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "월계2동", + "admdong_id": "1111052" + }, + { + "si_do": "서울시", + "gu": "노원구", + "dong": "월계1동", + "admdong_id": "1111051" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "도봉2동", + "admdong_id": "1110065" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "도봉1동", + "admdong_id": "1110064" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "창5동", + "admdong_id": "1110063" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "창4동", + "admdong_id": "1110062" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "창3동", + "admdong_id": "1110061" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "창2동", + "admdong_id": "1110060" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "창1동", + "admdong_id": "1110059" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "방학3동", + "admdong_id": "1110057" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "방학2동", + "admdong_id": "1110056" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "방학1동", + "admdong_id": "1110055" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "쌍문4동", + "admdong_id": "1110054" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "쌍문3동", + "admdong_id": "1110053" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "쌍문2동", + "admdong_id": "1110052" + }, + { + "si_do": "서울시", + "gu": "도봉구", + "dong": "쌍문1동", + "admdong_id": "1110051" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "인수동", + "admdong_id": "1109075" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "우이동", + "admdong_id": "1109074" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "삼각산동", + "admdong_id": "1109073" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "송천동", + "admdong_id": "1109072" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "송중동", + "admdong_id": "1109071" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "미아동", + "admdong_id": "1109070" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "삼양동", + "admdong_id": "1109069" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "수유3동", + "admdong_id": "1109065" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "수유2동", + "admdong_id": "1109064" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "수유1동", + "admdong_id": "1109063" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "번3동", + "admdong_id": "1109062" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "번2동", + "admdong_id": "1109061" + }, + { + "si_do": "서울시", + "gu": "강북구", + "dong": "번1동", + "admdong_id": "1109060" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "석관동", + "admdong_id": "1108085" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "종암동", + "admdong_id": "1108084" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "동선동", + "admdong_id": "1108083" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "삼선동", + "admdong_id": "1108082" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "성북동", + "admdong_id": "1108081" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "장위3동", + "admdong_id": "1108078" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "장위2동", + "admdong_id": "1108077" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "장위1동", + "admdong_id": "1108076" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "월곡2동", + "admdong_id": "1108072" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "월곡1동", + "admdong_id": "1108071" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "길음2동", + "admdong_id": "1108068" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "길음1동", + "admdong_id": "1108066" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "정릉4동", + "admdong_id": "1108065" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "정릉3동", + "admdong_id": "1108064" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "정릉2동", + "admdong_id": "1108063" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "정릉1동", + "admdong_id": "1108062" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "보문동", + "admdong_id": "1108061" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "안암동", + "admdong_id": "1108060" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "돈암2동", + "admdong_id": "1108059" + }, + { + "si_do": "서울시", + "gu": "성북구", + "dong": "돈암1동", + "admdong_id": "1108058" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "망우본동", + "admdong_id": "1107073" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "면목3,8동", + "admdong_id": "1107072" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "면목본동", + "admdong_id": "1107071" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "신내2동", + "admdong_id": "1107070" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "신내1동", + "admdong_id": "1107069" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "망우3동", + "admdong_id": "1107068" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "묵2동", + "admdong_id": "1107065" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "묵1동", + "admdong_id": "1107064" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "중화2동", + "admdong_id": "1107062" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "중화1동", + "admdong_id": "1107061" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "상봉2동", + "admdong_id": "1107060" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "상봉1동", + "admdong_id": "1107059" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "면목7동", + "admdong_id": "1107057" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "면목5동", + "admdong_id": "1107055" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "면목4동", + "admdong_id": "1107054" + }, + { + "si_do": "서울시", + "gu": "중랑구", + "dong": "면목2동", + "admdong_id": "1107052" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "답십리1동", + "admdong_id": "1106091" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "이문2동", + "admdong_id": "1106090" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "이문1동", + "admdong_id": "1106089" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "장안2동", + "admdong_id": "1106088" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "장안1동", + "admdong_id": "1106087" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "답십리2동", + "admdong_id": "1106086" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "전농2동", + "admdong_id": "1106084" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "전농1동", + "admdong_id": "1106083" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "제기동", + "admdong_id": "1106082" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "용신동", + "admdong_id": "1106081" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "청량리동", + "admdong_id": "1106080" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "휘경2동", + "admdong_id": "1106073" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "휘경1동", + "admdong_id": "1106072" + }, + { + "si_do": "서울시", + "gu": "동대문구", + "dong": "회기동", + "admdong_id": "1106071" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "자양4동", + "admdong_id": "1105067" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "자양3동", + "admdong_id": "1105066" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "자양2동", + "admdong_id": "1105065" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "자양1동", + "admdong_id": "1105064" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "광장동", + "admdong_id": "1105063" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "구의3동", + "admdong_id": "1105062" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "구의2동", + "admdong_id": "1105061" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "구의1동", + "admdong_id": "1105060" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "능동", + "admdong_id": "1105059" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "중곡4동", + "admdong_id": "1105058" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "중곡3동", + "admdong_id": "1105057" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "중곡2동", + "admdong_id": "1105056" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "중곡1동", + "admdong_id": "1105055" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "군자동", + "admdong_id": "1105054" + }, + { + "si_do": "서울시", + "gu": "광진구", + "dong": "화양동", + "admdong_id": "1105053" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "옥수동", + "admdong_id": "1104073" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "금호2,3가동", + "admdong_id": "1104072" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "왕십리도선동", + "admdong_id": "1104071" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "용답동", + "admdong_id": "1104070" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "송정동", + "admdong_id": "1104069" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "성수2가3동", + "admdong_id": "1104068" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "성수2가1동", + "admdong_id": "1104067" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "성수1가2동", + "admdong_id": "1104066" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "성수1가1동", + "admdong_id": "1104065" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "금호4가동", + "admdong_id": "1104062" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "금호1가동", + "admdong_id": "1104059" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "응봉동", + "admdong_id": "1104058" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "행당2동", + "admdong_id": "1104057" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "행당1동", + "admdong_id": "1104056" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "사근동", + "admdong_id": "1104055" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "마장동", + "admdong_id": "1104054" + }, + { + "si_do": "서울시", + "gu": "성동구", + "dong": "왕십리2동", + "admdong_id": "1104052" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "한남동", + "admdong_id": "1103074" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "한강로동", + "admdong_id": "1103073" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "원효로1동", + "admdong_id": "1103072" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "청파동", + "admdong_id": "1103071" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "보광동", + "admdong_id": "1103070" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "서빙고동", + "admdong_id": "1103069" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "이태원2동", + "admdong_id": "1103066" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "이태원1동", + "admdong_id": "1103065" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "이촌2동", + "admdong_id": "1103064" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "이촌1동", + "admdong_id": "1103063" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "용문동", + "admdong_id": "1103059" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "효창동", + "admdong_id": "1103058" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "원효로2동", + "admdong_id": "1103057" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "남영동", + "admdong_id": "1103053" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "용산2가동", + "admdong_id": "1103052" + }, + { + "si_do": "서울시", + "gu": "용산구", + "dong": "후암동", + "admdong_id": "1103051" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "동화동", + "admdong_id": "1102073" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "청구동", + "admdong_id": "1102072" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "약수동", + "admdong_id": "1102071" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "다산동", + "admdong_id": "1102070" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "신당동", + "admdong_id": "1102069" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "중림동", + "admdong_id": "1102068" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "황학동", + "admdong_id": "1102067" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "신당5동", + "admdong_id": "1102065" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "을지로동", + "admdong_id": "1102060" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "광희동", + "admdong_id": "1102059" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "장충동", + "admdong_id": "1102058" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "필동", + "admdong_id": "1102057" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "명동", + "admdong_id": "1102055" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "회현동", + "admdong_id": "1102054" + }, + { + "si_do": "서울시", + "gu": "중구", + "dong": "소공동", + "admdong_id": "1102052" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "혜화동", + "admdong_id": "1101073" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "청운효자동", + "admdong_id": "1101072" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "숭인2동", + "admdong_id": "1101071" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "숭인1동", + "admdong_id": "1101070" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "창신3동", + "admdong_id": "1101069" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "창신2동", + "admdong_id": "1101068" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "창신1동", + "admdong_id": "1101067" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "이화동", + "admdong_id": "1101064" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "종로5,6가동", + "admdong_id": "1101063" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "종로1,2,3,4가동", + "admdong_id": "1101061" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "가회동", + "admdong_id": "1101060" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "교남동", + "admdong_id": "1101058" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "무악동", + "admdong_id": "1101057" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "평창동", + "admdong_id": "1101056" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "부암동", + "admdong_id": "1101055" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "삼청동", + "admdong_id": "1101054" + }, + { + "si_do": "서울시", + "gu": "종로구", + "dong": "사직동", + "admdong_id": "1101053" + } + ] +} diff --git a/back/src/middlewares/errorMiddleware.js b/back/src/middlewares/errorMiddleware.js new file mode 100644 index 0000000..f110d32 --- /dev/null +++ b/back/src/middlewares/errorMiddleware.js @@ -0,0 +1,9 @@ +// reference: +// 1차 프로젝트 파일 +function errorMiddleware(error, req, res, next) { + console.log("\x1b[33m%s\x1b[0m", error); // 정규식은 한번 해석해봐야함 + res.status(400).send(error.message); +} + +// export { errorMiddleware }; +module.exports = errorMiddleware; diff --git a/back/src/middlewares/image_upload.js b/back/src/middlewares/image_upload.js new file mode 100644 index 0000000..ad5959e --- /dev/null +++ b/back/src/middlewares/image_upload.js @@ -0,0 +1,36 @@ +const multer = require("multer"); +// const path = require("path"); + +// const upload = multer({ +// storage: multer.diskStorage({ +// //파일이 저장될 경로 +// destination(req, file, callback) { +// callback(null, "uploads/"); +// }, +// //같은 이름의 이미지 중복 업로드시 오류 발생을 피하기 위하여, 파일명을 유일하게 만들어 줌 + +// filename(req, file, callback) { +// const ext = path.extname(file.originalname); + +// const timestamp = new Date().getTime().valueOf(); +// const filename = path.basename(file.originalname, ext) + timestamp + ext; +// callback(null, filename); +// }, +// }), +// }); + +const storage = multer.diskStorage({ + destination: function (req, file, cb) { + cb(null, "uploads/"); + }, + filename: function (req, file, cb) { + const originalname = file.originalname.split("."); + const ext = originalname[originalname.length - 1]; + const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9); + cb(null, file.fieldname + "-" + uniqueSuffix + "." + ext); + }, +}); + +const upload = multer({ storage: storage }); + +module.exports = upload; diff --git a/back/src/middlewares/login_required.js b/back/src/middlewares/login_required.js new file mode 100644 index 0000000..85bbfd5 --- /dev/null +++ b/back/src/middlewares/login_required.js @@ -0,0 +1,34 @@ +const jwt = require("jsonwebtoken"); + +const login_required = async function (req, res, next) { + // request 헤더로부터 authorization bearer 토큰을 받음. + const userToken = req.headers["authorization"]?.split(" ")[1] ?? "null"; + // 이 토큰은 jwt 토큰 문자열이거나, 혹은 "null" 문자열임. + // 토큰이 "null" 일 경우, login_required 가 필요한 서비스 사용을 제한함. + if (userToken === "null") { + console.log("서비스 사용 요청이 있습니다.하지만, Authorization 토큰: 없음"); + res.status(400).json({ + result: false, + errorMessage: "로그인한 유저만 사용할 수 있는 서비스입니다.", + errorCause: "token", + }); + return; + } + + // 해당 token 이 정상적인 token인지 확인 -> 토큰에 담긴 user_id 정보 추출 + try { + const secretKey = process.env.JWT_SECRET_KEY || "secret-key"; + const jwtDecoded = jwt.verify(userToken, secretKey); + const user_id = jwtDecoded.user_id; + req.user_id = user_id; + next(); + } catch (error) { + res.status(400).json({ + result: false, + errorMessage: "정상적인 토큰이 아닙니다. 다시 한 번 확인해 주세요.", + errorCause: "token", + }); + } +}; + +module.exports = login_required; diff --git a/back/src/routers/introRouter.js b/back/src/routers/introRouter.js new file mode 100644 index 0000000..91b38f4 --- /dev/null +++ b/back/src/routers/introRouter.js @@ -0,0 +1,44 @@ +const express = require("express"); +const { readFileSync } = require("fs"); +const path = require("path"); +const asyncHandler = require("express-async-handler"); +const introRouter = express.Router(); + +// GET: 소개 페이지의 쓰레기 배출량 증가 데이터, 연령대별 환경관심정도 데이터, 친환경적 태도 및 생활 습관 실천의 어려움 데이터 +file_name = ["1996to2020_trashData_tonPerDay.csv", "국민환경의식조사원자료.csv", "친환경적습관실천어려움.csv"] +// GET: +const introData = async (req, res, next) => { + try { + const intro = req.params.intro -1; + const file = file_name[intro]; + const csvPath = path.join(__dirname, "..", "data", file); + const csv = readFileSync(csvPath, "utf-8"); + // 문자열을 줄바꿈으로 구분 => 배열에 저장 + const rows = csv.split("\r\n"); + // 빈 배열 생성: CSV의 각 행을 담을 JSON 객체임 + const jsonArray = []; + // 제목 행 추출 후, 콤마로 구분 => 배열에 저장 + const header = rows[0].split(","); + // 내용 행 전체를 객체로 만들어, jsonArray에 담기 + for (let i = 1; i < rows.length; i++) { + // 빈 객체 생성: 각 내용 행을 객체로 만들어 담아둘 객체임 + let obj = {}; + // 각 내용 행을 콤마로 구분 + let row = rows[i].split(","); + // 각 내용행을 {제목1:내용1, 제목2:내용2, ...} 형태의 객체로 생성 + for (let j = 0; j < header.length; j++) { + obj[header[j]] = row[j]; + } + // 각 내용 행의 객체를 jsonArray배열에 담기 + jsonArray.push(obj); + } + res.status(200).json(jsonArray); + } catch (err) { + next(err); + } +}; + +introRouter.get("/intro/:intro", asyncHandler(introData)); + + +module.exports = introRouter; diff --git a/back/src/routers/mapRouter.js b/back/src/routers/mapRouter.js new file mode 100644 index 0000000..3bf5631 --- /dev/null +++ b/back/src/routers/mapRouter.js @@ -0,0 +1,253 @@ +const express = require("express"); +const { pool } = require("../db/database"); +const asyncHandler = require("express-async-handler"); + +const mapRouter = express.Router(); +///////////////////////////////////// +// y| A (x1, y1) B (x2, y1') +// | *------------------------* +// | | | +// | | | +// | | | +// | | | +// | | | +// | | D (x1', y2) | C (x2', y2') +// | *------------------------* +// |______________________________ +// x +// 가정 1. 위도(y축), 경도(x축)가 지도프레임의 축과 일치하지 않는다. +// 해결책 1. kakao map api 기능중 표시영역(모서리 4곳) 정보를 위도경도로 알려주는 '영역 변경 이벤트 등록하기'를 활용하여 sql 쿼리문을 작성한다. +// kakao maps api: https://apis.map.kakao.com/web/sample/addMapBoundsChangedEvent/ +// 해결책 1. 수도코드 +// 알고리즘 => 상점의 좌표 S를 각 선과 비교하여 사각형 안에 있는지 확인한다. +function checkStore(A, B, C, D, S, res) { + // 2차 커널: 1차는 러프한 필터링이었다면, 2차는 정밀 + const A = req.body.A위도경도json; // 위도 = y, 경도 = x + const B = req.body.B위도경도json; + const C = req.body.C위도경도json; + const D = req.body.D위도경도json; + const S = req.body.S위도경도json; + ///// if (x축 기준, A좌표가 D좌표와 같을 때) //// . ! == no need to compare + // 1) S(x) ! LineAB(x), S(y) < LineAB + // 2) S(x) > LineAD(x), S(y) ! LineAD + // 3) S(x) < LineBC(x), S(y) ! LineBC + // 4) S(x) ! LineCD(x), S(y) > LineCD + // 계산식 (기울기 = y의 증가량/x의 증가량) + if (A.경도 == D.경도) { + try { + A.경도 <= S.경도 <= B.경도; // x + C.위도 <= S.위도 <= A.위도; // y + res.json({ + result: true, + resultMessage: "상점이 지도에 표시됩니다.", + }); + } catch (err) { + res.json({ + result: false, + resultMessage: "상점이 지도 프레임 밖에 위해하여 표시되지 않습니다.", + }); + } + ///// else if (x축 기준, A좌표가 D좌표보다 작을 때) //// (일 때도 동일) + // 1) S(x) > LineAB(x), S(y) < LineAB + // 2) S(x) > LineAD(x), S(y) > LineAD + // 3) S(x) < LineBC(x), S(y) < LineBC + // 4) S(x) < LineCD(x), S(y) > LineCD + // 계산식 (기울기 = y의 증가량/x의 증가량) + } else { + try { + const lineAB = function () { + // 1) + const a = (B.위도 - A.위도) / (B.경도 - A.경도); // 기울기 + const x = S.경도 >= S.위도 / a; // x + const y = S.위도 <= S.경도 * a; // y + if (x == true && y == true) { + return true; + } else { + return false; + } + }; + const lineAD = function () { + // 1) + const a = (D.위도 - A.위도) / (D.경도 - A.경도); // 기울기 + const x = S.경도 >= S.위도 / a; // x + const y = S.위도 >= S.경도 * a; // y + if (x == true && y == true) { + return true; + } else { + return false; + } + }; + const lineBC = function () { + // 1) + const a = (C.위도 - B.위도) / (C.경도 - B.경도); // 기울기 + const x = S.경도 <= S.위도 / a; // x + const y = S.위도 <= S.경도 * a; // y + if (x == true && y == true) { + return true; + } else { + return false; + } + }; + const lineCD = function () { + // 1) + const a = (C.위도 - D.위도) / (C.경도 - D.경도); // 기울기 + const x = S.경도 <= S.위도 / a; // x + const y = S.위도 >= S.경도 * a; // y + if (x == true && y == true) { + return true; + } else { + return false; + } + }; + // promis all 적용이 효율적 + Promise.all([lineAB, lineAD, lineBC, lineCD]).then((value) => { + if ( + value[0] == true && + value[1] == true && + value[2] == true && + value[3] == true + ) { + res.json({ + result: true, + resultMessage: "상점이 지도에 표시됩니다.", + }); + } else { + res.json({ + result: false, + resultMessage: + "상점이 지도 프레임 밖에 위해하여 표시되지 않습니다.", + }); + } + }); + } catch (err) { + res.json({ + result: false, + resultMessage: "상점이 지도 프레임 밖에 위해하여 표시되지 않습니다.", + }); + } + + // ///// else (x축 기준, A좌표가 D좌표보다 클 때) ///// (작을 때도 동일) + // // 1) S(x) < LineAB(x), S(y) < LineAB + // // 2) S(x) > LineAD(x), S(y) < LineAD + // // 3) S(x) < LineBC(x), S(y) > LineB클 + // // 4) S(x) > LineCD(x), S(y) > LineCD + // // 계산식 (기울기 = y의 증가량/x의 증가량) + // } else if (A.경도 > D.경도) { + // try { + // const lineAB = function () { + // // 1) + // const a = (B.위도 - A.위도) / (B.경도 - A.경도); // 기울기 + // const x = S.경도 <= S.위도 / a; // x + // const y = S.위도 <= S.경도 * a; // y + // if (x == true && y == true) { + // return true; + // } else { + // return false; + // } + // }; + // const lineAD = function () { + // // 1) + // const a = (A.위도 - D.위도) / (A.경도 - D.경도); // 기울기 + // const x = S.경도 >= S.위도 / a; // x + // const y = S.위도 <= S.경도 * a; // y + // if (x == true && y == true) { + // return true; + // } else { + // return false; + // } + // }; + // const lineBC = function () { + // // 1) + // const a = (B.위도 - C.위도) / (B.경도 - C.경도); // 기울기 + // const x = S.경도 <= S.위도 / a; // x + // const y = S.위도 >= S.경도 * a; // y + // if (x == true && y == true) { + // return true; + // } else { + // return false; + // } + // }; + // const lineCD = function () { + // // 1) + // const a = (C.위도 - D.위도) / (C.경도 - D.경도); // 기울기 + // const x = S.경도 >= S.위도 / a; // x + // const y = S.위도 >= S.경도 * a; // y + // if (x == true && y == true) { + // return true; + // } else { + // return false; + // } + // }; + // // promis all 적용이 효율적 + // Promise.all([lineAB, lineAD, lineBC, lineCD]).then((value) => { + // if ( + // value[0] == true && + // value[1] == true && + // value[2] == true && + // value[3] == true + // ) { + // res.json({ + // result: true, + // resultMessage: "상점이 지도에 표시됩니다.", + // }); + // } else { + // res.json({ + // result: false, + // resultMessage: + // "상점이 지도 프레임 밖에 위해하여 표시되지 않습니다.", + // }); + // } + // }); + // } catch (err) { + // res.json({ + // result: false, + // resultMessage: err, + // }); + // } + // } else { + // res.json({ + // result: false, + // resultMessage: err, + // }); + } +} + +const showInMap = async (req, res, err) => { + const A = req.body.A위도경도json; // 위도 = y, 경도 = x + const B = req.body.B위도경도json; + const C = req.body.C위도경도json; + const D = req.body.D위도경도json; + const maxX = Math.ma도(A.경도, B.경도, C.경도, D.경도); // 잘나오는지 확인 필요 + const minX = Math.min(A.경도, B.경도, C.경도, D.경도); + const maxY = Math.max(A.위도, B.위도, C.위도, D.위도); + const minY = Math.max(A.위도, B.위도, C.위도, D.위도); + + try { + // 1차 커널: 요도경도 최대 최소값으로 1차 필터링 + const [results, fields, error] = await pool.query({ + sql: "SELECT * FROM stores WHERE 경도 BETWEEN ? AND ? AND 위도 BETWEEN ? AND ?", + values: [minX, maxX, minY, maxY], + }); + if (error) throw error; + // console.log(results.length); + let j = 0; + let resultJson = {}; + for (let i = 0; i < results.length; i++) { + let S = { 위도: results[i].위도, 경도: results[i].경도 }; + const { res } = checkStore(A, B, C, D, S); + if (res.result == true) { + resultJson[j] = results[i]; + j = j + 1; + } + } + res.status(200).json({ + result: true, + resultMessage: "지도에 표시되는 상점 리스트입니다.", + }); + } catch (err) { + next(err); + } +}; + +mapRouter.post("/map/showInMap", asyncHandler(showInMap)); +module.exports = mapRouter; diff --git a/back/src/routers/myPageRouter.js b/back/src/routers/myPageRouter.js new file mode 100644 index 0000000..f4a17b5 --- /dev/null +++ b/back/src/routers/myPageRouter.js @@ -0,0 +1,147 @@ +const express = require("express"); +const { pool } = require("../db/database"); +const login_required = require("../middlewares/login_required"); +// const asyncHandler = require("../util/asyncHandler"); +const asyncHandler = require("express-async-handler"); +const myPageRouter = express.Router(); + +//해당 유저 전체 댓글 불러오기 +myPageRouter.get("/mypage/reviews", login_required, async (req, res, next) => { + try { + const user_id = req.user_id; + // const user_id = 1 + + let [results, fields, error] = await pool.query( + `SELECT R.review_id, R.star, R.description, R.photo, R.photo2, R.created_time, R.updated_time, S.name as store_name + FROM reviews R + INNER JOIN stores S + ON R.store_id = S.store_id + WHERE R.user_id = ${user_id}` + ); + + for (var i = 0; i < results.length; i++) { + let k = results[i].review_id; + //그 리뷰를 좋아하는 사람 목록 + let [reviewLikeList] = await pool.query( + `SELECT LR.like_review_id, LR.created_time, U.nickname + FROM like_reviews LR + INNER JOIN users U + ON LR.user_id = U.user_id + WHERE LR.review_id = ${k} and tag="like"`) + //그 리뷰를 싫어하는 사람 목록 + let [reviewDislikeList] = await pool.query( + `SELECT LR.like_review_id, LR.created_time, U.nickname + FROM like_reviews LR INNER + JOIN users U + ON LR.user_id = U.user_id + WHERE LR.review_id = ${k} and tag="dislike"`) + results[i].like_reviews = reviewLikeList + results[i].dike_reviews = reviewDislikeList + + } + console.log(results); + + if (error) throw error; + + res.status(201).json(results); + } catch (err) { + next(err); + } +}); + +// GET: 현재 로그인된 유저의 마이페이지 info 정보 +const mypageInfo = async function (req, res, next) { + try { + // jwt토큰에서 추출된 사용자 id를 가지고 db에서 사용자 정보를 찾음. + const user_id = req.user_id; + const [res_currentUser, fld_currentUser, err_currentUser] = + await pool.query({ + sql: "SELECT * FROM users WHERE `user_id` = ? ", + values: [user_id], + }); + if (err_currentUser) throw err_currentUser; + // 관심상점 수 + const [res_favStore, fld_favStore, err_favStore] = await pool.query({ + sql: "SELECT count(store_id) AS myFavStores FROM like_store WHERE `user_id` = ? ", + values: [user_id], + }); + if (err_favStore) throw err_favStore; + // 리뷰 수 + const [res_myReview, fld_myReview, err_myReview] = await pool.query({ + sql: "SELECT count(review_id) AS myReviews FROM reviews WHERE `user_id` = ? ", + values: [user_id], + }); + if (err_myReview) throw err_myReview; + // 리워드 수 + const cntReviews = res_myReview[0].myReviews; + const myReward = Math.floor(cntReviews / 5); + + const mypageInfo_result = Object.assign( + res_currentUser[0], + res_favStore[0], + res_myReview[0], + { myReward: myReward } + ); + delete mypageInfo_result.user_id; + delete mypageInfo_result.password; + const resultWMessage = Object.assign( + { + result: true, + resultMessage: "로그인이 성공적으로 이뤄졌습니다.", + }, + mypageInfo_result + ); + res.status(200).json(resultWMessage); + } catch (error) { + next(error); + } +}; + +//좋아요 상점 목록 불러오기 +myPageRouter.get("/mypage/stores", login_required, async (req, res, next) => { + try { + const user_id = req.user_id; + + let [results, fields, error] = await pool.query( + `select LS.like_store_id, S.* from like_store LS + inner join stores S + on S.store_id = LS.store_id + where user_id = ${user_id}` + ); + + for (var i = 0; i < results.length; i++) { + let k = results[i].store_id; + const [avg_star] = await pool.query( + `select avg(star) as avg_star from reviews where store_id = ${k}` + ) + + if (avg_star[0].avg_star == null){ + results[i].avg_star = 0 + }else{ + results[i].avg_star = avg_star[0].avg_star + } + } + + console.log(results); + + if (error) throw error; + + res.status(201).json(results); +} catch (err) { + next(err); +} +}); + +// myPageRouter.get( +// "/user/reviewList", +// asyncHandler(login_required), +// asyncHandler(mypageReviewList) +// ); +myPageRouter.get( + "/mypage/info", + asyncHandler(login_required), + asyncHandler(mypageInfo) +); + +module.exports = myPageRouter; + diff --git a/back/src/routers/reviewRouter.js b/back/src/routers/reviewRouter.js new file mode 100644 index 0000000..8a34241 --- /dev/null +++ b/back/src/routers/reviewRouter.js @@ -0,0 +1,272 @@ +const express = require("express"); +const { pool } = require("../db/database"); +// const { reviewService } = require("../services/reviewService"); +const login_required = require("../middlewares/login_required") +const upload = require("../middlewares/image_upload"); +const fs = require("fs"); +const reviewRouter = express.Router(); + + +//스토어 리뷰 달기 +reviewRouter.post("/stores/:store_id/review", login_required, upload.array("photo"), async (req, res, next) => { + try { + //로그인된 유저를 토큰 값으로 확인한후 user_id를 받아오기 + const user_id = req.user_id; + + // const user_id = 3; + const { star, description } = req.body; + const store_id = req.params.store_id; + + let photo1; + let photo2; + //사진 저장. 사진이름 뽑기. + if (req.files) { + photo1 = req.files[0]||"" + photo2 = req.files[1]||"" + if (req.files[0] != undefined){ + photo1 = req.files[0].filename} + if (req.files[1] != undefined){ + photo2 = req.files[0].filename} + } else { + photo1 = ""; + photo2= ""; + }; + + // db에 저장 + const [results, fields, error] = await pool.query({ + sql: "INSERT INTO reviews (user_id, star, description, photo, photo2, store_id) VALUES (?, ?, ?, ?, ?, ?)", + values: [user_id, star, description, photo1, photo2, store_id], + }); + if (error) throw error; + + const review_id = results.insertId; + const saveData = { review_id, star, description, photo1, photo2 }; + res.status(201).send(saveData); + } catch (err) { + next(err); + } +}); + +//해당 스토어 전체 댓글 불러오기 +reviewRouter.get("/stores/:store_id/reviews", async (req, res, next) => { + try { + const store_id = req.params.store_id; + + const [results, fields, error] = await pool.query( + `SELECT R.review_id, R.star, R.description, R.photo, R.photo2, R.created_time, R.updated_time, U.nickname + FROM reviews R + INNER JOIN users U + ON R.user_id = U.user_id + WHERE store_id = ${store_id}` + ); + + if (error) throw error; + + for (var i = 0; i < results.length; i++) { + let k = results[i].review_id + //그 리뷰를 좋아하는 사람 목록 + let [reviewLikeList] = await pool.query( + `SELECT LR.like_review_id, LR.created_time, U.nickname + FROM like_reviews LR + INNER JOIN users U + ON LR.user_id = U.user_id + WHERE LR.review_id = ${k} and tag="like"`) + //그 리뷰를 싫어하는 사람 목록 + let [reviewDislikeList] = await pool.query( + `SELECT LR.like_review_id, LR.created_time, U.nickname + FROM like_reviews LR INNER + JOIN users U + ON LR.user_id = U.user_id + WHERE LR.review_id = ${k} and tag="dislike"`) + results[i].like_reviews = reviewLikeList + results[i].disLike_reviews = reviewDislikeList + } + + console.log(results); + + res.status(201).json(results); + } catch (err) { + next(err); + } +}); + +//리뷰 수정하기 +reviewRouter.put("/review/:review_id", login_required, upload.array("photo"), async (req, res, next) => { + try { + const review_id = req.params.review_id; + const { star, description} = req.body; + + const [reviewPhoto, filed, err] = await pool.query( + `SELECT photo, photo2 FROM reviews WHERE review_id=${review_id};` + ); + if (err) throw err; + + //사진 삭제하기. + let file_name = [reviewPhoto[0].photo, reviewPhoto[0].photo2] + + for (let i=0; i<=2; i++) { + if (fs.existsSync("uploads/" + file_name[i])) { + try { + fs.unlinkSync("uploads/" + file_name[i]); + console.log("image delete"); + } catch (deleteError) { + console.log(deleteError); + } + } + } + + //사진 저장. 사진이름 뽑기. + if (req.files) { + photo1 = req.files[0]||"" + photo2 = req.files[1]||"" + if (req.files[0] != undefined){ + photo1 = req.files[0].filename} + if (req.files[1] != undefined){ + photo2 = req.files[0].filename} + } else { + photo1 = ""; + photo2= ""; + }; + + const [results, fields, error] = await pool.query( + `UPDATE reviews SET star=${star}, description="${description}", photo="${photo1}", photo2 ="${photo2}" WHERE review_id = ${review_id}` + ); + const putData = { review_id, star, description, photo1, photo2}; + + if (error) throw error; + res.status(201).send(putData); + } catch (err) { + next(err); + } +}); + +//리뷰 지우기 +reviewRouter.delete("/stores/:store_id/:review_id", login_required, async (req, res, next) => { + try { + const review_id = req.params.review_id; + + const [reviewPhoto, filed, error] = await pool.query( + `SELECT photo, photo2 FROM reviews WHERE review_id=${review_id};` + ); + if (error) throw error; + + const [results, fields, err] = await pool.query( + `DELETE FROM reviews WHERE review_id=${review_id};` + ); + if (err) throw err; + + //사진 삭제하기. + let file_name = [reviewPhoto[0].photo, reviewPhoto[0].photo2] + + for (let i=0; i<=2; i++) { + if (fs.existsSync("uploads/" + file_name[i])) { + try { + fs.unlinkSync("uploads/" + file_name[i]); + console.log("image delete"); + } catch (deleteError) { + console.log(deleteError); + } + } + } + + res.status(201).json({ + message: "리뷰가 삭제되었습니다.", + }); + } catch (err) { + next(err); + } +}); + +//리뷰 좋아요 +reviewRouter.post( + "/stores/:store_id/:review_id/like", + login_required, + async (req, res, next) => { + try { + //로그인된 유저를 토큰 값으로 확인한후 user_id를 받아오기 + const user_id = req.user_id; + const review_id = req.params.review_id; + const tag = 1; + + //db에 존재하는 것 삭제 + const [deleteReviewLike, error] = await pool.query( + // `select count(user_id) from like_reviews group by review_id, having count(review_id)>1` + `DELETE FROM like_reviews WHERE review_id=${review_id} and user_id=${user_id}` + ); + if (error) throw error; + + // db에 저장 + const [saveReviewLike, err] = await pool.query( + `INSERT INTO like_reviews(user_id, review_id, tag) VALUES (${user_id}, ${review_id}, ${tag})` + ); + if (err) throw err; + + //저장된 데이터 + const [saveData, , getDataErr] = await pool.query( + `SELECT like_review_id, created_time, tag FROM like_reviews WHERE review_id=${review_id} and user_id=${user_id}` + ) + if (getDataErr) throw getDataErr + + console.log(saveData); + + res.status(201).json(saveData); + } catch (err) { + next(err); + } + } +); + +//리뷰 싫어요 +reviewRouter.post( + "/stores/:store_id/:review_id/dislike", + login_required, + async (req, res, next) => { + try { + //로그인된 유저를 토큰 값으로 확인한후 user_id를 받아오기 + const user_id = req.user_id; + const review_id = req.params.review_id; + const tag = 2; + + //db에 존재하는 것 삭제 + const [deleteReviewLike, error] = await pool.query( + // `select count(user_id) from like_reviews group by review_id, having count(review_id)>1` + `DELETE FROM like_reviews WHERE review_id=${review_id} and user_id=${user_id}` + ); + if (error) throw error; + + // db에 저장 + const [saveReviewLike, err] = await pool.query( + `INSERT INTO like_reviews(user_id, review_id, tag) VALUES (${user_id}, ${review_id}, ${tag})` + ); + if (err) throw err; + + //저장된 데이터 //field없으면 object로 나오는ㄷ.. 뭔지잘모르겠음 + const [saveData, field , getDataErr] = await pool.query( + `SELECT like_review_id, created_time, tag FROM like_reviews WHERE review_id=${review_id} and user_id=${user_id}` + ) + if (getDataErr) throw getDataErr + + console.log(saveData); + + res.status(201).json(saveData); + } catch (err) { + next(err); + } + } +); + +module.exports = reviewRouter; + +//api index +// reviewRouter.post("/stores/:store_id/review", addReview); +// reviewRouter.get("/stores/:store_id/reviews", storeReviews); +// reviewRouter.get("/user/reviewList", userReviews); +// reviewRouter.put("/review/:review_id", putReview); +// reviewRouter.delete("/stores/:store_id/:review_id", deleteReview) ; + +// const newReview = await reviewService.addReview({ +// user_id, +// star, +// description, +// photo, +// }); \ No newline at end of file diff --git a/back/src/routers/socialLoginRouter.js b/back/src/routers/socialLoginRouter.js new file mode 100644 index 0000000..75b64ba --- /dev/null +++ b/back/src/routers/socialLoginRouter.js @@ -0,0 +1,297 @@ +const express = require("express"); +const axios = require("axios"); +const jwt = require("jsonwebtoken"); +const moment = require("moment-timezone"); +moment.tz.setDefault("Asia/Seoul"); +const asyncHandler = require("../util/asyncHandler"); +const { pool } = require("../db/database"); + +const socialLoginRouter = express.Router(); +axios.interceptors.response.use( + (res) => { + return res.data; + }, + (err) => { + console.log(err); + throw new Error("(!) axios error"); + } +); +const makeFormData = (params) => { + const searchParams = new URLSearchParams(); + Object.keys(params).forEach((key) => { + searchParams.append(key, params[key]); + }); + return searchParams; +}; + +//////////////////////////////////////// +///////////// 네 이 버 /////////////// +// FE에서 code를 얻는 곳: https://nid.naver.com/oauth2.0/authorize?response_type=code&client_id=JRa7NrbtcesvuNyjkj6I&redirect_uri=http%3A%2F%2F127.0.0.1%3A5173%2Flogin%2Foauth2%2Fcode%2Fnaver&state=green +//////////////////////////////////////// +const naverOauth = async (req, res, next) => { + const code = req.body.code; + const state = "green"; + const client_id = "JRa7NrbtcesvuNyjkj6I"; + const client_secret = "wKlBmjAspw"; + const redirectURI = "http://127.0.0.1:5173/login/oauth2/code/naver"; + const encoded = encodeURIComponent(redirectURI); + // const FE_url = `https://nid.naver.com/oauth2.0/authorize?response_type=code&client_id=${client_id}&redirect_uri=${encoded}&state=${state}`; + // console.log("FE_url: ", FE_url); + const url = `https://nid.naver.com/oauth2.0/token?grant_type=authorization_code&client_id=${client_id}&client_secret=${client_secret}&redirect_uri=${encoded}&code=${code}&state=${state}`; + + try { + let naverToken = ""; + await axios({ + method: "GET", + url: url, + }) + .then((res) => { + naverToken = res; + }) + .catch((err) => { + console.log("오류메시지: ", err); + }); + + ///////정보 받아오기/////// + let naverUser = ""; + const access_token = JSON.stringify(naverToken.access_token); + await axios({ + method: "GET", + headers: { + Authorization: `bearer ${access_token}`, + }, + url: "https://openapi.naver.com/v1/nid/me", + }) + .then((res) => { + naverUser = res; + }) + .catch((err) => { + console.log(err); + }); + + // 이메일 중복 확인 + const naverUserRes = naverUser.response; + const naverUserEmail = naverUserRes.email; + const [res_checkID, fld_checkID, err_checkID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [naverUserEmail], + }); + if (err_checkID) throw err_checkID; + else if (JSON.stringify(res_checkID) === "[]") { + // db에 저장 + const nickname = "naver_" + naverUserEmail; + const created_time = moment().format("YYYY-MM-DD HH:mm:ss"); + const updated_time = moment().format("YYYY-MM-DD HH:mm:ss"); + const [res_save, fld_save, err_save] = await pool.query({ + sql: "INSERT INTO users (email, password, nickname, provider, created_time, updated_time) VALUES (?, ?, ?, ?, ?, ?)", + values: [ + naverUserEmail, + access_token, + nickname, + "naver", + created_time, + updated_time, + ], + }); + if (err_save) throw err_save; + + // JWT 웹 토큰 생성 + const [res_logID, fld_logID, err_logID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [naverUserEmail], + }); + if (err_logID) throw err_logID; + const res_logID_arrayId = JSON.stringify(res_logID, ["user_id"]); + const res_logID_Id = res_logID_arrayId.replace(/[^0-9]/g, ""); + const secretKey = process.env.JWT_SECRET_KEY || "jwt-secret-key"; + const token = jwt.sign({ user_id: res_logID_Id }, secretKey); + const [res_logID_tk, fld_logID_tk, err_logID_tk] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [naverUserEmail], + }); + if (err_logID_tk) throw err_logID_tk; + const userWToken = Object.assign( + { + result: true, + resultMessage: + "naver api를 이용한 회원가입이 성공적으로 이뤄졌습니다.", + provider: "naver", + token: token, + }, + res_logID_tk[0] + ); + delete userWToken.user_id; + delete userWToken.password; + res.status(200).json(userWToken); + } else if (JSON.stringify(res_checkID) !== "[]") { + // JWT 웹 토큰 생성 + const [res_logID, fld_logID, err_logID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [naverUserEmail], + }); + if (err_logID) throw err_logID; + const res_logID_arrayId = JSON.stringify(res_logID, ["user_id"]); + const res_logID_Id = res_logID_arrayId.replace(/[^0-9]/g, ""); + const secretKey = process.env.JWT_SECRET_KEY || "jwt-secret-key"; + const token = jwt.sign({ user_id: res_logID_Id }, secretKey); + const [res_logID_tk, fld_logID_tk, err_logID_tk] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [naverUserEmail], + }); + if (err_logID_tk) throw err_logID_tk; + const userWToken = Object.assign( + { + result: true, + resultMessage: "naver api를 이용한 로그인이 성공적으로 이뤄졌습니다.", + provider: "naver", + token: token, + }, + res_logID_tk[0] + ); + delete userWToken.user_id; + delete userWToken.password; + res.status(200).json(userWToken); + } + } catch (error) { + next(error); + } +}; + +//////////////////////////////////////// +///////////// 카 카 오 /////////////// +// FE_URL: kauth.kakao.com/oauth/authorize?client_id=9fd6d9d615c25ff01b60a3a988e942bc&redirect_uri=http://127.0.0.1:5173/login/oauth2/code/kakao&response_type=code +//////////////////////////////////////// +// POST: kakao api 회원가입 +const kakaoOauth = async (req, res, next) => { + const code = req.body.code; + const REST_API_KEY = "9fd6d9d615c25ff01b60a3a988e942bc"; + const REDIRECT_URI = "http://127.0.0.1:5173/login/oauth2/code/kakao"; + try { + let kakaoToken = ""; + await axios({ + method: "POST", + headers: { + "content-type": "application/x-www-form-urlencoded;charset=utf-8", + }, + url: "https://kauth.kakao.com/oauth/token", + data: makeFormData({ + grant_type: "authorization_code", + client_id: REST_API_KEY, + redirect_uri: REDIRECT_URI, + code: code, + }), + }) + .then((res) => { + kakaoToken = res; + }) + .catch((err) => { + console.log(err); + }); + + ///////정보 받아오기/////// + let kakaoUser = ""; + const access_token = JSON.stringify(kakaoToken.access_token); + await axios({ + method: "GET", + headers: { + Authorization: `bearer ${access_token}`, + }, + url: "https://kapi.kakao.com/v1/oidc/userinfo", + }) + .then((res) => { + kakaoUser = res; + }) + .catch((err) => { + console.log(err); + }); + + // 이메일 중복 확인 + const kakaoUserEmail = kakaoUser.email; + const [res_checkID, fld_checkID, err_checkID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [kakaoUserEmail], + }); + if (err_checkID) throw err_checkID; + else if (JSON.stringify(res_checkID) === "[]") { + // db에 저장 + const nickname = "kakao_" + kakaoUserEmail; + const created_time = moment().format("YYYY-MM-DD HH:mm:ss"); + const updated_time = moment().format("YYYY-MM-DD HH:mm:ss"); + const [res_save, fld_save, err_save] = await pool.query({ + sql: "INSERT INTO users (email, password, nickname, provider, created_time, updated_time) VALUES (?, ?, ?, ?, ?, ?)", + values: [ + kakaoUserEmail, + access_token, + nickname, + "kakao", + created_time, + updated_time, + ], + }); + if (err_save) throw err_save; + + // JWT 웹 토큰 생성 + const [res_logID, fld_logID, err_logID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [kakaoUserEmail], + }); + if (err_logID) throw err_logID; + const res_logID_arrayId = JSON.stringify(res_logID, ["user_id"]); + const res_logID_Id = res_logID_arrayId.replace(/[^0-9]/g, ""); + const secretKey = process.env.JWT_SECRET_KEY || "jwt-secret-key"; + const token = jwt.sign({ user_id: res_logID_Id }, secretKey); + const [res_logID_tk, fld_logID_tk, err_logID_tk] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [kakaoUserEmail], + }); + if (err_logID_tk) throw err_logID_tk; + const userWToken = Object.assign( + { + result: true, + resultMessage: + "kakao api를 이용한 회원가입이 성공적으로 이뤄졌습니다.", + provider: "kakao", + token: token, + }, + res_logID_tk[0] + ); + delete userWToken.user_id; + delete userWToken.password; + res.status(200).json(userWToken); + } else if (JSON.stringify(res_checkID) !== "[]") { + // JWT 웹 토큰 생성 + const [res_logID, fld_logID, err_logID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [kakaoUserEmail], + }); + if (err_logID) throw err_logID; + const res_logID_arrayId = JSON.stringify(res_logID, ["user_id"]); + const res_logID_Id = res_logID_arrayId.replace(/[^0-9]/g, ""); + const secretKey = process.env.JWT_SECRET_KEY || "jwt-secret-key"; + const token = jwt.sign({ user_id: res_logID_Id }, secretKey); + const [res_logID_tk, fld_logID_tk, err_logID_tk] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [kakaoUserEmail], + }); + if (err_logID_tk) throw err_logID_tk; + const userWToken = Object.assign( + { + result: true, + resultMessage: "kakao api를 이용한 로그인이 성공적으로 이뤄졌습니다.", + provider: "kakao", + token: token, + }, + res_logID_tk[0] + ); + delete userWToken.user_id; + delete userWToken.password; + res.status(200).json(userWToken); + } + } catch (error) { + next(error); + } +}; + +socialLoginRouter.post("/naverOauth", asyncHandler(naverOauth)); +socialLoginRouter.post("/kakaoOauth", asyncHandler(kakaoOauth)); +module.exports = socialLoginRouter; diff --git a/back/src/routers/storesRouter.js b/back/src/routers/storesRouter.js new file mode 100644 index 0000000..d48d714 --- /dev/null +++ b/back/src/routers/storesRouter.js @@ -0,0 +1,224 @@ +const express = require("express"); +const { pool, connection } = require("../db/database"); +const login_required = require("../middlewares/login_required"); +const storesRouter = express.Router(); +const moment = require("moment-timezone"); +moment.tz.setDefault("Asia/Seoul"); + +//get요청 /store/:storeId (storeId는 1부터 순차적으로 자동 부여됨) 입력시 요청한 한개의 가게를 보여줌 +storesRouter.get("/store/:storeId", async (req, res, next) => { + try { + const storeId = req.params.storeId; + const [results, fields, error] = await pool.query( + `select * from stores S where store_id=${storeId};` + ); + if (error) throw error; + + const [avg_star] = await pool.query( + `select avg(star) as avg_star from reviews where store_id = ${storeId}` + ) + if (avg_star[0].avg_star == null){ + results[0].avg_star = 0 + }else{ + results[0].avg_star = avg_star[0].avg_star + } + console.log(results) + + res.status(200).json(results); + } catch (err) { + next(err); + } +}); + +//get요청 /store 전체 가게 리스트를 보여줌 +storesRouter.get("/store", async (req, res, next) => { + try { + const [results, fields, error] = await pool.query( + `select * from stores where store_id ;` + ); + if (error) throw error; + + for (var i = 0; i < results.length; i++) { + let k = results[i].store_id; + const [avg_star] = await pool.query( + `select avg(star) as avg_star from reviews where store_id = ${k}` + ) + if (avg_star[0].avg_star == null){ + results[i].avg_star = 0 + }else{ + results[i].avg_star = avg_star[0].avg_star + } + } + + res.status(200).json(results); + } catch (err) { + next(err); + } +}); + +// 새로운 가게 정보 등록 post +storesRouter.post("/stores/add", async (req, res, next) => { + try { + const { + name, + description, + tag, + url, + phone, + open_time, + close_time, + latitude, + longitude, + address_detail, + } = req.body; + + // 위 데이터를 유저 db에 추가하기 + const [res_save, fld_save, err_save] = await pool.query({ + sql: "INSERT INTO stores (name, description, tag, url, phone, open_time, close_time, latitude, longitude, address_detail) VALUES (?,?,?,?,?,?,?,?,?,?)", + values: [ + name, + description, + tag, + url, + phone, + open_time, + close_time, + latitude, + longitude, + address_detail, + ], + }); + // function (error, results, fields) { + if (err_save) throw err_save; + const newUser = JSON.stringify(res_save, ["insertId"]); + console.log(newUser); + // } + + res.status(200).send(newUser); + } catch (err) { + next(err); + } +}); + +//가게정보 수정 put +storesRouter.put("/store/:storeId", async (req, res, next) => { + try { + const storeId = req.params.storeId; + const { + name, + description, + tag, + url, + phone, + open_time, + close_time, + latitude, + longitude, + address_detail, + } = req.body; + + const [results, fields, error] = await pool.query({ + sql: `update stores SET name="${name}", description="${description}", tag="${tag}", url="${url}", phone="${phone}", + open_time="${open_time}", close_time="${close_time}", latitude="${latitude}", longitude="${longitude}", + address_detail="${address_detail}" WHERE store_id="${storeId}"`, + }); + + if (error) throw error; + res.status(200).json(results); + } catch (err) { + next(err); + } +}); + +//가게정보 삭제 +storesRouter.delete("/store/:storeId", async (req, res, next) => { + try { + const storeId = req.params.storeId; + const [results, fields, error] = await pool.query( + `delete from stores where store_id=${storeId};` + ); + if (error) throw error; + res.status(200).json(results); + } catch (err) { + next(err); + } +}); + +//get요청 서울시 ㅇㅇ구 ㅇㅇ동에 있는 가게정보 가져오기 +storesRouter.get("/store/address/:addressId", async (req, res, next) => { + try { + const addressId = req.params.addressId; + const [results, fields, error] = await pool.query( + `select * from stores inner join address on stores.address_id = address.address_id where address.address_id =${addressId};` + ); + if (error) throw error; + res.status(200).json(results); + } catch (err) { + next(err); + } +}); + +//스토어 찜하기 +storesRouter.post( + "/stores/:store_id/like", + login_required, + async (req, res, next) => { + try { + // jwt토큰에서 추출된 사용자 id를 가지고 db에서 사용자 정보를 찾음. + const user_id = req.user_id; + const store_id = req.params.store_id; + + // // 위 데이터를 유저 db에 추가하기 + // const [res_save, fld_save, error] = await pool.query( + // `DELETE FROM like_store(user_id,store_id) WHERE review_id=${user_id} and user_id=${store_id} ` + // ); + // if (error) throw error; + + const [results, fields, error] = await pool.query( + `delete from like_store where store_id="${store_id}" and user_id="${user_id}" ;` + ); + + // db에 저장 + const [saveStoreLike, err] = await pool.query( + `INSERT INTO like_store(user_id, store_id) VALUES ("${user_id}", '${store_id}');` + ); + if (err) throw err; + + //저장된 데이터 + const [saveData, , getDataErr] = await pool.query( + `SELECT store_id, like_store_id, time FROM like_store WHERE user_id="${user_id}" and store_id="${store_id}"` + ); + if (getDataErr) throw getDataErr; + + console.log(saveData); + res.status(201).json(saveData); + } catch (err) { + next(err); + } + } +); + +//가게찜 삭제 +storesRouter.delete( + "/store/:store_id/like", + login_required, + async (req, res, next) => { + try { + const user_id = req.user_id; + // const store_id = req.params.store_id; + // const user_id = 2; + const store_id = req.params.store_id; + const [results, fields, error] = await pool.query( + `delete from like_store where store_id="${store_id}" and user_id="${user_id}" ;` + ); + if (error) throw error; + res.status(200).json(results); + } catch (err) { + next(err); + } + } +); + +module.exports = storesRouter; + +//https://data.seoul.go.kr/dataList/OA-21234/S/1/datasetView.do 데이터정보 diff --git a/back/src/routers/userRouter.js b/back/src/routers/userRouter.js new file mode 100644 index 0000000..8bbb496 --- /dev/null +++ b/back/src/routers/userRouter.js @@ -0,0 +1,447 @@ +const express = require("express"); +const { pool, connection } = require("../db/database"); +const bcrypt = require("bcrypt"); +const jwt = require("jsonwebtoken"); +// const asyncHandler = require("../util/asyncHandler"); +const asyncHandler = require("express-async-handler"); +const login_required = require("../middlewares/login_required"); +// const moment1 = require("moment"); +const moment = require("moment-timezone"); +moment.tz.setDefault("Asia/Seoul"); +const upload = require("../middlewares/image_upload"); + +const userAuthRouter = express.Router(); + +// GET: 유저리스트 확인 기능 +const userList = async (req, res, next) => { + try { + const [results, fields, error] = await pool.query("SELECT * FROM users"); + if (error) throw error; + // console.log(results.length); + for (let i = 0; i < results.length; i++) { + delete results[i].password; + } + res.status(200).json(results); + } catch (err) { + next(err); + } +}; + +// GET: 회원가입 - Email 중복 확인 기능 +const userRegisterEmail = async (req, res, next) => { + try { + const email = req.body.email; + + // 이메일 중복 확인 + const [res_checkID, fld_checkID, err_checkID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [email], + }); + if (err_checkID) throw err_checkID; + else if (JSON.stringify(res_checkID) !== "[]") { + res.status(200).json({ + result: false, + errorMessage: + "입력하신 email로 가입된 내역이 있습니다. 다시 한 번 확인해 주세요.", + errorCause: "email", + }); + } else { + res.status(200).json({ + result: true, + resultMessage: + "입력하신 email로 가입된 내역이 없습니다. 사용하실 수 있습니다.", + }); + } + } catch (err) { + next(err); + } +}; + +// GET: 회원가입 - nickname 중복 확인 기능 +const userRegisterNickname = async (req, res, next) => { + try { + const nickname = req.body.nickname; + + // 닉네임 중복 확인 + const [res_checkNickname, fld_checkNickname, err_checkNickname] = + await pool.query({ + sql: "SELECT * FROM users WHERE `nickname` = ? ", + values: [nickname], + }); + if (err_checkNickname) throw err_checkNickname; + else if (JSON.stringify(res_checkNickname) !== "[]") { + res.status(200).json({ + result: false, + errorMessage: + "입력하신 닉네임으로 가입된 내역이 있습니다. 다시 한 번 확인해 주세요.", + errorCause: "nickname", + }); + } else { + res.status(200).json({ + result: true, + resultMessage: + "입력하신 nickname으로 가입된 내역이 없습니다. 사용하실 수 있습니다.", + }); + } + } catch (err) { + next(err); + } +}; + +// POST: 회원가입 기능 +const userRegister = async (req, res, next) => { + try { + const email = req.body.email; + const password = req.body.password; + const nickname = req.body.nickname; + + // 이메일 중복 확인 + const [res_checkID, fld_checkID, err_checkID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [email], + }); + if (err_checkID) throw err_checkID; + else if (JSON.stringify(res_checkID) !== "[]") { + res.status(200).json({ + result: false, + errorMessage: + "입력하신 email로 가입된 내역이 있습니다. 다시 한 번 확인해 주세요.", + errorCause: "email", + }); + } + + // 닉네임 중복 확인 + const [res_checkNickname, fld_checkNickname, err_checkNickname] = + await pool.query({ + sql: "SELECT * FROM users WHERE `nickname` = ? ", + values: [nickname], + }); + if (err_checkNickname) throw err_checkNickname; + else if (JSON.stringify(res_checkNickname) !== "[]") { + res.status(200).json({ + result: false, + errorMessage: + "입력하신 닉네임으로 가입된 내역이 있습니다. 다시 한 번 확인해 주세요.", + errorCause: "nickname", + }); + } + if ( + JSON.stringify(res_checkID) === "[]" && + JSON.stringify(res_checkNickname) === "[]" + ) { + // 비밀번호 해쉬화 + const hashedPassword = await bcrypt.hash(password, 10); + // db에 저장 + const [res_save, fld_save, err_save] = await pool.query({ + sql: "INSERT INTO users (email, password, nickname) VALUES (?, ?, ?)", + values: [email, hashedPassword, nickname], + }); + if (err_save) throw err_save; + res.status(200).json({ + result: true, + resultMessage: "회원가입이 성공적으로 이뤄졌습니다.", + }); + } + } catch (err) { + next(err); + } +}; + +// POST: 로그인 기능 +const userLogin = async function (req, res, next) { + try { + const email = req.body.email; + const password = req.body.password; + + const [res_logID, fld_logID, err_logID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [email], + }); + if (err_logID) throw err_logID; + else if (JSON.stringify(res_logID) === "[]") { + res.status(200).json({ + result: false, + errorMessage: "일치하는 email이 없습니다. 다시 한 번 확인해 주세요.", + errorCause: "email", + }); + } + + // 비밀번호 일치 여부 확인 + const res_logID_array = JSON.stringify(res_logID, ["password"]); + const res_logID_pw = res_logID_array.split(`"`); + const correctPasswordHash = res_logID_pw[3]; + const isPasswordCorrect = await bcrypt.compare( + password, + correctPasswordHash + ); + if (!isPasswordCorrect) { + res.status(200).json({ + result: false, + errorMessage: "비밀번호가 일치하지 않습니다. 다시 한 번 확인해 주세요.", + errorCause: "password", + }); + } + if (isPasswordCorrect && JSON.stringify(res_logID) !== "[]") { + // 로그인 성공 -> JWT 웹 토큰 생성 + const res_logID_arrayId = JSON.stringify(res_logID, ["user_id"]); + const res_logID_Id = res_logID_arrayId.replace(/[^0-9]/g, ""); + + const secretKey = process.env.JWT_SECRET_KEY || "jwt-secret-key"; + const token = jwt.sign({ user_id: res_logID_Id }, secretKey); + const [res_logID_tk, fld_logID_tk, err_logID_tk] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [email], + }); + if (err_logID_tk) throw err_logID_tk; + + const userWToken = Object.assign( + { + result: true, + resultMessage: "로그인이 성공적으로 이뤄졌습니다.", + }, + { token: token }, + res_logID_tk[0] + ); + delete userWToken.user_id; + delete userWToken.password; + res.status(200).json(userWToken); + } + } catch (error) { + next(error); + } +}; + +// GET: 현재 로그인된 유저 정보 +const userCurrent = async function (req, res, next) { + try { + // jwt토큰에서 추출된 사용자 id를 가지고 db에서 사용자 정보를 찾음. + const user_id = req.user_id; + const [res_currentUser, fld_currentUser, err_currentUser] = + await pool.query({ + sql: "SELECT * FROM users WHERE `user_id` = ? ", + values: [user_id], + }); + if (err_currentUser) throw err_currentUser; + if (res_currentUser && res_currentUser.length) { + // false, 검색된 결과가 없을 때 + delete res_currentUser[0].password; + delete res_currentUser[0].user_id; + const resultWMessage = Object.assign( + { + result: true, + resultMessage: "로그인이 성공적으로 이뤄졌습니다.", + }, + res_currentUser[0] + ); + res.status(200).json(resultWMessage); + } else { + res.status(200).json({ + result: false, + resultMessage: "로그인이 실패했습니다.", + }); + } + } catch (error) { + next(error); + } +}; + +// PUT: 유저 정보 업데이트(pw) +const userUpdatePW = async function (req, res, next) { + try { + const email = req.body.email; + const current_password = req.body.current_password; + const new_password = req.body.new_password; + const updated_time = moment().format("YYYY-MM-DD HH:mm:ss"); + const [res_checkID, fld_checkID, err_checkID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [email], + }); + if (err_checkID) throw err_checkID; + + // 비밀번호 일치 여부 확인 + const res_logID_array = JSON.stringify(res_checkID, ["password"]); + const res_logID_pw = res_logID_array.split(`"`); + const correctPasswordHash = res_logID_pw[3]; + const isPasswordCorrect = await bcrypt.compare( + current_password, + correctPasswordHash + ); + if (!isPasswordCorrect) { + res.status(200).json({ + result: false, + errorMessage: "비밀번호가 일치하지 않습니다. 다시 한 번 확인해 주세요.", + errorCause: "password", + }); + } + + // 비밀번호 해쉬화 + const hashedPassword = await bcrypt.hash(new_password, 10); + + // jwt토큰에서 추출된 사용자 id를 가지고 db에서 사용자 정보를 찾음. + const [res_userUpdate, fld_userUpdate, err_userUpdate] = await pool.query({ + sql: "UPDATE users SET `password`=?, `updated_time`=? WHERE `email` = ? ", + values: [hashedPassword, updated_time, email], + }); + if (err_userUpdate) throw err_userUpdate; + res.status(200).json({ + result: true, + resultMessage: "비밀번호 업데이트가 성공적으로 이뤄졌습니다.", + }); + } catch (error) { + next(error); + } +}; +// PUT: 유저 정보 업데이트(Info) +const userUpdateInfo = async function (req, res, next) { + try { + const email = req.body.email; + const nickname = req.body.nickname; + const description = req.body.description; + const updated_time = moment().format("YYYY-MM-DD HH:mm:ss"); + const [res_checkID, fld_checkID, err_checkID] = await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [email], + }); + if (err_checkID) throw err_checkID; + + // jwt토큰에서 추출된 사용자 id를 가지고 db에서 사용자 정보를 찾음. + const [res_userUpdate, fld_userUpdate, err_userUpdate] = await pool.query({ + sql: "UPDATE users SET `nickname`=?, `description`=?, `updated_time`=? WHERE `email` = ? ", + values: [nickname, description, updated_time, email], + }); + if (err_userUpdate) throw err_userUpdate; + res.status(200).json({ + result: true, + resultMessage: "유저정보 업데이트가 성공적으로 이뤄졌습니다.", + }); + } catch (error) { + next(error); + } +}; + +// POST: 프로필사진 업로드 +const profileUpload = async function (req, res, next) { + try { + const email = req.body.email; + const new_filename = req.file.filename; + const updated_time = moment().format("YYYY-MM-DD HH:mm:ss"); + const [res_profileUpload, fld_profileUpload, err_profileUpload] = + await pool.query({ + sql: "UPDATE users SET `profile_photo`=?, `updated_time`=? WHERE `email` = ? ", + values: [new_filename, updated_time, email], + }); + if (err_profileUpload) throw err_profileUpload; + res.status(200).json({ + result: true, + resultMessage: "프로필사진이 성공적으로 업로드 되었습니다.", + }); + } catch (e) { + next(e); + } +}; + +// DELETE: 유저 삭제 +const userDelete = async function (req, res, next) { + try { + const email = req.body.email; + const password = req.body.password; + + const [res_userDelete_check, fld_userDelete_check, err_userDelete_check] = + await pool.query({ + sql: "SELECT * FROM users WHERE `email` = ? ", + values: [email], + }); + if (err_userDelete_check) throw err_userDelete_check; + + // 비밀번호 일치 여부 확인 + const res_logID_array = JSON.stringify(res_userDelete_check, ["password"]); + const res_logID_pw = res_logID_array.split(`"`); + const correctPasswordHash = res_logID_pw[3]; + console.log(password, correctPasswordHash) + const isPasswordCorrect = await bcrypt.compare( + password, + correctPasswordHash + ); + if (!isPasswordCorrect) { + res.status(200).json({ + result: false, + errorMessage: "비밀번호가 일치하지 않습니다. 다시 한 번 확인해 주세요.", + errorCause: "password", + }); + } else { + // DB에서 유저 정보 삭제 + const [res_userDelete, fld_userDelete, err_userDelete] = await pool.query( + { + sql: "DELETE FROM users WHERE `email` = ? ", + values: [email], + } + ); + if (err_userDelete) throw err_userDelete; + res.status(200).json({ + result: true, + resultMessage: "유저 정보가 성공적으로 삭제 되었습니다.", + }); + } + } catch (e) { + next(e); + } +}; + +//한 유저가 좋아요 누른 가게 모아보기 +const userlikestore = async (req, res, next) => { + try { + const user_id = req.user_id; + const [results, fields, error] = await pool.query( + `select * from like_store where user_id="${user_id}";` + ); + if (error) throw error; + res.status(200).json(results); + } catch (err) { + next(err); + } +}; + +// api index +userAuthRouter.get("/userlist", asyncHandler(userList)); +userAuthRouter.post("/user/register/email", asyncHandler(userRegisterEmail)); +userAuthRouter.post( + "/user/register/nickname", + asyncHandler(userRegisterNickname) +); +userAuthRouter.post("/user/register", asyncHandler(userRegister)); +userAuthRouter.post("/user/login", asyncHandler(userLogin)); +userAuthRouter.get( + "/user", + asyncHandler(login_required), + asyncHandler(userCurrent) +); + +userAuthRouter.put( + "/user/updatePW", + asyncHandler(login_required), + asyncHandler(userUpdatePW) +); +userAuthRouter.put( + "/user/updateInfo", + asyncHandler(login_required), + asyncHandler(userUpdateInfo) +); +userAuthRouter.post( + "/user/update", + // asyncHandler(login_required), + asyncHandler(upload.single("file")), + asyncHandler(profileUpload) +); +userAuthRouter.post( + "/user/delete", + asyncHandler(login_required), + asyncHandler(userDelete) +); + +userAuthRouter.get( + "/user/like-store", + asyncHandler(login_required), + asyncHandler(userlikestore) +); + +module.exports = userAuthRouter; diff --git a/back/src/services/userService.js b/back/src/services/userService.js new file mode 100644 index 0000000..6383757 --- /dev/null +++ b/back/src/services/userService.js @@ -0,0 +1,43 @@ +const { pool } = require("../db/database"); +// import bcrypt from "bcrypt"; +// import { v4 as uuidv4 } from "uuid"; +// import jwt from "jsonwebtoken"; + +// User.js 포함 코드 +class userAuthService { + static async getUsers() { + const [results, fields, error] = await pool.query( + { + sql: "SELECT * FROM users", + timeout: 4000, // 40s + }, + function (error, results, fields) { + if (error) throw error; + // console.log(JSON.stringify(results)); + } + ); + return json(results); + } +} + +// // 파일 분리 +// class userAuthService { +// static async getUsers() { +// const users = await User.findAll(); // User.findAll() 타입문제 +// return users; +// } +// } + +module.exports = { userAuthService }; + +// // userRouter.js +// // option 3. 코드 파일 분리 +// // User.js -> userService.js에서 타입문제 발생 +// userAuthRouter.get("/userlist", async (req, res, next) => { +// try { +// const [results, fields, error] = await userAuthService.getUsers(); +// res.status(200).send(results); +// } catch (err) { +// next(err); +// } +// }); diff --git a/back/src/util/asyncHandler.js b/back/src/util/asyncHandler.js new file mode 100644 index 0000000..15b4c04 --- /dev/null +++ b/back/src/util/asyncHandler.js @@ -0,0 +1,12 @@ +const asyncHandler = (fn) => { + return async (req, res, next) => { + try { + await fn(req, res, next); + // next(err); + } catch (err) { + next(err); + } + }; +}; + +module.exports = asyncHandler; diff --git a/back/yarn.lock b/back/yarn.lock new file mode 100644 index 0000000..c464be4 --- /dev/null +++ b/back/yarn.lock @@ -0,0 +1,3269 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.3": + version "7.19.3" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz" + integrity sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw== + +"@babel/core@^7.19.3": + version "7.19.3" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz" + integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.3" + "@babel/helper-compilation-targets" "^7.19.3" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helpers" "^7.19.0" + "@babel/parser" "^7.19.3" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.3" + "@babel/types" "^7.19.3" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.2.1" + "semver" "^6.3.0" + +"@babel/generator@^7.19.3": + version "7.19.3" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz" + integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== + dependencies: + "@babel/types" "^7.19.3" + "@jridgewell/gen-mapping" "^0.3.2" + "jsesc" "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3": + version "7.19.3" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz" + integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== + dependencies: + "@babel/compat-data" "^7.19.3" + "@babel/helper-validator-option" "^7.18.6" + "browserslist" "^4.21.3" + "semver" "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz" + integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz" + integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "regexpu-core" "^5.1.0" + +"@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "debug" "^4.1.1" + "lodash.debounce" "^4.0.8" + "resolve" "^1.14.2" + "semver" "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz" + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz" + integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== + +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz" + integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.19.1" + "@babel/types" "^7.19.0" + +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helper-wrap-function@^7.18.9": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz" + integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/helpers@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz" + integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" + +"@babel/node@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/node/-/node-7.19.1.tgz" + integrity sha512-gfxJNrawPso6kx7SwKfAdX1rEzVc09speJLFKrdxuZXGlve92pjbB3nJVmuwrxNN4+jvytj2zvliNXuW6uaSOw== + dependencies: + "@babel/register" "^7.18.9" + "commander" "^4.0.1" + "core-js" "^3.25.1" + "node-environment-flags" "^1.0.5" + "regenerator-runtime" "^0.13.4" + "v8flags" "^3.1.1" + +"@babel/parser@^7.18.10", "@babel/parser@^7.19.3": + version "7.19.3" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz" + integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + 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.18.6.tgz" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz" + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + +"@babel/plugin-proposal-async-generator-functions@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz" + integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" + integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz" + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz" + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== + dependencies: + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.18.8" + +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz" + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" + integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz" + integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-json-strings@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-arrow-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" + integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" + integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" + +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz" + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-classes@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz" + integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.19.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" + "globals" "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-destructuring@^7.18.13": + version "7.18.13" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz" + integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.18.8": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz" + integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "babel-plugin-dynamic-import-node" "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz" + integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "babel-plugin-dynamic-import-node" "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz" + integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-validator-identifier" "^7.18.6" + "babel-plugin-dynamic-import-node" "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz" + integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.18.8": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz" + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-regenerator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" + integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "regenerator-transform" "^0.15.0" + +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-runtime@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz" + integrity sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "babel-plugin-polyfill-corejs2" "^0.3.3" + "babel-plugin-polyfill-corejs3" "^0.6.0" + "babel-plugin-polyfill-regenerator" "^0.4.1" + "semver" "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz" + integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@^7.19.3": + version "7.19.3" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz" + integrity sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w== + dependencies: + "@babel/compat-data" "^7.19.3" + "@babel/helper-compilation-targets" "^7.19.3" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.19.1" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@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.18.6" + "@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-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.19.0" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.13" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.18.6" + "@babel/plugin-transform-modules-commonjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.19.0" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.19.0" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.19.3" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + "esutils" "^2.0.2" + +"@babel/register@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz" + integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw== + dependencies: + "clone-deep" "^4.0.1" + "find-cache-dir" "^2.0.0" + "make-dir" "^2.1.0" + "pirates" "^4.0.5" + "source-map-support" "^0.5.16" + +"@babel/runtime@^7.8.4": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz" + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== + dependencies: + "regenerator-runtime" "^0.13.4" + +"@babel/template@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3": + version "7.19.3" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz" + integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.3" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.19.3" + "@babel/types" "^7.19.3" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.4.4": + version "7.19.3" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz" + integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== + dependencies: + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.19.1" + "to-fast-properties" "^2.0.0" + +"@glennsl/bs-json@^5.0.4": + version "5.0.4" + resolved "https://registry.npmjs.org/@glennsl/bs-json/-/bs-json-5.0.4.tgz" + integrity sha512-Th9DetZjRlMZrb74kgGJ44oWcoFyOTE884WlSuXft0Cd+J09vHRxiB7eVyK7Gthb4cSevsBBJDHYAbGGL25wPw== + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.16" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz" + integrity sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@mapbox/node-pre-gyp@^1.0.10": + version "1.0.10" + resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz" + integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== + dependencies: + "detect-libc" "^2.0.0" + "https-proxy-agent" "^5.0.0" + "make-dir" "^3.1.0" + "node-fetch" "^2.6.7" + "nopt" "^5.0.0" + "npmlog" "^5.0.1" + "rimraf" "^3.0.2" + "semver" "^7.3.5" + "tar" "^6.1.11" + +"@sindresorhus/is@^5.3.0": + version "5.3.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz" + integrity sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw== + +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + "debug" "4" + +agent-base@6: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + 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== + dependencies: + "color-convert" "^1.9.0" + +ansicolors@~0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz" + integrity sha512-tOIuy1/SK/dr94ZA0ckDohKXNeBNqZ4us6PjMVLs5h1w2GBB6uPtOknp2+VF4F/zcy9LI70W+Z+pE2Soajky1w== + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" + integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + "delegates" "^1.0.0" + "readable-stream" "^3.6.0" + +"array-flatten@1.1.1": + "integrity" "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + "version" "1.1.1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array.prototype.reduce@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz" + integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== + dependencies: + "safer-buffer" "~2.1.0" + +"assert-plus@^1.0.0", "assert-plus@1.0.0": + "integrity" "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "version" "1.0.0" + +"asynckit@^0.4.0": + "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz" + integrity sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA== + dependencies: + "follow-redirects" "^1.15.0" + "form-data" "^4.0.0" + "proxy-from-env" "^1.1.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + "object.assign" "^4.1.0" + +babel-plugin-polyfill-corejs2@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + "semver" "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz" + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + "core-js-compat" "^3.25.1" + +babel-plugin-polyfill-regenerator@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz" + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +bcrypt@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz" + integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.10" + "node-addon-api" "^5.0.0" + +bignumber.js@9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz" + integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-2.0.0.tgz" + integrity sha512-NmOLApC80+n+P28y06yHgwGlOCkq/X4jRh5s590959FZXSrM+I/61h0xxuIaYsg0mD44mEAZYG/rnclWuRoz+A== + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + "bytes" "3.1.2" + "content-type" "~1.0.4" + "debug" "2.6.9" + "depd" "2.0.0" + "destroy" "1.2.0" + "http-errors" "2.0.0" + "iconv-lite" "0.4.24" + "on-finished" "2.4.1" + "qs" "6.11.0" + "raw-body" "2.5.1" + "type-is" "~1.6.18" + "unpipe" "1.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + "fill-range" "^7.0.1" + +browserslist@^4.21.3, browserslist@^4.21.4: + version "4.21.4" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + "caniuse-lite" "^1.0.30001400" + "electron-to-chromium" "^1.4.251" + "node-releases" "^2.0.6" + "update-browserslist-db" "^1.0.9" + +bs-mysql2@^10.0.2: + version "10.0.2" + resolved "https://registry.npmjs.org/bs-mysql2/-/bs-mysql2-10.0.2.tgz" + integrity sha512-KExEeQx+qfiDCxVHzC9noeLsPqlzJDSj7FUSvmIWMJ+rkiXDo9wp6LVbEZ5TGc9MAR9jWNrhlhjpHS3MnIytNA== + dependencies: + "mysql2" "^1.6.5" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +busboy@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + "streamsearch" "^1.1.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + "function-bind" "^1.1.1" + "get-intrinsic" "^1.0.2" + +caniuse-lite@^1.0.30001400: + version "1.0.30001418" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz" + integrity sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg== + +cardinal@0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz" + integrity sha512-3MxV0o9wOpQcobrcSrRpaSxlYkohCcZu0ytOjJUww/Yo/223q4Ecloo7odT+M0SI5kPgb1JhvSaF4EEuVXOLAQ== + dependencies: + "ansicolors" "~0.2.1" + "redeyed" "~0.4.0" + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + "anymatch" "~3.1.2" + "braces" "~3.0.2" + "glob-parent" "~5.1.2" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.6.0" + optionalDependencies: + "fsevents" "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + "is-plain-object" "^2.0.4" + "kind-of" "^6.0.2" + "shallow-clone" "^3.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + "color-name" "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + "delayed-stream" "~1.0.0" + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + "buffer-from" "^1.0.0" + "inherits" "^2.0.3" + "readable-stream" "^2.2.2" + "typedarray" "^0.0.6" + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + "safe-buffer" "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +"convert-source-map@^1.7.0": + "integrity" "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + "version" "1.9.0" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +core-js-compat@^3.25.1: + version "3.25.5" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz" + integrity sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA== + dependencies: + browserslist "^4.21.4" + +core-js@^3.25.1: + version "3.25.5" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz" + integrity sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + "assert-plus" "^1.0.0" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + "ms" "^2.1.1" + +debug@4, debug@^4.1.0, debug@^4.1.1: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + "ms" "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + "ms" "2.0.0" + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + "has-property-descriptors" "^1.0.0" + "object-keys" "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +denque@^1.4.1: + version "1.5.1" + resolved "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz" + integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw== + +denque@^2.0.1: + version "2.1.0" + resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + +double-ended-queue@2.0.0-0: + version "2.0.0-0" + resolved "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.0.0-0.tgz" + integrity sha512-t5ouWOpItmHrm0J0+bX/cFrIjBFWnJkk5LbIJq6bbU/M4aLX2c3LrM4QYsBptwvlPe3WzdpQefQ0v1pe/A5wjg== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +"ecdsa-sig-formatter@1.0.11": + "integrity" "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==" + "resolved" "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "safe-buffer" "^5.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-abstract@^1.19.0, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: + version "1.20.4" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== + dependencies: + "call-bind" "^1.0.2" + "es-to-primitive" "^1.2.1" + "function-bind" "^1.1.1" + "function.prototype.name" "^1.1.5" + "get-intrinsic" "^1.1.3" + "get-symbol-description" "^1.0.0" + "has" "^1.0.3" + "has-property-descriptors" "^1.0.0" + "has-symbols" "^1.0.3" + "internal-slot" "^1.0.3" + "is-callable" "^1.2.7" + "is-negative-zero" "^2.0.2" + "is-regex" "^1.1.4" + "is-shared-array-buffer" "^1.0.2" + "is-string" "^1.0.7" + "is-weakref" "^1.0.2" + "object-inspect" "^1.12.2" + "object-keys" "^1.1.1" + "object.assign" "^4.1.4" + "regexp.prototype.flags" "^1.4.3" + "safe-regex-test" "^1.0.0" + "string.prototype.trimend" "^1.0.5" + "string.prototype.trimstart" "^1.0.5" + "unbox-primitive" "^1.0.2" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + "is-callable" "^1.1.4" + "is-date-object" "^1.0.1" + "is-symbol" "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +esprima@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz" + integrity sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +express-async-handler@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz" + integrity sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w== + +express@^4.18.2: + version "4.18.2" + resolved "https://registry.npmjs.org/express/-/express-4.18.2.tgz" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + "accepts" "~1.3.8" + "array-flatten" "1.1.1" + "body-parser" "1.20.1" + "content-disposition" "0.5.4" + "content-type" "~1.0.4" + "cookie" "0.5.0" + "cookie-signature" "1.0.6" + "debug" "2.6.9" + "depd" "2.0.0" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "finalhandler" "1.2.0" + "fresh" "0.5.2" + "http-errors" "2.0.0" + "merge-descriptors" "1.0.1" + "methods" "~1.1.2" + "on-finished" "2.4.1" + "parseurl" "~1.3.3" + "path-to-regexp" "0.1.7" + "proxy-addr" "~2.0.7" + "qs" "6.11.0" + "range-parser" "~1.2.1" + "safe-buffer" "5.2.1" + "send" "0.18.0" + "serve-static" "1.15.0" + "setprototypeof" "1.2.0" + "statuses" "2.0.1" + "type-is" "~1.6.18" + "utils-merge" "1.0.1" + "vary" "~1.1.2" + +"extend@~3.0.2": + "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + "version" "3.0.2" + +"extsprintf@^1.2.0", "extsprintf@1.3.0": + "integrity" "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + "version" "1.3.0" + +"fast-deep-equal@^3.1.1": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-json-stable-stringify@^2.0.0": + "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + "version" "2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + "to-regex-range" "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + "debug" "2.6.9" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "on-finished" "2.4.1" + "parseurl" "~1.3.3" + "statuses" "2.0.1" + "unpipe" "~1.0.0" + +find-cache-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + "commondir" "^1.0.1" + "make-dir" "^2.0.0" + "pkg-dir" "^3.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + "locate-path" "^3.0.0" + +"follow-redirects@^1.15.0": + "integrity" "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" + "version" "1.15.2" + +"forever-agent@~0.6.1": + "integrity" "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + "version" "0.6.1" + +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.6" + "mime-types" "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +"fs.realpath@^1.0.0": + "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "es-abstract" "^1.19.0" + "functions-have-names" "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + "aproba" "^1.0.3 || ^2.0.0" + "color-support" "^1.1.2" + "console-control-strings" "^1.0.0" + "has-unicode" "^2.0.1" + "object-assign" "^4.1.1" + "signal-exit" "^3.0.0" + "string-width" "^4.2.3" + "strip-ansi" "^6.0.1" + "wide-align" "^1.1.2" + +generate-function@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz" + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + dependencies: + "is-property" "^1.0.2" + +gensync@^1.0.0-beta.2: + 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== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + "function-bind" "^1.1.1" + "has" "^1.0.3" + "has-symbols" "^1.0.3" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.1" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + "assert-plus" "^1.0.0" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + "is-glob" "^4.0.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + "ajv" "^6.12.3" + "har-schema" "^2.0.0" + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + "get-intrinsic" "^1.1.1" + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + "has-symbols" "^1.0.2" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + "function-bind" "^1.1.1" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + "parse-passwd" "^1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + "depd" "2.0.0" + "inherits" "2.0.4" + "setprototypeof" "1.2.0" + "statuses" "2.0.1" + "toidentifier" "1.0.1" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + "assert-plus" "^1.0.0" + "jsprim" "^1.2.2" + "sshpk" "^1.7.0" + +iconv-lite@^0.5.0: + version "0.5.2" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz" + integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag== + dependencies: + "agent-base" "6" + "debug" "4" + +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + "safer-buffer" ">= 2.1.2 < 3" + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + "safer-buffer" ">= 2.1.2 < 3" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +"inflight@^1.0.4": + "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + "get-intrinsic" "^1.1.0" + "has" "^1.0.3" + "side-channel" "^1.0.4" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + "has-bigints" "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + "binary-extensions" "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + "has" "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + "has-tostringtag" "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + "is-extglob" "^2.1.1" + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + "has-tostringtag" "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + "isobject" "^3.0.1" + +is-property@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + "call-bind" "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + "has-tostringtag" "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + "has-symbols" "^1.0.2" + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + "call-bind" "^1.0.2" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json5@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + "jws" "^3.2.2" + "lodash.includes" "^4.3.0" + "lodash.isboolean" "^3.0.3" + "lodash.isinteger" "^4.0.4" + "lodash.isnumber" "^3.0.3" + "lodash.isplainobject" "^4.0.6" + "lodash.isstring" "^4.0.1" + "lodash.once" "^4.0.0" + "ms" "^2.1.1" + "semver" "^5.6.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + "assert-plus" "1.0.0" + "extsprintf" "1.3.0" + "json-schema" "0.4.0" + "verror" "1.10.0" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + "buffer-equal-constant-time" "1.0.1" + "ecdsa-sig-formatter" "1.0.11" + "safe-buffer" "^5.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +lru-cache@2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + integrity sha512-dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ== + +lru-cache@^4.1.3: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + "pseudomap" "^1.0.2" + "yallist" "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + "yallist" "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + "yallist" "^4.0.0" + +"lru-cache@2.5.0": + "integrity" "sha512-dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "version" "2.5.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + "pify" "^4.0.1" + "semver" "^5.6.0" + +make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + "semver" "^6.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + "mime-db" "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + "brace-expansion" "^1.1.7" + +minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +minipass@^3.0.0: + version "3.3.4" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + dependencies: + "yallist" "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + "minipass" "^3.0.0" + "yallist" "^4.0.0" + +mkdirp@^0.5.4: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +moment-timezone@^0.5.37: + version "0.5.37" + resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz" + integrity sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg== + dependencies: + "moment" ">= 2.9.0" + +"moment@>= 2.9.0", moment@^2.29.4: + version "2.29.4" + resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multer@^1.4.5-lts.1: + version "1.4.5-lts.1" + resolved "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz" + integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== + dependencies: + "append-field" "^1.0.0" + "busboy" "^1.0.0" + "concat-stream" "^1.5.2" + "mkdirp" "^0.5.4" + "object-assign" "^4.1.1" + "type-is" "^1.6.4" + "xtend" "^4.0.0" + +mysql2-promise@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/mysql2-promise/-/mysql2-promise-0.1.4.tgz" + integrity sha512-/h8ubU/36aIPpbfB6CENw9ZdbzIhZMZOIbstJUHVKp4J9JBRSLScrYImVx+3yZilgag732UhpQMMK5+ktdhLCw== + dependencies: + "bignumber.js" "9.0.0" + "readable-stream" "2.3.7" + "safe-buffer" "5.1.2" + "sqlstring" "2.3.1" + +mysql2@^0.15.7: + version "0.15.8" + resolved "https://registry.npmjs.org/mysql2/-/mysql2-0.15.8.tgz" + integrity sha512-3x5o6C20bfwJYPSoT74MOoad7/chJoq4qXHDL5VAuRBBrIyErovLoj04Dz/5EY9X2kTxWSGNiTegtxpROTd2YQ== + dependencies: + "mysql2" "^0.15.7" + "q" "^1.3.0" + +mysql2@^1.6.5: + version "1.7.0" + resolved "https://registry.npmjs.org/mysql2/-/mysql2-1.7.0.tgz" + integrity sha512-xTWWQPjP5rcrceZQ7CSTKR/4XIDeH/cRkNH/uzvVGQ7W5c7EJ0dXeJUusk7OKhIoHj7uFKUxDVSCfLIl+jluog== + dependencies: + "bn.js" "2.0.0" + "cardinal" "0.4.4" + "double-ended-queue" "2.0.0-0" + "named-placeholders" "0.1.3" + "readable-stream" "1.0.33" + +mysql2@^2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz" + integrity sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA== + dependencies: + "denque" "^1.4.1" + "generate-function" "^2.3.1" + "iconv-lite" "^0.5.0" + "long" "^4.0.0" + "lru-cache" "^5.1.1" + "named-placeholders" "^1.1.2" + "seq-queue" "^0.0.5" + "sqlstring" "^2.3.1" + +mysql@^2.18.1: + version "2.18.1" + resolved "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz" + integrity sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig== + dependencies: + "denque" "^2.0.1" + "generate-function" "^2.3.1" + "iconv-lite" "^0.6.3" + "long" "^4.0.0" + "lru-cache" "^6.0.0" + "named-placeholders" "^1.1.2" + "seq-queue" "^0.0.5" + "sqlstring" "^2.3.2" + +named-placeholders@0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/named-placeholders/-/named-placeholders-0.1.3.tgz" + integrity sha512-Mt79RtxZ6MYTIEemPGv/YDKpbuavcAyGHb0r37xB2mnE5jej3uBzc4+nzOeoZ4nZiii1M32URKt9IjkSTZAmTA== + dependencies: + "lru-cache" "^4.1.3" + +named-placeholders@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz" + integrity sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA== + dependencies: + "lru-cache" "2.5.0" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-addon-api@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz" + integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA== + +node-environment-flags@^1.0.5: + version "1.0.6" + resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" + integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== + dependencies: + "object.getownpropertydescriptors" "^2.0.3" + "semver" "^5.7.0" + +node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + "whatwg-url" "^5.0.0" + +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + +nodemon@^2.0.20: + version "2.0.20" + resolved "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz" + integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw== + dependencies: + "chokidar" "^3.5.2" + "debug" "^3.2.7" + "ignore-by-default" "^1.0.1" + "minimatch" "^3.1.2" + "pstree.remy" "^1.1.8" + "semver" "^5.7.1" + "simple-update-notifier" "^1.0.7" + "supports-color" "^5.5.0" + "touch" "^3.1.0" + "undefsafe" "^2.0.5" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + "abbrev" "1" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + "abbrev" "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + "are-we-there-yet" "^2.0.0" + "console-control-strings" "^1.1.0" + "gauge" "^3.0.0" + "set-blocking" "^2.0.0" + +"oauth-sign@~0.9.0": + "integrity" "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + "version" "0.9.0" + +object-assign@^4, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "has-symbols" "^1.0.3" + "object-keys" "^1.1.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.4" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz" + integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== + dependencies: + "array.prototype.reduce" "^1.0.4" + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.1" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + "ee-first" "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + "wrappy" "1" + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + "p-try" "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + "p-limit" "^2.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +"path@^0.12.7": + "integrity" "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==" + "resolved" "https://registry.npmjs.org/path/-/path-0.12.7.tgz" + "version" "0.12.7" + dependencies: + "process" "^0.11.1" + "util" "^0.10.3" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pirates@^4.0.5: + version "4.0.5" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + "find-up" "^3.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +"process@^0.11.1": + "integrity" "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + "resolved" "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + "version" "0.11.10" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + "forwarded" "0.2.0" + "ipaddr.js" "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +q@^1.3.0: + version "1.5.1" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + "side-channel" "^1.0.4" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + "bytes" "3.1.2" + "http-errors" "2.0.0" + "iconv-lite" "0.4.24" + "unpipe" "1.0.0" + +readable-stream@1.0.33: + version "1.0.33" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz" + integrity sha512-72KxhcKi8bAvHP/cyyWSP+ODS5ef0DIRs0OzrhGXw31q41f19aoELCbvd42FjhpyEDxQMRiiC5rq9rfE5PzTqg== + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +readable-stream@2.3.7, readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.1" + "isarray" "0.0.1" + "string_decoder" "~0.10.x" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + "picomatch" "^2.2.1" + +redeyed@~0.4.0: + version "0.4.4" + resolved "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz" + integrity sha512-pnk1vsaNLu1UAAClKsImKz9HjBvg9i8cbRqTRzJbiCjGF0fZSMqpdcA5W3juO3c4etFvTrabECkq9wjC45ZyxA== + dependencies: + "esprima" "~1.0.4" + +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + dependencies: + "regenerate" "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +"regenerator-runtime@^0.13.4": + "integrity" "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz" + "version" "0.13.10" + +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "functions-have-names" "^1.2.2" + +regexpu-core@^5.1.0: + version "5.2.1" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz" + integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ== + dependencies: + "regenerate" "^1.4.2" + "regenerate-unicode-properties" "^10.1.0" + "regjsgen" "^0.7.1" + "regjsparser" "^0.9.1" + "unicode-match-property-ecmascript" "^2.0.0" + "unicode-match-property-value-ecmascript" "^2.0.0" + +regjsgen@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz" + integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + "jsesc" "~0.5.0" + +resolve@^1.14.2: + version "1.22.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + "aws-sign2" "~0.7.0" + "aws4" "^1.8.0" + "caseless" "~0.12.0" + "combined-stream" "~1.0.6" + "extend" "~3.0.2" + "forever-agent" "~0.6.1" + "form-data" "~2.3.2" + "har-validator" "~5.1.3" + "http-signature" "~1.2.0" + "is-typedarray" "~1.0.0" + "isstream" "~0.1.2" + "json-stringify-safe" "~5.0.1" + "mime-types" "~2.1.19" + "oauth-sign" "~0.9.0" + "performance-now" "^2.1.0" + "qs" "~6.5.2" + "safe-buffer" "^5.1.2" + "tough-cookie" "~2.5.0" + "tunnel-agent" "^0.6.0" + "uuid" "^3.3.2" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + "is-core-module" "^2.9.0" + "path-parse" "^1.0.7" + "supports-preserve-symlinks-flag" "^1.0.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@^5.0.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.3" + "is-regex" "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5: + version "7.3.8" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + "lru-cache" "^6.0.0" + +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + "debug" "2.6.9" + "depd" "2.0.0" + "destroy" "1.2.0" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "fresh" "0.5.2" + "http-errors" "2.0.0" + "mime" "1.6.0" + "ms" "2.1.3" + "on-finished" "2.4.1" + "range-parser" "~1.2.1" + "statuses" "2.0.1" + +seq-queue@^0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz" + integrity sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q== + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "parseurl" "~1.3.3" + "send" "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + "kind-of" "^6.0.2" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + "call-bind" "^1.0.0" + "get-intrinsic" "^1.0.2" + "object-inspect" "^1.9.0" + +signal-exit@^3.0.0: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-update-notifier@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz" + integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== + dependencies: + "semver" "~7.0.0" + +source-map-support@^0.5.16: + 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== + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map@^0.6.0": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +"sqlstring@^2.3.2": + "integrity" "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + "resolved" "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz" + "version" "2.3.3" + +sqlstring@^2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz" + integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.19.5" + +string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + "has-flag" "^3.0.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + "chownr" "^2.0.0" + "fs-minipass" "^2.0.0" + "minipass" "^3.0.0" + "minizlib" "^2.1.1" + "mkdirp" "^1.0.3" + "yallist" "^4.0.0" + +"to-fast-properties@^2.0.0": + "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + "is-number" "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + 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== + +tar@^6.1.11: + version "6.1.11" + resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +to-fast-properties@^2.0.0: + 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== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + "psl" "^1.1.28" + "punycode" "^2.1.1" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + "safe-buffer" "^5.0.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +type-is@^1.6.4, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + "media-typer" "0.3.0" + "mime-types" "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + "call-bind" "^1.0.2" + "has-bigints" "^1.0.2" + "has-symbols" "^1.0.3" + "which-boxed-primitive" "^1.0.2" + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + 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== + +unicode-match-property-ecmascript@^2.0.0: + 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== + dependencies: + "unicode-canonical-property-names-ecmascript" "^2.0.0" + "unicode-property-aliases-ecmascript" "^2.0.0" + +"unicode-match-property-value-ecmascript@^2.0.0": + "integrity" "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + 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== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + "punycode" "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +"util@^0.10.3": + "integrity" "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==" + "resolved" "https://registry.npmjs.org/util/-/util-0.10.4.tgz" + "version" "0.10.4" + dependencies: + "inherits" "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +v8flags@^3.1.1: + version "3.2.0" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== + dependencies: + "homedir-polyfill" "^1.0.1" + +"vary@^1", "vary@~1.1.2": + "integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + "version" "1.1.2" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + "tr46" "~0.0.3" + "webidl-conversions" "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + "is-bigint" "^1.0.1" + "is-boolean-object" "^1.1.0" + "is-number-object" "^1.0.4" + "is-string" "^1.0.5" + "is-symbol" "^1.0.3" + +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + "string-width" "^1.0.2 || 2 || 3 || 4" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== diff --git a/frontend/.env b/frontend/.env new file mode 100644 index 0000000..de40d5f --- /dev/null +++ b/frontend/.env @@ -0,0 +1,11 @@ +VITE_KAKAOMAP_API_KEY = f8f47f5bfde4690e5a2d6f935c00cf65 + +VITE_KAKAO_REST_API_KEY = 9fd6d9d615c25ff01b60a3a988e942bc + +VITE_NAVER_CLIENT_ID = JRa7NrbtcesvuNyjkj6I + +VITE_NAVER_CALLBACK_URL = "http://127.0.0.1:5173/" + +VITE_KAKAO_REDIRECT_URL = "http://127.0.0.1:5173/login/oauth2/code/kakao" + +VITE_BACK_PORT_NUM = 5001 \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..f79f7fd --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,23 @@ + + +
+ + + + + + +
+ + {"created_time" in review ? review.created_time : ""}
+내용 + {"description" in review ? review.description : ""} +
++ {"description" in favStore ? favStore.description : "설명"} +
+{thisStore[0]?.description}
+{description}
+1. 탈퇴 시 회원 정보는 보류 처리되어 14일간 보관됩니다. 이 기간 동안 동일한 메일 주소로 회원가입을 할 시 가입이 제한되며, 탈퇴 취소를 원하시는 경우 취소 처리도 가능합니다.
++ 2. 탈퇴하더라도 작성하신 리뷰는 계속 남아 있게 됩니다. 작성한 리뷰를 제외한 모든 회원 정보는 삭제되며 남아 있는 리뷰의 작성자명은 '(익명)'으로 처리됩니다.
+약관을 확인하셨습니까?
+ + +{info.email}
+{info.introduction}
+ +{"email" in info ? info.email : "이메일"}
+{"description" in info ? info.description : "소개"}
+
+ {changeMenu(
+ 제로 웨이스트(Zero Waste)는 모든 제품이 재사용될 수 있도록 장려하며 폐기물을 방지하는데 초점을 맞춘 원칙입니다.
+ 현재 국내에 있는 제로 웨이스트 샵의 대부분은 서울과 수도권에 위치하고 있습니다. 아무것도 남지 않는 당신의 공간을 찾아드립니다.
+1. 탈퇴 시 회원 정보는 보류 처리되어 14일간 보관됩니다. 이 기간 동안 동일한 메일 주소로 회원가입을 할 시 가입이 제한되며, 탈퇴 취소를 원하시는 경우 취소 처리도 가능합니다.
++ 2. 탈퇴하더라도 작성하신 리뷰는 계속 남아 있게 됩니다. 작성한 리뷰를 제외한 모든 회원 정보는 삭제되며 남아 있는 리뷰의 작성자명은 '(익명)'으로 처리됩니다.
+ {/*약관에 동의하십니까?
*/} +1. 탈퇴 시 회원 정보는 보류 처리되어 14일간 보관됩니다. 이 기간 동안 동일한 메일 주소로 회원가입을 할 시 가입이 제한되며, 탈퇴 취소를 원하시는 경우 취소 처리도 가능합니다.
++ 2. 탈퇴하더라도 작성하신 리뷰는 계속 남아 있게 됩니다. 작성한 리뷰를 제외한 모든 회원 정보는 삭제되며 남아 있는 리뷰의 작성자명은 '(익명)'으로 처리됩니다.
+약관에 동의하십니까?
+ + +
+
+