From 6bc1269bb0fe54d48044e29109c8013119365ba6 Mon Sep 17 00:00:00 2001 From: queen999 <1801882100@qq.com> Date: Sat, 17 Oct 2020 11:30:02 +0800 Subject: [PATCH] v1.0 --- .gitignore | 7 + _config.yml | 136 + package-lock.json | 17690 ++++++++++++++++ package.json | 39 + scaffolds/draft.md | 4 + scaffolds/page.md | 8 + source/2019-nCoV/index.html | 74 + source/ByteDanceVerify.html | 1 + source/CNAME | 1 + source/_posts/3G.md | 114 + ...21\347\273\234\344\274\230\345\214\226.md" | 202 + source/_posts/Files_and_directories.md | 269 + source/_posts/FixedTools.md | 292 + source/_posts/GRE-VPN.md | 158 + source/_posts/GRE-over-IPSec.md | 264 + source/_posts/GSM.md | 156 + source/_posts/ICIC.md | 102 + source/_posts/IPSec_VPN.md | 302 + source/_posts/IP_Bearer_Network_basic.md | 176 + source/_posts/LTE.md | 223 + source/_posts/Layer.md | 160 + source/_posts/Linux_often_use.md | 89 + source/_posts/MIMO.md | 185 + source/_posts/MySQL8_basics.md | 111 + source/_posts/NB-IoT.md | 94 + source/_posts/Network_Access.md | 354 + source/_posts/No-module-named-pip.md | 45 + source/_posts/OFDMA.md | 167 + source/_posts/OLT_command.md | 189 + source/_posts/Python-3.md | 66 + source/_posts/Python-4.md | 62 + source/_posts/Python-5.md | 44 + source/_posts/Python_basic_(1).md | 269 + source/_posts/Python_cards_manage.md | 716 + source/_posts/Python_variable.md | 341 + source/_posts/RedHat_setup_script.md | 54 + source/_posts/TD-LTE-System.md | 329 + source/_posts/Web_site_SSL.md | 188 + .../_posts/Windows_Web_build_environment.md | 52 + source/_posts/Windows_Web_build_website.md | 56 + source/_posts/Windows_Web_often_use.md | 145 + source/_posts/a_server_build_many_webs.md | 108 + source/_posts/acl.md | 272 + source/_posts/bitwarden.md | 94 + source/_posts/build-MAN-idea.md | 132 + source/_posts/color.md | 187 + source/_posts/computer_Internet_1.md | 179 + source/_posts/computer_network_basics.md | 204 + source/_posts/free-get-189vip.md | 80 + source/_posts/huawei-PCManager.md | 124 + source/_posts/huawei-exam-application.md | 643 + source/_posts/lanzous.md | 28 + source/_posts/linux.md | 105 + source/_posts/manage-MAN-skill.md | 118 + source/_posts/mobile_communication.md | 353 + source/_posts/mysql-install.md | 148 + source/_posts/not-allow-F12.md | 60 + .../_posts/optical_transport_network_basic.md | 115 + source/_posts/python-2.md | 80 + source/_posts/ssh.md | 61 + source/_posts/structure-of-MAN.md | 96 + source/_posts/switchport-security.md | 259 + source/_posts/system_info.md | 77 + source/_posts/wireless_framework.md | 294 + source/_posts/wireless_radio.md | 74 + source/_posts/wireless_word.md | 171 + source/about/index.md | 8 + ...42\346\234\272\351\205\215\347\275\256.md" | 162 + source/category/index.md | 5 + source/footer/index.md | 81 + source/friends/index.md | 27 + source/mylist/index.md | 5 + source/root.txt | 1 + source/sogousiteverification.txt | 1 + source/tags/index.md | 5 + themes/volantis3 | 1 + 76 files changed, 28292 insertions(+) create mode 100644 .gitignore create mode 100644 _config.yml create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 scaffolds/draft.md create mode 100644 scaffolds/page.md create mode 100644 source/2019-nCoV/index.html create mode 100644 source/ByteDanceVerify.html create mode 100644 source/CNAME create mode 100644 source/_posts/3G.md create mode 100644 "source/_posts/5G\347\275\221\347\273\234\344\274\230\345\214\226.md" create mode 100644 source/_posts/Files_and_directories.md create mode 100644 source/_posts/FixedTools.md create mode 100644 source/_posts/GRE-VPN.md create mode 100644 source/_posts/GRE-over-IPSec.md create mode 100644 source/_posts/GSM.md create mode 100644 source/_posts/ICIC.md create mode 100644 source/_posts/IPSec_VPN.md create mode 100644 source/_posts/IP_Bearer_Network_basic.md create mode 100644 source/_posts/LTE.md create mode 100644 source/_posts/Layer.md create mode 100644 source/_posts/Linux_often_use.md create mode 100644 source/_posts/MIMO.md create mode 100644 source/_posts/MySQL8_basics.md create mode 100644 source/_posts/NB-IoT.md create mode 100644 source/_posts/Network_Access.md create mode 100644 source/_posts/No-module-named-pip.md create mode 100644 source/_posts/OFDMA.md create mode 100644 source/_posts/OLT_command.md create mode 100644 source/_posts/Python-3.md create mode 100644 source/_posts/Python-4.md create mode 100644 source/_posts/Python-5.md create mode 100644 source/_posts/Python_basic_(1).md create mode 100644 source/_posts/Python_cards_manage.md create mode 100644 source/_posts/Python_variable.md create mode 100644 source/_posts/RedHat_setup_script.md create mode 100644 source/_posts/TD-LTE-System.md create mode 100644 source/_posts/Web_site_SSL.md create mode 100644 source/_posts/Windows_Web_build_environment.md create mode 100644 source/_posts/Windows_Web_build_website.md create mode 100644 source/_posts/Windows_Web_often_use.md create mode 100644 source/_posts/a_server_build_many_webs.md create mode 100644 source/_posts/acl.md create mode 100644 source/_posts/bitwarden.md create mode 100644 source/_posts/build-MAN-idea.md create mode 100644 source/_posts/color.md create mode 100644 source/_posts/computer_Internet_1.md create mode 100644 source/_posts/computer_network_basics.md create mode 100644 source/_posts/free-get-189vip.md create mode 100644 source/_posts/huawei-PCManager.md create mode 100644 source/_posts/huawei-exam-application.md create mode 100644 source/_posts/lanzous.md create mode 100644 source/_posts/linux.md create mode 100644 source/_posts/manage-MAN-skill.md create mode 100644 source/_posts/mobile_communication.md create mode 100644 source/_posts/mysql-install.md create mode 100644 source/_posts/not-allow-F12.md create mode 100644 source/_posts/optical_transport_network_basic.md create mode 100644 source/_posts/python-2.md create mode 100644 source/_posts/ssh.md create mode 100644 source/_posts/structure-of-MAN.md create mode 100644 source/_posts/switchport-security.md create mode 100644 source/_posts/system_info.md create mode 100644 source/_posts/wireless_framework.md create mode 100644 source/_posts/wireless_radio.md create mode 100644 source/_posts/wireless_word.md create mode 100644 source/about/index.md create mode 100644 "source/archives/categories/\346\212\200\346\234\257/HP\344\272\244\346\215\242\346\234\272\351\205\215\347\275\256.md" create mode 100644 source/category/index.md create mode 100644 source/footer/index.md create mode 100644 source/friends/index.md create mode 100644 source/mylist/index.md create mode 100644 source/root.txt create mode 100644 source/sogousiteverification.txt create mode 100644 source/tags/index.md create mode 160000 themes/volantis3 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..063b0e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +Thumbs.db +db.json +*.log +node_modules/ +public/ +.deploy*/ \ No newline at end of file diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..4fb0e0b --- /dev/null +++ b/_config.yml @@ -0,0 +1,136 @@ +## Hexo Configuration +## Docs: https://hexo.io/docs/configuration.html +## Source: https://github.com/hexojs/hexo/ + +# Site +title: 覃浩的博客 +subtitle: '覃浩的博客' +description: '' +keywords: +author: 覃浩 +language: zh-CN +timezone: '' +favicon: https://img.icons8.com/nolan/96/orca.png +baidu_push: true + +# URL +## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' +url: https://www.zhengyuanyuan520.com +root: / +permalink: :year/:month/:day/:title/ +permalink_defaults: +pretty_urls: + trailing_index: true # Set to false to remove trailing 'index.html' from permalinks + trailing_html: true # Set to false to remove trailing '.html' from permalinks + +# Directory +source_dir: source +public_dir: public +tag_dir: tags +archive_dir: archives +category_dir: categories +code_dir: downloads/code +i18n_dir: :lang +skip_render: + - "2019-nCoV/*" + - "VPN/*" + +# Writing +new_post_name: :title.md # File name of new posts +default_layout: post +titlecase: false # Transform title into titlecase +external_link: + enable: true # Open external links in new tab + field: site # Apply to the whole site + exclude: '' +filename_case: 0 +render_drafts: false +post_asset_folder: false +relative_link: false +future: true +highlight: + enable: true + line_number: true + auto_detect: false + tab_replace: '' + wrap: true + hljs: false + +# Home page setting +# path: Root path for your blogs index page. (default = '') +# per_page: Posts displayed per page. (0 = disable pagination) +# order_by: Posts order. (Order by date descending by default) +index_generator: + path: '' + per_page: 10 + order_by: -date + +# Category & Tag +default_category: uncategorized +category_map: +tag_map: + +# Metadata elements +## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta +meta_generator: true + +# Date / Time format +## Hexo uses Moment.js to parse and display date +## You can customize the date format as defined in +## http://momentjs.com/docs/#/displaying/format/ +date_format: YYYY-MM-DD +time_format: HH:mm:ss +## Use post's date for updated date unless set in front-matter +use_date_for_updated: false + +# Pagination +## Set per_page to 0 to disable pagination +per_page: 10 +pagination_dir: page + +# Include / Exclude file(s) +## include:/exclude: options only apply to the 'source/' folder +include: +exclude: +ignore: + +# Extensions +## Plugins: https://hexo.io/plugins/ +## Themes: https://hexo.io/themes/ +theme: volantis3 + +# Deployment +## Docs: https://hexo.io/docs/deployment.html +deploy: + - type: git + repository: + github: git@github.com:queen999/queen999.github.io.git + coding: git@e.coding.net:zhengyuanyuan/zhengyuanyuan.git + branch: master + - type: baidu_url_submitter + +baidu_url_submit: + count: 100 # 提交最新的多少个链接 + host: www.imqinhao.cn # 在百度站长平台中添加的域名 + token: 5DI6HZ8chaGSyySQ # 秘钥 + path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里 + + + +# gitalk: +# clientID: 6d7c1b49feaa6503bb32 +# clientSecret: fe1f563ec1941791081a2ffee7837ecb5054660b +# repo: blogcomments +# owner: queen999 +# admin: [queen999] + +# Extensions +## Plugins: http://hexo.io/plugins/ +#RSS订阅 +plugin: + - hexo-generator-feed + #Feed Atom +feed: + type: atom + path: atom.xml + limit: 20 \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..aa6c839 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,17690 @@ +{ + "name": "hexo-site", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/core": { + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz", + "integrity": "sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.4", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.0", + "@babel/types": "^7.11.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/generator": { + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz", + "integrity": "sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==", + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + } + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz", + "integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==" + }, + "@babel/polyfill": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz", + "integrity": "sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg==", + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + } + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", + "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.0", + "@babel/types": "^7.11.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.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==" + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==" + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "@types/node": { + "version": "13.7.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.7.tgz", + "integrity": "sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg==" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" + }, + "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.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==" + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" + } + } + }, + "acorn-to-esprima": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/acorn-to-esprima/-/acorn-to-esprima-2.0.8.tgz", + "integrity": "sha1-AD8MZC65ITL0F9NwjxStqCrfLrE=" + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + } + } + }, + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aplayer": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/aplayer/-/aplayer-1.10.1.tgz", + "integrity": "sha512-HAfyxgCUTLAqtYlxzzK9Fyqg6y+kZ9CqT1WfeWE8FSzwspT6oBqWOZHANPHF3RGTtC33IsyEgrfthPDzU5r9kQ==", + "requires": { + "balloon-css": "^0.5.0", + "promise-polyfill": "7.1.0", + "smoothscroll": "0.4.0" + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", + "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "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": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-hook-domain": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-1.1.3.tgz", + "integrity": "sha512-ZovMxSbADV3+biB7oR1GL5lGyptI24alp0LWHlmz1OFc5oL47pz3EiIF6nXOkDW7yLqih4NtsiYduzdDW0i+Wg==", + "requires": { + "source-map-support": "^0.5.11" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autosize": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/autosize/-/autosize-3.0.21.tgz", + "integrity": "sha1-8YL0DRd1fZeKE5pMnKQMTA5EhgM=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" + }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "requires": { + "follow-redirects": "1.5.10" + } + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "optional": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "optional": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "optional": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "optional": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "optional": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "optional": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "optional": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "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==", + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "optional": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "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==", + "optional": true + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "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==", + "optional": true + } + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "optional": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "optional": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "optional": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "optional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "optional": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "optional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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==", + "optional": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-eslint": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.6.tgz", + "integrity": "sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA==", + "requires": { + "@babel/code-frame": "7.0.0-beta.44", + "@babel/traverse": "7.0.0-beta.44", + "@babel/types": "7.0.0-beta.44", + "babylon": "7.0.0-beta.44", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "^1.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz", + "integrity": "sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g==", + "requires": { + "@babel/highlight": "7.0.0-beta.44" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz", + "integrity": "sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==", + "requires": { + "@babel/types": "7.0.0-beta.44", + "jsesc": "^2.5.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz", + "integrity": "sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg==", + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.44", + "@babel/template": "7.0.0-beta.44", + "@babel/types": "7.0.0-beta.44" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz", + "integrity": "sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==", + "requires": { + "@babel/types": "7.0.0-beta.44" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz", + "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==", + "requires": { + "@babel/types": "7.0.0-beta.44" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz", + "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "@babel/template": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz", + "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==", + "requires": { + "@babel/code-frame": "7.0.0-beta.44", + "@babel/types": "7.0.0-beta.44", + "babylon": "7.0.0-beta.44", + "lodash": "^4.2.0" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz", + "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==", + "requires": { + "@babel/code-frame": "7.0.0-beta.44", + "@babel/generator": "7.0.0-beta.44", + "@babel/helper-function-name": "7.0.0-beta.44", + "@babel/helper-split-export-declaration": "7.0.0-beta.44", + "@babel/types": "7.0.0-beta.44", + "babylon": "7.0.0-beta.44", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + } + }, + "@babel/types": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz", + "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "babylon": { + "version": "7.0.0-beta.44", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz", + "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.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==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "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" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-evaluate-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.1.0.tgz", + "integrity": "sha1-ldmMTqNhUEg9sufT7J4ZVKcmKcs=" + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-flip-expressions": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.1.2.tgz", + "integrity": "sha1-d/ZlL53pxCQB2Ce9RuvSEJ4+8Yo=" + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-is-nodes-equiv": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", + "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=" + }, + "babel-helper-is-void-0": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.1.1.tgz", + "integrity": "sha1-cvIaOrugvvODf5F0/KcxrtmgKIg=" + }, + "babel-helper-mark-eval-scopes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.1.1.tgz", + "integrity": "sha1-RVQ0Xt+fJUlCe9IJjlMCU/ivKZI=" + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-remove-or-void": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.1.1.tgz", + "integrity": "sha1-nX4YVtxvr8tBsoOkFnMNwYRPZtc=" + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-to-multiple-sequence-expressions": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.1.1.tgz", + "integrity": "sha1-XxuDKznkrPlU6RN/AlE5XHEZazU=" + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-minify-builtins": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.1.3.tgz", + "integrity": "sha1-TyGn3LUfkaBOpx1H/w6OOwX+wCE=", + "requires": { + "babel-helper-evaluate-path": "^0.1.0" + } + }, + "babel-plugin-minify-constant-folding": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.1.3.tgz", + "integrity": "sha1-V70XKt+LjXStfJlhLrlQQU6+o8o=", + "requires": { + "babel-helper-evaluate-path": "^0.1.0" + } + }, + "babel-plugin-minify-dead-code-elimination": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.1.7.tgz", + "integrity": "sha1-d09TbzR7mDk6J7qnF4cpaIE8NCw=", + "requires": { + "babel-helper-mark-eval-scopes": "^0.1.1", + "babel-helper-remove-or-void": "^0.1.1", + "lodash.some": "^4.6.0" + } + }, + "babel-plugin-minify-flip-comparisons": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.1.2.tgz", + "integrity": "sha1-4oa0C3WZsY3+oZUHHkJ5Rlz8GIQ=", + "requires": { + "babel-helper-is-void-0": "^0.1.1" + } + }, + "babel-plugin-minify-guarded-expressions": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.1.2.tgz", + "integrity": "sha1-38PUc7A2LZYF084KweIjKMYNEAc=", + "requires": { + "babel-helper-flip-expressions": "^0.1.2" + } + }, + "babel-plugin-minify-infinity": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.1.2.tgz", + "integrity": "sha1-Xxz2fd7cuhPIoA2oMlQt8AkaHNQ=" + }, + "babel-plugin-minify-mangle-names": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.1.3.tgz", + "integrity": "sha1-v6JGYaZ5T7A4M1h+VYKLZUSeBv4=", + "requires": { + "babel-helper-mark-eval-scopes": "^0.1.1" + } + }, + "babel-plugin-minify-numeric-literals": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.1.1.tgz", + "integrity": "sha1-1LiwySX4dHFO4z7ksmZ4WD185/s=" + }, + "babel-plugin-minify-replace": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.1.2.tgz", + "integrity": "sha1-uQuecatNOzYyVimpG+q+E7CxasE=" + }, + "babel-plugin-minify-simplify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.1.2.tgz", + "integrity": "sha1-qWjxZY/esvx1noH+Mx2Jgp3w9rk=", + "requires": { + "babel-helper-flip-expressions": "^0.1.2", + "babel-helper-is-nodes-equiv": "^0.0.1", + "babel-helper-to-multiple-sequence-expressions": "^0.1.1" + } + }, + "babel-plugin-minify-type-constructors": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.1.2.tgz", + "integrity": "sha1-21PFt2y44vzUXYYvFxBMeHYTN+4=", + "requires": { + "babel-helper-is-void-0": "^0.1.1" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-inline-consecutive-adds": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.1.2.tgz", + "integrity": "sha1-VELp8cGceKeJn4pN7m/UgfYQAfU=" + }, + "babel-plugin-transform-member-expression-literals": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz", + "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=" + }, + "babel-plugin-transform-merge-sibling-variables": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz", + "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=" + }, + "babel-plugin-transform-minify-booleans": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz", + "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=" + }, + "babel-plugin-transform-property-literals": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz", + "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", + "requires": { + "esutils": "^2.0.2" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-regexp-constructors": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.1.1.tgz", + "integrity": "sha1-MSq3SHzIihxi7iXqG2CH6JuHeZw=" + }, + "babel-plugin-transform-remove-console": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz", + "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=" + }, + "babel-plugin-transform-remove-debugger": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz", + "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=" + }, + "babel-plugin-transform-remove-undefined": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.1.2.tgz", + "integrity": "sha1-4ev1ERD2seBmXyg4Lvc/leUCNlI=" + }, + "babel-plugin-transform-simplify-comparison-operators": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", + "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=" + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-undefined-to-void": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz", + "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=" + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + } + } + }, + "babel-preset-babili": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/babel-preset-babili/-/babel-preset-babili-0.1.4.tgz", + "integrity": "sha1-rZ1mUQAvW8PwfKswB4EWf1RyS/I=", + "requires": { + "babel-plugin-minify-builtins": "^0.1.3", + "babel-plugin-minify-constant-folding": "^0.1.3", + "babel-plugin-minify-dead-code-elimination": "^0.1.7", + "babel-plugin-minify-flip-comparisons": "^0.1.2", + "babel-plugin-minify-guarded-expressions": "^0.1.2", + "babel-plugin-minify-infinity": "^0.1.2", + "babel-plugin-minify-mangle-names": "^0.1.3", + "babel-plugin-minify-numeric-literals": "^0.1.1", + "babel-plugin-minify-replace": "^0.1.2", + "babel-plugin-minify-simplify": "^0.1.2", + "babel-plugin-minify-type-constructors": "^0.1.2", + "babel-plugin-transform-inline-consecutive-adds": "^0.1.2", + "babel-plugin-transform-member-expression-literals": "^6.8.4", + "babel-plugin-transform-merge-sibling-variables": "^6.8.5", + "babel-plugin-transform-minify-booleans": "^6.8.2", + "babel-plugin-transform-property-literals": "^6.8.4", + "babel-plugin-transform-regexp-constructors": "^0.1.1", + "babel-plugin-transform-remove-console": "^6.8.4", + "babel-plugin-transform-remove-debugger": "^6.8.4", + "babel-plugin-transform-remove-undefined": "^0.1.2", + "babel-plugin-transform-simplify-comparison-operators": "^6.8.4", + "babel-plugin-transform-undefined-to-void": "^6.8.2", + "lodash.isplainobject": "^4.0.6" + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "balloon-css": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/balloon-css/-/balloon-css-0.5.2.tgz", + "integrity": "sha512-zheJpzwyNrG4t39vusA67v3BYg1HTVXOF8cErPEHzWK88PEOFwgo6Ea9VHOgOWNMgeuOtFVtB73NE2NWl9uDyQ==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64url": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-1.0.6.tgz", + "integrity": "sha1-1k03XWinxkDZEuI1jRcNylu1RoE=", + "requires": { + "concat-stream": "~1.4.7", + "meow": "~2.0.0" + } + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" + }, + "bind-obj-methods": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-2.0.0.tgz", + "integrity": "sha512-3/qRXczDi2Cdbz6jE+W3IflJOutRVica8frpBn14de1mBOkzDo+6tY33kNhvkw54Kn3PzRRD2VnGbGPcTAk4sw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "requires": { + "readable-stream": "~1.0.26" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "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": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "boom": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", + "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=", + "requires": { + "hoek": "0.9.x" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "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" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } + } + }, + "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==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-fingerprint": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/browser-fingerprint/-/browser-fingerprint-0.0.1.tgz", + "integrity": "sha1-jfPNyiW/fVs1QtYVRdcwBT/OYEo=" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" + }, + "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "requires": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz", + "integrity": "sha1-vRoRv5sxoc5JNJOpMN4aC69K1+w=", + "requires": { + "camelcase": "^1.0.1", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + } + } + }, + "caniuse-lite": { + "version": "1.0.30001117", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001117.tgz", + "integrity": "sha512-4tY0Fatzdx59kYjQs+bNxUwZB03ZEBgVmJ1UkFPz/Q8OLiUUbjct2EdpnXj0fvFTPej2EkbPIG0w8BWsjAyk1Q==" + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + }, + "cardinal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", + "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", + "requires": { + "ansicolors": "~0.2.1", + "redeyed": "~1.0.0" + }, + "dependencies": { + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" + } + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "dependencies": { + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "readable-stream": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cli-color": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-0.3.3.tgz", + "integrity": "sha1-EtW90Vj/igsNtAEZiRPAPfBp9vU=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.6", + "memoizee": "~0.3.8", + "timers-ext": "0.1" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "requires": { + "colors": "1.0.3" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + }, + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", + "optional": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-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==" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "columnify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "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" + } + }, + "combined-stream-wait-for-it": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combined-stream-wait-for-it/-/combined-stream-wait-for-it-1.1.0.tgz", + "integrity": "sha1-4EtO6ITNZXFerE5Yqxc2eiy6RoU=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.8.tgz", + "integrity": "sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw==" + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.11.tgz", + "integrity": "sha512-X3JMh8+4je3U1cQpG87+f9lXHDrqcb2MVLg9L7o8b1UZ0DzhRrUpdn65ttzu10PpJPPI3MQNkis+oha6TSA9Mw==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.9", + "typedarray": "~0.0.5" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "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": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "coveralls": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", + "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", + "requires": { + "js-yaml": "^3.13.1", + "lcov-parse": "^1.0.0", + "log-driver": "^1.2.7", + "minimist": "^1.2.5", + "request": "^2.88.2" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "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" + } + }, + "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" + } + } + } + }, + "cp-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", + "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^2.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^4.0.1", + "safe-buffer": "^5.0.1" + }, + "dependencies": { + "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==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-env": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cryptiles": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", + "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=", + "requires": { + "boom": "0.4.x" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=" + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "cssbeautify": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz", + "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=" + }, + "csscomb": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/csscomb/-/csscomb-4.3.0.tgz", + "integrity": "sha512-U2VDmuCbChAzBz8zLXrcFMs/tORwYa9hjG0qHDCZHzyK7CYgTRzTk+I1Hxgh0SoPiW4XWYL68qG5vDl5hGZQ3w==", + "requires": { + "@babel/polyfill": "^7.4.0", + "gonzales-pe": "4.2.4", + "minimatch": "3.0.4", + "minimist": "1.2.0", + "vow": "0.4.19", + "vow-fs": "0.3.6" + } + }, + "csshint": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/csshint/-/csshint-0.3.4.tgz", + "integrity": "sha512-Wb0XZ2dSFgaLz8I4NflHa64A69Uf3bDGMbsCZJbyzt/1+IqNvYMzyw8U3dbfAup/hmAMEqUgnAvOfEMYbvSzfg==", + "requires": { + "chalk": "^1.1.3", + "edp-core": "^1.0.32", + "js-yaml": "^3.6.1", + "manis": "^0.3.0", + "object-assign": "^4.1.0", + "postcss": "^5.2.0", + "strip-json-comments": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "ctype": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=" + }, + "cuid": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz", + "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", + "requires": { + "es5-ext": "~0.10.2" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "1.28.5", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.28.5.tgz", + "integrity": "sha1-JXz8RdMi30XvVlhmWWfuhBzXP68=" + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" + }, + "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" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "requires": { + "strip-bom": "^4.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + } + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "optional": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + }, + "dependencies": { + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + } + } + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" + }, + "diff-frag": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/diff-frag/-/diff-frag-1.0.1.tgz", + "integrity": "sha512-6/v2PC/6UTGcWPPetb9acL8foberUg/CtPdALeJUdD1B/weHNvzftoo00gYznqHGRhHEbykUGzqfG9RWOSr5yw==" + }, + "differ-cli": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/differ-cli/-/differ-cli-0.3.0.tgz", + "integrity": "sha1-ZiaJ4gFvVt1iE7dwHgD90ViYWBA=", + "requires": { + "cli-color": "^0.3.2", + "commander": "^2.3.0", + "q": "^1.0.1", + "universal-diff": "^2.0.1" + } + }, + "disparity": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/disparity/-/disparity-2.0.0.tgz", + "integrity": "sha1-V92stHMkrl9Y0swNqIbbTOnutxg=", + "requires": { + "ansi-styles": "^2.0.1", + "diff": "^1.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + } + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "doctrine2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/doctrine2/-/doctrine2-1.2.2.tgz", + "integrity": "sha1-ZCL8Te+nVXKYwqZcxvJ4njlQDUY=", + "requires": { + "esutils": "^1.1.6", + "isarray": "^1.0.0" + }, + "dependencies": { + "esutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", + "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=" + } + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "dom-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/dom-urls/-/dom-urls-1.1.0.tgz", + "integrity": "sha1-AB3fgWKM0ecGElxxdvU8zsVdkY4=", + "requires": { + "urijs": "^1.16.1" + } + }, + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + }, + "domhandler": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz", + "integrity": "sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==", + "requires": { + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.0.0.tgz", + "integrity": "sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg==", + "requires": { + "dom-serializer": "^0.2.1", + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "doublearray": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/doublearray/-/doublearray-0.0.2.tgz", + "integrity": "sha1-Yxhv6NNEEydtNiH2qg7F954ifvk=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "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" + } + }, + "edp-config": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/edp-config/-/edp-config-1.0.2.tgz", + "integrity": "sha1-5z2lfz+QnOcgB00zWWZfXJ/ugWI=" + }, + "edp-core": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/edp-core/-/edp-core-1.0.34.tgz", + "integrity": "sha512-3IX054B36AHLkNDsGKYGPeWYQc31pUx5QnXogejDMLStHUvjQVwWMP5vUo3m5uw5IEYcbR6Ob/l/N4lk8e2PwA==", + "requires": { + "chalk": "~1.0.0", + "edp-config": "~1.0.2", + "esprima": "~2.2.0", + "estraverse": "~4.1.0", + "glob": "~5.0.5", + "iconv-lite": "~0.4.8", + "minimatch": "~3.0.4", + "semver": "~4.3.3" + }, + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz", + "integrity": "sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz", + "integrity": "sha1-s89O0P9Tl8mcdbj2edsvUoMfltw=", + "requires": { + "ansi-styles": "^2.0.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^1.0.3", + "strip-ansi": "^2.0.1", + "supports-color": "^1.3.0" + } + }, + "esprima": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.2.0.tgz", + "integrity": "sha1-QpLB1o5Bc9gV+iKQ3Hr8ltgfzYM=" + }, + "estraverse": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", + "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=" + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-ansi": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz", + "integrity": "sha1-wLWxYV2eOCsP9nFp2We0JeSMpTg=", + "requires": { + "ansi-regex": "^1.1.0", + "get-stdin": "^4.0.1" + } + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" + }, + "strip-ansi": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", + "integrity": "sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4=", + "requires": { + "ansi-regex": "^1.0.0" + } + }, + "supports-color": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz", + "integrity": "sha1-FXWN8J2P87SswwdTn6vicJXhBC0=" + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" + }, + "electron-to-chromium": { + "version": "1.3.540", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.540.tgz", + "integrity": "sha512-IoGiZb8SMqTtkDYJtP8EtCdvv3VMtd1QoTlypO2RUBxRq/Wk0rU5IzhzhMckPaC9XxDqUvWsL0XKOBhTiYVN3w==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "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==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + } + } + }, + "es6-promise": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==" + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + } + } + }, + "es6-weak-map": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", + "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.6", + "es6-iterator": "~0.1.3", + "es6-symbol": "~2.0.1" + }, + "dependencies": { + "es6-iterator": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", + "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.5", + "es6-symbol": "~2.0.1" + } + }, + "es6-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", + "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.5" + } + } + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esformatter": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/esformatter/-/esformatter-0.10.0.tgz", + "integrity": "sha1-4yHsw9lAgzcs389cb5Qs72/sWdM=", + "requires": { + "acorn-to-esprima": "^2.0.6", + "babel-traverse": "^6.4.5", + "debug": "^0.7.4", + "disparity": "^2.0.0", + "esformatter-parser": "^1.0.0", + "glob": "^7.0.5", + "minimatch": "^3.0.2", + "minimist": "^1.1.1", + "mout": ">=0.9 <2.0", + "npm-run": "^3.0.0", + "resolve": "^1.1.5", + "rocambole": ">=0.7 <2.0", + "rocambole-indent": "^2.0.4", + "rocambole-linebreak": "^1.0.2", + "rocambole-node": "~1.0", + "rocambole-token": "^1.1.2", + "rocambole-whitespace": "^1.0.0", + "stdin": "*", + "strip-json-comments": "~0.1.1", + "supports-color": "^1.3.1", + "user-home": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz", + "integrity": "sha1-Fkxk43Coo8wAyeAbU55WmCPw7lQ=" + }, + "supports-color": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz", + "integrity": "sha1-FXWN8J2P87SswwdTn6vicJXhBC0=" + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "requires": { + "os-homedir": "^1.0.0" + } + } + } + }, + "esformatter-braces": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/esformatter-braces/-/esformatter-braces-1.2.1.tgz", + "integrity": "sha1-c+BxdEat5LsmnO7OtGw3AujB6Cc=", + "requires": { + "rocambole-token": "^1.2.1" + } + }, + "esformatter-dot-notation": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esformatter-dot-notation/-/esformatter-dot-notation-1.3.1.tgz", + "integrity": "sha1-21uqJBQyFOVA+jJ9JV7rBPWxV+A=", + "requires": { + "rocambole": "^0.6.0", + "rocambole-token": "^1.2.1", + "unquoted-property-validator": "^1.0.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" + }, + "rocambole": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rocambole/-/rocambole-0.6.0.tgz", + "integrity": "sha1-U08jWih8wX+bBXuVvRHQ8Nw1RSw=", + "requires": { + "esprima": "^2.0" + } + } + } + }, + "esformatter-fecs": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/esformatter-fecs/-/esformatter-fecs-0.3.1.tgz", + "integrity": "sha1-rRknKnfydH3zvBwWP6zdZAKxJY4=", + "requires": { + "rocambole": "^0.7.0", + "rocambole-indent": "^2.0.4", + "rocambole-linebreak": "^1.0.1", + "rocambole-node": "^1.0.0", + "rocambole-token": "^1.2.1", + "rocambole-whitespace": "^1.0.0", + "unquoted-property-validator": "^1.0.0" + } + }, + "esformatter-limit-linebreaks": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/esformatter-limit-linebreaks/-/esformatter-limit-linebreaks-0.0.3.tgz", + "integrity": "sha1-fhPqJuYOJaxfAS3sjAbTa53nLDs=", + "requires": { + "rocambole-token": "^1.2.1" + } + }, + "esformatter-parseint": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/esformatter-parseint/-/esformatter-parseint-1.0.3.tgz", + "integrity": "sha1-pHQIfGgtMxSa8xuv8eYWpdc7Zug=", + "requires": { + "rocambole": "^0.3.6", + "rocambole-token": "^1.2.1" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "rocambole": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/rocambole/-/rocambole-0.3.6.tgz", + "integrity": "sha1-Teu/WUMUS8e2AG2Vvo+swLdDUqc=", + "requires": { + "esprima": "~1.0" + } + } + } + }, + "esformatter-parser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esformatter-parser/-/esformatter-parser-1.0.0.tgz", + "integrity": "sha1-CFQHLQSHU57TnK442KVDLBfsEdM=", + "requires": { + "acorn-to-esprima": "^2.0.8", + "babel-traverse": "^6.9.0", + "babylon": "^6.8.0", + "rocambole": "^0.7.0" + } + }, + "esformatter-quotes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/esformatter-quotes/-/esformatter-quotes-1.1.0.tgz", + "integrity": "sha1-4ixsRFx/MGBB2BybnlH8psv6yoI=" + }, + "esformatter-remove-trailing-commas": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esformatter-remove-trailing-commas/-/esformatter-remove-trailing-commas-1.0.1.tgz", + "integrity": "sha1-k5diTB+qmA/E7Mfl6YE+tPK1gqc=", + "requires": { + "rocambole-token": "^1.2.1" + } + }, + "esformatter-semicolons": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/esformatter-semicolons/-/esformatter-semicolons-1.1.2.tgz", + "integrity": "sha1-I0GQ0iKGWm3FxcXooC2KyEctiu4=" + }, + "esformatter-spaced-lined-comment": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esformatter-spaced-lined-comment/-/esformatter-spaced-lined-comment-2.0.1.tgz", + "integrity": "sha1-3F80B/k8KV4eVkRr00RWDaXm3Kw=" + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "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" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + } + }, + "eslint-plugin-babel": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-babel/-/eslint-plugin-babel-4.1.2.tgz", + "integrity": "sha1-eSAqDjV1fdkngJGbIzbx+i/lPB4=" + }, + "eslint-plugin-html": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-3.2.2.tgz", + "integrity": "sha512-sSuafathF6ImPrzF2vUKEJY6Llq06d/riMTMzlsruDRDhNsQMYp2viUKo+jx+JRr1QevskeUpQcuptp2gN1XVQ==", + "requires": { + "htmlparser2": "^3.8.2", + "semver": "^5.4.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "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" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", + "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.3", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + } + } + }, + "eslint-plugin-react": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz", + "integrity": "sha512-kidMTE5HAEBSLu23CUDvj8dc3LdBU0ri1scwHBZjI41oDv4tjsWZKU7MQccFzH1QYPYhsnTF2ovh7JlcIcmxgg==", + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flatmap": "^1.2.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1", + "object.entries": "^1.1.2", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.17.0", + "string.prototype.matchall": "^4.0.2" + }, + "dependencies": { + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + }, + "dependencies": { + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + } + } + }, + "events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=" + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fecs": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/fecs/-/fecs-1.6.4.tgz", + "integrity": "sha512-cO8/cPT2OmUxSZ7PEDh/zlxbZprbMIiyRIUAApWiuV5LWzEWPCauPURgF9yN80SX+nqKU9N6HXA2gCnCQ1bX4w==", + "requires": { + "babel-eslint": "^8.0.1", + "chalk": "^2.1.0", + "csscomb": "^4.2.0", + "csshint": "^0.3.4", + "doctrine2": "^1.2.2", + "esformatter": "^0.10.0", + "esformatter-braces": "^1.2.1", + "esformatter-dot-notation": "^1.3.1", + "esformatter-fecs": "^0.3.1", + "esformatter-limit-linebreaks": "0.0.3", + "esformatter-parseint": "^1.0.3", + "esformatter-quotes": "^1.1.0", + "esformatter-remove-trailing-commas": "^1.0.1", + "esformatter-semicolons": "^1.1.2", + "esformatter-spaced-lined-comment": "^2.0.1", + "eslint": "^4.8.0", + "eslint-plugin-babel": "^4.1.2", + "eslint-plugin-html": "^3.2.2", + "eslint-plugin-import": "^2.7.0", + "eslint-plugin-react": "^7.4.0", + "htmlcs": "^0.3.0", + "lesslint": "^1.0.4", + "loophole": "^1.1.0", + "manis": "^0.3.4", + "map-stream": "^0.1.0", + "minimatch": "^3.0.2", + "minimist": "^1.2.0", + "msee": "^0.3.3", + "reserved-words": "^0.1.2", + "vinyl": "^2.2.0", + "vinyl-fs": "^3.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "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==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "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" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz", + "integrity": "sha1-ZQnwEmr0wXhVHPqZOU4DLhOk1W4=" + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" + }, + "flow-parser": { + "version": "0.132.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.132.0.tgz", + "integrity": "sha512-y1P37zDCPSdphlk+w+roCqcOar6iQdNaAJldJ6xx5/2r4ZRv4KHO+qL+AXwPWp+34eN+oPxPjWnU7GybJnyISQ==" + }, + "flow-remove-types": { + "version": "2.132.0", + "resolved": "https://registry.npmjs.org/flow-remove-types/-/flow-remove-types-2.132.0.tgz", + "integrity": "sha512-J1EfutfdC68xEZ8i44Hdlaa3MnONuQQB4/+wtnw/ontdcwuz/yGAVQ/O35dFIqNaQoCUWNDN1mHHagbRYLfihQ==", + "requires": { + "flow-parser": "^0.132.0", + "pirates": "^3.0.2", + "vlq": "^0.2.1" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" + } + }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "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" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fromentries": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.1.tgz", + "integrity": "sha512-Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw==" + }, + "fs-exists-cached": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", + "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "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-loop": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.2.tgz", + "integrity": "sha512-Iw4MzMfS3udk/rqxTiDDCllhGwlOrsr50zViTOO/W6lS/9y6B1J0BD2VZzrnWUYBJsl3aeqjgR5v7bWWhZSYbA==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "ga-analytics": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ga-analytics/-/ga-analytics-0.0.7.tgz", + "integrity": "sha1-ax+V6afkXfVqtUeATjvxNULBRsA=", + "requires": { + "cli-table": "^0.3.1", + "commander": "^2.5.0", + "googleapis": "^1.0.21", + "lodash": "^2.4.1", + "moment": "^2.8.4" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=" + } + } + }, + "gapitoken": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/gapitoken/-/gapitoken-0.1.5.tgz", + "integrity": "sha1-NXf8+1Qmvjp7jrrakmcSKdjMgc4=", + "requires": { + "jws": "~3.0.0", + "request": "^2.54.0" + } + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gitalk": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/gitalk/-/gitalk-1.6.2.tgz", + "integrity": "sha512-+mhhhfhwWxIXLh8lv0CUQNTJBZM7/dvgWVFzVErJWTTV+s9dnXU87GnU7U2+Q0T28pCUUZ2sbKBPWV7IlahzGA==", + "requires": { + "autosize": "3.0.21", + "axios": "0.19.2", + "date-fns": "1.28.5", + "es6-promise": "4.1.1", + "github-markdown-css": "2.8.0", + "node-polyglot": "2.2.2", + "preact": "8.1.0", + "preact-compat": "3.16.0", + "react-flip-move": "2.9.14" + } + }, + "github-markdown-css": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-2.8.0.tgz", + "integrity": "sha1-nAP2RvVQt+P9nuCuKe4D6i/mg6M=" + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "optional": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "gonzales-pe": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz", + "integrity": "sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ==", + "requires": { + "minimist": "1.1.x" + }, + "dependencies": { + "minimist": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", + "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=" + } + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "googleapis": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-1.1.5.tgz", + "integrity": "sha1-4QFQrJ6LJftReZ8Q7ZRsW5+AZKo=", + "requires": { + "async": "~0.9.0", + "gapitoken": "~0.1.2", + "request": "~2.51.0", + "string-template": "~0.2.0" + }, + "dependencies": { + "asn1": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=" + }, + "assert-plus": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=" + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "aws-sign2": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=" + }, + "caseless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz", + "integrity": "sha1-W8oogdQUN/VLJAfr40iIx7mtT30=" + }, + "combined-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", + "requires": { + "delayed-stream": "0.0.5" + } + }, + "delayed-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" + }, + "forever-agent": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", + "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=" + }, + "form-data": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", + "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=", + "requires": { + "async": "~0.9.0", + "combined-stream": "~0.0.4", + "mime-types": "~2.0.3" + }, + "dependencies": { + "mime-types": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", + "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=", + "requires": { + "mime-db": "~1.12.0" + } + } + } + }, + "http-signature": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", + "requires": { + "asn1": "0.1.11", + "assert-plus": "^0.1.5", + "ctype": "0.5.3" + } + }, + "mime-db": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz", + "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc=" + }, + "mime-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", + "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=" + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + }, + "oauth-sign": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz", + "integrity": "sha1-12f1FpMlYg6rLgh+8MRy53PbZGE=" + }, + "qs": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", + "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=" + }, + "request": { + "version": "2.51.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.51.0.tgz", + "integrity": "sha1-NdALvswBLlX5B7G9ng29V3v+8m4=", + "requires": { + "aws-sign2": "~0.5.0", + "bl": "~0.9.0", + "caseless": "~0.8.0", + "combined-stream": "~0.0.5", + "forever-agent": "~0.5.0", + "form-data": "~0.2.0", + "hawk": "1.1.1", + "http-signature": "~0.10.0", + "json-stringify-safe": "~5.0.0", + "mime-types": "~1.0.1", + "node-uuid": "~1.4.0", + "oauth-sign": "~0.5.0", + "qs": "~2.3.1", + "stringstream": "~0.0.4", + "tough-cookie": ">=0.12.0", + "tunnel-agent": "~0.4.0" + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + } + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "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-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hasha": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", + "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", + "requires": { + "is-stream": "^1.0.1" + } + }, + "hawk": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "integrity": "sha1-h81JH5tG5OKurKM1QWdmiF0tHtk=", + "requires": { + "boom": "0.4.x", + "cryptiles": "0.2.x", + "hoek": "0.9.x", + "sntp": "0.2.x" + } + }, + "hexo": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hexo/-/hexo-4.2.0.tgz", + "integrity": "sha512-j2Kzgx/eWF0IgSfUEsAAhr0mDaaqR3E1MTus0/Vrs+JpQdMiSlqSbudPf2S9O4FHi5CAzDCuzToGlg2kgoQxcA==", + "requires": { + "abbrev": "^1.1.1", + "archy": "^1.0.0", + "bluebird": "^3.5.2", + "chalk": "^3.0.0", + "hexo-cli": "^3.0.0", + "hexo-front-matter": "^1.0.0", + "hexo-fs": "^2.0.0", + "hexo-i18n": "^1.0.0", + "hexo-log": "^1.0.0", + "hexo-util": "^1.8.0", + "js-yaml": "^3.12.0", + "lodash": "^4.17.11", + "micromatch": "^4.0.2", + "moment": "^2.22.2", + "moment-timezone": "^0.5.21", + "nunjucks": "^3.1.3", + "pretty-hrtime": "^1.0.3", + "resolve": "^1.8.1", + "strip-ansi": "^6.0.0", + "strip-indent": "^3.0.0", + "swig-extras": "0.0.1", + "swig-templates": "^2.0.3", + "text-table": "^0.2.0", + "tildify": "^2.0.0", + "titlecase": "^1.1.2", + "warehouse": "^3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "hexo-cli": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hexo-cli/-/hexo-cli-3.1.0.tgz", + "integrity": "sha512-Rc2gX2DlsALaFBbfk1XYx2XmeVAX+C7Dxc7UwETZOcu3cbGsf2DpwYTfKQumW3jagi1icA4KgW9aSRPPZZj/zg==", + "requires": { + "abbrev": "^1.1.1", + "acorn": "^7.0.0", + "bluebird": "^3.5.5", + "chalk": "^2.4.2", + "command-exists": "^1.2.8", + "hexo-fs": "^2.0.0", + "hexo-log": "^1.0.0", + "hexo-util": "^1.4.0", + "minimist": "^1.2.0", + "resolve": "^1.11.0", + "tildify": "^2.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + } + } + }, + "hexo-autonofollow": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hexo-autonofollow/-/hexo-autonofollow-1.0.1.tgz", + "integrity": "sha1-LCU0S3H26kEwM3C70LFzIwi9d3M=", + "requires": { + "cheerio": "^0.19.0" + }, + "dependencies": { + "cheerio": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz", + "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=", + "requires": { + "css-select": "~1.0.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "~3.8.1", + "lodash": "^3.2.0" + } + }, + "css-select": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz", + "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "1.0", + "domutils": "1.4", + "nth-check": "~1.0.0" + } + }, + "css-what": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz", + "integrity": "sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w=" + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", + "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", + "requires": { + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + }, + "dependencies": { + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=" + } + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "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": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "hexo-baidu-url-submit": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/hexo-baidu-url-submit/-/hexo-baidu-url-submit-0.0.6.tgz", + "integrity": "sha512-0jDyIuw5B2Muqsjcf5Xxo1PNjxClPHP14FpB0amEAIr4wUdxk5zahImvOhkZwR9GrBhWKAPdjzmWS/xIMjzfrw==", + "requires": { + "xmlhttprequest": "^1.8.0" + } + }, + "hexo-bunyan": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hexo-bunyan/-/hexo-bunyan-2.0.0.tgz", + "integrity": "sha512-5XHYu/yJOgPFTC0AaEgFtPPaBJU4jC7R10tITJwTRJk7K93rgSpRV8jF3e0PPlPwXd4FphTawjljH5R8LjmtpQ==", + "requires": { + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" + } + }, + "hexo-deployer-git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hexo-deployer-git/-/hexo-deployer-git-2.1.0.tgz", + "integrity": "sha512-0rx8YVd1UrwD9vUzIPrB7mljLdcmUv0zRj3MAMCBxY7HqI2RM5ZEV0uKxi34qB7LYA80BNl3FWHl2ghO/tKVTA==", + "requires": { + "bluebird": "^3.5.0", + "chalk": "^3.0.0", + "hexo-fs": "^2.0.0", + "hexo-util": "^1.0.0", + "moment": "^2.18.0", + "swig-templates": "^2.0.2" + } + }, + "hexo-front-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-front-matter/-/hexo-front-matter-1.0.0.tgz", + "integrity": "sha512-Hn8IIzgWWnxYTekrjnA0rxwWMoQHifyrxKMqVibmFaRKf4AQ2V6Xo13Jiso6CDwYfS+OdA41QS5DG1Y+QXA5gw==", + "requires": { + "js-yaml": "^3.13.1" + } + }, + "hexo-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hexo-fs/-/hexo-fs-2.0.0.tgz", + "integrity": "sha512-mtwjfh5IZMXVCoITtoV+LfWbrD7xCWyv8OTIrOmwUW4JR+7EEvuwqu+QDztt4RS0azxUuc1sKVK68Mxfp2AoYQ==", + "requires": { + "bluebird": "^3.5.1", + "chokidar": "^3.0.0", + "escape-string-regexp": "^2.0.0", + "graceful-fs": "^4.1.11" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "hexo-generator-archive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-generator-archive/-/hexo-generator-archive-1.0.0.tgz", + "integrity": "sha512-24TeanDGpMBUIq37DHpSESQbeN6ssZ06edsGSI76tN4Yit50TgsgzP5g5DSu0yJk0jUtHJntysWE8NYAlFXibA==", + "requires": { + "hexo-pagination": "1.0.0" + } + }, + "hexo-generator-baidu-sitemap": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/hexo-generator-baidu-sitemap/-/hexo-generator-baidu-sitemap-0.1.6.tgz", + "integrity": "sha512-8AAqiuMp0MriVC8lFeFn4Y6O1dPvEo/YHxJWBdaEevoYyfCOtwdunk21XTcIHPHH9voWaKTuC0RJ1Cdaz8KifQ==", + "requires": { + "ejs": "^2.5.5", + "hexo": "^3.0.0", + "utils-merge": "^1.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==" + }, + "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" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "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": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "cuid": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/cuid/-/cuid-1.3.8.tgz", + "integrity": "sha1-S4deCWm612T37AcGz0T1+wgx9rc=", + "requires": { + "browser-fingerprint": "0.0.1", + "core-js": "^1.1.1", + "node-fingerprint": "0.0.2" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "optional": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "hexo": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/hexo/-/hexo-3.9.0.tgz", + "integrity": "sha512-uga6MsxGlD0AeafiObbFkQVWlUO+wWTb/IJVPI3fFpmAJu0PBD//Ek0qVOxHjlzdvFGeW0bYWYqXgDbR7suJng==", + "requires": { + "abbrev": "^1.1.1", + "archy": "^1.0.0", + "bluebird": "^3.5.2", + "chalk": "^2.4.1", + "cheerio": "0.22.0", + "hexo-cli": "^2.0.0", + "hexo-front-matter": "^0.2.3", + "hexo-fs": "^1.0.0", + "hexo-i18n": "^0.2.1", + "hexo-log": "^0.2.0", + "hexo-util": "^0.6.3", + "js-yaml": "^3.12.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "moment": "^2.22.2", + "moment-timezone": "^0.5.21", + "nunjucks": "^3.1.3", + "pretty-hrtime": "^1.0.3", + "resolve": "^1.8.1", + "strip-ansi": "^5.0.0", + "strip-indent": "^2.0.0", + "swig-extras": "0.0.1", + "swig-templates": "^2.0.3", + "text-table": "^0.2.0", + "tildify": "^1.2.0", + "titlecase": "^1.1.2", + "warehouse": "^2.2.0" + }, + "dependencies": { + "hexo-cli": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hexo-cli/-/hexo-cli-2.0.0.tgz", + "integrity": "sha512-ZHWh2W35IHaAv9vmcrq+yWjubF26TV+qXoihMnJ3LojWlUCFoMWfEoxJcm0AL709SSuVMpwvUI8la4CpQCOGXQ==", + "requires": { + "abbrev": "^1.1.1", + "acorn": "^6.1.1", + "bluebird": "^3.5.3", + "chalk": "^2.4.2", + "command-exists": "^1.2.8", + "hexo-fs": "^1.0.2", + "hexo-log": "^0.2.0", + "hexo-util": "^0.6.3", + "minimist": "^1.2.0", + "resolve": "^1.10.0", + "tildify": "^1.2.0" + } + } + } + }, + "hexo-bunyan": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-bunyan/-/hexo-bunyan-1.0.0.tgz", + "integrity": "sha512-RymT8Ck+K77mLt9BEYNb4uyfC7RIQnU5N3laXowMrS28jj2h89VHJCOnhV00mmta4fHRqNa07kP1Hrn17nvMkQ==", + "requires": { + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" + } + }, + "hexo-front-matter": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hexo-front-matter/-/hexo-front-matter-0.2.3.tgz", + "integrity": "sha1-x8qO9CDqNr2F6ECKLoyb9J76YF4=", + "requires": { + "js-yaml": "^3.6.1" + } + }, + "hexo-fs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hexo-fs/-/hexo-fs-1.0.2.tgz", + "integrity": "sha512-cbDnYuk6IndW/Fr2RcfZsZXE5wlG6tFoeBgZsHY230sSYalvX4JBPOUrE8As7Agysl+NGMthtr/Drtuliy5foQ==", + "requires": { + "bluebird": "^3.5.1", + "chokidar": "^2.0.4", + "escape-string-regexp": "^1.0.5", + "graceful-fs": "^4.1.11" + } + }, + "hexo-i18n": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/hexo-i18n/-/hexo-i18n-0.2.1.tgz", + "integrity": "sha1-hPFBQyvwnYtVjth4xygWS20c1t4=", + "requires": { + "sprintf-js": "^1.0.2" + } + }, + "hexo-log": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/hexo-log/-/hexo-log-0.2.0.tgz", + "integrity": "sha512-fzoc+GQexxPPILTjoOQILnA3ZG2MFgqMBVel4xvJ11pXptw9+f97ynTgDAExXafyp9Nz2ChXRuqlCYgPtZSlxQ==", + "requires": { + "chalk": "^1.1.1", + "hexo-bunyan": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "hexo-util": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/hexo-util/-/hexo-util-0.6.3.tgz", + "integrity": "sha512-zPxaqCWZz3/25SAB4FlrRtWktJ+Pr+vBiv/nyHpXKgXPt1m70liViKlRwWLqDmRjJ72x6/k4qCEeXHajvcGHUw==", + "requires": { + "bluebird": "^3.4.0", + "camel-case": "^3.0.0", + "cross-spawn": "^4.0.0", + "highlight.js": "^9.4.0", + "html-entities": "^1.2.0", + "striptags": "^2.1.1" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + } + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" + }, + "striptags": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/striptags/-/striptags-2.2.1.tgz", + "integrity": "sha1-TEULcI1BuL85zyTEn/I0/Gqr/TI=" + }, + "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" + } + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "requires": { + "os-homedir": "^1.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "warehouse": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/warehouse/-/warehouse-2.2.0.tgz", + "integrity": "sha1-XQnWSUKZK+Zn2PfIagnCuK6gQGI=", + "requires": { + "JSONStream": "^1.0.7", + "bluebird": "^3.2.2", + "cuid": "~1.3.8", + "graceful-fs": "^4.1.3", + "is-plain-object": "^2.0.1", + "lodash": "^4.2.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "hexo-generator-category": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-generator-category/-/hexo-generator-category-1.0.0.tgz", + "integrity": "sha512-kmtwT1SHYL2ismbGnYQXNtqLFSeTdtHNbJIqno3LKROpCK8ybST5QVXF1bZI9LkFcXV/H8ilt8gfg4/dNNcQQQ==", + "requires": { + "hexo-pagination": "1.0.0" + } + }, + "hexo-generator-feed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hexo-generator-feed/-/hexo-generator-feed-2.2.0.tgz", + "integrity": "sha512-/jFMSyofFmp75P67sN9QesEW/wAFstmNfM+zXOOh+D5ZJe0RqXokczEetloqjCU1CX1EzKI3tRr/EoBZ6igQzg==", + "requires": { + "hexo-util": "^1.3.0", + "nunjucks": "^3.0.0" + } + }, + "hexo-generator-index": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-generator-index/-/hexo-generator-index-1.0.0.tgz", + "integrity": "sha512-L25MdZ7e5ar/F8lIW+zBNNlA4f5A8CBUOYi1IQZCgL3wPVW+AWn66RSM5UVBAbiw5yxDeTHdk0sJYXbhSBaOFQ==", + "requires": { + "hexo-pagination": "1.0.0" + } + }, + "hexo-generator-json-content": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/hexo-generator-json-content/-/hexo-generator-json-content-4.2.3.tgz", + "integrity": "sha512-XGqCaTUr6+X8Ty/YvRi+0eh0DJgHcp+lgBhn+Sgyh6ev40P0cwamwJyaZroTdHt8GPoBwbSGVu0H/CdzEf0lFA==", + "requires": { + "hexo-util": "^2.3.0", + "keyword-extractor": "^0.0.19", + "moment": "^2.27.0" + }, + "dependencies": { + "hexo-util": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hexo-util/-/hexo-util-2.3.0.tgz", + "integrity": "sha512-TmS88BiCrAoqiPDM0ebvxZU/EYjyD5hrKPkJ1wUcHEnm2d14NhXxHzYULzE9EgbdHSUaXgMZC5yg2WMxDiYOLg==", + "requires": { + "bluebird": "^3.5.2", + "camel-case": "^4.0.0", + "cross-spawn": "^7.0.0", + "deepmerge": "^4.2.2", + "highlight.js": "^10.0.0", + "htmlparser2": "^4.0.0", + "prismjs": "^1.17.1", + "strip-indent": "^3.0.0", + "striptags": "^3.1.1" + } + }, + "highlight.js": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.2.tgz", + "integrity": "sha512-Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA==" + }, + "moment": { + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" + } + } + }, + "hexo-generator-search": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/hexo-generator-search/-/hexo-generator-search-2.4.0.tgz", + "integrity": "sha512-470q6Cpu6xHIPMXN+rQjCQkn/ii4e8XJRBXCmKs+B1jGQNrT7K3geqfyd5pqGiGi6bh5yY+mNqwGw5r2sZZtzA==", + "requires": { + "nunjucks": "^3.0.1", + "utils-merge": "^1.0.0" + } + }, + "hexo-generator-sitemap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hexo-generator-sitemap/-/hexo-generator-sitemap-2.0.0.tgz", + "integrity": "sha512-JeoyRIJs7g6sS4WssFCot7joT7o1R/Mt96ldrq93A7z1j/lcaOSoq3Bvx7xF5DhvmT33PUEMsnVQKjUPdaPUdw==", + "requires": { + "hexo-util": "^1.4.0", + "micromatch": "^4.0.2", + "nunjucks": "^3.1.6" + } + }, + "hexo-generator-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-generator-tag/-/hexo-generator-tag-1.0.0.tgz", + "integrity": "sha512-JDoB2T1EncRlyGSjuAhkGxRfKkN8tq0i8tFlk9I4q2L6iYxPaUnFenhji0oxufTADC16/IchuPjmMk//dt8Msg==", + "requires": { + "hexo-pagination": "1.0.0" + } + }, + "hexo-i18n": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-i18n/-/hexo-i18n-1.0.0.tgz", + "integrity": "sha512-yw90JHr7ybUHN/QOkpHmlWJj1luVk5/v8CUU5NRA0n4TFp6av8NT7ujZ10GDawgnQEdMHnN5PUfAbNIVGR6axg==", + "requires": { + "sprintf-js": "^1.0.3" + } + }, + "hexo-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-log/-/hexo-log-1.0.0.tgz", + "integrity": "sha512-XlPzRtnsdrUfTSkLJPACQgWByybB56E79H8xIjGWj0GL+J/VqENsgc+GER0ytFwrP/6YKCerXdaUWOYMcv6aiA==", + "requires": { + "chalk": "^2.4.1", + "hexo-bunyan": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "hexo-offline": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-offline/-/hexo-offline-1.0.0.tgz", + "integrity": "sha512-9vrcFvIB2JMTNJZsAnzoh3thvAhCg5RDvrJftvo909hIdgNt5VMWmkUg3jCQgDFUrq7OWljIVIBH8Z2R1/bOjw==", + "requires": { + "sw-precache": "^5.2.1" + } + }, + "hexo-offline-popup": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hexo-offline-popup/-/hexo-offline-popup-1.0.3.tgz", + "integrity": "sha512-Lhv0vAXffJVwqMObyK+EjW4lfsjmzj+sVnCJc/pssmj9W+O+Mal57bgLV5dLuAV82u/57TQ4BtvdpLOTtkH99Q==", + "requires": { + "babel-cli": "^6.26.0", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-babili": "^0.1.4", + "babel-preset-env": "^1.7.0", + "babel-register": "^6.26.0", + "cross-env": "^7.0.2", + "fecs": "^1.6.4", + "fs-extra": "^9.0.1", + "nyc": "^15.1.0", + "pre-commit": "^1.2.2", + "rimraf": "^3.0.2", + "sw-precache": "^5.2.1", + "tap": "^14.10.7" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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" + } + } + } + }, + "hexo-pagination": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-pagination/-/hexo-pagination-1.0.0.tgz", + "integrity": "sha512-miEVFgxchPr2qNWxw0JWpJ9R/Yaf7HjHBZVjvCCcqfbsLyYtCvIfJDxcEwz1sDOC/fLzYPqNnhUI73uNxBHRSA==" + }, + "hexo-related-popular-posts": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hexo-related-popular-posts/-/hexo-related-popular-posts-4.0.0.tgz", + "integrity": "sha512-oudCAf8VjjQGwU/Q9BT5KkbvU5JGfC/Glz1hW+jUHTgYvo+oNQZ58IYTe4eVcJ8WeEhzPGT2AfEV7TsFRRfjWw==", + "requires": { + "cheerio": "^1.0.0-rc.2", + "columnify": "^1.5.4", + "ga-analytics": "^0.0.7", + "hasha": "^3.0.0", + "hexo-fs": "^0.2.2", + "kuromoji": "^0.1.1", + "log-util": "^1.2.0", + "mkdirp": "^0.5.1", + "moment": "^2.19.1" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "optional": true + } + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "^2.0.0" + } + }, + "hexo-fs": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hexo-fs/-/hexo-fs-0.2.3.tgz", + "integrity": "sha512-rLB1rMVUW3csAljvJgHfyjemL0BrmcUZfBf9hJe6S0pA53igFa3ON0PFwomvoLs1Wdmjs9Awnw9Tru4PjWFSlQ==", + "requires": { + "bluebird": "^3.4.0", + "chokidar": "^1.5.2", + "escape-string-regexp": "^1.0.5", + "graceful-fs": "^4.1.4" + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "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==" + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "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==" + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "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==" + } + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "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" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "hexo-renderer-ejs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-renderer-ejs/-/hexo-renderer-ejs-1.0.0.tgz", + "integrity": "sha512-O925i69FG4NYO62oWORcPhRZZX0sPx1SXGKUS5DaR/lzajyiXH5i2sqnkj0ya0rNLXIy/D7Xmt7WbFyuQx/kKQ==", + "requires": { + "ejs": "^2.6.1" + } + }, + "hexo-renderer-marked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hexo-renderer-marked/-/hexo-renderer-marked-2.0.0.tgz", + "integrity": "sha512-+LMjgPkJSUAOlWYHJnBXxUHwGqemGNlK/I+JNO4zA5rEHWNWZ9wNAZKd5g0lEVdMAZzAV54gCylXGURgMO4IAw==", + "requires": { + "hexo-util": "1.0.0", + "marked": "^0.7.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "hexo-util": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-util/-/hexo-util-1.0.0.tgz", + "integrity": "sha512-oV1/Y7ablc7e3d2kFFvQ/Ypi/BfL/uDSc1oNaMcxqr/UOH8F0QkHZ0Dmv+yLrEpFNYrrhBA0uavo3e+EqHNjnQ==", + "requires": { + "bluebird": "^3.5.2", + "camel-case": "^3.0.0", + "cross-spawn": "^6.0.5", + "highlight.js": "^9.13.1", + "html-entities": "^1.2.1", + "striptags": "^3.1.1" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "hexo-renderer-stylus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hexo-renderer-stylus/-/hexo-renderer-stylus-1.1.0.tgz", + "integrity": "sha512-aXfMuro2aQOvpM5pyPEModAPvqYi73VN4t37vGMQCbT0QTmw8YohEmUpO/G/1k6j88ong6344v+A0xrpUGQRnQ==", + "requires": { + "nib": "^1.1.2", + "stylus": "^0.54.5" + } + }, + "hexo-server": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-server/-/hexo-server-1.0.0.tgz", + "integrity": "sha512-eSY+a5oiGCG/3T6FrdrNRBkttMLJkM+oitY6ZMFowjcBiG2VNEhQmfWUDOykfvApZs4wPYBb//uXD/58tfe3mA==", + "requires": { + "bluebird": "^3.5.5", + "chalk": "^2.4.2", + "compression": "^1.7.4", + "connect": "^3.7.0", + "mime": "^2.4.3", + "morgan": "^1.9.1", + "open": "^6.3.0", + "serve-static": "^1.14.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "hexo-tag-aplayer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hexo-tag-aplayer/-/hexo-tag-aplayer-3.0.4.tgz", + "integrity": "sha512-r7Onb2MnV2KZUN/Lz6r4fs3Pi14EZtmWqtwK+NNS9pPiad9WRgmjgtY7eI2aY2aKT/bdSSIrGeni5AyG/v2EwA==", + "requires": { + "aplayer": "^1.10.0", + "babel-polyfill": "^6.16.0", + "hexo-fs": "^0.2.0", + "hexo-log": "^0.2.0", + "hexo-util": "^0.1.7", + "meting": "^1.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "optional": true + } + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "^2.0.0" + } + }, + "hexo-bunyan": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexo-bunyan/-/hexo-bunyan-1.0.0.tgz", + "integrity": "sha512-RymT8Ck+K77mLt9BEYNb4uyfC7RIQnU5N3laXowMrS28jj2h89VHJCOnhV00mmta4fHRqNa07kP1Hrn17nvMkQ==", + "requires": { + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" + } + }, + "hexo-fs": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hexo-fs/-/hexo-fs-0.2.3.tgz", + "integrity": "sha512-rLB1rMVUW3csAljvJgHfyjemL0BrmcUZfBf9hJe6S0pA53igFa3ON0PFwomvoLs1Wdmjs9Awnw9Tru4PjWFSlQ==", + "requires": { + "bluebird": "^3.4.0", + "chokidar": "^1.5.2", + "escape-string-regexp": "^1.0.5", + "graceful-fs": "^4.1.4" + } + }, + "hexo-log": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/hexo-log/-/hexo-log-0.2.0.tgz", + "integrity": "sha512-fzoc+GQexxPPILTjoOQILnA3ZG2MFgqMBVel4xvJ11pXptw9+f97ynTgDAExXafyp9Nz2ChXRuqlCYgPtZSlxQ==", + "requires": { + "chalk": "^1.1.1", + "hexo-bunyan": "^1.0.0" + } + }, + "hexo-util": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/hexo-util/-/hexo-util-0.1.7.tgz", + "integrity": "sha1-/chOG/IbGcTIaVQkWFqp8T7NY1M=", + "requires": { + "bluebird": "^2.6.2", + "ent": "^2.2.0", + "highlight.js": "^8.6.0" + }, + "dependencies": { + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + } + } + }, + "highlight.js": { + "version": "8.9.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-8.9.1.tgz", + "integrity": "sha1-uKnFSTISqTkvAiK2SclhFJfr+4g=" + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "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==" + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "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==" + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "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==" + } + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "hexo-util": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/hexo-util/-/hexo-util-1.8.1.tgz", + "integrity": "sha512-gzZmcdpYjG168xunWaxFAtNhBA7il6jeaSLxL2Mj7+XRg86RqZGCgHK00gI35aQvaUPKO3XLmWQl8QyN61fa5w==", + "requires": { + "bluebird": "^3.5.2", + "camel-case": "^4.0.0", + "cross-spawn": "^7.0.0", + "deepmerge": "^4.2.2", + "highlight.js": "^9.13.1", + "htmlparser2": "^4.0.0", + "punycode.js": "^2.1.0", + "striptags": "^3.1.1" + } + }, + "hexo-wordcount": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hexo-wordcount/-/hexo-wordcount-6.0.1.tgz", + "integrity": "sha512-tbo2P9xRWEKQmRf7+XuPjx9It1MnaE26nA+EEb2DN39gK1x+26W7Nm4Iyp4AugQjBWYYDx7OLn4gp1WFxQpQew==" + }, + "highlight.js": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.0.tgz", + "integrity": "sha512-A97kI1KAUzKoAiEoaGcf2O9YPS8nbDTCRFokaaeBhnqjQTvbAuAJrQMm21zw8s8xzaMtCQBtgbyGXLGxdxQyqQ==" + }, + "hoek": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", + "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "html-code-gen": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/html-code-gen/-/html-code-gen-0.4.0.tgz", + "integrity": "sha1-vmjsa2EJE71SPgOj+z2vU5ZfTN4=" + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "html-nest-rule": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/html-nest-rule/-/html-nest-rule-0.0.3.tgz", + "integrity": "sha512-7HHyRVCKm5f0iVsAx3CrLfH/VQIrVL0CAT0tRqpmSDz9i7v7puhJ3Rw1HdlF2UGmjAqmqyG7JCXKYADuWqWdwA==" + }, + "htmlcs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/htmlcs/-/htmlcs-0.3.0.tgz", + "integrity": "sha1-XgK3PST9zElt8UJDmk73/mPTLSs=", + "requires": { + "css-select": "^1.1.0", + "cssbeautify": "^0.3.1", + "differ-cli": "^0.3.0", + "domelementtype": "^1.1.3", + "exit": "^0.1.2", + "html-code-gen": "^0.4.0", + "html-nest-rule": "^0.0.3", + "htmlparser2": "^3.8.2", + "jformatter": "^1.0.13", + "manis": "^0.3.0", + "walk": "^2.3.9", + "yargs": "^3.29.0" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "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" + } + } + } + }, + "htmlparser2": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.0.0.tgz", + "integrity": "sha512-cChwXn5Vam57fyXajDtPXL1wTYc8JtLbr2TN76FYu05itVVVealxLowe2B3IEznJG4p9HAYn/0tJaRlGuEglFQ==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "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": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "optional": true + }, + "immutability-helper": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.9.1.tgz", + "integrity": "sha512-r/RmRG8xO06s/k+PIaif2r5rGc3j4Yhc01jSBfwPCXDLYZwp/yxralI37Df1mwmuzcCsen/E/ITKcTEvc1PQmQ==", + "requires": { + "invariant": "^2.2.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-1.2.2.tgz", + "integrity": "sha1-25m8xYPrarux5I3LsZmamGBBy2s=", + "requires": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } + } + }, + "internal-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", + "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", + "requires": { + "es-abstract": "^1.17.0-next.1", + "has": "^1.0.3", + "side-channel": "^1.0.2" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "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==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jackspeak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.0.tgz", + "integrity": "sha512-VDcSunT+wcccoG46FtzuBAyQKlzhHjli4q31e1fIHGOsRspqNUFjVzGb+7eIFDlTvqLygxapDHPHS0ouT2o/tw==", + "requires": { + "cliui": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "jformatter": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/jformatter/-/jformatter-1.0.13.tgz", + "integrity": "sha1-9Xi/64q4RUBs6Pev88V/0DcPl6E=", + "requires": { + "commander": "^2.5.0", + "differ-cli": "0.2.2", + "rocambole": "0.3.6" + }, + "dependencies": { + "differ-cli": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/differ-cli/-/differ-cli-0.2.2.tgz", + "integrity": "sha1-UW+xsYX0ukRr40w0G+OFUbYMe4Y=", + "requires": { + "cli-color": "^0.3.2", + "commander": "^2.3.0", + "q": "^1.0.1", + "universal-diff": "^2.0.1" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "rocambole": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/rocambole/-/rocambole-0.3.6.tgz", + "integrity": "sha1-Teu/WUMUS8e2AG2Vvo+swLdDUqc=", + "requires": { + "esprima": "~1.0" + } + } + } + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "optional": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "optional": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", + "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", + "requires": { + "array-includes": "^3.1.1", + "object.assign": "^4.1.0" + } + }, + "jwa": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.0.2.tgz", + "integrity": "sha1-/Xlgnx53Limdzo3bdtAGWd2DUR8=", + "requires": { + "base64url": "~0.0.4", + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "^1.0.0" + }, + "dependencies": { + "base64url": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-0.0.6.tgz", + "integrity": "sha1-lZezazMNscQkdzIuqH6oAnSZuCs=" + } + } + }, + "jws": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.0.0.tgz", + "integrity": "sha1-2l8meJfdTpz4E3l52zP8VKPAVBg=", + "requires": { + "base64url": "~1.0.4", + "jwa": "~1.0.0" + } + }, + "keyword-extractor": { + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/keyword-extractor/-/keyword-extractor-0.0.19.tgz", + "integrity": "sha512-DmDgxAyICtLfowsP6ElzcV8ctv/OhqrpED4EINrIE5kl46rtRDmN9Ab4NsUMoy7ULm8rxS46Fc/eHMlhD02HIg==", + "requires": { + "js-yaml": ">=3.13.1", + "kind-of": ">=6.0.3", + "minimist": ">=0.2.1", + "set-value": ">=2.0.1", + "underscore": "1.10.2", + "underscore.string": "3.3.5" + } + }, + "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==" + }, + "kuromoji": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/kuromoji/-/kuromoji-0.1.2.tgz", + "integrity": "sha512-V0dUf+C2LpcPEXhoHLMAop/bOht16Dyr+mDiIE39yX3vqau7p80De/koFqpiTcL1zzdZlc3xuHZ8u5gjYRfFaQ==", + "requires": { + "async": "^2.0.1", + "doublearray": "0.0.2", + "zlibjs": "^0.3.1" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lcov-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", + "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=" + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "less": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", + "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "2.81.0", + "source-map": "^0.5.3" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "optional": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "optional": true, + "requires": { + "boom": "2.x.x" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "optional": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "optional": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "optional": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "optional": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "optional": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "optional": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "optional": true, + "requires": { + "punycode": "^1.4.1" + } + } + } + }, + "lesslint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lesslint/-/lesslint-1.0.4.tgz", + "integrity": "sha512-N1bNjmA19oWpAwiP4uuT1zFYGRM3QI6RQDuIxD/ftpUEIPqS/rYZ2AgTQocscdU7yZHPdurD4c2ZoSxPrJMNQQ==", + "requires": { + "chalk": "^1.1.3", + "edp-core": "^1.0.32", + "js-yaml": "^3.6.1", + "less": "^2.7.1", + "manis": "^0.3.0", + "postcss": "^5.2.0", + "postcss-less": "^0.14.0", + "postcss-values-parser": "^0.1.7", + "strip-json-comments": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" + }, + "log-util": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/log-util/-/log-util-1.2.0.tgz", + "integrity": "sha1-H2XbHzYEGPrUsebKFsCww5r+w6c=", + "requires": { + "chalk": "^1.1.3", + "dateformat": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loophole": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loophole/-/loophole-1.1.0.tgz", + "integrity": "sha1-N5Sf6kU7YlasxyXDIM4MWn9wor0=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "requires": { + "tslib": "^1.10.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "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" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "requires": { + "es5-ext": "~0.10.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "manis": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/manis/-/manis-0.3.5.tgz", + "integrity": "sha512-HsogI9mX4iJm02vNjIiOfHMCpNDWY7v5f7w5BH0lA3RtqnLxPQgOOQuNjl47spcLa1w5eNHmrUDLNZbuaGfOhQ==", + "requires": { + "js-yaml": "^3.5.1", + "strip-json-comments": "^2.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz", + "integrity": "sha1-KCBbVlqK51kt4gdGPWY33BgnIrI=", + "requires": { + "nopt": "~2.1.1" + } + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + }, + "memoizee": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz", + "integrity": "sha1-TsoNiu057J0Bf0xcLy9kMvQuXI8=", + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.11", + "es6-weak-map": "~0.1.4", + "event-emitter": "~0.3.4", + "lru-queue": "0.1", + "next-tick": "~0.2.2", + "timers-ext": "0.1" + }, + "dependencies": { + "next-tick": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz", + "integrity": "sha1-ddpKkn7liH45BliABltzNkE7MQ0=" + } + } + }, + "meow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-2.0.0.tgz", + "integrity": "sha1-j1MKjs9dQNP0tN+Tw0cpAPuiqPE=", + "requires": { + "camelcase-keys": "^1.0.0", + "indent-string": "^1.1.0", + "minimist": "^1.1.0", + "object-assign": "^1.0.0" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "meting": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/meting/-/meting-1.2.0.tgz", + "integrity": "sha512-cbLMWG6Smx1X8IoBvsk0lf2ZkYdWKF07Lsq5AyoNZFLKxge+ZslQSRWn3JCihIqW1Uwr8AZ+i/w8wQznuBJUOQ==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "requires": { + "mime-db": "1.43.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "min-indent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", + "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + }, + "moment-timezone": { + "version": "0.5.27", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.27.tgz", + "integrity": "sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw==", + "requires": { + "moment": ">= 2.9.0" + } + }, + "morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "requires": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + } + }, + "mout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/mout/-/mout-1.2.2.tgz", + "integrity": "sha512-w0OUxFEla6z3d7sVpMZGBCpQvYh8PHS1wZ6Wu9GNKHMpAHWJ0if0LsQZh3DlOqw55HlhJEOMLpFnwtxp99Y5GA==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "msee": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/msee/-/msee-0.3.5.tgz", + "integrity": "sha512-4ujQAsunNBX8AVN6nyiIj4jW3uHQsY3xpFVKTzbjKiq57C6GXh0h12qYehXwLYItmhpgWRB3W8PnzODKWxwXxA==", + "requires": { + "ansi-regex": "^3.0.0", + "ansicolors": "^0.3.2", + "cardinal": "^1.0.0", + "chalk": "^2.3.1", + "combined-stream-wait-for-it": "^1.1.0", + "entities": "^1.1.1", + "marked": "0.3.12", + "nopt": "^4.0.1", + "strip-ansi": "^4.0.0", + "table-header": "^0.2.2", + "text-table": "^0.2.0", + "through2": "^2.0.3", + "wcstring": "^2.1.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "marked": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", + "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", + "optional": true, + "requires": { + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" + } + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "optional": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "nested-error-stacks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", + "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nib": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/nib/-/nib-1.1.2.tgz", + "integrity": "sha1-amnt5AgblcDe+L4CSkyK4MLLtsc=", + "requires": { + "stylus": "0.54.5" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "requires": { + "amdefine": ">=0.0.4" + } + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "requires": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + } + } + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "requires": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "node-fingerprint": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-fingerprint/-/node-fingerprint-0.0.2.tgz", + "integrity": "sha1-Mcur63GmeufdWn3AQuUcPHWGhQE=" + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-polyglot": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/node-polyglot/-/node-polyglot-2.2.2.tgz", + "integrity": "sha1-Gj921zkvg26ggjg27egX5upuwmw=", + "requires": { + "for-each": "^0.3.2", + "has": "^1.0.1", + "string.prototype.trim": "^1.1.2", + "warning": "^3.0.0" + } + }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "nopt": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", + "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "requires": { + "once": "^1.3.2" + } + }, + "npm-path": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-1.1.0.tgz", + "integrity": "sha1-BHSuAEGcMn1UcBt88s0F3Ii+EUA=", + "requires": { + "which": "^1.2.4" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "npm-run": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-run/-/npm-run-3.0.0.tgz", + "integrity": "sha1-Vokg+ECpj9jiKZ22ayYW4kdsr2k=", + "requires": { + "minimist": "^1.1.1", + "npm-path": "^1.0.1", + "npm-which": "^2.0.0", + "serializerr": "^1.0.1", + "sync-exec": "^0.6.2" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + } + } + }, + "npm-which": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-2.0.0.tgz", + "integrity": "sha1-DEaYIWC3gwk2YdHQG9RJbS/qu6w=", + "requires": { + "commander": "^2.2.0", + "npm-path": "^1.0.0", + "which": "^1.0.5" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nunjucks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.0.tgz", + "integrity": "sha512-YS/qEQ6N7qCnUdm6EoYRBfJUdWNT0PpKbbRnogV2XyXbBm2STIP1O6yrdZHgwMVK7fIYUx7i8+yatEixnXSB1w==", + "requires": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "chokidar": "^2.0.0", + "yargs": "^3.32.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "optional": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "dependencies": { + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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==" + }, + "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" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + } + } + }, + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-1.0.0.tgz", + "integrity": "sha1-5l3Idm07R7S4MHRlyDEdoDCwcKY=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==" + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + } + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "requires": { + "readable-stream": "^2.0.1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "own-or": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", + "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=" + }, + "own-or-env": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.1.tgz", + "integrity": "sha512-y8qULRbRAlL6x2+M0vIe7jJbJx/kmUTzYonRAa2ayesR2qWLswninkVyeJe4x3IEXhdgoNodzjQRKAoEs6Fmrw==", + "requires": { + "own-or": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "dependencies": { + "hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + } + } + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "requires": { + "@types/node": "*" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-3.0.2.tgz", + "integrity": "sha512-c5CgUJq6H2k6MJz72Ak1F5sN9n9wlSlJyEnwvpm9/y3WB4E3pHBDT2c6PEiS1vyJvq2bUxUAIu0EGf8Cx4Ic7Q==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-less": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-0.14.0.tgz", + "integrity": "sha1-xjGwicbM5CK5oQ86lY0r7dOBkyQ=", + "requires": { + "postcss": "^5.0.21" + } + }, + "postcss-values-parser": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-0.1.8.tgz", + "integrity": "sha1-bfssYGtyuRlvh/MqcXwj4x0BNQw=", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "pre-commit": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", + "integrity": "sha1-287g7p3nI15X95xW186UZBpp7sY=", + "requires": { + "cross-spawn": "^5.0.1", + "spawn-sync": "^1.0.15", + "which": "1.2.x" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "preact": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.1.0.tgz", + "integrity": "sha1-8DW4CO67dORtViRrAsoPGQttZXQ=" + }, + "preact-compat": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/preact-compat/-/preact-compat-3.16.0.tgz", + "integrity": "sha1-zyvBsvj8oUkA1oCU+eELizKcxB4=", + "requires": { + "immutability-helper": "^2.1.2", + "preact-render-to-string": "^3.6.0", + "preact-transition-group": "^1.1.0", + "prop-types": "^15.5.8", + "standalone-react-addons-pure-render-mixin": "^0.1.1" + } + }, + "preact-render-to-string": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-3.8.2.tgz", + "integrity": "sha512-przuZPajiurStGgxMoJP0EJeC4xj5CgHv+M7GfF3YxAdhGgEWAkhOSE0xympAFN20uMayntBZpttIZqqLl77fw==", + "requires": { + "pretty-format": "^3.5.1" + } + }, + "preact-transition-group": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/preact-transition-group/-/preact-transition-group-1.1.1.tgz", + "integrity": "sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" + }, + "pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=" + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "prismjs": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz", + "integrity": "sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==", + "requires": { + "clipboard": "^2.0.0" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "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==" + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "requires": { + "fromentries": "^1.2.0" + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-polyfill": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-7.1.0.tgz", + "integrity": "sha512-P6NJ2wU/8fac44ENORsuqT8TiolKGB2u0fEClPtXezn7w5cmLIjM/7mhPlTebke2EPr6tmqZbXvnX0TxwykGrg==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "protochain": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/protochain/-/protochain-1.0.5.tgz", + "integrity": "sha1-mRxAfpneJkqt+PgVBLXn+ve/omA=" + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "optional": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "punycode.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.1.0.tgz", + "integrity": "sha512-LvGUJ9QHiESLM4yn8JuJWicstRcJKRmP46psQw1HvCZ9puLFwYMKJWvkAkP3OHBVzNzZGx/D53EYJrIaKd9gZQ==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "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==" + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "react-flip-move": { + "version": "2.9.14", + "resolved": "https://registry.npmjs.org/react-flip-move/-/react-flip-move-2.9.14.tgz", + "integrity": "sha1-O2DkRJOku+EVqMPWeLhEd2u6tFM=" + }, + "react-is": { + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz", + "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^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" + } + }, + "readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "requires": { + "picomatch": "^2.0.7" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "redeyed": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", + "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", + "requires": { + "esprima": "~3.0.0" + }, + "dependencies": { + "esprima": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", + "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=" + } + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==" + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "^1.0.1" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "requires": { + "es6-error": "^4.0.1" + } + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + } + } + }, + "reserved-words": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", + "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=" + }, + "resolve": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", + "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "requires": { + "value-or-function": "^3.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "optional": true, + "requires": { + "glob": "^6.0.1" + } + }, + "rocambole": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rocambole/-/rocambole-0.7.0.tgz", + "integrity": "sha1-9seVBVF9xCtvuECEK4uVOw+WhYU=", + "requires": { + "esprima": "^2.1" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" + } + } + }, + "rocambole-indent": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/rocambole-indent/-/rocambole-indent-2.0.4.tgz", + "integrity": "sha1-oYokl3ygQAuGHapGMehh3LUtCFw=", + "requires": { + "debug": "^2.1.3", + "mout": "^0.11.0", + "rocambole-token": "^1.2.1" + }, + "dependencies": { + "mout": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", + "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=" + } + } + }, + "rocambole-linebreak": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/rocambole-linebreak/-/rocambole-linebreak-1.0.2.tgz", + "integrity": "sha1-A2IVFbQ7RyHJflocG8paA2Y2jy8=", + "requires": { + "debug": "^2.1.3", + "rocambole-token": "^1.2.1", + "semver": "^4.3.1" + }, + "dependencies": { + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" + } + } + }, + "rocambole-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rocambole-node/-/rocambole-node-1.0.0.tgz", + "integrity": "sha1-21tJ3nQHsAgN1RSHLyjjk9D3/z8=" + }, + "rocambole-token": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rocambole-token/-/rocambole-token-1.2.1.tgz", + "integrity": "sha1-x4XfdCjcPLJ614lwR71SOMwHDTU=" + }, + "rocambole-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rocambole-whitespace/-/rocambole-whitespace-1.0.0.tgz", + "integrity": "sha1-YzMJSSVrKZQfWbGQRZ+ZnGsdO/k=", + "requires": { + "debug": "^2.1.3", + "repeat-string": "^1.5.0", + "rocambole-token": "^1.2.1" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "requires": { + "rx-lite": "*" + } + }, + "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==" + }, + "safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=" + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "^5.0.3" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serializerr": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/serializerr/-/serializerr-1.0.3.tgz", + "integrity": "sha1-EtTFqhw/+49tHcXzlaqUVVacP5E=", + "requires": { + "protochain": "^1.0.5" + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "serviceworker-cache-polyfill": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz", + "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", + "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "requires": { + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "requires": { + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + } + } + }, + "smoothscroll": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/smoothscroll/-/smoothscroll-0.4.0.tgz", + "integrity": "sha512-sggQ3U2Un38b3+q/j1P4Y4fCboCtoUIaBYoge+Lb6Xg1H8RTIif/hugVr+ErMtIDpvBbhQfTjtiTeYAfbw1ZGQ==" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sntp": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", + "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=", + "requires": { + "hoek": "0.9.x" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", + "requires": { + "concat-stream": "^1.4.7", + "os-shim": "^0.1.2" + } + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "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" + } + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" + }, + "standalone-react-addons-pure-render-mixin": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz", + "integrity": "sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stdin": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/stdin/-/stdin-0.0.1.tgz", + "integrity": "sha1-0wQZgarsPf28d6GzjWNy449ftx4=" + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "string.prototype.matchall": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", + "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2" + } + }, + "string.prototype.trim": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz", + "integrity": "sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + } + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "striptags": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.1.1.tgz", + "integrity": "sha1-yMPn/db7S7OjKjt1LltePjgJPr0=" + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "requires": { + "css": "^2.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "sw-precache": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/sw-precache/-/sw-precache-5.2.1.tgz", + "integrity": "sha512-8FAy+BP/FXE+ILfiVTt+GQJ6UEf4CVHD9OfhzH0JX+3zoy2uFk7Vn9EfXASOtVmmIVbL3jE/W8Z66VgPSZcMhw==", + "requires": { + "dom-urls": "^1.1.0", + "es6-promise": "^4.0.5", + "glob": "^7.1.1", + "lodash.defaults": "^4.2.0", + "lodash.template": "^4.4.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "pretty-bytes": "^4.0.2", + "sw-toolbox": "^3.4.0", + "update-notifier": "^2.3.0" + }, + "dependencies": { + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } + }, + "sw-toolbox": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/sw-toolbox/-/sw-toolbox-3.6.0.tgz", + "integrity": "sha1-Jt8dHHA0hljk3qKIQxkUm3sxg7U=", + "requires": { + "path-to-regexp": "^1.0.1", + "serviceworker-cache-polyfill": "^4.0.0" + } + }, + "swig-extras": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/swig-extras/-/swig-extras-0.0.1.tgz", + "integrity": "sha1-tQP+3jcqucJMasaMr2VrzvGHIyg=", + "requires": { + "markdown": "~0.5.0" + } + }, + "swig-templates": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/swig-templates/-/swig-templates-2.0.3.tgz", + "integrity": "sha512-QojPTuZWdpznSZWZDB63/grsZuDwT/7geMeGlftbJXDoYBIZEnTcKvz4iwYDv3SwfPX9/B4RtGRSXNnm3S2wwg==", + "requires": { + "optimist": "~0.6", + "uglify-js": "2.6.0" + } + }, + "sync-exec": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz", + "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=" + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } + } + }, + "table-header": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/table-header/-/table-header-0.2.2.tgz", + "integrity": "sha1-fJrbQg6laftHF95dj1xFFIBNLAo=", + "requires": { + "repeat-string": "^1.5.2" + } + }, + "tap": { + "version": "14.10.8", + "resolved": "https://registry.npmjs.org/tap/-/tap-14.10.8.tgz", + "integrity": "sha512-aamkWefJ0G8GGf9t5LWFtrNF5tfVd8ut/tDUianLF6N4621ERITIl0qkocWCVEnsM6hZnaMKa+SggSAaBlC2tA==", + "requires": { + "@types/react": "^16.9.16", + "async-hook-domain": "^1.1.3", + "bind-obj-methods": "^2.0.0", + "browser-process-hrtime": "^1.0.0", + "chokidar": "^3.3.0", + "color-support": "^1.1.0", + "coveralls": "^3.0.11", + "diff": "^4.0.1", + "esm": "^3.2.25", + "findit": "^2.0.0", + "flow-remove-types": "^2.112.0", + "foreground-child": "^1.3.3", + "fs-exists-cached": "^1.0.0", + "function-loop": "^1.0.2", + "glob": "^7.1.6", + "import-jsx": "^3.1.0", + "ink": "^2.6.0", + "isexe": "^2.0.0", + "istanbul-lib-processinfo": "^1.0.0", + "jackspeak": "^1.4.0", + "minipass": "^3.1.1", + "mkdirp": "^0.5.4", + "nyc": "^14.1.1", + "opener": "^1.5.1", + "own-or": "^1.0.0", + "own-or-env": "^1.0.1", + "react": "^16.12.0", + "rimraf": "^2.7.1", + "signal-exit": "^3.0.0", + "source-map-support": "^0.5.16", + "stack-utils": "^1.0.2", + "tap-mocha-reporter": "^5.0.0", + "tap-parser": "^10.0.1", + "tap-yaml": "^1.0.0", + "tcompare": "^3.0.0", + "treport": "^1.0.2", + "trivial-deferred": "^1.0.1", + "ts-node": "^8.5.2", + "typescript": "^3.7.2", + "which": "^2.0.2", + "write-file-atomic": "^3.0.1", + "yaml": "^1.7.2", + "yapool": "^1.0.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/core": { + "version": "7.10.5", + "bundled": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.5", + "@babel/types": "^7.10.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "bundled": true + } + } + }, + "@babel/generator": { + "version": "7.10.5", + "bundled": true, + "requires": { + "@babel/types": "^7.10.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "bundled": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.10.5", + "bundled": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/types": "^7.10.5" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.10.5", + "bundled": true, + "requires": { + "@babel/types": "^7.10.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.10.5", + "bundled": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "bundled": true + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "bundled": true + }, + "@babel/helpers": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.5", + "bundled": true + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "bundled": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.5", + "bundled": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.10.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "bundled": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.10.5", + "bundled": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.10.5", + "bundled": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@types/color-name": { + "version": "1.1.1", + "bundled": true + }, + "@types/prop-types": { + "version": "15.7.3", + "bundled": true + }, + "@types/react": { + "version": "16.9.43", + "bundled": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/yoga-layout": { + "version": "1.9.2", + "bundled": true + }, + "ansi-escapes": { + "version": "4.3.1", + "bundled": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "bundled": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true + }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "arrify": { + "version": "2.0.1", + "bundled": true + }, + "astral-regex": { + "version": "2.0.0", + "bundled": true + }, + "auto-bind": { + "version": "4.0.0", + "bundled": true + }, + "caching-transform": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", + "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "requires": { + "hasha": "^3.0.0", + "make-dir": "^2.0.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.4.2" + }, + "dependencies": { + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + } + } + }, + "caller-callsite": { + "version": "2.0.0", + "bundled": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "bundled": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cardinal": { + "version": "2.1.1", + "bundled": true, + "requires": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + } + }, + "chalk": { + "version": "2.4.2", + "bundled": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "ci-info": { + "version": "2.0.0", + "bundled": true + }, + "cli-cursor": { + "version": "3.1.0", + "bundled": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "bundled": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "bundled": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true + }, + "convert-source-map": { + "version": "1.7.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true + } + } + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "csstype": { + "version": "2.6.11", + "bundled": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "requires": { + "ms": "^2.1.1" + } + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "requires": { + "strip-bom": "^3.0.0" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "emoji-regex": { + "version": "8.0.0", + "bundled": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true + }, + "esprima": { + "version": "4.0.1", + "bundled": true + }, + "events-to-array": { + "version": "1.1.2", + "bundled": true + }, + "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==", + "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==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.1", + "bundled": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "11.12.0", + "bundled": true + }, + "has-flag": { + "version": "3.0.0", + "bundled": true + }, + "import-jsx": { + "version": "3.1.0", + "bundled": true, + "requires": { + "@babel/core": "^7.5.5", + "@babel/plugin-proposal-object-rest-spread": "^7.5.5", + "@babel/plugin-transform-destructuring": "^7.5.0", + "@babel/plugin-transform-react-jsx": "^7.3.0", + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "ink": { + "version": "2.7.1", + "bundled": true, + "requires": { + "ansi-escapes": "^4.2.1", + "arrify": "^2.0.1", + "auto-bind": "^4.0.0", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "is-ci": "^2.0.0", + "lodash.throttle": "^4.1.1", + "log-update": "^3.0.0", + "prop-types": "^15.6.2", + "react-reconciler": "^0.24.0", + "scheduler": "^0.18.0", + "signal-exit": "^3.0.2", + "slice-ansi": "^3.0.0", + "string-length": "^3.1.0", + "widest-line": "^3.1.0", + "wrap-ansi": "^6.2.0", + "yoga-layout-prebuilt": "^1.9.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "bundled": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "bundled": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "bundled": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "bundled": true + }, + "has-flag": { + "version": "4.0.0", + "bundled": true + }, + "supports-color": { + "version": "7.1.0", + "bundled": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-ci": { + "version": "2.0.0", + "bundled": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "bundled": true + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==" + }, + "istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "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==" + } + } + }, + "istanbul-lib-processinfo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-1.0.0.tgz", + "integrity": "sha512-FY0cPmWa4WoQNlvB8VOcafiRoB5nB+l2Pz2xGuXHRSy1KM8QFOYfz/rN+bGMCAeejrY3mrpF5oJHcN0s/garCg==", + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^6.0.5", + "istanbul-lib-coverage": "^2.0.3", + "rimraf": "^2.6.3", + "uuid": "^3.3.2" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "requires": { + "html-escaper": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "bundled": true + }, + "jsesc": { + "version": "2.5.2", + "bundled": true + }, + "json5": { + "version": "2.1.3", + "bundled": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "bundled": true + }, + "lodash.throttle": { + "version": "4.1.1", + "bundled": true + }, + "log-update": { + "version": "3.4.0", + "bundled": true, + "requires": { + "ansi-escapes": "^3.2.0", + "cli-cursor": "^2.1.0", + "wrap-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "bundled": true + }, + "ansi-regex": { + "version": "4.1.0", + "bundled": true + }, + "cli-cursor": { + "version": "2.1.0", + "bundled": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + }, + "mimic-fn": { + "version": "1.2.0", + "bundled": true + }, + "onetime": { + "version": "2.0.1", + "bundled": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "bundled": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "bundled": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + } + } + }, + "loose-envify": { + "version": "1.4.0", + "bundled": true, + "requires": { + "js-tokens": "^3.0.0 || ^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==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "bundled": true + }, + "minimist": { + "version": "1.2.5", + "bundled": true + }, + "minipass": { + "version": "3.1.3", + "bundled": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "bundled": true + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true + }, + "nyc": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", + "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", + "requires": { + "archy": "^1.0.0", + "caching-transform": "^3.0.2", + "convert-source-map": "^1.6.0", + "cp-file": "^6.2.0", + "find-cache-dir": "^2.1.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.4", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.2.3", + "uuid": "^3.3.2", + "yargs": "^13.2.2", + "yargs-parser": "^13.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + } + } + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "onetime": { + "version": "5.1.0", + "bundled": true, + "requires": { + "mimic-fn": "^2.1.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==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "package-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", + "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "bundled": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "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==", + "requires": { + "find-up": "^3.0.0" + } + }, + "prop-types": { + "version": "15.7.2", + "bundled": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "punycode": { + "version": "2.1.1", + "bundled": true + }, + "react-is": { + "version": "16.13.1", + "bundled": true + }, + "react-reconciler": { + "version": "0.24.0", + "bundled": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.18.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "redeyed": { + "version": "2.1.1", + "bundled": true, + "requires": { + "esprima": "~4.0.0" + } + }, + "resolve": { + "version": "1.17.0", + "bundled": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "3.0.0", + "bundled": true + }, + "restore-cursor": { + "version": "3.1.0", + "bundled": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "scheduler": { + "version": "0.18.0", + "bundled": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "5.7.1", + "bundled": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "signal-exit": { + "version": "3.0.3", + "bundled": true + }, + "slice-ansi": { + "version": "3.0.0", + "bundled": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "bundled": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "bundled": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "bundled": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "spawn-wrap": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", + "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "string-length": { + "version": "3.1.0", + "bundled": true, + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^5.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true + }, + "astral-regex": { + "version": "1.0.0", + "bundled": true + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string-width": { + "version": "4.2.0", + "bundled": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "bundled": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "supports-color": { + "version": "5.5.0", + "bundled": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tap-parser": { + "version": "10.0.1", + "bundled": true, + "requires": { + "events-to-array": "^1.0.1", + "minipass": "^3.0.0", + "tap-yaml": "^1.0.0" + } + }, + "tap-yaml": { + "version": "1.0.0", + "bundled": true, + "requires": { + "yaml": "^1.5.0" + } + }, + "test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "requires": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "bundled": true + }, + "treport": { + "version": "1.0.2", + "bundled": true, + "requires": { + "cardinal": "^2.1.1", + "chalk": "^3.0.0", + "import-jsx": "^3.1.0", + "ink": "^2.6.0", + "ms": "^2.1.2", + "string-length": "^3.1.0", + "tap-parser": "^10.0.1", + "unicode-length": "^2.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "bundled": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "bundled": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "bundled": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "bundled": true + }, + "has-flag": { + "version": "4.0.0", + "bundled": true + }, + "supports-color": { + "version": "7.1.0", + "bundled": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "type-fest": { + "version": "0.11.0", + "bundled": true + }, + "unicode-length": { + "version": "2.0.2", + "bundled": true, + "requires": { + "punycode": "^2.0.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "widest-line": { + "version": "3.1.0", + "bundled": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "bundled": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "bundled": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "bundled": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "bundled": true + } + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yaml": { + "version": "1.10.0", + "bundled": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yoga-layout-prebuilt": { + "version": "1.9.6", + "bundled": true, + "requires": { + "@types/yoga-layout": "1.9.2" + } + } + } + }, + "tap-mocha-reporter": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-5.0.1.tgz", + "integrity": "sha512-1knFWOwd4khx/7uSEnUeaP9IPW3w+sqTgJMhrwah6t46nZ8P25atOKAjSvVDsT67lOPu0nfdOqUwoyKn+3E5pA==", + "requires": { + "color-support": "^1.1.0", + "debug": "^4.1.1", + "diff": "^4.0.1", + "escape-string-regexp": "^2.0.0", + "glob": "^7.0.5", + "tap-parser": "^10.0.0", + "tap-yaml": "^1.0.0", + "unicode-length": "^2.0.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "tap-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-10.1.0.tgz", + "integrity": "sha512-FujQeciDaOiOvaIVGS1Rpb0v4R6XkOjvWCWowlz5oKuhPkEJ8U6pxgqt38xuzYhPt8dWEnfHn2jqpZdJEkW7pA==", + "requires": { + "events-to-array": "^1.0.1", + "minipass": "^3.0.0", + "tap-yaml": "^1.0.0" + } + }, + "tap-yaml": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.0.tgz", + "integrity": "sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ==", + "requires": { + "yaml": "^1.5.0" + } + }, + "tcompare": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-3.0.4.tgz", + "integrity": "sha512-Q3TitMVK59NyKgQyFh+857wTAUE329IzLDehuPgU4nF5e8g+EUQ+yUbjUy1/6ugiNnXztphT+NnqlCXolv9P3A==", + "requires": { + "diff-frag": "^1.0.1" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "optional": true + }, + "titlecase": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/titlecase/-/titlecase-1.1.3.tgz", + "integrity": "sha512-pQX4oiemzjBEELPqgK4WE+q0yhAqjp/yzusGtlSJsOuiDys0RQxggepYmo0BuegIDppYS3b3cpdegRwkpyN3hw==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "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==", + "requires": { + "is-number": "^7.0.0" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "requires": { + "through2": "^2.0.3" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "trivial-deferred": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz", + "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=" + }, + "ts-node": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + } + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==" + }, + "uglify-js": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.0.tgz", + "integrity": "sha1-JeqhzDVQ45QQzu+v0c+7a20V8AE=", + "requires": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=" + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + }, + "underscore.string": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, + "unicode-length": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.0.2.tgz", + "integrity": "sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==", + "requires": { + "punycode": "^2.0.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universal-diff": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/universal-diff/-/universal-diff-2.0.2.tgz", + "integrity": "sha1-0Ud/U7MUYT1oNXFnRs9OwRMSeh4=" + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquoted-property-validator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unquoted-property-validator/-/unquoted-property-validator-1.1.0.tgz", + "integrity": "sha512-ZWeQoYZ7HN8DCLeaowNv2GvZIXqJptKB1uUWd08ZYc1qAmJt8tXh9nck26aoYmhJtE3jCjDqdqEfUTqcJ0R7bw==" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urijs": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.2.tgz", + "integrity": "sha512-s/UIq9ap4JPZ7H1EB5ULo/aOUbWqfDi7FKzMC2Nz+0Si8GiT1rIEaprt8hy3Vy2Ex2aJPpOQv4P4DuOZ+K1c6w==" + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "^1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" + }, + "varsize-string": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/varsize-string/-/varsize-string-2.2.2.tgz", + "integrity": "sha1-7xs7bHLbCDXqL4TN+R/sMMUgaIs=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + }, + "vow": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.19.tgz", + "integrity": "sha512-S+0+CiQlbUhTNWMlJdqo/ARuXOttXdvw5ACGyh1W97NFHUdwt3Fzyaus03Kvdmo733dwnYS9AGJSDg0Zu8mNfA==" + }, + "vow-fs": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.6.tgz", + "integrity": "sha1-LUxZviLivyYY3fWXq0uqkjvnIA0=", + "requires": { + "glob": "^7.0.5", + "uuid": "^2.0.2", + "vow": "^0.4.7", + "vow-queue": "^0.4.1" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" + } + } + }, + "vow-queue": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.3.tgz", + "integrity": "sha512-/poAKDTFL3zYbeQg7cl4BGcfP4sGgXKrHnRFSKj97dteUFu8oyXMwIcdwu8NSx/RmPGIuYx1Bik/y5vU4H/VKw==", + "requires": { + "vow": "^0.4.17" + } + }, + "walk": { + "version": "2.3.14", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", + "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", + "requires": { + "foreachasync": "^3.0.0" + } + }, + "warehouse": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/warehouse/-/warehouse-3.0.2.tgz", + "integrity": "sha512-NTaUFkDcRKFx477NflL3doMhnmPobpL+uF66s0ozAhjob+UCHcOzE77GvYR1sjyu+LR4SstPz3xGxYLOKQCvMg==", + "requires": { + "JSONStream": "^1.0.7", + "bluebird": "^3.2.2", + "cuid": "^2.1.4", + "graceful-fs": "^4.1.3", + "is-plain-object": "^3.0.0", + "rfdc": "^1.1.4" + }, + "dependencies": { + "is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "requires": { + "isobject": "^4.0.0" + } + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + } + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "wcsize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wcsize/-/wcsize-1.0.0.tgz", + "integrity": "sha1-qKLhXmqKdHkdulgPaaV9J+hQ6h4=" + }, + "wcstring": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/wcstring/-/wcstring-2.1.1.tgz", + "integrity": "sha1-3tUtdFycceJNCkidKCbSKjZe0Gc=", + "requires": { + "varsize-string": "^2.2.1", + "wcsize": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" + }, + "yapool": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz", + "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=" + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, + "zlibjs": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz", + "integrity": "sha1-UBl+2yihxCymWcyLTmqd3W1ERVQ=" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ebcaeda --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "hexo-site", + "version": "0.0.0", + "private": true, + "scripts": { + "build": "hexo generate", + "clean": "hexo clean", + "deploy": "hexo deploy", + "server": "hexo server" + }, + "hexo": { + "version": "4.2.0" + }, + "dependencies": { + "gitalk": "^1.6.2", + "hexo": "^4.0.0", + "hexo-autonofollow": "^1.0.1", + "hexo-baidu-url-submit": "0.0.6", + "hexo-deployer-git": "^2.1.0", + "hexo-generator-archive": "^1.0.0", + "hexo-generator-baidu-sitemap": "^0.1.6", + "hexo-generator-category": "^1.0.0", + "hexo-generator-feed": "^2.2.0", + "hexo-generator-index": "^1.0.0", + "hexo-generator-json-content": "^4.2.3", + "hexo-generator-search": "^2.4.0", + "hexo-generator-sitemap": "^2.0.0", + "hexo-generator-tag": "^1.0.0", + "hexo-offline": "^1.0.0", + "hexo-offline-popup": "^1.0.3", + "hexo-related-popular-posts": "^4.0.0", + "hexo-renderer-ejs": "^1.0.0", + "hexo-renderer-marked": "^2.0.0", + "hexo-renderer-stylus": "^1.1.0", + "hexo-server": "^1.0.0", + "hexo-tag-aplayer": "^3.0.4", + "hexo-wordcount": "^6.0.1" + } +} diff --git a/scaffolds/draft.md b/scaffolds/draft.md new file mode 100644 index 0000000..498e95b --- /dev/null +++ b/scaffolds/draft.md @@ -0,0 +1,4 @@ +--- +title: {{ title }} +tags: +--- diff --git a/scaffolds/page.md b/scaffolds/page.md new file mode 100644 index 0000000..f320cc7 --- /dev/null +++ b/scaffolds/page.md @@ -0,0 +1,8 @@ +--- +title: {{ title }} +date: {{ date }} +keywords: +description: +comments: false +photos: +--- diff --git a/source/2019-nCoV/index.html b/source/2019-nCoV/index.html new file mode 100644 index 0000000..1403b62 --- /dev/null +++ b/source/2019-nCoV/index.html @@ -0,0 +1,74 @@ + + + + 新冠肺炎实时疫情图 + + + + + +

+ 覃浩的博客   |   新冠肺炎实时疫情图(数据来源:百度疫情中心) +

+ +

+
+ +

+ + + + \ No newline at end of file diff --git a/source/ByteDanceVerify.html b/source/ByteDanceVerify.html new file mode 100644 index 0000000..33367d8 --- /dev/null +++ b/source/ByteDanceVerify.html @@ -0,0 +1 @@ +rfNaSas9uI7HA+yt2720 \ No newline at end of file diff --git a/source/CNAME b/source/CNAME new file mode 100644 index 0000000..04534b7 --- /dev/null +++ b/source/CNAME @@ -0,0 +1 @@ +www.zhengyuanyuan520.com \ No newline at end of file diff --git a/source/_posts/3G.md b/source/_posts/3G.md new file mode 100644 index 0000000..b80e6c9 --- /dev/null +++ b/source/_posts/3G.md @@ -0,0 +1,114 @@ +--- +title: 3G系统概述 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-07 11:25:00 +music: + enable: true + server: netease + type: song + id: 1411358329 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +3G系统概述学习笔记 + + + +## 什么是3G + +``` +3G是第三代移动通信技术,是指支持高速数据传输的蜂窝移动通讯技术。 +``` + +## 3G的主要特点 + +``` +- 全球普及和全球无缝漫游 +- 具有支持多媒体业务的能力,特别是支持Internet的能力 +- 便于过渡和演进 +- 高频谱利用率 +- 能够传送高达2Mbit/s的高质量图象 +``` + +## 3G的三大主流标准比较 + +| | WCDMA | cdma2000 | TD-SCDMA | +| ------------ | --------------- | ----------------- | -------------- | +| 最小带宽需求 | 5MHz | 3*1.25MHz | 1.6MHz | +| 双工方式 | FDD/TDD | FDD | TDD | +| 信道间隔 | 5MHz | 1.25/5MHz | 1.6MHz | +| 码片速率 | 3.84Mcps | 1.2288/3.6864Mcps | 1.28Mcps | +| 帧长 | 10ms | 20ms | 10ms | +| 基站间同步 | 异步(不需GPS) | 同步(需GPS) | 同步(主从同步) | +| 调制方式 | QPSK/BPSK | QPSK/BPSK | QPSK/8PSK | + +## WCDMA的组成 + +``` +WCDMA由核心网(CN)、UMTS陆地无线接入网(UTRAN)、用户设备(UE)三大部分组成 +``` + +## WCDMA关键网元 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307105839.png) + +### RNC + +``` +无线网络控制器(RNC)用于控制RAN的无线资源,主要功能有移动性管理、呼叫处理、链接管理、切换机制;逻辑位置上对应GSM网络中的基站控制器(BSC)。 +``` + +### Node B + +``` +Node B是WCDMA的基站(即无线收发信机),主要功能是扩频、调制、信道编码及解扩、解调、信道解码、还包括基带信号和射频信号的转化。 +``` + +### UE + +``` +3G网络中,用户终端就叫做UE,包含手机、智能终端、多媒体设备、流媒体设备等。 +``` + +### Iur接口 + +``` +是连接RNC之间的开放标准接口,用于对RAN中移动台的移动管理,支持软切换。 +``` + +## WCDMA切换 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307110322.png) + +### 软切换 + +``` +不同基站之间的切换先连接,再断开。 +``` + +### 更软切换 + +``` +可看做是软切换的特例,与软切换的区别是更软切换是同一个基站不同小区之间的切换。在更软切换区,同时和UE保持联系的两个小区属于同一NodeB。不需要RNC参与。 +``` + +### 硬切换 + +``` +先断开,再切换。 + +硬切换过程,在切换区,UE先中断和原服务小区的无线连接,再建立和新小区的连接。 + +注意在切换过程中,首先建立RNC到NodeB2的链路,然后先断开UE和NodeB1小区的连接(此时NodeB1到RNC的链路保留)再建立NodeB2小区到UE的连接,连接成功后,再断开NodeB1到RNC的连接。 + +在硬切换过程中,同一时刻,只有一个小区的UE连接。 +``` + diff --git "a/source/_posts/5G\347\275\221\347\273\234\344\274\230\345\214\226.md" "b/source/_posts/5G\347\275\221\347\273\234\344\274\230\345\214\226.md" new file mode 100644 index 0000000..2b06156 --- /dev/null +++ "b/source/_posts/5G\347\275\221\347\273\234\344\274\230\345\214\226.md" @@ -0,0 +1,202 @@ +--- +title: 5G网络优化 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.imqinhao.cn +categories: 通信技术 +date: 2020-10-01 10:00:00 +music: + type: song + id: 1481657185 +comments: true +--- + +5G覆盖指标定义 + +覆盖率 + +覆盖优化整体流程 + +NR覆盖类问题及优化方案 + + + +# 5G覆盖指标定义 + +## 广播信道 + +SS参考信号接收功率(SS-RSRP) :测量频段带宽上承载辅同步信号(SS) 的资源单元接收功率贡献的线性平均值; + +SS信噪比和干扰比(SS SINR)定义为”携带辅同步信号的资源单元的功率贡献的线性平均值”除以"在相同频率带宽内承载辅同步信号的资源单元的噪声和干扰功率的线性平均值”; + +## 业务信道 + +CSI参考信号接收功率(CSI-RSRP) 被定义为在所配置的CSI中在所考虑的测量频率带宽内承载用于RSRP测量的CSI参考信号的资源单元的功率贡献上的线性平均值; + +CSI信噪比和干扰比(CSI-SINR) 被定义为”携带CSI参考信号的资源单元的功率贡献的线性平均值”除以”携带CSI参考信号的资源单元在相同频率带宽内的参考信号的噪声和干扰功率的线性平均值”。 + +# 覆盖率 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009080953462.png) + +# NR和LTE的覆盖相关差异 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009081519659.png) + +# NR覆盖优化基础 + +## 覆盖优化的原则 + +1. 先优化SS-RSRP,后优化SS-SINR +2. 覆盖优化的两大关键任务:消除弱覆盖(保证SS-RSRP);净化切换带、消除交叉覆盖 +3. 优先优化弱覆盖、越区覆盖、再优化重叠覆盖 +4. 优先调整天线的下倾角、方位角、天线挂高和迁站及加站,最后考虑调整RS的发射功率和波束管理相关参数以及天线权值 + +# 覆盖优化整体流程 + +## 覆盖优化的流程 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009082637909.png) + +数据采集:通过不同的数据采集系统进行覆盖相关数据采集 + +数据分析:结合采集结果对数据进行综合分析,确定指标情况 + +原因分析:对存在覆盖问题的小区进行分析,并确定原因 + +方案制定:基于覆盖问题的原因,制定覆盖优化方案 + +方案实施:方案实施,并进行方案实施前后的评估 + +## 数据采集 + +覆盖指标的来源有哪些? + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009083312711.png) + +## 覆盖评估 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009083534560.png) + +## 覆盖类问题分析 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009083722471.png) + +## 覆盖问题原因 + +1. 故障问题 +2. 环境变化 +3. 新的需求 +4. 规划问题 +5. 施工问题 +6. 参数问题 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009083850079.png) + +### 故障问题 + +设备问题是指由于基站设备出现故障,导致无法提供服务,从而引起覆盖问题,一般表现为扫频仪或中断检测不到信号、信号弱等: + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009084029375.png) + +### 规划问题 + +规划问题也是影响覆盖问题的主要原因,规划偏差小的话可以通过优化解决,如果规划偏差大只能考虑新增站点,耗时耗力: + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009084421397.png) + +### 施工问题 + +施工问题,主要指在施工过程中没按照规划方案进行,如实际建设位置和规划位置有偏差、天馈基础参数设置和规划存在偏差等: + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009084831423.png) + +### 参数问题 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009085032588.png) + +### 无线环境 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009085143805.png) + +### 新增需求 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009085424820.png) + +## 覆盖优化的方案 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009085604425.png) + +# NR覆盖类问题及优化分析 + +## 覆盖类问题概述 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009085809348.png) + +## 弱覆盖问题分析 + +指标定义:弱覆盖是指在连片站点中间出现的完全没有NR信号的区域 + +UE终端的灵敏度一般为-124dBm,考虑部分商用终端与测试终端灵敏度的差异,预留5dB余量,覆盖空洞定义为RSRP < -119dBm的区域。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009090145488.png) + +## 弱覆盖原因及优化方案 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009090219993.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009090355034.png) + +## 越区覆盖定义 + +所谓孤岛效应就是在无线通信系统中,因为复杂的无线环境,无线信号经过山脉、建筑物、以及大气层的发射、折射,或基站安装位置过高,以及波导效应等原因,弓|起在远离本小区覆盖的区域外形成-个强场区域,如图所示: + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009090536376.png) + +## 越区覆盖影响 + +由于这个区域超出其实际覆盖范围,往往这一-区域没有和周围小区配备邻区关系,形成孤岛,对A小区产生干扰,或在孤岛区域起呼的UE无法切换到A小区,产生掉话。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009090803666.png) + +## 越区覆盖原因及优化措施 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009090849864.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009090956637.png) + +> **临时规避措施**:增加越区覆盖小区和主覆盖小区的单项邻区关系 + +## 重叠覆盖问题分析 + +**强导频**:RSRP > -90dBm + +**过多**:RSRP_number ≥ N,设定N=4 + +**无足够强主导频**:最强信号和第(N)个强信号强度的差值如果小于某一门限值D,即定义为该地点没有足够强主导频,RSRP(fist) -RSRP(N) ≤ D,设定D为-6dB + +**判断NR网络中的某点存在重叠覆盖的条件是**:RSRP > -90dB的小区个数大于等于4个;RSRP(fist) -RSRP(4) ≤ 6dB。当上述两个条件都满足时,即为重叠覆盖。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009091712704.png) + +## 重叠覆盖的影响及原因分析 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009091827593.png) + +## 重叠覆盖问题优化思路 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009091902716.png) + +## 覆盖不均衡 + +上下行覆盖不平衡:指目标覆盖区域内,上下行对称业务出现下行覆盖良好而上行覆盖受限或上行覆盖良好而下行覆盖受限的情况: + +> 上下行不平衡一-般是指下行覆盖大于上行覆盖,在只有下行覆盖的区域,当用户因为检测到了基站信号,想要接入或者切换时,因为上行达不到覆盖要求,也就是手机以最大功率发射基站也收不到,就会造成接入失败或切换失败。另外如果上行覆盖是连续的,那么下行信号因为覆盖大于.上行,会对邻区造成干扰。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009092135465.png) + +> 影响:上行覆盖不均衡常见表现为有信号但数据业务体验差,容易出现掉话、单通等感知类问题。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009092413897.png)![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/image-20201009092540732.png) + diff --git a/source/_posts/Files_and_directories.md b/source/_posts/Files_and_directories.md new file mode 100644 index 0000000..7d4a28b --- /dev/null +++ b/source/_posts/Files_and_directories.md @@ -0,0 +1,269 @@ +--- +title: 文件和目录常用命令 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Linux +date: 2020-08-13 20:13:14 +music: + type: song + id: 1460682363 +comments: true +--- + +查看目录内容 + +切换目录 + +创建和删除操作 + +拷贝和移动文件 + +查看文件内容 + + + +## 目标 + +* 查看目录内容 + * `ls` +* 切换目录 + * `cd` +* 创建和删除操作 + * `touch` + * `rm` + * `mkdir` +* 拷贝和移动文件 + * `cp` + * `mv` +* 查看文件内容 + * `cat` + * `more` + * `grep` +* 其他 + * `echo` + * 重定向 `>` 和 `>>` + * 管道 `|` + +## 01. 查看目录内容 + +### 1.1 终端实用技巧 + +#### 1> 自动补全 + +* 在敲出 `文件`/`目录`/`命令` 的前几个字母之后,按下 `tab` 键 + * 如果输入的没有歧义,系统会自动补全 + * 如果还存在其他 `文件`/`目录`/`命令`,再按一下 `tab` 键,系统会提示可能存在的命令 + +#### 2> 曾经使用过的命令 + +* 按 `上`/`下` 光标键可以在曾经使用过的命令之间来回切换 +* 如果想要退出选择,并且不想执行当前选中的命令,可以按 `ctrl + c` + +### 1.2 `ls` 命令说明 + +* `ls` 是英文单词 **list** 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 **DOS** 下的 `dir` 命令 + +#### Linux 下文件和目录的特点 + +* Linux **文件** 或者 **目录** 名称最长可以有 `256` 个字符 +* 以 `.` 开头的文件为隐藏文件,需要用 -a 参数才能显示 +* **.** 代表当前目录 +* **..** 代表上一级目录 + +### 1.3 ls 常用选项 + +| 参数 | 含义 | +| --- | --- | +| -a | 显示指定目录下所有子目录与文件,包括隐藏文件 | +| -l | 以列表方式显示文件的详细信息 | +| -h | 配合 -l 以人性化的方式显示文件大小 | + +#### 计算机中文件大小的表示方式(科普) + +| 单位 | 英文 | 含义 | +| --- | --- | --- | +| 字节 | B(Byte) | 在计算机中作为一个数字单元,一般为 8 位二进制数 | +| 千 | K(Kibibyte) | 1 KB = 1024 B,千字节 (1024 = 2 ** 10) | +| 兆 | M(Mebibyte) | 1 MB = 1024 KB,百万字节 | +| 千兆 | G(Gigabyte) | 1 GB = 1024 MB,十亿字节,千兆字节 | +| 太 | T(Terabyte) | 1 TB = 1024 GB,万亿字节,太字节 | +| 拍 | P(Petabyte) | 1 PB = 1024 TB,千万亿字节,拍字节 | +| 艾 | E(Exabyte) | 1 EB = 1024 PB,百亿亿字节,艾字节 | +| 泽 | Z(Zettabyte) | 1 ZB = 1024 EB,十万亿亿字节,泽字节 | +| 尧 | Y(Yottabyte) | 1 YB = 1024 ZB,一亿亿亿字节,尧字节 | + +### 1.4 ls 通配符的使用 + +| 通配符 | 含义 | +| --- | --- | +| * | 代表任意个数个字符 | +| ? | 代表任意一个字符,至少 1 个 | +| [] | 表示可以匹配字符组中的任一一个 | +| [abc] | 匹配 a、b、c 中的任意一个 | +| [a-f] | 匹配从 a 到 f 范围内的的任意一个字符 | + +## 02. 切换目录 + +### 2.1 `cd` + +* `cd` 是英文单词 **change directory** 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一 + +> 注意:Linux 所有的 **目录** 和 **文件名** 都是大小写敏感的 + +| 命令 | 含义 | +| --- | --- | +| cd | 切换到当前用户的主目录(/home/用户目录) | +| cd ~ | 切换到当前用户的主目录(/home/用户目录) | +| cd . | 保持在当前目录不变 | +| cd .. | 切换到上级目录 | +| cd - | 可以在最近两次工作目录之间来回切换 | + +### 2.2 相对路径和绝对路径 + +* **相对路径** 在输入路径时,最前面不是 **/** 或者 **~**,表示相对 **当前目录** 所在的目录位置 +* **绝对路径** 在输入路径时,最前面是 **/** 或者 **~**,表示从 **根目录/家目录** 开始的具体目录位置 + +## 03. 创建和删除操作 + +### 3.1 `touch` + +* 创建文件或修改文件时间 + * 如果文件 **不存在**,可以创建一个空白文件 + * 如果文件 **已经存在**,可以修改文件的末次修改日期 + +### 3.2 `mkdir` + +* 创建一个新的目录 + +| 选项 | 含义 | +| --- | --- | +| -p | 可以递归创建目录 | + +> **新建目录的名称** 不能与当前目录中 **已有的目录或文件** 同名 + +### 3.3 `rm` + +* 删除文件或目录 + +> 使用 `rm` 命令要小心,因为文件删除后不能恢复 + +| 选项 | 含义 | +| --- | --- | +| -f | 强制删除,忽略不存在的文件,无需提示 | +| -r | 递归地删除目录下的内容,**删除文件夹** 时必须加此参数 | + +## 04. 拷贝和移动文件 + +| 序号 | 命令 | 对应英文 | 作用 | +| --- | --- | --- | --- | +| 01 | tree [目录名] | tree | 以树状图列出文件目录结构 | +| 02 | cp 源文件 目标文件 | copy | 复制文件或者目录 | +| 03 | mv 源文件 目标文件 | move | 移动文件或者目录/文件或者目录重命名 | + +### 4.1 `tree` + +* `tree` 命令可以以树状图列出文件目录结构 + +| 选项 | 含义 | +| --- | --- | +| -d | 只显示目录 | + +### 4.2 `cp` + +* `cp` 命令的功能是将给出的 **文件** 或 **目录** 复制到另一个 **文件** 或 **目录** 中,相当于 **DOS** 下的 `copy` 命令 + +| 选项 | 含义 | +| --- | --- | +| -i | 覆盖文件前提示 | +| -r | 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 | + +### 4.3 `mv` + +* `mv` 命令可以用来 **移动** **文件** 或 **目录**,也可以给 **文件或目录重命名** + +| 选项 | 含义 | +| --- | --- | +| -i | 覆盖文件前提示 | + +## 05. 查看文件内容 + +| 序号 | 命令 | 对应英文 | 作用 | +| --- | --- | --- | --- | +| 01 | cat 文件名 | concatenate | 查看文件内容、创建文件、文件合并、追加文件内容等功能 | +| 02 | more 文件名 | more | 分屏显示文件内容 | +| 03 | grep 搜索文本 文件名 | grep | 搜索文本文件内容 | + +### 5.1 `cat` + +* `cat` 命令可以用来 **查看文件内容**、**创建文件**、**文件合并**、**追加文件内容** 等功能 +* `cat` 会一次显示所有的内容,适合 **查看内容较少** 的文本文件 + +| 选项 | 含义 | +| --- | --- | +| -b | 对非空输出行编号 | +| -n | 对输出的所有行编号 | + +> Linux 中还有一个 `nl` 的命令和 `cat -b` 的效果等价 + +### 5.2 `more` + +* `more` 命令可以用于分屏显示文件内容,每次只显示一页内容 +* 适合于 **查看内容较多**的文本文件 + +使用 `more` 的操作键: + +| 操作键 | 功能 | +| --- | --- | +| 空格键 | 显示手册页的下一屏 | +| Enter 键 | 一次滚动手册页的一行 | +| b | 回滚一屏 | +| f | 前滚一屏 | +| q | 退出 | +| /word | 搜索 **word** 字符串 | + +### 5.3 `grep` + +* Linux 系统中 `grep` 命令是一种强大的文本搜索工具 +* `grep`允许对文本文件进行 **模式**查找,所谓模式查找,又被称为正则表达式,在就业班会详细讲解 + +| 选项 | 含义 | +| --- | --- | +| -n | 显示匹配行及行号 | +| -v | 显示不包含匹配文本的所有行(相当于求反) | +| -i | 忽略大小写 | + +* 常用的两种模式查找 + +| 参数 | 含义 | +| --- | --- | +| ^a | 行首,搜寻以 **a** 开头的行 | +| ke$ | 行尾,搜寻以 **ke** 结束的行 | + +## 06. 其他 + +### 6.1 `echo 文字内容` + +* `echo` 会在终端中显示参数指定的文字,通常会和 **重定向** 联合使用 + +### 6.2 重定向 `>` 和 `>>` + +* Linux 允许将命令执行结果 **重定向**到一个 **文件** +* 将本应显示在**终端上的内容** **输出/追加** 到**指定文件中** + +其中 + +* `>` 表示输出,会覆盖文件原有的内容 +* `>>` 表示追加,会将内容追加到已有文件的末尾 + +### 6.3 管道 `|` + +* Linux 允许将 **一个命令的输出** 可以**通过管道** 做为 **另一个命令的输入** +* 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 `|` 的左右分为两端,左端塞东西(写),右端取东西(读) + +常用的管道命令有: + +* `more`:分屏显示内容 +* `grep`:在命令执行结果的基础上查询指定的文本 + diff --git a/source/_posts/FixedTools.md b/source/_posts/FixedTools.md new file mode 100644 index 0000000..40b694c --- /dev/null +++ b/source/_posts/FixedTools.md @@ -0,0 +1,292 @@ +--- +title: Photoshop修复工具的使用 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Photoshop +date: 2020-03-29 14:37:11 +music: + type: song + id: 1398663411 +comments: true +tags: + - 图像处理 + - Photoshop +--- + +模糊工具 + +图章工具 + +修复画笔工具 + +红眼工具 + + + +## 模糊工具 + +``` +模糊工具的主要功能就是把图像变得模糊。使用模糊工具可以把图像拉开空间、距离感。 + +模糊工具是对所画目标区域进行模糊处理。 + +模糊处理后容易营造出画面的空间、层次感。 +``` + +### 模式 + +``` +在对图像进行模糊的同时还可以通过模式改变对象颜色。 +``` + +### 强度 + +``` +强度值越大,模糊效果越大,反之越小。 +``` + +### 对所有图层取样 + +``` +对所有图层取样指的是可对所有可见图层进行模糊处理。 + +勾选:"对所有图层取样"操作都会作用于目标图层上。 +``` + +### 拓展 + +``` +滤镜也可以制作模糊效果。 +``` + +--- + +## 锐化 + +``` +锐化工具作用与模糊工具对立,它可使图像变得锐利清晰。 +``` + +### 保护细节 + +``` +勾选“保护细节”可保护图像微小像素防止画面失真。 +``` + +### 注意 + +``` +使用模糊工具后会改变、损失很多原有像素信息,是无法通过锐化工具进行还原的。 + +锐化工具是在图像现有像素基础上进行锐化的。 +``` + +--- + +## 涂抹工具 + +``` +涂抹工具和画笔工具用法一样:直接在画面上画就可以。 +``` + +### 强度 + +``` +涂抹强度值越高,涂抹效果越强。 +``` + +### 手指绘画 + +``` +勾选“手指绘画”可以绘制前景色,快捷键为Alt +``` + +--- + +## 减淡工具 + +### 保护色调 + +``` +保护色调可以保护图像在使用减淡时色调方面失真。 +``` + +--- + +## 海绵工具 + +``` +作用:局部增加饱和度或降低饱和度。 +``` + +### 饱和度 + +``` +简单理解就是:色彩的鲜艳程度。 +``` + +### 降低饱和度 + +``` +降低饱和度最终可使图像接近黑白。 +``` + +--- + +## 仿制图章工具 + +``` +锁定透明像素:禁止对透明区域进行操作。 + +按住Alt键,光标变成靶心形状后代表可以寻找仿制源了。 + +取样后就可以按照画笔用法来涂抹出仿制对象了。 + +把仿制源文档删除后,仿制源也就不会存在了。 +``` + +### 对齐 + +``` +“对齐”保证鼠标每次操作都与源点对齐且画出整片图像。 + +勾选“对齐”可以松开鼠标,然后继续画。 + +不勾选“对齐”每次松开鼠标之后会重新开始画。 +``` + +### 样本 + +``` +当前图层:在本图层上点选仿制源,然后在本图层上进行仿制的操作。 + +当前和下方图层:定义仿制源时只能选择当前图层以及下方图层图像为源。 + +所有图层:可以定义画面上所有图像。 +``` + +### 切换仿制源面板 + +``` +通过仿制源面板可以对仿制源进行更多深层次的编辑。 + +还可以在这里定义多个仿制源(最多5个)。 + +“位移”参数记录仿制源位移的位置。 +设置宽(W)、高(H)参数可以仿制出放大缩小的仿制源图像。 + +同理:设置角度也可以仿制出旋转一定角度后的图像。 + +显示叠加:勾选会出现预览效果。 + +已剪切:勾选状态下只能看到画笔区域里面的预览。 + 取消勾选会看到要仿制的整个画面的预览。 + +反向:勾选反向显示叠加里面就会以反向的形式出现。 + +自动隐藏:勾选自动隐藏,仿制时就可以隐藏掉显示叠加的部分。 +``` + +--- + +## 图案图章工具 + +``` +图案图章工具用法就是直接在画面上画图案。 +``` + +### 印象派效果 + +``` +勾选“印象派效果”命令,就会绘画出印象派效果。 +``` + +--- + +## 修复画笔工具 + +``` +用法和仿制图章工具基本上是相同的。 + +使用修复画笔工具后,边缘会有融合的效果。 + +快捷键是J + +工具组里进行切换是Shift + J +``` + +### 源 + +``` +取样:仿制图章工具。 +图案:图案图标,可以选择图案进行修补图案。 +``` + +--- + +## 仿制图章工具与修复画笔工具的区别 + +``` +仿制图章可以跨文档继续进行。 + +仿制图章进行的仿制是很严格的,画成什么样边缘就是怎么样。 +修复画笔有一定的智能性,可以和周围环境进行融合。 +``` + +--- + +## 污点修复画笔工具 + +``` +使用污点修复画笔工具在污点上点击、绘画就可以清除污点。 +``` + +### 类型 + +``` +近似匹配:计算较为简单,就近取样覆盖污点。 +创建纹理:在擦除污点同时创建出和周围相似的纹理效果。 +内容识别:是一种智能的识别方式,一般都会选择它。 +``` + +--- + +## 修补工具 + +``` +修补工具可以快速地对画面进行修复。 +``` + +--- + +## 内容感知移动工具 + +``` +内容感知移动工具比修补工具更加智能和简单。 +``` + +### 模式 + +``` +移动:代表的是移走 +拓展:代表的是复制 +``` + +### 适应 + +``` +在适应选项里决定了融合边缘程度的不同。 +``` + +--- + +## 红眼工具 + +``` +眼睛在补光灯作用下会扩张,而毛细血管就会呈现出红色。 + +框选红眼区域,红眼就自动消失了。 +``` + diff --git a/source/_posts/GRE-VPN.md b/source/_posts/GRE-VPN.md new file mode 100644 index 0000000..b238800 --- /dev/null +++ b/source/_posts/GRE-VPN.md @@ -0,0 +1,158 @@ +--- +title: GRE VPN练习 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 网络安全 +date: 2020-03-21 11:30:11 +music: + type: song + id: 27890395 +comments: true +tags: + - 网络安全 + - 交换机 + - 思科GRE +--- + + + +GRE VPN配置练习 + +软件:Cisco Packet Tracer + + + +## 题目要求 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200321110549.png) + +``` +1、基础配置如下: + 按图中所示配置总公司和分公司中各计算机、服务器、路由器对应端口的IP地址相关信息; +2、在总公司与分公司之间配置GRE隧道技术,实现两地私有地址的内部网络之间可以实现相互通信。 + (1)在Router0和Router1上配置一条默认路由,实现Internet间互通总公司和分公司 + 测试Router0和Router1的公网地址间的互通性 + (2)在Router0和Router1上配置 GRE VPN (tunnel号为1,地址分别为10.1.1.1/30和10.1.1.2/30) + (3)在Router0和Router1上配置动态路由rip协议,实现总公司和分公司私网路由 +3、测试PC0能否ping通PC5,为什么? +4、分析GRE数据包,了解GRE数据封装格式 +``` + +## Router 0配置IP地址 + +``` +R0> enable +R0# config terminal +R0(config)# interface fastEthernet 0/0 +R0(config-if)# ip address 192.168.75.254 255.255.255.0 +R0(config-if)# no shutdown +R0(config-if)# exit +R0(config)# interface serial 0/3/0 +R0(config-if)# ip address 58.1.1.1 255.255.255.252 +R0(config-if)# exit +``` + +## Router 1配置IP地址 + +``` +R1> enable +R1# config terminal +R1(config)# interface serial 0/3/0 +R1(config-if)# ip address 210.28.144.2 255.255.255.252 +R1(config-if)# no shutdown +R1(config-if)# exit +R1(config-if)# interface fastEthernet 0/0 +R1(config-if)# ip address 192.168.210.254 255.255.255.0 +R1(config-if)# no shutdown +R1(config-if)# exit +``` + +## Router 2配置IP地址 + +``` +R2> enable +R2# config terminal +R2(config)# interface serial 0/1/0 +R2(config-if)# ip address 58.1.1.2 255.255.255.252 +R2(config-if)# exit +R2(config)# interface fastEthernet 0/0 +R2(config-if)# ip address 63.1.1.1 255.255.255.0 +R2(config-if)# exit +R2(config)# interface serial 0/0/0 +R2(config-if)# ip address 210.28.144.1 255.255.255.252 +R2(config-if)# no shutdown +``` + +## Router 0配置静态路由 + +``` +R0(config)# ip route 0.0.0.0 0.0.0.0 58.1.1.2 +``` + +## Router 1配置静态路由 + +``` +R1(config)# ip route 0.0.0.0 0.0.0.0 210.28.144.1 +``` + +## 测试Router 0和Router 1的公网地址互通性 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200321111609.png) + +## Router 0配置GRE VPN + +``` +R0(config)# interface tunnel 1 +R0(config-if)# ip address 10.1.1.1 255.255.255.252 +R0(config-if)# tunnel source serial 0/3/0 +R0(config-if)# tunnel destination 210.28.144.2 +R0(config-if)# exit +``` + +## Router 1配置GRE VPN + +``` +R1(config)# interface tunnel 1 +R1(config-if)# ip address 10.1.1.2 255.255.255.252 +R1(config-if)# tunnel source serial 0/3/0 +R1(config-if)# tunnel destination 58.1.1.1 +R1(config-if)# exit +``` + +## Router 0配置rip + +``` +R0(config)# router rip +R0(config-router)# version 2 +R0(config-router)# no auto-summary +R0(config-router)# network 192.168.75.0 +R0(config-router)# network 10.1.1.1 +``` + +## Router 1配置rip + +``` +R1(config)# router rip +R1(config-router)# version 2 +R1(config-router)# network 192.168.210.0 +R1(config-router)# network 10.1.1.2 +``` + +## 测试PC0能否ping通PC5,为什么? + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200321112346.png) + +``` +解析:PC0可以ping通PC5。因为我们已经配置了隧道,且配置了rip路由,内网地址会通过隧道进行传输,而不会直接从公网进行传输。 +``` + +## 分析GRE数据包,了解GRE数据封装格式 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200321112805.png) + +``` +解析:当tunnel口收到来自网络层的数据包后,网络层的GRE模块会在原IP包之前加上GRE头部,然后在GRE头部前加上新的IP头部。最后,路由器根据新IP头部进行路由。 +``` + diff --git a/source/_posts/GRE-over-IPSec.md b/source/_posts/GRE-over-IPSec.md new file mode 100644 index 0000000..dda80e4 --- /dev/null +++ b/source/_posts/GRE-over-IPSec.md @@ -0,0 +1,264 @@ +--- +title: GRE over IPSec VPN配置练习 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 网络安全 +date: 2020-03-30 16:30:11 +music: + type: song + id: 1411358329 +comments: true +tags: + - 网络安全 + - 交换机 + - 思科 +--- + +GRE over IPSec VPN配置练习 + +软件:Cisco Packet Tracer + + + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200330161506.png) + +实验网络拓扑图如图所示,在总公司和分公司的边界路由器上做GRE over IPSec VPN,实现两地内部网络私有地址之间可以安全通信。 +1、基础配置如下: + (1)按图中所示配置总公司和分公司中各计算机、服务器、路由器对应端口的IP地址相关信息; + (2)在Router0和Router1上配置一条默认路由,实现Internet间互通 + (3) 测试Router0和Router1的公网地址间的互通性 +2、在总公司与分公司之间配置GRE隧道技术 +(1)在Router0和Router1上配置 GRE VPN (tunnel号为1,地址分别为10.1.1.1/30和10.1.1.2/30) +(2)测试tunnel地址之间的互通性 +3、在总公司与分公司之间配置IPsec VPN,对GRE tunnel数据进行加密。 +(1) 配置 IKE(ISAKMP)策略: +策略序号为1,加密算法为aes,Hash 算法为MD5,密钥算法(Diffie-Hellman)为group 2,认证方式(Authentication)为pre-share。 +(2)定义认证标识:预共享密码为tx18 +(3)配置 IPsec transform: +定义transform set命名为tx18set,加密算法为esp-3des, HMAC 算法为esp-MD5-HMAC +(4)定义感兴趣流量: +用扩展acl 180来定义通过 VPN 传输的流量 +(5)创建 crypto map: +定义transform set命名为tx18map,将之前定义的 ACL,加密数据发往的对端,以及 IPsec transform 结合在 crypto map中 +(6)将 crypto map 应用于对应接口 +在Router0和Router1上配置动态路由rip协议,实现总公司和分公司私网路由 +4、在Router0和Router1上配置动态路由ospf协议(进程号1,area 0),实现总公司和分公司私网路由 +5、测试PC0能否ping通PC5,为什么? +6、分析GRE over IPSec VPN数据包,了解GRE over IPSec VPN数据封装格式 +7、选做: +在公司边界路由器上做PAT,实现总公司和分公司的PC可以ping通公网PC + +# 基础配置 + +### Router 0配置IP地址 + +``` +R0> enable +R0# config terminal +R0(config)# interface fastEthernet 0/0 +R0(config-if)# ip address 192.168.107.254 255.255.255.0 +R0(config-if)# no shutdown +R0(config-if)# exit +R0(config)# interface serial 0/3/0 +R0(config-if)# ip address 58.1.1.1 255.255.255.252 +R0(config-if)# no shutdown +R0(config-if)# exit +``` + +### Router 1配置IP地址 + +``` +R1> enable +R1# config terminal +R1(config)# interface fastEthernet 0/0 +R1(config-if)# ip address 192.168.143.254 255.255.255.0 +R1(config-if)# no shutdown +R1(config-if)# exit +R1(config)# interface serial 0/3/0 +R1(config-if)# ip address 210.28.144.2 255.255.255.252 +R1(config-if)# no shutdown +R1(config-if)# exit +``` + +### Router 2配置IP地址 + +``` +R2> enable +R2# configure terminal +R2(config)# interface serial 0/1/0 +R2(config-if)# ip address 58.1.1.2 255.255.255.252 +R2(config-if)# exit +R2(config)# interface serial 0/0/0 +R2(config-if)# ip address 210.28.144.1 255.255.255.252 +R2(config-if)# exit +R2(config)# interface fastEthernet 0/0 +R2(config-if)# ip address 61.1.1.1 255.255.255.0 +R2(config-if)# exit +``` + +### Router 0配置默认路由 + +``` +R0(config)# ip route 0.0.0.0 0.0.0.0 58.1.1.2 +``` + +### Router 1配置默认路由 + +``` +R1(config)# ip route 0.0.0.0 0.0.0.0 210.28.144.1 +``` + +### Router 0和Router 1的公网地址互通性测试 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325110016.png) + +--- + +## GRE隧道配置 + +### Router 0配置GRE VPN + +``` +R0(config)# interface tunnel 1 +R0(config-if)# ip address 10.1.1.1 255.255.255.252 +R0(config-if)# tunnel source serial 0/3/0 +R0(config-if)# tunnel destination 210.28.144.2 +``` + +### Router 1配置GRE VPN + +``` +R1(config)# interface tunnel 1 +R1(config-if)# ip address 10.1.1.2 255.255.255.252 +R1(config-if)# tunnel source serial 0/3/0 +R1(config-if)# tunnel destination 58.1.1.1 +``` + +### 测试tunnel间的互通性 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200330132003.png) + +## IPSec配置 + +### Router 0配置IPSec + +``` +R0(config)#crypto isakmp policy 1 +R0(config-isakmp)#encryption aes +R0(config-isakmp)#hash md5 +R0(config-isakmp)#authentication pre-share +R0(config-isakmp)#group 2 +R0(config-isakmp)#lifetime 86400 +R0(config-isakmp)#exit +R0(config)#crypto isakmp key tx18 address 210.28.144.2 +R0(config)#crypto ipsec transform-set tx18set esp-3des esp-md5-hmac +R0(config)#access-list 180 permit gre host 58.1.1.1 host 210.28.144.2 +R0(config)#crypto map tx18map 1 ipsec-isakmp +R0(config-crypto-map)#match address 180 +R0(config-crypto-map)#set peer 210.28.144.2 +R0(config-crypto-map)#set transform-set tx18set +R0(config-crypto-map)#exit +R0(config)#interface serial 0/3/0 +R0(config-if)#crypto map tx18map +R0(config-if)#exit +``` + +### Router 1配置IPSec + +``` +R1(config)#crypto isakmp policy 1 +R1(config-isakmp)#encryption aes +R1(config-isakmp)#hash md5 +R1(config-isakmp)#authentication pre-share +R1(config-isakmp)#group 2 +R1(config-isakmp)#lifetime 86400 +R1(config-isakmp)#exit +R1(config)#crypto isakmp key tx18 address 58.1.1.1 +R1(config)#crypto ipsec transform-set tx18set esp-3des esp-md5-hmac +R1(config)#access-list 180 permit gre host 210.28.144.2 host 58.1.1.1 +R1(config)#crypto map tx18map 1 ipsec-isakmp +R1(config-crypto-map)#match address 180 +R1(config-crypto-map)#set peer 58.1.1.1 +R1(config-crypto-map)#set transform-set tx18set +R1(config-crypto-map)#exit +R1(config)#interface serial 0/3/0 +R1(config-if)#crypto map tx18map +R1(config-if)#exit +``` + +### Router 0配置OSPF协议 + +``` +R0(config)#router ospf 1 +R0(config-router)#network 192.168.107.10 0.0.0.255 area 0 +R0(config-router)#network 10.1.1.1 0.0.0.3 area 0 +R0(config-router)#exit +``` + +### Router 1配置OSPF协议 + +``` +R1(config)#router ospf 1 +R1(config-router)#network 192.168.107.0 0.0.0.255 area 0 +R1(config-router)#network 10.1.1.1 0.0.0.3 area 0 +R0(config-router)#exit +``` + +### PC 0 ping PC 5测试 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200330140522.png) + +``` +PC 0可以ping通PC 5,因为我们已经配置完成了GRE over IPSec VPN,包括OSPF和静态路由都已经配置完成,总公司和分公司的流量会通过隧道进行传输,所以PC 0可以ping通PC 5。 +``` + + + +--- + +## PAT配置 + +### Router 0配置PAT + +``` +R0(config)# interface FastEthernet0/0 +R0(config-if)# ip nat inside +R0(config-if)# exit +R0(config)# interface Serial0/3/0 +R0(config-if)# ip nat outside +R0(config-if)# exit +R0(config)# access-list 1 permit 192.168.107.0 0.0.0.255 +R0(config)# ip nat pool mypool 58.1.1.1 58.1.1.1 netmask 255.255.255.0 +R0(config)# ip nat inside source list 1 pool mypool overload +``` + +### Router 1配置PAT + +``` +R1(config)# interface FastEthernet0/0 +R1(config-if)# ip nat inside +R1(config-if)# exit +R1(config)# interface Serial0/3/0 +R1(config-if)# ip nat outside +R1(config-if)# exit +R1(config)#access-list 1 permit 192.168.143.0 0.0.0.255 +R1(config)#ip nat pool mypool 210.28.144.2 210.28.144.2 netmask 255.255.255.0 +R1(config)#ip nat inside source list 1 pool mypool overload +``` + +--- + +## 分析GRE over IPSec VPN数据包 + +分析GRE over IPSec VPN数据包,了解GRE over IPSec VPN数据封装格式 ? + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200330145424.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200330145627.png) + +``` +解析:我们用PC 0 ping PC5,观察Router 0的PDU,观察入站PDU可以看到,源IP地址为192.168.107.10,目的IP地址为192.168.143.10。观察出站PDU发现,最开始源IP地址和目的IP地址并未发生变化,通过GRE封装之后,加了IP头部,源IP地址为58.1.1.1,目的IP地址为210.28.144.2。然后经过了IPSec的加密,加了IP头部,源IP地址为58.1.1.1,目的地址为210.28.144.2。 +``` + diff --git a/source/_posts/GSM.md b/source/_posts/GSM.md new file mode 100644 index 0000000..fab32f7 --- /dev/null +++ b/source/_posts/GSM.md @@ -0,0 +1,156 @@ +--- +title: GSM系统概述 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-07 10:00:00 +music: + type: song + id: 233974 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +2G系统概述学习笔记 + + + +## 什么是GSM + +``` +GSM(Global System for Mobile Communication) ,全球移动通信系统。 + +GSM分GSM900、DCS1800和PCN1900三个频段。 + +GSM900/1800分别工作在890~960MHz/1710~1880MHz频段。 + +频段越高,波长越短,直射和绕射的能力越弱。 +``` + +## GSM频段分配 + +### GSM900 + +``` +上行频率:890--915MHZ(MS发射,BTS接收) + +下行频率:935—-960MHZ(BTS发射,MS接收) + +共分为124对双工载频,载频间隔为200KHZ。 + +每载频共分8个时隙,即为8个信道。 + +总信道数为124×8=992个信道。 + +中国移动频点(1-94),中国联通频点(96-124)。 + +该频段适合用于实现信号覆盖。 +``` + +### DCS1800 + +``` +上行:1710-1785MHz + +下行:1805-1880MHz + +共分为374对双工载频,载频间隔为200KHZ。 + +总信道数为374×8=2992个信道。 + +1800频段的信号带宽资源充足,多用于吸收室内的话务。 + +中国移动频点512-636,中国联通频点638-736。 +``` + +## 基站子系统(BSS)和移动台(MS) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307095544.png)) + +### BSC基站控制器 + +``` +① 进行无线信道、参数、资源管理 +② 实施呼叫和通信链路的建立和拆除 +③ 控制完成移动台的定位、切换及寻呼等 +④ 接口管理 +⑤ 无线链路测量 +⑥ 话务量统计 +⑦ 操作与维护 +``` + +### BTS基站收发信站 + +``` +① 无线传输 +② 无线与有线的转换 +③ 无线分集、无线信道加密、调频等 +``` + +### MS移动台 + +``` +包括终端设备和SIM卡。 +``` + + + +## 移动交换子系统(NSS) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307095413.png) + +### AUC 鉴权中心 + +``` +是向HLR提供出于安全原因而使用的鉴权参数和密钥。现网中是和HLR一个物理实体。 +``` + +### EIR设备识别寄存器 + +``` +对接入系统的移动台的设备进行识别。 +``` + +### MSC 移动业务交换中心 + +``` +- 交换功能:包括呼叫的建立、路由选择、呼叫监视、呼叫释放等。 + +- 计费功能 + +- 移动性管理:位置更新、鉴权、加密等。 +``` + +### VLR拜访位置寄存器 + +``` +- 动态数据库 + +- 本交换区用户参数,该参数是从LR中获得的。 + +- 本交换区用户的位置信息:MS的LAI。 +``` + +### HLR归属位置寄存器 + +``` +- 静态数据库 + +- 永久性参数:用户号码、接入的优先等级、预定的业务类型等; + +- 临时性参数:寄存用户的鉴约信息和位置信息,如补充业务、鉴权参数,MS的位置信息等。 +``` + + + + + + + + + diff --git a/source/_posts/ICIC.md b/source/_posts/ICIC.md new file mode 100644 index 0000000..6df63c7 --- /dev/null +++ b/source/_posts/ICIC.md @@ -0,0 +1,102 @@ +--- +title: ICIC +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-05-12 14:11:21 +music: + type: song + id: 1436709403 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +小区间干扰协调(Inter Cell Interference Coordination,ICIC)是用来解决同频组网时,小区间干扰的技术。 + + + +## 干扰抑制的3种类型 + +- 干扰随机化:加扰、交织、跳频 +- 干扰消除:波束赋形、IRC +- 干扰协调:ICIC + - 资源调度方式 + - 资源调度周期 + +
+ +## 小区间干扰抑制技术 + +{% note success, 小区间的干扰主要来自于同频组网带来的同频干扰。 %} + +
+ +### 小区间干扰抑制技术 + +- 干扰随机化技术 +- 干扰消除技术 +- 干扰协调技术(ICIC) + +### 小区间干扰随机化技术:加扰 + +- LTE系统充分使用序列的随机化避免小区间干扰 +- 一般情况下,加扰在信道编码之后、数据调制之前进行,即比特级的加扰。 + +### 小区间干扰随机化技术:跳频 + +- 目前LTE上下行都支持跳频传输,通过跳频传输可以随机化小区间的干扰。 +- 除了PBCH之外,其他下行物理控制信道的资源映射均与小区id有关 +- PDSCH、PUSCH以及PUCCH采用子帧内跳频传输 +- PUSCH可以采用子帧间的跳频传输 + +### 小区间干扰消除技术:发射端波束赋形 + +- 提高期望用户的信号强度 +- 降低信号对其他用户的干扰 +- 已经知道被干扰用户的方位,可以主动降低对该方向辐射能量 + +### 小区间干扰消除技术:IRC + +{% note success, 接收端利用多根天线对接收信号进行加权,抑制强干扰,称为IRC。 %} + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200512134430.png) + +### 小区间干扰协调:ICIC + +- 是一种考虑多个小区中资源使用和负载等情况而进行的多小区无线资源管理方案。 +- 基本思想:通过管理无线资源使得小区间干扰得到控制。 +- 限制的无线资源: + - 时频资源 + - 一定时频资源上的功率资源 +- 是目前研究的一项热门技术,可以应用于各种宽带的业务。 + +
+ +### 小区间干扰协调ICIC的实现方式 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200512135150.png) + +
+ +
+ +- 静态ICIC:对无线资源的使用重新配置的时间以天为单位。几乎不需要基站之间交互信息。 +- 半静态ICIC:对无线资源的使用重新配置的时间以秒为单位。基站之间信息传递的频率类似。 +- 动态ICIC:对无线资源的使用重新配置的时间以10ms或百毫秒为单位,基站之间信息传递的频率类似。 +- 协调调度:对无线资源的使用重新配置的时间以TTI为单位,由于x2接口的时延限制,在基站间无法实时传递信息,协调调度在LTE-advanced阶段实现。 + +
+ +### ICIC方案对应关系图 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200512140530.png) + +### ICIC解决方案-基于SFR半静态ICIC + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200512140648.png) + diff --git a/source/_posts/IPSec_VPN.md b/source/_posts/IPSec_VPN.md new file mode 100644 index 0000000..b052391 --- /dev/null +++ b/source/_posts/IPSec_VPN.md @@ -0,0 +1,302 @@ +--- +title: IPSec VPN配置练习 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 网络安全 +date: 2020-03-25 12:30:11 +music: + type: song + id: 1424520099 +comments: true +tags: + - 网络安全 + - 交换机 + - 思科 +--- + +IPSec VPN配置 + +软件:Cisco Packet Tracer + + + +## 题目要求 + +实验网络拓扑图如图所示 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325101139.png) + +1、基础配置如下: + (1)按图中所示配置总公司和分公司中各计算机、服务器、路由器对应端口的IP地址相关信息; + (2)在Router0和Router1上配置一条默认路由,实现Internet间互通 + (3) 测试Router0和Router1的公网地址间的互通性 +2、在总公司与分公司之间配置IPsec VPN,实现两地私有地址的内部网络之间可以实现相互通信。 +(1) 配置 IKE(ISAKMP)策略: +策略序号为1,加密算法为aes,Hash 算法为MD5,密钥算法(Diffie-Hellman)为group 2,认证方式(Authentication)为pre-share。 +(2)定义认证标识:预共享密码为tx18 +(3)配置 IPsec transform: +定义transform set命名为tx18set,加密算法为esp-3des, HMAC 算法为esp-MD5-HMAC +(4)定义感兴趣流量: +用扩展acl 180来定义通过 VPN 传输的流量 +(5)创建 crypto map: +定义transform set命名为tx18map,将之前定义的 ACL,加密数据发往的对端,以及 IPsec transform 结合在 crypto map中 +(6)将 crypto map 应用于对应接口 +3、测试PC0能否ping通PC5,为什么? +4、分析IPSec VPN数据包,了解IPSec VPN数据封装格式 +5、选做: +在公司边界路由器上做NAT(数据自选),实现总公司和分公司的PC可以ping通公网PC + +## 配置Router 0端口地址 + +``` +R0> enable #进入特权模式 +R0# config terminal #进入全局模式 +R0(config)# interface FastEthernet 0/0 #进入Fa0/0端口 +R0(config-if)# ip address 192.168.123.254 255.255.255.0 #配置IP地址和子网掩码 +R0(config-if)# no shutdown #启用端口 +R0(config-if)# exit #退出Fa0/0端口 +R0(config)# interface Serial 0/3/0 #进入Se0/3/0端口 +R0(config-if)# ip address 58.1.1.1 255.255.255.252 #配置IP地址和子网掩码 +R0(config-if)# no shutdown #启用端口 +R0(config-if)# exit #退出Se0/3/0端口 +``` + +## 配置Router 1端口地址 + +``` +R1> enable #进入特权模式 +R1# config terminal #进入全局模式 +R1(config)# interface FastEthernet 0/0 #进入Fa0/0端口 +R1(config-if)# ip address 192.168.100.254 255.255.255.0 #配置IP地址和子网掩码 +R1(config-if)# no shutdown #启用端口 +R1(config-if)# exit #退出Fa0/0端口 +R1(config)# interface Serial 0/3/0 #进入Se0/3/0端口 +R1(config-if)# ip address 210.28.144.2 255.255.255.252 #配置IP地址和子网掩码 +R1(config-if)# no shutdown #启用端口 +R1(config-if)# exit #退出Se0/3/0端口 +``` + +## 配置Router 2端口地址 + +``` +R2> enable #进入特权模式 +R2# config terminal #进入全局模式 +R2(config)# interface FastEthernet 0/0 #进入Fa0/0端口 +R2(config-if)# ip address 63.1.1.1 255.255.255.0 #配置IP地址和子网掩码 +R2(config-if)# no shutdown #启用端口 +R2(config-if)# exit #退出Fa0/0端口 +R2(config)# interface Serial 0/1/0 #进入Se0/1/0端口 +R2(config-if)# ip address 58.1.1.2 255.255.255.252 #配置IP地址和子网掩码 +R2(config-if)# exit #退出Se0/1/0端口 +R2(config)# interface Serial 0/0/0 #进入Se0/0/0端口 +R2(config-if)# ip address 210.28.144.1 255.255.255.252 #配置IP地址和子网掩码 +R2(config-if)# no shutdown #启用端口 +R2(config-if)# exit #退出Se0/0/0端口 +``` + +## Router 0配置静态路由 + +``` +R0(config)# ip route 0.0.0.0 0.0.0.0 58.1.1.2 #配置静态路由 +``` + +## Router 1配置静态路由 + +``` +R0(config)# ip route 0.0.0.0 0.0.0.0 210.28.144.1 #配置静态路由 +``` + +## Router 0和Router 1公网间互通性 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325110016.png) + +``` +Router 0和Router 1公网地址间可以互通。 +``` + +## Router 0配置IPsec VPN + +(1) 配置 IKE(ISAKMP)策略 + +策略序号为1,加密算法为aes,Hash 算法为MD5,密钥算法(Diffie-Hellman)为group 2,认证方式(Authentication)为pre-share。 + +``` +R0(config)# crypto isakmp policy 1 #建立IKE策略,优先级为1 +R0(config-isakmp)# encryption aes #使用AES加密方式 +R0(config-isakmp)# hash md5 #指定Hash算法为MD5 +R0(config-isakmp)# authentication pre-share #使用预共享的密码进行身份验证 +R0(config-isakmp)# group 2 #指定秘钥位数,group2安全性更高 +``` + +(2)定义认证标识:预共享密码为tx18 + +``` +R0(config)# crypto isakmp key tx18 address 210.28.144.2 +#设置要使用的预共享秘钥和指定VPN对端路由器的IP地址。 +``` + +(3)配置 IPsec transform: +定义transform set命名为tx18set,加密算法为esp-3des, HMAC 算法为esp-MD5-HMAC + +``` +R0(config)# crypto ipsec transform-set tx18set esp-3des esp-md5-hmac +#配置IPSec交换集,名称为tx18set,两端的名字可以不一样,但其它参数必须一致。 +``` + +(4)定义感兴趣流量: +用扩展acl 180来定义通过 VPN 传输的流量 + +``` +R0(config)# access-list 180 permit ip 192.168.123.0 0.0.0.255 192.168.100.0 0.0.0.255 #定义感兴趣数据,IPSec VPN地址为双方内网地址。 +``` + +(5)创建 crypto map: +定义transform set命名为tx18map,将之前定义的 ACL,加密数据发往的对端,以及 IPsec transform 结合在 crypto map中 + +``` +R0(config)# crypto map tx18map 1 ipsec-isakmp #创建加密图 +R0(config-crypto-map)# set peer 210.28.144.2 #标识对方路由器IP地址 +R0(config-crypto-map)# set transform-set tx18set #指定加密图使用的IPSec交换集 +R0(config-crypto-map)# match address 180 #用ACL定义加密的通信 +``` + +(6)将 crypto map 应用于对应接口 + +``` +R0(config)# interface Serial 0/3/0 #进入Se0/3/0端口 +R0(config-if)# crypto map tx18map #应用加密图到接口 +``` + +## Router 1配置IPsec VPN + +(1) 配置 IKE(ISAKMP)策略 + +策略序号为1,加密算法为aes,Hash 算法为MD5,密钥算法(Diffie-Hellman)为group 2,认证方式(Authentication)为pre-share。 + +``` +R0(config)# crypto isakmp policy 1 #建立IKE策略,优先级为1 +R0(config-isakmp)# encryption aes #使用AES加密方式 +R0(config-isakmp)# hash md5 #指定Hash算法为MD5 +R0(config-isakmp)# authentication pre-share #使用预共享的密码进行身份验证 +R0(config-isakmp)# group 2 #指定秘钥位数,group2安全性更高 +``` + +(2)定义认证标识:预共享密码为tx18 + +``` +R0(config)# crypto isakmp key tx18 address 58.1.1.1 #定义预共享密码 +``` + +(3)配置 IPsec transform: +定义transform set命名为tx18set,加密算法为esp-3des, HMAC 算法为esp-MD5-HMAC + +``` +R0(config)# crypto ipsec transform-set tx18set esp-3des esp-md5-hmac #配置IPSec交换集,名称为tx18set,两端的名字可以不一样,但其它参数必须一致。 +``` + +(4)定义感兴趣流量: +用扩展acl 180来定义通过 VPN 传输的流量 + +``` +R0(config)# access-list 180 permit ip 192.168.100.0 0.0.0.255 192.168.123.0 0.0.0.255 #定义感兴趣数据,IPSec VPN地址为双方内网地址。 +``` + +(5)创建 crypto map: +定义transform set命名为tx18map,将之前定义的 ACL,加密数据发往的对端,以及 IPsec transform 结合在 crypto map中 + +``` +R0(config)# crypto map tx18map 1 ipsec-isakmp #创建加密图 +R0(config-crypto-map)# set peer 58.1.1.1 #标识对方路由器IP地址 +R0(config-crypto-map)# set transform-set tx18set #指定加密图使用的IPSec交换集 +R0(config-crypto-map)# match address 180 #用ACL定义加密的通信 +``` + +(6)将 crypto map 应用于对应接口 + +``` +R0(config)# interface Serial 0/3/0 #进入Se0/3/0端口 +R0(config-if)# crypto map tx18map #应用加密图到接口 +``` + +## 测试PC0能否ping通PC5,为什么? + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325113219.png) + +``` +解析:PC 0可以ping通PC 5,因为此时我们配置了IPSec VPN,分公司之间的访问会通过IPSec VPN隧道进行访问。 +``` + +## 分析IPSec VPN数据包,了解IPSec VPN数据封装格式 + +进入仿真模式,用PC0 ping PC5,并单步运行,直到面板上出现Last Device为Switch 0,At Device为Router 0的数据包为止,查看该数据包的Inbound PDU Details和 OurBound PDU Details。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325124408.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325124215.png) + +``` +观察第一张图可知:封装前的数据包源IP地址为192.168.123.10,目的IP地址为192.168.100.20。观察第二张图可知:封装后在原始IP头之前增加了新的IP头和ESP头,在新的IP头中源IP地址为58.1.1.1,目的地址为210.28.144.2,IPSec封装已经完成。ESP头中的信息如下:ESP SPI为1469921110,ESP序号为0,ESP的加密方式为3DES,ESP认证方式为MD5。 +``` + +## Router 0边界配置NAT + +``` +R0(config)# interface FastEthernet 0/0 +R0(config-if)# ip nat inside +R0(config-if)# exit +R0(config)# interface Serial 0/3/0 +R0(config-if)# ip nat outside +R0(config-if)# exit +R0(config)# ip nat pool natpool 100.1.1.1 100.1.1.2 netmask 255.255.255.252 +R0(config)# ip nat inside source list 101 pool natpool overload +``` + +## Router 1边界配置NAT + +``` +R1(config)# interface FastEthernet 0/0 +R1(config-if)# ip nat inside +R1(config-if)# exit +R1(config)# interface Serial 0/3/0 +R1(config-if)# ip nat outside +R1(config-if)# exit +R1(config)# ip nat pool natpool 200.1.1.1 200.1.1.3 netmask 255.255.255.248 +R1(config)# ip nat inside source list 101 pool natpool overload +``` + +## 出现新问题 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325113551.png) + +``` +配置了NAT之后我们发现:PC0 不能ping通PC 5了。这是因为IPSec与NAT发生了冲突,路由器对数据包的处理流程是先进行NAT转换,然后进行IPSec封装。所以要对进行IPSec封装的数据流进行一些相关设置,使该数据流不被NAT转换,这样才能成功进行IPSec通信。 +``` + +## 解决问题 + +### Router 0添加配置 + +``` +R0(config)# access-list 101 deny ip 192.168.123.0 0.0.0.255 192.168.100.0 0.0.0.255 +R0(config)# access-list 101 permit ip 192.168.123.0 0.0.0.255 any +``` + +### Router 1添加配置 + +``` +R1(config)# access-list 101 deny ip 192.168.100.0 0.0.0.255 192.168.123.0 0.0.0.255 +R1(config)# access-list 101 permit ip 192.168.100.0 0.0.0.255 any +``` + +## 测试结果 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325113219.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200325115020.png) + +``` +我们发现总公司和分公司的PC可以ping通公网PC,且解决了上面出现的配置NAT之后内网间无法互相访问的问题。 +``` + diff --git a/source/_posts/IP_Bearer_Network_basic.md b/source/_posts/IP_Bearer_Network_basic.md new file mode 100644 index 0000000..d735f10 --- /dev/null +++ b/source/_posts/IP_Bearer_Network_basic.md @@ -0,0 +1,176 @@ +--- +title: IP承载网理论基础 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-07 16:00:00 +music: + type: song + id: 1320098098 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +IP承载网理论基础学习笔记 + + + +## IP地址 + +``` +互联网协议地址(Internet Protocol Address),缩写为IP地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307154356.png) + + + +## 子网掩码 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307154708.png) + +``` +前缀表示:为了进一步简化子网掩码的表达,还可以用“/”加上网络位的位数来代表子网掩码,叫做前缀长度。比如,255.255.0.0,可以表示成“/16”,255.255.255.0可表示为“/24”。 +``` + + + +## IP地址计算 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307154847.png) + + + +## 特殊的IP地址 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307154457.png) + + + +## 以太网交换机工作模型 + +``` +二层以太网交换机处理以太网数据帧,根据数据帧头的源MAC和目的MAC指导报文转发。 +``` + + + +## 认识MAC地址 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307155251.png) + + + +## VLAN原理 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307155544.png) + + + + + +## 划分VLAN的好处 + +``` +交换机划分VLAN后减小了广播域范围,可以有效地控制网络广播风暴。 +同时,可以控制VLAN间通信问题,有效地提升网络安全。 +``` + + + +## 什么是路由 + +``` +路由是指导IP报文转发的路径信息。 +``` + + + +## 路由的种类 + +### 缺省路由 + +``` +缺省路由是一种特殊的路由,它的目的地址和掩码为全0,表示“0.0.0.0”,它可以匹配任意的目的地址。 + +缺省路由并不一定都是手工配置的静态路由,有时也可以由动态路由协议产生。 + +缺省路由一般配置在网络的出口设备中。 +``` + +### 直连路由 + +``` +链路层协议发现的路由开销小,配置简单,无需人工维护。只能发现本接口所属网段的路由。 +``` + +### 静态路由 + +``` +静态路由是网络管理员手工配置的路由。静态路由配置简单,适合于小型网络。静态路由配置项不随设备及链路的状态而变化。 +``` + +### 动态路由 + +``` +动态路由协议发现的路由开销大,配置复杂,无需人工维护,适合复杂拓朴结构的网络。 + +动态路由指路由器在配置了动态路由协议之后,通过路由信息的交换,经过计算,自动生成的路由。 +``` + + + +## 路由优先级 + +``` +从优先级最高的协议获取的路由最先被优先选择加入路由表中。 +``` + + + +## 路由优选原则 + +``` +问:越“高级”的路由协议发现的路由越优先? +答:最长匹配优先 + +问:无销值越小的路由越优先? +答:不同的路由协议发现的路由开销值没有比较意义 + +问:在路由器A上被优选的路由,路由器B上也一定优选? +答:路由选优完全是“单机行为” +``` + + + +## 动态路由的优势 + +``` +1. 自动生成 +2. 路径冗余 +3. 故障检测 +``` + +## 动态路由的缺点 + +``` +1.需要占用较多系统和带宽资源; +2.安全性存在问题。 +``` + + + +## OSPF + +``` +1. 邻居关系 +2. 宣告网络 +3. 宣告路由 +4. 引进路由 +``` + diff --git a/source/_posts/LTE.md b/source/_posts/LTE.md new file mode 100644 index 0000000..866c877 --- /dev/null +++ b/source/_posts/LTE.md @@ -0,0 +1,223 @@ +--- +title: LTE系统概述 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-07 12:25:00 +music: + type: song + id: 531295576 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +4G系统概述学习笔记 + + + +## LTE网络架构 + +**LTE通过大容量快速响应高速率更好的Qos提升用户体验。** + + + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307120439.png) + +``` +E-UTRAN中只有一种网元—eNode B + +全IP化 + +演进分组核心网------EPC + +媒体面控制面分离 + +演进分组系统—EPS + +与传统网络互通 +``` + +``` +UE与eNode B之间的接口是Uu接口 +eNode B与MME之间的接口是S1-MME接口 +eNode B与S-GW之间的接口是S1-U +eNode B与eNode B之间的接口是X2 +MME与HSS之间的接口是S6a +MME与S-GW之间的接口是S11 +S-GW与P-GW之间的接口是S5/S8 +PCRF与P-GW之间的接口是Gx +``` + +``` +Uu口也叫X1口,X2口相当于3G的Iur接口。 +``` + + + +## LTE网元功能 + +### eNodeB + +``` +(Mobility Management Entity,移动管理实体)无线资源管理,IP头压缩和用户数据流加密,UE附着时的MME选择,用户面数据向S-GW的路由,寻呼消息和广播信息的调度和发送,移动性测量和测量报告的配置。 +``` + +### MME + +``` +(Mobility Management Entity,移动管理实体)MME为控制面功能实体,临时存缝用户数据的服务器,负责管理和存储UE相关信息,比如UE用户标识、移动性管理状来用户安全参数,为用户分配临时标识。当UE驻扎在该跟踪区域或者该网络时负责对该用户进行鉴权,处理MME和UE之间的所有非接入层消息。 +``` + +### SGW + +``` +(Serving Gateway,服务网关)SGW为用户面实体,负责用户面数据路由处理,终结处于空闲状态的UE(用户终端设备)的下行数据,管理和存储UE的承载信息,比如IP承载业务参数和网络内部路由信息。 +``` + +### PGW + +``` +(PDN Gateway,分组数据网网关)PGW负责UE接入PDN的网关,分配用户IP地址,同时是3GPP和非3GPP接入系统的移动性锚点。用户在同一时刻能够接入多个PDN GW。 +``` + +### HSS + +``` +(Home Subscriber Server,归属用户服务器)HSS存储并管理用户签约数据,包括用户鉴权信息、位置信息及路由信息。 +``` + +### PCRF + +``` +(Policy and Charging Rule Functionality,策略和计费规则功能实体)PCRF功能实体主要根据业务信息和用户签约信息以及运营商的配置信息产生控制用户数据传递的QoS(Quality of Service,服务质量)规则以及计费规则。该功能实体也可以控制接入网中承载的建立和释放。 +``` + +## LTE接口与协议 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307122645.png) + +​ + +## LTE主要网络标识 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307122830.png) + +### PLMN ID + +``` +PLMN ID是PLMN的全局唯一标识,由MCC+MNC两部分组成。 +``` + +### IMSI + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307122929.png) + +### IMEI + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307123006.png) + +### MSISDN + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307123319.png) + +### GUTI + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307123504.png) + +### TAI + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307123610.png) + +### ECGI + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307123642.png) + +## LTE关键技术-多址技术 + +``` +LTE系统下行多址方式为正交频分多址(OFDMA),上行为基于正交频分复用(OFDM)传输技术的单载波频分多址(SC-FDMA)。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307132303.png) + +### OFDMA特点 + +``` +最大支持64 QAM + +通过CP解决多径干扰 + +兼容MIMO +``` + +### SC-FDMA特点 + +``` +最大支持64 QAM + +单载波调制降低峰均比(PAPR) + +FDMA可通过FFT实现 +``` + +## LTE关键技术-MIMO + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307133013.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307133428.png) + +## LTE关键技术-多阶调制技术 + +``` +LTE支持BPSK,QPSK,16QAM,64QAM,256QAM。 + +当前上行支持64QAM,下行支持256QAM。 +``` + +## LTE关键技术- 链路自适应技术 + +### 速率控制 + +``` +AMC: + +- 时域AMC + +- 频域AMC + +- 空域AMC +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307133936.png) + +### 功率控制 + +``` +功率控制可以很好的避免小区内用户间的干扰。 +``` + +## LTE关键技术-干扰消除技术 + +### 功率控制 + +``` +小区间功率控制:一种通过告知其它小区本小区loT信息,控制本小区loT的方法。 + +小区内功率控制:补偿路损和阴影衰落,节省终端的发射功率,尽量降低对其他小区的干扰,使得loT保持在一定的水平之下。 +``` + +## LTE关键技术-载波聚合 + +``` +载波聚合是指基站根据UE能力将2个或更多载波进行聚合 + +每一聚合的载波称为分量载波 + +协议设计最多支持5个的载波聚合在一起以支持更大的传输带宽(最大为100MHz)。 +``` + diff --git a/source/_posts/Layer.md b/source/_posts/Layer.md new file mode 100644 index 0000000..073e0bf --- /dev/null +++ b/source/_posts/Layer.md @@ -0,0 +1,160 @@ +--- +title: 图层进阶知识 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Photoshop +date: 2020-04-03 14:00:00 +music: + type: song + id: 545350938 +comments: true +tags: + - 图像处理 + - Photoshop +--- + +图层链接 + +图层编组 + +图层剪贴蒙版 + + + +## 图层的锁定 + +### 锁定透明像素 + +``` +禁止对透明区域进行操作。 +``` + +### 锁定图像像素 + +``` +禁止编辑图像,但可以移动变换。 +``` + +### 锁定位置 + +``` +禁止移动变换。 +``` + +### 锁定全部 + +``` +禁止一切操作。 +``` + + + +隐藏图层也可以保护图层编辑。 + + + +## 图层链接 + +图层链接可以多图层统一移动变换。 + + + +按住Shift键点击链接图标可以临时停用链接。再次按住Shift键点击链接图标可以取消临时停用链接。 + + + +图层链接后统一移动变换,但图层仍属独立编辑。 + + + +## 图层整合形式 + +图层整合以后,图层群们是否具有统一的操作属性,详见此表: + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200402191637.png) + + + +## 图层编组 + +``` +图层编组可以整合管理,并具有多种统一属性。 +``` + + + +选中要加入组的图层,按住Shift键,点击创建新组按钮,即可将选择的图层加入到组中。 + + + +### 创建空白组 + +``` +选择【图层】-->【新建】-->【组】,弹出【创建组】对话框。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200402192628.png) + +``` +名称:可根据需求随意填写。 +颜色:组在图层栏里面的颜色标记。 +模式:默认为穿透模式,一般不需要更改。 +``` + + + +### 从图层创建组 + +``` +选择【图层】-->【新建】-->【从图层创建组】,弹出【从图层创建组】对话框。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200402193213.png) + + + +### 快捷键 + +``` +常用的编组快捷键操作:Ctrl + G +取消编组:Ctrl + Shift + G +``` + + + +## 图层拼合 + +``` +Ctrl + E,Ctrl + Alt + E,图层合并命令简介。 +``` + +### 盖印图层 + +``` +所有可见图层拼合效果的新图层。 + +快捷键:Ctrl + Shift + Alt + E + +盖印选择图层快捷键:Ctrl + Alt + E +``` + + + +## 图层复合 + +``` +保存当前图层的位置,可见性,样式信息。 +``` + + + +## 图层剪贴蒙版 + +``` +上方图层进入下方图层形状。 + +快捷键:Ctrl + Alt + G +``` + diff --git a/source/_posts/Linux_often_use.md b/source/_posts/Linux_often_use.md new file mode 100644 index 0000000..b9c670c --- /dev/null +++ b/source/_posts/Linux_often_use.md @@ -0,0 +1,89 @@ +--- +title: Linux常用操作 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Linux +date: 2020-03-11 13:04:14 +music: + type: song + id: 108493 +comments: true +keywords: Linux操作 +description: +--- + +Linux基础操作命令 + + + +## 创建文件夹 + +```shell +mkdir 文件夹名称 +``` + +## 创建多级目录 + +```shell +mkdir -p 一级目录/二级目录/三级目录 +``` + +## 创建文件 + +```shell +touch 文件名 +``` + +## 复制文件 + +```shell +cp 文件名 目录 +``` + +## 复制目录 + +```shell +cp -r 目录名 目标目录名 +``` + +## 删除文件 + +```shell +rm 文件名 +``` + +## 删除目录和目录下所有文件 + +```shell +rm -r 目录名 +``` + +## 移动文件 + +```shell +mv 文件名 目录名 +``` + +## 重命名文件 + +```shell +mv 原文件名 目标文件名 +``` + +## 查看文件内容 + +```shell +cat 文件名 +``` + +## 带行号查看文件内容 + +```shell +cat -n 文件名 +``` + +## 总结 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesLinux常用操作.png) \ No newline at end of file diff --git a/source/_posts/MIMO.md b/source/_posts/MIMO.md new file mode 100644 index 0000000..ef776ea --- /dev/null +++ b/source/_posts/MIMO.md @@ -0,0 +1,185 @@ +--- +title: MIMO +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-05-11 21:21:21 +music: + type: song + id: 1433434738 +comments: true +mathjax: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +多进多出(MIMO)是为极大地提高信道容量,在发送端和接收端都使用多根天线,在收发之间构成多个信道的天线系统。MIMO系统的一个明显特点就是具有极高的频谱利用效率,在对现有频谱资源充分利用的基础上通过利用空间资源来获取可靠性与有效性两方面增益,其代价是增加了发送端与接收端的处理复杂度。大规模MIMO技术采用大量天线来服务数量相对较少的用户,可以有效提高频谱效率。 + + + +## MIMO的定义 + +{% folding Multiple Input Multiple Output,多输入多输出。 %} + +{% note success, 在多个天线上分别发送多个数据流 %} + +{% note success, 利用多径衰落,在不增加带宽和天线发射功率的情况下,提高信道容量及频谱利用率,或提高数据的传输质量。 %} + +{% endfolding %} + + + +## MIMO的优点 + +**MIMO多种模式带来多种增益。** + +- 分集增益 +- 波束赋形增益 +- 空间复用增益 + +**频谱效率** + +要求TD-LTE的下行频率速率达到5bps/Hz(Rel-10为30bps/Hz),上行频谱速率达到2.5bps/Hz(Rel-10为15bps/Hz) + +
+ +{% note success, MIMO天线收发分集:提高通信质量。 %} + +{% note success, 发射分集技术提高系统下行链路性能。 %} + +![开环模式中的STTD分集](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200511140050.png) + +
+ +{% note success, MIMO天线空间复用:提高系统容量 %} + +MU-MIMO:基站将占用相同时频资源的多个数据流发送给不同用户 + +下行同时支持SU-MIMO和MU-MIMO + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200511154807.png) + +
+ +{% note success, MIMO天线波束赋形:增强抗干扰能力 %} + +传统的波束赋形: + +- 小间距的天线阵列,使用较多天线单元 +- 提高峰值速率,小区覆盖,降低小区间的干扰 + +
+ +## LTE创新技术:双流波束赋形 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200511211824.png) + +
+ +## MIMO优点总结 + +发送分集:提高可靠性,不能提升数据速率 + +波束赋形:降低干扰,能提升数据速率 + +空分复用:多个数据流传输,可提升数据速率 + +
+ +## TD-LTE中MIMO的应用(PDSCH 传输方案) + +| 传输模式 | PDSCH传输方案 | 优点 | 典型应用方案 | +| :------: | :------------- | ------------------------------------ | -------------------------- | +| TM1 | 单天线传输模式 | 产生的CRS开销小 | 各类场景 | +| TM2 | 发送分集 | 提高链路传输质量,提高小区覆盖半径 | 作为其他MIMO模式的回退模式 | +| TM3 | 开环空间复用 | 提高小区平均频谱效率和峰值速率 | 高速移动场景 | +| TM4 | 闭环空间复用 | 提高小区平均频谱效率和峰值速率 | 低速移动场景 | +| TM5 | 多用户MIMO | 提高小区平均频谱效率和峰值速率 | 密集城区 | +| TM6 | Rank=1的预编码 | 提高小区的覆盖 | 仅支持rank=1的传输 | +| TM7 | 单流波束赋形 | 提高链路传输质量,提高小区覆盖半径 | 郊区、大范围覆盖场景 | +| TM8 | 双流波束赋形 | 提高小区覆盖,提升小区中心用户吞吐量 | 小区中心吞吐量需求大的场景 | + +
+ +## TM1:单天线端口传输 + +- 最简单的传输方案 +- PDSCH使用单天线端口传输时,根据Port0上的CRS进行解调。 + +{% note success, Port0上的小区专用参考信号的标识是R0。%} + +
+ +## TM2:发送分集 + +- 用于增强小区覆盖。 +- 作为TM3/4/5/6/7的回退模式 +- LTE中的实现方式SFBC+FSTD。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200511191836.png) + +
+ +## TM3:开环空间复用 + +- 一种大延迟(CDD)空间复用,接收端不需给发射端反馈预编码矩阵信息。 +- 用于提高小区平均频谱效率和峰值速率。 +- 适用于高速移动场景。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200511192143.png) + +
+ +## TM4:闭环空间复用 + +- 发送端需要给接收端反馈预编码矩阵信息。 +- 用于提高小区平均频谱效率和峰值速率。 +- 适用于低速移动场景。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200511192325.png) + +
+ +## TM5:多用户MIMO + +- 只支持每个用户单层的传输,而且最大支持两层。 +- 用于提高小区平均频谱效率和峰值速率。 + +
+ +## TM6:闭环RANK=1的预编码 + +- 用于增强小区覆盖。 +- 尽可能减小承载相关的控制信令。 +- 仅支持rank=1的传输。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200511192647.png) + +
+ +## TM7:单流波束赋形 + +- PDSCH是依据port5上DRS进行解调的。 +- 用于提高小区边缘用户的覆盖。 +- 单流波束赋形是基于专用导频的非码本波束赋形。 +- 主要用于TD-LTE系统。 + +
+ +## TM8:双流波束赋形 + +- 双流波束赋形将波束赋形技术与空间复用技术相结合。 +- 既提高小区边缘用户的覆盖,也可以提升小区中心用户的吞吐量。 +- 双流波束赋形是基于专用导频的非码本波束赋形。 +- 双流波束赋形是TD-LTE Rel-9中的增强型技术。 + +
+ +## 终端LTE多天线 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200511205924.png) + diff --git a/source/_posts/MySQL8_basics.md b/source/_posts/MySQL8_basics.md new file mode 100644 index 0000000..fa9b2a6 --- /dev/null +++ b/source/_posts/MySQL8_basics.md @@ -0,0 +1,111 @@ +--- +title: MySQL 8数据库基础 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 数据库 +date: 2020-02-27 12:50:11 +music: + type: song + id: 1407551413 +comments: true +tags: + - 数据库 + - MySQL +--- + +MySQL基础语法,学习时做的笔记。 + + + + + +## 常用数据库命令 + +```mysql +create database 数据库名称; //创建数据库 +drop database 数据库名称; //删除数据库 +show databases; //查看数据库 +use 数据库名; //使用数据库 +``` + +## 更改加密方式 + +```mysql + ALTER USER'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; + ALTER USER'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; + FLUSH PRIVILEGES; +``` + +## 创建学生表 + +```mysql +CREATE TABLE 表名称( + 列表名1 数据类型 [约束], + 列表名2 数据类型 [约束], + ... + 列表名n 数据类型 [约束] +); +``` + +## 添加一列 + +```mysql +ALTER TABLE 表名称 ADD 列表名 数据类型; +``` + +## 修改一个表的字段类型 + +```mysql +alter table 表名称 modify 修改的列表名 数据类型(长度); +``` + +## 查看表结构 + +```mysql +desc 表名称; +``` + +## 修改表名称 + +```mysql +RENAME TABLE 原始表名称 TO 要修改成的表名称; +``` + +## 修改字符集 + +```mysql +ALTER TABLE 表名称 CHARACTER SET 字符集名称; +``` + +## 修改表的列名 + +```mysql +ALTER TABLE 表名称 CHANGE 原始列名 新列名 数据类型; +``` + +## 注释 + +```mysql +# +``` + +## 查看表的字段信息 + +```mysql +desc 表名称; +``` + +## 删除一列: + +```mysql +ALTER TABLE 表名称 DROP 字段名称; +``` + +## 删除表 + +```mysql +DROP TABLE 表名称; +``` + diff --git a/source/_posts/NB-IoT.md b/source/_posts/NB-IoT.md new file mode 100644 index 0000000..55343f5 --- /dev/null +++ b/source/_posts/NB-IoT.md @@ -0,0 +1,94 @@ +--- +title: NB-IoT技术架构 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-07 15:00:00 +music: + type: song + id: 1328146041 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +NB-IoT技术学习笔记 + + + +## 5G的发展方向 + +``` +高速率,高带宽: LTE、LTE-A + +低速率、低成本、低功耗、广覆盖:物联网 +``` + +## 频谱应用 + +``` +主流的FDD频段都支持NB-IoT:900MHz、1800MHz、800MHz +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307141143.png) + + + +## NB-IoT网络架构 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307141251.png) + +### NB-IoT数据传输方案 + + NB-IoT主要用于传送低速率的小数据包,从传输数据格式来看,可以传输三种数据类型:IP,Non-IP,SMS(短消息)。 + + NB-IoT是从LTE系统演进而来,为提升小数据的传输效率,NB-loT系统支持两种优化的传输方案,包括控制面优化传输方案(简称CP方案)和用户面优化传输方案(简称UP方案)。 + + +## 3GPP 5G NR协议标准 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307142223.png) + + + +## 5G频率范围 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307142712.png) + + + +## 5GNR常见的帧结构配置 + +``` +以u=1,子载波间隔为30KHz为例,单个时隙长度为0.5ms +``` + + + +## SS Block组成 + +``` +一个SS block 包含PSS/SSS/PBCH,用于下行同步信号和广播信号的发送。 + +小区搜索是UE接入网络,为用户提供各种业务的基础 +``` + + + +## 物理信号与天线端口 + + 上行链路的天线端口: + 天线端口0(起始号)用于PUSCH的DM-RS + 天线端口1000(起始号)用于SRS + 天线端口2000(起始号)用于PUCCH的DM-RS + 天线端口4000用于PRACH。 + + 下行链路的天线端口: + 天线端口1000(起始号)用于PDSCH的DM-RS + 天线端口2000(起始号)用于PDCCH的DM-RS + 天线端口3000(起始号)用于CSI-RS + 天线端口4000(起始号)用于SS/PBCH \ No newline at end of file diff --git a/source/_posts/Network_Access.md b/source/_posts/Network_Access.md new file mode 100644 index 0000000..9784418 --- /dev/null +++ b/source/_posts/Network_Access.md @@ -0,0 +1,354 @@ +--- +title: 网络接入技术与方法 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 计算机三级 +date: 2020-04-24 18:48:12 +music: + type: song + id: 1370047789 +comments: true +tags: + - 网络技术 + - 计算机三级 +--- + +数字用户线xDSL接入技术 + +光纤同轴电缆混合网 + +无源光网络(PON)标准化的业务(OC-1=51.84Mbps) + +宽带接入技术IEEE 802.16标准与城域网 + + + +## 宽带接入技术的基本类型 + +从用户接入的角度,宽带接入可以分为接入技术接入方式两种类型,其中接入方式与用户工作环境与需求相关。 + +从技术实现的角度,且前宽带接入技术主要有:数字用户线(xDSL)技术光纤同轴电缆混合网(HFC)技术光纤接入技术局域网接入技术以及无线接入技术。其中,无线接入又可以分为无线局域网接入无线城域网接入无线Ad hoc接入。 + + + +### 真考试题 + +下列技术中,不属于无线接入技术的是( )。 + +{% checkbox green, Ad hoc %} +{% checkbox green checked, SDH %} +{% checkbox green, WiFi %} +{% checkbox green, WiMAX %} + + + +## 各种接入技术 + +### 数字用户线xDSL接入技术 + +xDSL中x的意思是表示它的不同类型,例如,可以理解x是A、H或RA等,它们对应于不同的数字用户线技术。xDSL技术根据上行和下行的速率是否相同可分为速率对称型速率非对称型两种。 + +
+ +{% p subtitle, 根据信号传输的速率、距离以及上行速率与下行速率的不同,xDSL技术主要可以分为以下几种: %} +{% folding 点击查看具体内容 %} + +{% note warning, 非对称数字用户线(ADSL) %} + +{% note warning, 高比特率数字用户线(HDSL) %} + +{% note warning, 速率自适应数字用户线(RADSL) %} + +{% note warning, 超高比特率数字用户线(VDSL) %} + +{% endfolding %} + +
+ +xDSL技术的上行与下行速率 + +| xDSL | 上/下行速率(距离5.5km) | 上/下行速率(距离3.6km) | 是否对称 | 线对数 | +| :---: | :----------------------: | :----------------------: | :------: | :----: | +| ADSL | 64Kbit/s / 1.5Mbit/s | 640Kbit/s / 6Mbit/s | 否 | 1 | +| HDSL | 1.554Mbit/s | 1.554Mbit/s | 是 | 2 | +| VDSL | 2.3Mbit/s / 51Mbit/s | 2.3Mbit/s / 51Mbit/s | 否 | 2 | +| RADSL | 64Kbit/s / 1.5Mbit/s | 640Kbit/s / 6Mbit/s | 否 | 1 | + +
+ +ADSL的技术特点主要表现在: + +- 能够利用现有的用户电话铜双绞线,以重叠和不干扰传统模拟电话业务的方式,即普通电话业务(POTS)的方式,提供高速数字业务。ADSL允许用户在保留已有的模拟电话业务的同时,进行Internet在线访问、视频点播(VOD)等新型宽带业务。 +- 该技术与本地环路的实际参数以及用户电话铜双绞线的特性关系都不大,所以用户不需要进行电缆的重新铺设。 +- 上行速率在64-640Kbit/s,下行速率在500Kbit/s~7Mbit/s,用户可以根据需要自行选择。 + +
+ +#### 真考试题 + +ADSL的上行速率在( )。 + +{% checkbox green, 10Mbps ~ 20Mbps %} + +{% checkbox green, 7Mbps ~ 10Mbps %} + +{% checkbox green, 640Kbps ~ 7Mbps %} + +{% checkbox green checked, 64Kbps ~ 640Kbps %} + +
+ +下列关于xDSL技术的描述中,错误的是( )。 + +{% checkbox green, xDSL技术按上行与下行速率分为速率对称与非对称两类 %} + +{% checkbox green, ADSL技术在现有用户电话线上同时支持电话业务和数字业务 %} + +{% checkbox green checked, ADSL上行传输速率最大可以达到8Mbps %} + +{% checkbox green, HDSL上行传输速率为1.544Mbps %} + + + +### 光纤同轴电缆混合网 + +#### 光纤同轴电缆混合网的基本结构 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200424134759.png) + +{% note success, HFC是由电视头端长距离干线放大器馈线下引线组成。 %} + +{% note success, HFC是新一代的有线电视网络,是一个双向传输系统,光纤结点通过同轴电缆下引线可以为500~2000个用户服务。 %} + +{% note success, HFC改善了信号质量,提高了可靠性,线路可以使用的带宽甚至可以达到1GHz。 %} + +{% note success, 从用户接入的角度来看,光纤到HFC是经过双向改造的有线电视网络,是用户通过有线电视宽带接入Intermet的一种重要的方式。 %} + +{% note success, HFC是使用Cable Modem,通过有线电视宽带接入Intermet的,数据传输速率可达10-36Mbit/s。 %} + +
+ +#### 真考试题 + +下列关于光纤同轴电缆混合网HFC的描述中,错误的是( )。 + +{% checkbox green, HFC是一个双向传输系统 %} + +{% checkbox green, HFC由有线电视头端、长距离干线、放大器、馈线和下引线组成 %} + +{% checkbox green, HFC的数据传输速率可达10~36Mbps %} + +{% checkbox green checked, HFC通过路由器将用户计算机与同轴电缆连接起来 %} + +
+ +#### 电缆调制解调器 + +Cable Modem把用户过算机与有线电视同抽电缆连接起来,不仅有调制解调功能,也带有加密解密和协议适配,以及网桥、路由器与集线器的部分功能。Cable Modem利用频分复用的方法,将双向信道分为:从计算机终端到网络方向称为上行信道,从网络到计算机终端方向称为下行信道。 + +
+ +从数据传输方向上,Cable Modem可以分为单向双向两类。 +从传输方式上,Cable Modem可以分为双向对称式传输非对称式传输两类。 +从同步方式上,Cable Modem可以分为类似于Ethernet的同步交换类似于ATM技术的异步交换两类。 +从接入的角度,Cable Modem可以分为个人Cable Modem宽带多用户Cable Modem。 +从接口的角度,Cable Modem可分为外置式内置式交互式机顶盒3种。 + +
+ +#### 真考试题 + +下列关于光纤同轴电缆混合网HFC的描述中,错误的是( )。 + +{% checkbox green, HFC是一个双向传输系统 %} + +{% checkbox green, Cable Modem利用频分多路复用方法将信道分为上行信道与下行信道 + + %} + +{% checkbox green, Cable Modem传输方式分为对称式和非对称式两类 %} + +{% checkbox green checked, HFC通过Cable Modem将光缆与同轴电缆连接起来 %} + +解析:HFC通过Cable Modem将用户计算机与同轴电缆连接的,并不是将光缆与同轴电缆连接的。 + +
+ +### 光纤接入技术 + +APON(宽带无源光网络)是ATMPON的简称。ATM是一种基王信元的传输协议,能为接入网提供动态的带宽分配,从而更适合宽带数据业务的需要。 +EPON(以太网无源光网络)是基于以太网的PON技术。EPON采用点到多点结构、无源光纤传输,在以太网之上提供多种业务,EPON是一种实现光纤到户的重要技术。 + +
+ +无源光网络(PON)是基于ITU ”基于无源光纤网的高速光纤接入系统“ 下进行标准化的。 + +- OC-3:155.520Mbit/s的对称业务 +- 上行OC-3:155.520Mbit/s;下行OC-12:622.080Mbit/s的不对称业务。 + +{% note success, OC-1 = 51.84Mbit/s %} + +{% note success, 传输媒介可以是一根或两根单模光纤,双向传输通过波分复用(一根或两根光纤)实现。 %} + +
+ +#### 真考试题 + +ITU标准OC-24和OC-12的传输速率分别为( )。 + +{% checkbox green, 155.52Mbps和51.84Mbps %} + +{% checkbox green, 155.52Mbps和622.08Mbps %} + +{% checkbox green, 622.08Mbps和155.52Mbps %} + +{% checkbox green checked, 1.244Gbps和622.08Mbps %} + +解析: + +{% note success, + +OC-24:OC-1 × 24 = 51.84 × 24 = 1244.16Mbps = 1.244Gbps + +
+ +OC-12: OC-24 ÷ 2 = 1244.16 ÷ 2 = 622.08Mbps + +%} + +
+ +ITU标准OC-3和OC-12的传输速率分别为( )。 + +{% checkbox green, 622.08Mbps和1.244Gbps %} + +{% checkbox green checked, 155.52Mbps和622.08Mbps %} + +{% checkbox green, 155.52Mbps和51.84Mbps %} + +{% checkbox green, 51.84Mbps和622.08Mbps %} + +解析: + +{% note success, + +OC-3:OC-1 × 3 = 51.84 × 3 = 155.52Mbps + +
+ +OC-12: OC-1 × 12 = 51.84 × 12 = 622.08Mbps + +%} + +
+ + + +### 宽带无线接入技术 + +无线接入技术主要有IEEE 802.11标准的无线局域网(WL.AN)接入IEEE 802.16标准的无线城域网(WMAN)接入,以及正在发展的Adhoc接入技术几种。 + +#### 无线接入技术的分类与应用 + +近距离使用可采用IEEE 802.11标准的无线局域网技术,它可以满足一定地理范围内的用户无线接入需求;远距离使用则采用IEEE 802.16标准的WiMAX技术,该技术可以在50km范围内提供最高70Mbit/s的传输速率。 + +
+ +IEEE 802.11标准与IEEE 802.16标准均针对无线环境,但由于通用对象不同,采用的技术与协议解决问题的重点也不相同。IEEE 802.11标准的重点在解决局域网范围的移动节点通信问题,而IEEE 802.16标准的重点是解决建筑物之间的数据通信问题。 + +
+ +#### IEEE 802.11标准与无线局域网 + +- IEEE 802.11定义了使用红外跳频扩频直接序列扩频技术,数据传输速率为1Mbit/s2Mbit/s + +- IEEE 802.11a将传输速率提高到54Mbit/s + +- IEEE 802.11b定义了使用直序扩频技术,传输速率为1Mbit/s2Mbit/s5.5 Mbit/s11Mbit/s。 + +
+ +#### IEEE 802.16标准与无线城域网 + +- 按IEEE 802.16标准建立采用全双工宽带通信方式工作的基站。 +- IEEE 802.16标准规定了无线网络使用更高的、毫米波的10~~~66GHz波段的频率。 +- 在IEEE 802.16标准上增加了两个物理层标准IEEE 802.16dIEEE 802.16e。 +- 与IEEE 802.16标准工作组对应的论坛组织是WiMAX,最高的传输速率为134Mbit/s。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200424153636.png) + +
+ +##### 真考试题 + +下列关于IEEE 802.16标准的描述中,错误的是( )。 + +{% checkbox green, 提供宽带城域网用户访问Intenet所需要的路由服务 %} + +{% checkbox green checked, 最高传输速率为234Mbps %} + +{% checkbox green, 使用无线频段为10~66GHz %} + +{% checkbox green, 与IEEE 802.16标准工作组对应的论坛组织是WiMAX %} + +
+ +下列关于IEEE 802.16标准的描述中,错误的是( )。 + +{% checkbox green, 802.16主要用于解决城市地区范围内的宽带无线网接入问题 %} + +{% checkbox green checked, 802.16a用于移动结点接入 %} + +{% checkbox green, 802.11d用于固定结点接入 %} + +{% checkbox green, 802.16e用于固定或移动结点接入 %} + +
+ +下列关于接入技术特征的描述中,正确的是( )。 + +{% checkbox green, APON是一种无线接入技术 %} + +{% checkbox green, Cable Modem利用波分复用的方法将信道分为上行信道和下行信道 %} + +{% checkbox green, IEEE 802.11b将传输速率提高到54Mbps %} + +{% checkbox green checked, ADSL技术具有非对称带宽特征 %} + +{% folding 点击查看解析 %} + +{% note warning, + +APON是一种光纤接入技术的一种,A选项错误;Cable Modem利用的是频分复用的方法将信道分为上行信道和下行信道,故B选项错误;IEEE 802.11b最高的传输速率是11Mbit/s,802.11a最高的速率是54Mbit/s,故C选项错误。 + + %} + +{% endfolding %} + +
+ +下列关于接入技术特征的描述中,正确的是( )。 + +{% checkbox green, EPON是一种无线接入技术 %} + +{% checkbox green, Cable Modem利用波分复用的方法将信道分为上行信道和下行信道 %} + +{% checkbox green, 802.11a将传输速率提高到11Mbps %} + +{% checkbox green checked, ADSL技术具有非对称带宽特征 %} + +{% folding 点击查看解析 %} + +{% note warning, + +EPON是一种光纤接入技术,故A选项错误;Cable Modem利用的是频分复用的方法将信道分为上行信道和下行信道,故B选项错误;IEEE 802.11b最高的传输速率是11Mbit/s,802.11a最高的速率是54Mbit/s,故C选项错误。 + + %} + +{% endfolding %} + +
+ +{% note success, 非对称数字用户线ADSL技术特点(上行速率在64-640Kbps,下行速率在500Kbps-7Mbps %} \ No newline at end of file diff --git a/source/_posts/No-module-named-pip.md b/source/_posts/No-module-named-pip.md new file mode 100644 index 0000000..4dfc443 --- /dev/null +++ b/source/_posts/No-module-named-pip.md @@ -0,0 +1,45 @@ +--- +title: 解决pip异常:No module named 'pip' +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Python +date: 2020-05-19 21:10:00 +music: + type: song + id: 165364 +comments: true +--- + + + +学习Python过程中,pip安装模块的时候提示我有新版本更新,更新之后不知道为什么就无法使用pip命令了,一直提示ModuleNotFoundError: No module named 'pip'。 + + + +``` +Traceback (most recent call last): + File "e:\python\lib\runpy.py", line 193, in _run_module_as_main + return _run_code(code, main_globals, None, + File "e:\python\lib\runpy.py", line 86, in _run_code + exec(code, run_globals) + File "E:\python\Scripts\pip.exe\__main__.py", line 5, in +ModuleNotFoundError: No module named 'pip' +``` + +## 解决方案 + +``` +Python -m ensurepip +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519210256.png) + +``` +python -m pip install --upgrade pip +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519210329.png) + +{% note success, 至此,pip命令修复完成,又可以正常使用了 %} \ No newline at end of file diff --git a/source/_posts/OFDMA.md b/source/_posts/OFDMA.md new file mode 100644 index 0000000..f69de56 --- /dev/null +++ b/source/_posts/OFDMA.md @@ -0,0 +1,167 @@ +--- +title: OFDMA +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-04-25 17:13:00 +music: + enable: true + server: netease + type: song + id: 174963 +comments: true +mathjax: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +TD-LTE核心技术 + +频分多址技术之OFDMA/SC-FDMA + + + +## OFDMA的优点 + +- 时域上抵抗多径衰落 +- 频域上抵抗频率选择性衰落,简化接收机的信道均衡操作 + +
+ +{% note success, 码元的长度越长,符号间的干扰(ISI)就越低。%} + +{% note success, 码元的长度越长,码元速率就越低。 %} + +
+ +## OFDM循环前缀CP + +CP能够克服时延拓展,最大限度消除符号间干扰(ISI)。CP越长,能够抵抗的多径时延越长,但相应的,系统开销也越大。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200425155542.png) + +{% note success, I指的是OFDM符号的编码 %} + +
+ +{% note success, LTE系统中最小的时间单位叫作基本的时间单位。%} + +{% note success, 一个子帧可以划分成14个OFDM符号,14个OFDM符号可以划分成2个时隙,1个时隙就是7个OFDM符号 %} + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200425161403.png) + +
+ +CP使一个符号周期内因多径产生的波形为完整的正弦波,因此不同子载波对应的时域信号与其多径积分总为0,消除载波间干扰(ICI)。 + +
+ +## OFDM定义 + +{% note success, 子载波间的正交性 %} + +{% note success, 上行采用SC-FDMA技术 %} + +## OFDM基本原理 + +{% note success, 高速串行转低速并行 %} + +{% note success, 傅里叶逆变换 %} + +## 循环前缀 + +{% note success, 目的:降低ISI和ICI %} + +{% note success, 分类:常规CP和扩展CP %} + + + +## OFDM和CDMA的对比 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200425162921.png) + +### OFDM缺点 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200425163141.png) + + + +## SC-FDMA + +{% note success, 单载波频分多址接入(Single Carrier Frequency Division Multiple Access) %} + +
+ +SC-FDMA类似于OFDMA,但SC-FDMA可以降低PAPR(峰均比)。 + + + +## OFDMA VS SC-FDMA + +- OFDMA导致高PAPR,影响UE的成本和电池寿命 +- SC-FDMA采用单载波技术峰均比(PAPR)低,有效提高RF功率放大器的效率,降低终端成本和耗电量 + + + +## 下行多址方式-OFDMA + +集中式:连续RB分给一个用户 + +{% folding 点击查看优点 %} + +{% note success, 优点:调度开销小 %} + +{% endfolding %} + +分布式:分配给用户的RB不连续 + +{% folding 点击查看优点 %} + +{% note success, 优点:选频调度增益较大 %} + +{% endfolding %} + +
+ +**RB(Resource Block)**:资源块。业务信道资源分配的资源单位,时域上为一个时隙,频域上为12个子载波。 + +**RE(Resource Element)**:最小的资源单位,时域上为一个符号,频域上为一个子载波。 + +
+ +## 上行多址方式-SC-FDMA + +与OFDMA相同,将传输带宽划分成一系列正交的子载波资源,将不同的子载波资源分配给不同的用户实现多址。注意不同的是:任一终端使用的子载波必须连续。 + +
+ +{% note success, 在任一调度周期中,一个用户分得的子载波必须是连续的 %} + +
+ +上行方向上给用户分配RB要满足: +$$ +RB = 2^a·3^b·5^c +$$ + +## 总结 + +### OFDM的缺点 + +{% note success, 高峰均比,高同步要求,同频干扰 %} + +### SC-FDMA定义 + +{% note success, 目的:抗峰均比 %} + +{% note success, 傅里叶表换&傅里叶逆变换 %} + +### 上下行资源的分配 + +上行:资源集中&连续RB数满足$$ RB = 2^a·3^b·5^c $$ + +下行:资源既可集中,也可分布 \ No newline at end of file diff --git a/source/_posts/OLT_command.md b/source/_posts/OLT_command.md new file mode 100644 index 0000000..5b568f1 --- /dev/null +++ b/source/_posts/OLT_command.md @@ -0,0 +1,189 @@ +--- +title: OLT基础命令 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 交换机 +date: 2020-02-27 12:13:14 +music: + type: song + id: 554241732 +comments: true +tags: 交换机 +keywords: 交换机 +description: +photos: https://zhengyuanyuan520.cn/images/blog_background.jpg +--- + + +适用于华为OLT的基础命令,这是当时学习时做的笔记。 + + + + +## 1、基础命令模式功能及特性列表 + +| 命令模式 | 功能 | 模式提示符实例 | 命令 | +| ------------ | ------------------------ | --------------- | ---------- | +| 普通用户模式 | 查看系统基本信息 | huawei> | 登录后进入 | +| 特权模式 | 进行系统基本配置 | huawei# | enable | +| 全局配置模式 | 配置系统设备及全局性参数 | huawei(config)# | config | + +## 2、基础命令 + +- **查看ONU相关信息** + +``` +命令语法:display onu nat information + +命令功能:用于查询通过OLT代理管理的ONU设备相关信息,包括ONU的公网IP地址,管理通道的VLAN ID以及ONU上行SNMP报文的优先级;以及ONU私网IP地址池的起始IP地址和范围。 +``` + +- **配置ONU管理通道的VLAN** + +``` +命令语法:onu nat vlan vlanid + +命令功能:配置VLAN ID的前提是OLT通过NAT代理管理ONU功能为使能状态。配置的目的是用于xPON单板根据此VLAN ID抓取ONU报文。 + +参数说明: +vlanid:设置ONU所属的代理管理通道的VLAN ID。其取值为数值类型,范围:2-4093。 +``` + +- **对以太网接口进行配置** + +``` +命令语法:interface eth frameid/slotid + +命令功能:此命令用于从全局配置模式进入到ETH模式。当需要在ETH模式下配置以太网口时,使用此命令。 + +参数说明: +frameid/slotid:用于标识机框号/槽位号。“/”需原样输入。当需要对某一指定槽位下发命令时使用此参数。 +``` + +- **对GPON端口进行配置** + +``` +命令语法:interface gpon frameid/slotid + +命令功能:此命令用于从全局配置模式进入到GPON模式。当需要在GPON模式下对GPON端口进行配置时,使用此命令。 + +参数说明: +frameid/slotid:用于标识机框号/槽位号。“/”需原样输入。当需要对某一指定槽位下发命令时使用此参数。 +``` + +- **对管理网口进行配置** + +``` +命令语法:interface meth number + +命令功能:此命令用于从全局配置模式进入到METH模式。进入METH模式后,可以配置维护网口的IP地址、Firewall以及接口的速率和双工状态等参数。 + +参数说明: +number:维护网口的编号,固定为0。number取数值类型,取值范围:0。 +``` + +- **创建VLANIF接口并进入VLANIF模式** + +``` +命令语法:interface vlanif vlan-id + +命令功能:interface vlanif命令用于从全局配置模式创建VLANIF接口并进入VLANIF模式。在VLANIF模式下,可以对虚拟的三层接口进行DHCP、防火墙、IP地址、MPLS、DHCP server、ARP等相关配置。 + +参数说明: +vlan-id:VLAN ID,输入的VLAN ID必须已经存在。取值类型为数值类型,取值范围:1-4093。 +``` + +- **删除VLANIF接口** + +``` +命令语法:undo interface vlanif vlan-id + +命令功能:undo interface vlanif命令用于删除指定的VLANIF接口。当系统中没有创建VLANIF接口时,无法执行此命令。 + +参数说明: +undo interface vlanif:命令的执行交互界面中仅显示已经创建VLANIF接口的VLAN ID。 +``` + +- **回退至前一级模式** + +``` +命令语法:quit + +命令功能:从当前模式(除Rsa-public-key模式、Rsa-key-code模式外的任何模式)退回到前一级模式或者退出配置环境。 +``` + +- **一次性退回特权模式** + +``` +命令语法:return + +命令功能:从当前模式(除普通用户模式、特权模式、Rsa-public-key模式、Rsa-key-code模式、Security模式之外的任何模式)“一次性”退回到特权模式。 +``` + +- **设置OLT通过NAT代理管理ONU设备功能的状态** + +``` +命令语法:onu nat { enable | disable } + +命令功能:此命令用于设置OLT通过NAT代理管理ONU设备功能的状态。当该功能为使能状态时,可以通过OLT代理管理ONU设备;当该功能为去使能状态时,不能通过OLT代理管理ONU设备,并且该功能去使能以后会终止业务引发用户配置信息会丢失,下次开关使能后需要重新配置UDP端口号等分配信息。 +``` + +- **设置网络侧UDP起始端口号** + +``` +命令语法:onu nat base-port port-number + +命令功能:此命令用于在ONU代理模式下,设置网络侧的UDP起始端口号。 + +参数说明: +port-number:UDP起始端口号。数值类型,取值范围:0-30720。缺省值:10000。 +``` + +- **配置ONU的公网IP地址** + +``` +命令语法:onu nat ip ip-addr + +命令功能:此命令用于在使能OLT通过NAT代理管理ONU设备的功能时,配置ONU的公网IP地址。由于网管对ONU设备的查询和设置是基于公网IP地址的,在采取了OLT代理管理ONU设备的方式以后,网管看不到ONU的私网IP地址。因而,需要给ONU设备设置公网IP地址,便于实现网管通过ONU公网IP地址查询ONU的信息。 + +参数说明: +ip ip-addr:配置全局IP地址,点分十进制形式,且配置以后不许改变。此IP地址是单播IP地址。IP地址采用点分十进制,取值范围:0.0.0.0-255.255.255.255。缺省值:10.10.10.10 +``` + +- **配置ONU的私网IP地址池的起始IP地址和范围** + +``` +命令语法:onu nat ip-pool { start-address ip-addr scope scope-value } + +命令功能:此命令用于在去使能OLT通过NAT代理管理ONU设备的功能时,配置ONU的私网IP地址池的起始IP地址和范围,支持用户根据实际情况配置ONU的私网IP地址和IP地址的个数。 + +参数说明: +start-address ip-addr :配置ONU私网IP地址池的起始IP地址,点分十进制形式。此IP地址是单播IP地址。IP地址采用点分十进制,取值范围:0.0.0.0-255.255.255.255。缺省值:10.0.0.0。 +scope scope-value :配置ONU私网IP地址池的范围,也就是用户指定的IP的个数。数值类型,取值范围:1024-5120。缺省值:5120。 + +``` + +- **设置ONU上行SNMP报文的优先级。** + +``` +命令语法:onu nat priority priority-value + +命令功能:onu nat priority命令用于使能OLT通过NAT代理管理ONU功能时,配置ONU上行SNMP报文的优先级。 + +参数说明: +priority priority-value :设置ONU上行SNMP报文的优先级。数值类型,取值范围:0-7。默认值:7 +``` + +- **配置ONU管理通道的VLAN ID** + +``` +命令语法:onu nat vlan + +命令功能:此命令用于使能OLT通过NAT代理管理ONU功能时,配置ONU管理通道的VLAN ID。配置ONU管理通道的VLAN ID主要用于xPON单板通过VLANID抓取ONU报文。 + +参数说明: +vlan vlanid :设置ONU所属的代理管理通道的VLAN ID。数值类型,取值范围:2-4093。 +``` + diff --git a/source/_posts/Python-3.md b/source/_posts/Python-3.md new file mode 100644 index 0000000..e0b4fce --- /dev/null +++ b/source/_posts/Python-3.md @@ -0,0 +1,66 @@ +--- +title: 七段数码管带时间倒计时效果 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Python +date: 2020-05-24 11:11:11 +music: + type: song + id: 509728841 +comments: true +--- + +带刷新时间的时间倒计时效果,使用随机数生成随机色,实现不同数字间的颜色变化。 + + + +```python +import turtle +import time +import random + +def drawLine(draw): + turtle.pendown() if draw else turtle.penup() + turtle.fd(70) + turtle.right(90) + +def drawDigit(digit,color): + turtle.pencolor(color) + drawLine(True) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine(False) + drawLine(True) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False) + drawLine(True) if digit in [0, 2, 3, 5, 6, 8, 9] else drawLine(False) + drawLine(True) if digit in [0, 2, 6, 8] else drawLine(False) + turtle.left(90) + drawLine(True) if digit in [0, 4, 5, 6, 8, 9] else drawLine(False) + drawLine(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False) + drawLine(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False) + turtle.penup() + turtle.left(180) + turtle.fd(-70) + time.sleep(0.8) + turtle.clear() + +def randomColor(): + num1 = random.random() + num2 = random.random() + num3 = random.random() + return num1,num2,num3 + +def main(): + turtle.setup(500,500) + turtle.penup() + turtle.fd(-25) + turtle.pensize(5) + turtle.speed(0.1) + for i in range(1,11): + drawDigit(10-i,randomColor()) + # randomColor() + turtle.write("浩浩❤元元",font=("Arial",55,"normal"),align="center") + turtle.hideturtle() + turtle.done() + +main() +``` + diff --git a/source/_posts/Python-4.md b/source/_posts/Python-4.md new file mode 100644 index 0000000..6fe81e1 --- /dev/null +++ b/source/_posts/Python-4.md @@ -0,0 +1,62 @@ +--- +title: Python实现《三国演义》人物出场次数统计 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Python +date: 2020-05-25 11:11:11 +music: + type: song + id: 36990266 +comments: true +--- + +使用Python的第三方库jieba库实现《三国演义》人物出场次数Top20统计。 + + + +## 代码 + +```python +import jieba + +txt = open("ThreeKingdoms.txt","r", encoding="gb18030").read() +exclude = {"将军","却说","二人","不可","不能","如此","荆州","商议","如何","主公",\ + "军士","左右","军马","引兵","次日","大喜","天下","东吴","于是","今日",\ + "不敢","魏兵","陛下","人马","都督","一人","不知","汉中","众将","只见",\ + "后主","蜀兵","大叫","上马","先主","太守","此人","天子","后人","背后",\ + "城中","何不","一面","忽报","大军","先生","何故","夫人","先锋","然后",\ + "不如","赶来","原来","令人","江东","正是","徐州","忽然","下马","喊声",\ + "成都","因此","未知","百姓","大败","大事","一军","之后","不见","接应",\ + "起兵","引军","军中","可以","进兵","大怒","大惊","心中","以为","不得",\ + "下文","粮草","追赶","分付","一声","分解" + } +words = jieba.lcut(txt) +counts = {} +for word in words: + if len(word) == 1: + continue + elif word == "诸葛亮" or word == "孔明曰": + rword = "孔明" + elif word == "关公" or word == "云长": + rword = "关羽" + elif word == "玄德" or word == "玄德曰": + rword = "刘备" + elif word == "孟德" or word == "丞相": + rword = "曹操" + else: + rword = word + counts[rword] = counts.get(rword,0) + 1 +for word in exclude: + del counts[word] +items = list(counts.items()) +items.sort(key=lambda x:x[1],reverse=True) +for i in range(20): + word,count = items[i] + print("{0:<12}{1:<4}".format(word,count)) +``` + +## 效果图 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200525114839.png) \ No newline at end of file diff --git a/source/_posts/Python-5.md b/source/_posts/Python-5.md new file mode 100644 index 0000000..422fd0f --- /dev/null +++ b/source/_posts/Python-5.md @@ -0,0 +1,44 @@ +--- +title: 政府工作报告词云示例 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Python +date: 2020-06-01 13:14:20 +music: + type: song + id: 1351520305 +comments: true +--- + +政府工作报告词云小练习 + +使用库: + +jieba库 + +wordcloud库 + + + +## 源代码 + +```python +import jieba +import wordcloud +from imageio import imread +mask = imread("chinamap.png") +f = open("新时代中国特色社会主义.txt","r", encoding="utf-8") +t = f.read() +f.close() +ls = jieba.lcut(t) +txt = " ".join(ls) +w = wordcloud.WordCloud(width=1000,height=700,background_color="white",font_path="msyh.ttc",mask=mask) +w.generate(txt) +w.to_file("wordclouddemo3.png") +``` + +## 效果演示 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200601131058.png) \ No newline at end of file diff --git a/source/_posts/Python_basic_(1).md b/source/_posts/Python_basic_(1).md new file mode 100644 index 0000000..59e5377 --- /dev/null +++ b/source/_posts/Python_basic_(1).md @@ -0,0 +1,269 @@ +--- +title: Python基础知识(1) +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Python +date: 2020-03-11 19:04:14 +music: + type: song + id: 440353010 +comments: true +keywords: + - Python + - 编程 +--- + +Python学习基础部分笔记 + + + +## 第一行代码 + +尝试输入 1 + 1 Python会自动运算出结果。 + +```python +>>> 1 + 1 +2 +``` + +我们再输入点其他的代码 + +```python +>>> print("Hello World!") +Hello World +``` + +注意: 编程中需要输入英文符号,输入中文符号会报错。 + +--- + +观察如下代码: + +```python +>>> print(1 + 1) +2 +>>> print("1 + 1") +1 + 1 +``` + +用引号引起来的内容,我们称之为字符串。将内容放进引号内,会将内容原样输出。 + +注意:引号可以是单引号,也可以是双引号,但是必须前后对应。 + +--- + +打印多行文本 + +```python +>>> print(''' +··· 我就吃两个 +··· 其他的都给你 +··· ''') + +我就吃两个 +其他的都给你 + +``` + +如果想打印多行文本,我们可以使用三个引号。 + +--- + +## 数据类型 + +Python 的数据类型有 int(整数)、float(浮点数)、字符串、布尔值、None、列表、元组、字典、集合等。 + +### int - 整数 + +``` +数学意义上的证整数,可以是正整数或负整数,不带小数点。 +``` + +### float - 浮点数 + +``` +浮点数,就是小数。在计算机中,所有数据都会被转换为二进制数值进行处理,处理完成后再转换成你想要的信息。转换过程可能造成精度的损失。 +``` + +尝试输入 1.1 + 2.2 ,观察结果 + +```python +>>> 1.1 + 2.2 +3.3000000000000003 +``` + +结果并不是3.3,而是3.3000000000000003。 + +### 布尔值 + +布尔值只有True和False两种取值,需区分大小写。 + +```python +>>> True +True +>>> False +False +>>> 1 < 2 +True +>>> 1 > 2 +False +``` + +### None + +None表示“无”,什么都没有。它与0有区别,0是一个整数,而“无”表示什么都没有。 + +--- + +## 变量 + +把常用的数据放在里面,起一个好记的名字,下次用到的时候可以快速找到它。比如在游戏中我们可能会用到[血量、攻击力、防御力]等数据,这些数据需要用名字存储起来。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200318212100.png) + +定义这些变量的代码如下: + +```python +>>> Level = 1 +>>> ATK = 5 +>>> HP = 100 +``` + +左边是变量名,右边是数据,=代表的是赋值符。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting//images20200311164513.png) + +变量的数据,除了可以是整数,还可以是一段文字。 + +```python +>>> word = "Hello World!" +>>> print(word) +Hello World! +``` + +右边的数据,也可以是变量。 + +``` +>>> words = word +>>> print(words) +Hello World! +``` + +## Input()函数 + +获取用户输入,比如我们需要用户输入姓名和年龄,然后将它们打印出来,代码如下: + +```python +>>> name = input("请输入你的姓名:") +请输入你的姓名:浩哥 #此处输入你的名字,然后回车,我们就完成了将你的名字赋值给name变量 +>>> age = input("请输入你的年龄:") +请输入你的年龄:18 #同上,浩哥永远18岁 +>>> print("你的姓名是" + name + ",你的年龄是:" + age) +你的姓名是浩哥,你的年龄是18 +``` + +## 字符串 + +用引号包起来的就是字符串。如果字符串里面有引号,则应该使用转义符” \ "。 + +```python +print("He said \"It\'s mime\"”) +``` + +### 索引 + +我们定义一个变量name,赋值haoge,我们可以取出第一个字母。需要注意的是,索引是从0开始的,并不是从1开始。 + +```python +>>> name = "haoge" +>>> print(name[0]) +q +>>> print(name[1]) +i +``` + +### format() + +format()是专门用来格式化的函数。 + +借用上面Input()的例子,我想要打印“你的姓名是xx,你的年龄是xx",除了上面的方式,我们可以用format()函数来实现。 + +```python +>>> name = input("请输入你的姓名:") +请输入你的姓名:浩哥 +>>> age = input("请输入你的年龄:") +请输入你的年龄:18 +>>> print("你的姓名是{0},你的年龄是{1}".format(name,age)) +你的姓名是浩哥,你的年龄是18 +``` + +下图会让你有更好的理解 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting//images20200311182407.png) + +### 数字格式化 + +假设3.1415926我们只想保留到小数点后两位,我们可以这样写: + +```python +>>> print("{:.2f}".format(3.1415926)) +3.14 +``` + +## 注释 + +注释可以帮助他人和自己阅读,理解,编写代码。注释不会被执行。单行注释常用#表示。 + +```python +# 单行注释 +``` + +## 运算符 + +| 运算符 | 名称 | 描述 | +| :----: | :----: | :----------------------------------------: | +| + | 加 | 两个对象相加 | +| - | 减 | 得到负数或是一个数减去另一个数 | +| * | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 | +| / | 除 | x 除以 y | +| % | 取模 | 返回除法的余数 | +| ** | 幂 | 返回 x 的 y 次幂 | +| // | 取整数 | 返回商的整数部分(向下取整) | + +## 比较运算符 + +| 运算符 | 描述 | +| :----: | :-----------------------------: | +| == | 等于:比较对象是否相等 | +| != | 不等于:比较两个对象是否不相等 | +| \> | 大于:返回 x 是否大于 y | +| < | 小于:返回 x 是否小于 y | +| \>= | 大于等于:返回 x 是否大于等于 y | +| <= | 小于等于:返回 x 是否小于等于 y | + +## 赋值运算符 + +| 运算符 | 描述 | 实例 | +| :----: | :--------------: | :-------------------------------------: | +| = | 赋值运算符 | c = a + b :将 a + b 的运算结果赋值为 c | +| += | 加法赋值运算符 | c += a :等效于 c = c + a | +| -= | 减法赋值运算符 | c -= a :等效于 c = c - a | +| *= | 乘法赋值运算符 | c *= a :等效于 c = c * a | +| /= | 除法赋值运算符 | c /= a :等效于 c = c / a | +| %= | 取模赋值运算符 | c %= a :等效于 c = c % a | +| **= | 幂赋值运算符 | c = a :等效于 c = c a | +| //= | 取整除赋值运算符 | c //= a :等效于 c = c // a | + +## 逻辑运算符 + +| 运算符 | 逻辑表达式 | 结果 | +| :-----------: | :--------: | :---------------------------------------------: | +| and(逻辑与) | a and b | 当 a、b 都为 True 时,返回 True;否则返回 False | +| or(逻辑或) | a or b | 当 a、b 任意一个为 True,就返回 True | +| not(逻辑非) | not a | 当 a 为 True 时,返回 False;反之亦然 | + +## 总结 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesPython-basic.png) \ No newline at end of file diff --git a/source/_posts/Python_cards_manage.md b/source/_posts/Python_cards_manage.md new file mode 100644 index 0000000..e4caaf1 --- /dev/null +++ b/source/_posts/Python_cards_manage.md @@ -0,0 +1,716 @@ +--- +title: 综合应用 —— 名片管理系统 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Python +date: 2020-07-07 17:20:14 +music: + type: song + id: 1449213110 +comments: true +--- + +综合应用已经学习过的知识点: + +* **变量** +* **流程控制** +* **函数** +* **模块** + +开发 **名片管理系统** + + + +## 系统需求 + +* 1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 + +``` +************************************************** +欢迎使用【名片管理系统】V1.0 + +1. 新建名片 +2. 显示全部 +3. 查询名片 + +0. 退出系统 +************************************************** +``` + +* 2. 用户用数字选择不同的功能 +* 3. 根据功能选择,执行不同的功能 +* 4. 用户名片需要记录用户的 **姓名**、**电话**、**QQ**、**邮件** +* 5. 如果查询到指定的名片,用户可以选择 **修改** 或者 **删除** 名片 + +## 步骤 + +1. 框架搭建 +2. 新增名片 +3. 显示所有名片 +4. 查询名片 +5. 查询成功后修改、删除名片 +6. 让 Python 程序能够直接运行 + +## 01. 框架搭建 + +**目标** + +* 搭建名片管理系统 **框架结构** + 1. **准备文件**,确定文件名,保证能够 **在需要的位置** 编写代码 + 2. 编写 **主运行循环**,实现基本的 **用户输入和判断** + +### 1.1 文件准备 + +1. 新建 `cards_main.py` 保存 **主程序功能代码** + * 程序的入口 + * 每一次启动名片管理系统都通过 `main` 这个文件启动 +2. 新建 `cards_tools.py` 保存 **所有名片功能函数** + * 将对名片的 **新增**、**查询**、**修改**、**删除** 等功能封装在不同的函数中 + +### 1.2 编写主运行循环 + +* 在 `cards_main` 中添加一个 **无限循环** + +```python + +while True: + + # TODO(小明) 显示系统菜单 + + action = input("请选择操作功能:") + + print("您选择的操作是:%s" % action) + + # 根据用户输入决定后续的操作 + if action in ["1", "2", "3"]: + pass + elif action == "0": + print("欢迎再次使用【名片管理系统】") + + break + else: + print("输入错误,请重新输入") + +``` + +#### 字符串判断 + +```python +if action in ["1", "2", "3"]: +``` + +```python +if action == "1" or action == "2" or action == "3": +``` + +1. 使用 `in` 针对 **列表** 判断,避免使用 `or` 拼接复杂的逻辑条件 +2. 没有使用 `int` 转换用户输入,可以避免 **一旦用户输入的不是数字**,导致程序运行出错 + +#### pass + +* `pass` 就是一个空语句,不做任何事情,一般用做占位语句 +* 是为了保持程序结构的完整性 + +#### 无限循环 + +* 在开发软件时,如果 **不希望程序执行后** 立即退出 +* 可以在程序中增加一个 **无限循环** +* **由用户来决定** 退出程序的时机 + +#### TODO 注释 + +* 在 `#` 后跟上 `TODO`,用于标记需要去做的工作 + +```python +# TODO(作者/邮件) 显示系统菜单 +``` + +### 1.3 在 `cards_tools` 中增加四个新函数 + +```python +def show_menu(): + + """显示菜单 + """ + pass + +def new_card(): + + """新建名片 + """ + print("-" * 50) + print("功能:新建名片") + + +def show_all(): + + """显示全部 + """ + print("-" * 50) + print("功能:显示全部") + + +def search_card(): + + """搜索名片 + """ + print("-" * 50) + print("功能:搜索名片") + +``` + +### 1.4 导入模块 + +* 在 `cards_main.py` 中使用 `import` 导入 `cards_tools` 模块 + +```python +import cards_tools +``` + +* 修改 `while` 循环的代码如下: + +```python +import cards_tools + +while True: + + cards_tools.show_menu() + + action = input("请选择操作功能:") + + print("您选择的操作是:%s" % action) + + # 根据用户输入决定后续的操作 + if action in ["1", "2", "3"]: + + if action == "1": + cards_tools.new_card() + + elif action == "2": + cards_tools.show_all() + + elif action == "3": + cards_tools.search_card() + + elif action == "0": + print("欢迎再次使用【名片管理系统】") + + break + else: + print("输入错误,请重新输入:") + +``` + +> 至此:`cards_main` 中的所有代码全部开发完毕! + + +### 1.5 完成 `show_menu` 函数 + +```python +def show_menu(): + + """显示菜单 + """ + print("*" * 50) + print("欢迎使用【菜单管理系统】V1.0") + print("") + print("1. 新建名片") + print("2. 显示全部") + print("3. 查询名片") + print("") + print("0. 退出系统") + print("*" * 50) + +``` + +## 02. 保存名片数据的结构 + +**程序就是用来处理数据的,而变量就是用来存储数据的** + +* 使用 **字典** 记录 **每一张名片** 的详细信息 +* 使用 **列表** 统一记录所有的 **名片字典** + +![001_名片管理系统全局列表-w500](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200707171312.png) + +### 定义名片列表变量 + +* 在 `cards_tools` 文件的顶部增加一个 **列表变量** + +```python +# 所有名片记录的列表 +card_list = [] +``` + +**注意** + +1. **所有名片相关操作**,都需要使用这个列表,所以应该 **定义在程序的顶部** +2. **程序刚运行时,没有数据**,所以是 **空列表** + +## 03. 新增名片 + +### 3.1 功能分析 + +1. 提示用户依次输入名片信息 +2. 将名片信息保存到一个字典 +3. 将字典添加到名片列表 +4. 提示名片添加完成 + +### 3.2 实现 new_card 方法 + +* 根据步骤实现代码 + +```python +def new_card(): + + """新建名片 + """ + print("-" * 50) + print("功能:新建名片") + + # 1. 提示用户输入名片信息 + name = input("请输入姓名:") + phone = input("请输入电话:") + qq = input("请输入 QQ 号码:") + email = input("请输入邮箱:") + + # 2. 将用户信息保存到一个字典 + card_dict = {"name": name, + "phone": phone, + "qq": qq, + "email": email} + + # 3. 将用户字典添加到名片列表 + card_list.append(card_dict) + + print(card_list) + + # 4. 提示添加成功信息 + print("成功添加 %s 的名片" % card_dict["name"]) + +``` + +> 技巧:在 `PyCharm` 中,可以使用 `SHIFT + F6` 统一修改变量名 + +## 04. 显示所有名片 + +### 4.1 功能分析 + +* 循环遍历名片列表,顺序显示每一个字典的信息 + +### 4.2 基础代码实现 + +```python +def show_all(): + + """显示全部 + """ + print("-" * 50) + print("功能:显示全部") + + for card_dict in card_list: + + print(card_dict) + +``` + +* 显示效果不好! + +### 4.3 增加标题和使用 `\t` 显示 + +```python +def show_all(): + """显示全部 + """ + print("-" * 50) + print("功能:显示全部") + + # 打印表头 + for name in ["姓名", "电话", "QQ", "邮箱"]: + print(name, end="\t\t") + + print("") + + # 打印分隔线 + print("=" * 50) + + for card_dict in card_list: + + print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"], + card_dict["phone"], + card_dict["qq"], + card_dict["email"])) +``` + +### 4.4 增加没有名片记录判断 + +```python +def show_all(): + """显示全部 + """ + print("-" * 50) + print("功能:显示全部") + + # 1. 判断是否有名片记录 + if len(card_list) == 0: + print("提示:没有任何名片记录") + + return + +``` + +**注意** + +* 在函数中使用 `return` 表示返回 +* 如果在 `return` 后没有跟任何内容,只是表示该函数执行到此就不再执行后续的代码 + +## 05. 查询名片 + +### 5.1 功能分析 + +1. 提示用户要搜索的姓名 +2. 根据用户输入的姓名遍历列表 +3. 搜索到指定的名片后,再执行后续的操作 + +### 5.2 代码实现 + +* 查询功能实现 + +```python +def search_card(): + + """搜索名片 + """ + print("-" * 50) + print("功能:搜索名片") + + # 1. 提示要搜索的姓名 + find_name = input("请输入要搜索的姓名:") + + # 2. 遍历字典 + for card_dict in card_list: + + if card_dict["name"] == find_name: + + print("姓名\t\t\t电话\t\t\tQQ\t\t\t邮箱") + print("-" * 40) + + print("%s\t\t\t%s\t\t\t%s\t\t\t%s" % ( + card_dict["name"], + card_dict["phone"], + card_dict["qq"], + card_dict["email"])) + + print("-" * 40) + + # TODO(小明) 针对找到的字典进行后续操作:修改/删除 + + break + else: + print("没有找到 %s" % find_name) + +``` + +* 增加名片操作函数:**修改**/**删除**/**返回主菜单** + +```python +def deal_card(find_dict): + + """操作搜索到的名片字典 + + :param find_dict:找到的名片字典 + """ + print(find_dict) + + action_str = input("请选择要执行的操作 " + "[1] 修改 [2] 删除 [0] 返回上级菜单") + + if action == "1": + print("修改") + elif action == "2": + print("删除") + +``` + +## 06. 修改和删除 + +### 6.1 查询成功后删除名片 + +* 由于找到的字典记录已经在列表中保存 +* 要删除名片记录,只需要把列表中对应的字典删除即可 + +```python + elif action == "2": + card_list.remove(find_dict) + + print("删除成功") +``` + +### 6.2 修改名片 + +* 由于找到的字典记录已经在列表中保存 +* 要修改名片记录,只需要把列表中对应的字典中每一个键值对的数据修改即可 + +```python + if action == "1": + + find_dict["name"] = input("请输入姓名:") + find_dict["phone"] = input("请输入电话:") + find_dict["qq"] = input("请输入QQ:") + find_dict["email"] = input("请输入邮件:") + + print("%s 的名片修改成功" % find_dict["name"]) + +``` + +#### 修改名片细化 + +* **如果用户在使用时,某些名片内容并不想修改**,应该如何做呢?—— 既然系统提供的 `input` 函数不能满足需求,那么就新定义一个函数 `input_card_info` 对系统的 `input` 函数进行扩展 + +```python +def input_card_info(dict_value, tip_message): + + """输入名片信息 + + :param dict_value: 字典原有值 + :param tip_message: 输入提示信息 + :return: 如果输入,返回输入内容,否则返回字典原有值 + """ + # 1. 提示用户输入内容 + result_str = input(tip_message) + + # 2. 针对用户的输入进行判断,如果用户输入了内容,直接返回结果 + if len(result_str) > 0: + + return result_str + # 3. 如果用户没有输入内容,返回 `字典中原有的值` + else: + + return dict_value + +``` + +## 07. LINUX 上的 `Shebang` 符号(`#!`) + +* `#!`这个符号叫做 `Shebang` 或者 `Sha-bang` +* `Shebang` 通常在 `Unix` 系统脚本的中 **第一行开头** 使用 +* 指明 **执行这个脚本文件** 的 **解释程序** + +### 使用 Shebang 的步骤 + +* 1. 使用 `which` 查询 `python3` 解释器所在路径 + +```bash +$ which python3 +``` + +* 2. 修改要运行的 **主 python 文件**,在第一行增加以下内容 + +```python +#! /usr/bin/python3 +``` + +* 3. 修改 **主 python 文件** 的文件权限,增加执行权限 + +```bash +$ chmod +x cards_main.py +``` + +* 4. 在需要时执行程序即可 + +```bash +./cards_main.py +``` + + + +## 源代码 + +### cards_tools代码 + +```Python +# 记录所有的名片字典 +card_list = [] + + +def show_menu(): + '''显示菜单''' + print("*" * 50) + print("欢迎使用【名片管理系统】 V1.0") + print() + print("1. 新建名片") + print("2. 显示全部") + print("3. 查询名片") + print() + print("0. 退出系统") + print("*" * 50) + + +def new_card(): + + """新增名片""" + # 1.提示用户输入名片的详细信息 + name = input("请输入姓名:") + phone = input("请输入手机号:") + qq = input("请输入QQ号:") + email = input("请输入邮箱:") + + # 使用用户输入的信息建立一个名片字典 + card_dict = {"name": name, + "phone": phone, + "qq": qq, + "email": email} + + # 将名片字典添加到列表中 + card_list.append(card_dict) + + # 提示用户新增成功 + print("添加 {} 的名片成功!".format(name)) + +def show_all(): + + """显示所有名片""" + # 显示功能 + print("显示所有名片") + + # 判断是否存在名片记录 + if len(card_list) == 0: + print("当前没有任何的名片记录,请使用新增功能添加名片!") + return + else: + # 打印表头 + for name in ["姓名", "电话", "QQ", "邮箱"]: + print("{:15}".format(name), end=" ") + print() + + # 打印分隔线 + print("-" * 50) + + for card_dict in card_list: + print("{:15}{:15}{:15}{:15}".format(card_dict["name"], + card_dict["phone"], + card_dict["qq"], + card_dict["email"])) + + +def search_card(): + + """搜索名片""" + # 显示功能 + print("搜索名片") + + # 用户输入要搜索的姓名 + find_name = input("请输入要搜索的姓名:") + + # 遍历名片列表 + for user_info in card_list: + if user_info["name"] == find_name: + # 打印表头 + for name in ["姓名", "电话", "QQ", "邮箱"]: + print("{:20}".format(name), end=" ") + print() + # 打印分隔线 + print("-" * 50) + # 打印名片信息 + print("{:20}{:20}{:20}{:20}".format(user_info["name"], + user_info["phone"], + user_info["qq"], + user_info["email"])) + + # 针对找到的名片记录执行修改和删除的操作 + deal_card(user_info) + + break + + else: + print("抱歉,没有找到{}的名片".format(find_name)) + + +def deal_card(find_dict): + """处理查找到的名片 + + :param find_dict: 查找到的名片 + """ + action_str = input("请选择要执行的操作: " + "[1] 修改 / [2] 删除 / [0] 返回上级菜单") + + if action_str == "1": + find_dict["name"] = input_card_info(find_dict["name"], "姓名[回车不修改]:") + find_dict["phone"] = input_card_info(find_dict["phone"], "电话[回车不修改]:") + find_dict["qq"] = input_card_info(find_dict["qq"], "QQ[回车不修改]:") + find_dict["email"] = input_card_info(find_dict["email"], "邮箱[回车不修改]:") + print("修改{}的名片成功!".format(find_dict["name"])) + elif action_str == "2": + card_list.remove(find_dict) + print("删除{}的名片成功!".format(find_dict["name"])) + + +def input_card_info(dict_value, tip_message): + """输入名片信息 + + :param dict_value: 字典原有数值 + :param tip_message: 用户输入提示信息 + :return: 如果用户输入了内容,就返回内容,如果没有输入内容,则用字典中原有的值 + """ + # 提示用户输入内容 + result_str = input(tip_message) + + # 针对用户的输入进行判断,如果用户输入了内容,直接返回结果 + if len(result_str) > 0: + return result_str + # 如果用户没有输入内容,返回“字典中原有的值” + else: + return dict_value +``` + +### cards_main代码 + +```Python +import cards_tools + +# 由用户决定退出程序的时机 +while True: + + # 显示系统功能 + cards_tools.show_menu() + + # 没有使用int转换用户输入,可以避免一旦用户输入的不是数字,导致程序运行出错 + action_str = input("请选择您希望执行的操作:") + print("您选择的操作是【{}】".format(action_str)) + + # 1,2,3对名片进行操作 + # 使用in针对列表判断,避免使用or拼接复杂的逻辑条件 + if action_str in ["1","2","3"]: + # 新增名片 + if action_str == "1": + print("-" * 50) + cards_tools.new_card() + + # 显示全部 + if action_str == "2": + print("-" * 50) + cards_tools.show_all() + + # 查询名片 + if action_str == "3": + print("-" * 50) + cards_tools.search_card() + + # 如果在开发程序的时候,不希望立刻编写分支内部的代码 + # 可以使用pass关键字,表示一个占位符,能够保证程序的代码结构正确 + # 程序运行时,pass关键字不会执行任何的操作 + # pass + # 0表示退出系统 + elif action_str == "0": + print("欢迎再次使用【名片管理系统】") + break + # 其他内容输入错误,需要提示用户 + else: + print("您输入的不正确,请重新选择") + +``` + +## 效果预览 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200707181035.png) \ No newline at end of file diff --git a/source/_posts/Python_variable.md b/source/_posts/Python_variable.md new file mode 100644 index 0000000..cb0a1bd --- /dev/null +++ b/source/_posts/Python_variable.md @@ -0,0 +1,341 @@ +--- +title: Python基础之变量进阶 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Python +date: 2020-07-07 18:30:11 +music: + type: song + id: 1352968308 +comments: true +--- + +* 变量的引用 +* 可变和不可变类型 +* 局部变量和全局变量 + + + +## 01. 变量的引用 + +> * 变量 和 数据 都是保存在 **内存** 中的 +> * 在 `Python` 中 **函数 的 参数传递** 以及 **返回值** 都是靠 **引用** 传递的 + +### 1.1 引用的概念 + +在 `Python` 中 + +* **变量** 和 **数据** 是分开存储的 +* **数据** 保存在内存中的一个位置 +* **变量** 中保存着数据在内存中的地址 +* **变量** 中 **记录数据的地址**,就叫做 **引用** +* 使用 `id()` 函数可以查看变量中保存数据所在的 **内存地址** + +> 注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 **修改了数据的引用** +> +> * 变量 **不再** 对之前的数据引用 +> * 变量 **改为** 对新赋值的数据引用 + +### 1.2 `变量引用` 的示例 + +在 `Python` 中,变量的名字类似于 **便签纸** 贴在 **数据** 上 + +* 定义一个整数变量 `a`,并且赋值为 `1` + +| 代码 | 图示 | +| :---: | :---: | +| a = 1 | ![004_a1tag](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200707183733.png) | + +* 将变量 `a` 赋值为 `2` + +| 代码 | 图示 | +| :---: | :---: | +| a = 2 | ![005_a2tag](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200707183734.png)![005_1](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200707183735.png) | + +* 定义一个整数变量 `b`,并且将变量 `a` 的值赋值给 `b` + +| 代码 | 图示 | +| :---: | :---: | +| b = a | ![006_ab2tag](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200707183736.png) | + +> 变量 `b` 是第 2 个贴在数字 `2` 上的标签 + +### 1.3 函数的参数和返回值的传递 + +在 `Python` 中,函数的 **实参**/**返回值** 都是是靠 **引用** 来传递来的 + +```python +def test(num): + + print("-" * 50) + print("%d 在函数内的内存地址是 %x" % (num, id(num))) + + result = 100 + + print("返回值 %d 在内存中的地址是 %x" % (result, id(result))) + print("-" * 50) + + return result + +a = 10 +print("调用函数前 内存地址是 %x" % id(a)) + +r = test(a) + +print("调用函数后 实参内存地址是 %x" % id(a)) +print("调用函数后 返回值内存地址是 %x" % id(r)) + +``` + +## 02. 可变和不可变类型 + +* **不可变类型**,内存中的数据不允许被修改: + * 数字类型 `int`, `bool`, `float`, `complex`, `long(2.x)` + * 字符串 `str` + * 元组 `tuple` + +* **可变类型**,内存中的数据可以被修改: + * 列表 `list` + * 字典 `dict` + +```python +a = 1 +a = "hello" +a = [1, 2, 3] +a = [3, 2, 1] +``` + +```python +demo_list = [1, 2, 3] + +print("定义列表后的内存地址 %d" % id(demo_list)) + +demo_list.append(999) +demo_list.pop(0) +demo_list.remove(2) +demo_list[0] = 10 + +print("修改数据后的内存地址 %d" % id(demo_list)) + +demo_dict = {"name": "小明"} + +print("定义字典后的内存地址 %d" % id(demo_dict)) + +demo_dict["age"] = 18 +demo_dict.pop("name") +demo_dict["name"] = "老王" + +print("修改数据后的内存地址 %d" % id(demo_dict)) + +``` + +> 注意:字典的 `key` **只能使用不可变类型的数据** + +**注意** + +1. **可变类型**的数据变化,是通过 **方法** 来实现的 +2. 如果给一个可变类型的变量,赋值了一个新的数据,**引用会修改** + * 变量 **不再** 对之前的数据引用 + * 变量 **改为** 对新赋值的数据引用 + +### 哈希 `(hash)` + +* `Python` 中内置有一个名字叫做 `hash(o)` 的函数 + * 接收一个 **不可变类型** 的数据作为 **参数** + * **返回** 结果是一个 **整数** +* `哈希` 是一种 **算法**,其作用就是提取数据的 **特征码(指纹)** + * **相同的内容** 得到 **相同的结果** + * **不同的内容** 得到 **不同的结果** +* 在 `Python` 中,设置字典的 **键值对** 时,会首先对 `key` 进行 `hash` 已决定如何在内存中保存字典的数据,以方便 **后续** 对字典的操作:**增、删、改、查** + * 键值对的 `key` 必须是不可变类型数据 + * 键值对的 `value` 可以是任意类型的数据 + +## 03. 局部变量和全局变量 + +* **局部变量** 是在 **函数内部** 定义的变量,**只能在函数内部使用** +* **全局变量** 是在 **函数外部定义** 的变量(没有定义在某一个函数内),**所有函数** 内部 **都可以使用这个变量** + +> 提示:在其他的开发语言中,大多 **不推荐使用全局变量** —— 可变范围太大,导致程序不好维护! + +### 3.1 局部变量 + +* **局部变量** 是在 **函数内部** 定义的变量,**只能在函数内部使用** +* 函数执行结束后,**函数内部的局部变量,会被系统回收** +* 不同的函数,可以定义相同的名字的局部变量,但是 **彼此之间** 不会产生影响 + +#### 局部变量的作用 + +* 在函数内部使用,**临时** 保存 **函数内部需要使用的数据** + +```python +def demo1(): + + num = 10 + + print(num) + + num = 20 + + print("修改后 %d" % num) + + +def demo2(): + + num = 100 + + print(num) + +demo1() +demo2() + +print("over") + +``` + +#### 局部变量的生命周期 + +* 所谓 **生命周期** 就是变量从 **被创建** 到 **被系统回收** 的过程 +* **局部变量** 在 **函数执行时** 才会被创建 +* **函数执行结束后** 局部变量 **被系统回收** +* **局部变量在生命周期** 内,可以用来存储 **函数内部临时使用到的数据** + +### 3.2 全局变量 + +* **全局变量** 是在 **函数外部定义** 的变量,所有函数内部都可以使用这个变量 + +```python +# 定义一个全局变量 +num = 10 + + +def demo1(): + + print(num) + + +def demo2(): + + print(num) + +demo1() +demo2() + +print("over") + +``` + +**注意**:函数执行时,**需要处理变量时** 会: + +1. **首先** 查找 **函数内部** 是否存在 **指定名称 的局部变量**,**如果有,直接使用** +2. 如果没有,查找 **函数外部** 是否存在 **指定名称 的全局变量**,**如果有,直接使用** +3. 如果还没有,程序报错! + +#### 1) 函数不能直接修改 `全局变量的引用` + +* **全局变量** 是在 **函数外部定义** 的变量(没有定义在某一个函数内),**所有函数** 内部 **都可以使用这个变量** + +> 提示:在其他的开发语言中,大多 **不推荐使用全局变量** —— 可变范围太大,导致程序不好维护! + +* 在函数内部,可以 **通过全局变量的引用获取对应的数据** +* 但是,**不允许直接修改全局变量的引用** —— 使用赋值语句修改全局变量的值 + +```python +num = 10 + + +def demo1(): + + print("demo1" + "-" * 50) + + # 只是定义了一个局部变量,不会修改到全局变量,只是变量名相同而已 + num = 100 + print(num) + + +def demo2(): + + print("demo2" + "-" * 50) + print(num) + +demo1() +demo2() + +print("over") + +``` + +> 注意:只是在函数内部定义了一个局部变量而已,只是变量名相同 —— 在函数内部不能直接修改全局变量的值 + +#### 2) 在函数内部修改全局变量的值 + +* 如果在函数中需要修改全局变量,需要使用 `global` 进行声明 + +```python +num = 10 + + +def demo1(): + + print("demo1" + "-" * 50) + + # global 关键字,告诉 Python 解释器 num 是一个全局变量 + global num + # 只是定义了一个局部变量,不会修改到全局变量,只是变量名相同而已 + num = 100 + print(num) + + +def demo2(): + + print("demo2" + "-" * 50) + print(num) + +demo1() +demo2() + +print("over") + +``` + +#### 3) 全局变量定义的位置 + +* 为了保证所有的函数都能够正确使用到全局变量,应该 **将全局变量定义在其他函数的上方** + +```python +a = 10 + + +def demo(): + print("%d" % a) + print("%d" % b) + print("%d" % c) + +b = 20 +demo() +c = 30 + +``` + +**注意** + +* 由于全局变量 c,是在调用函数之后,才定义的,在执行函数时,变量还没有定义,所以程序会报错! + +**代码结构示意图如下** + +![001_代码结构示意图-w240](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200707183737.png) + + +#### 4) 全局变量命名的建议 + +* 为了避免局部变量和全局变量出现混淆,在定义全局变量时,有些公司会有一些开发要求,例如: +* 全局变量名前应该增加 `g_` 或者 `gl_` 的前缀 + +> 提示:具体的要求格式,各公司要求可能会有些差异 + + + + + + diff --git a/source/_posts/RedHat_setup_script.md b/source/_posts/RedHat_setup_script.md new file mode 100644 index 0000000..61e22cc --- /dev/null +++ b/source/_posts/RedHat_setup_script.md @@ -0,0 +1,54 @@ +--- +title: Red Hat6.5虚拟机安装过程 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Linux +date: 2020-02-14 20:13:14 +music: + type: song + id: 208902 +comments: true +tags: 系统安装 +keywords: Linux安装 +description: +--- +系统: RedHat 6.5 +镜像: https://access.redhat.com/downloads/ +难度: ★★☆☆☆ + +1. 选择Install or upgrade an existing system,进入安装步骤。 +![](https://zhengyuanyuan520.cn/images/20200214/photo1.png) +2. 使用→选择Skip,按回车确定。 +![](https://zhengyuanyuan520.cn/images/20200214/photo2.png) +3. 点击Next。 +![](https://zhengyuanyuan520.cn/images/20200214/photo3.png) +4. 选择中文,点击next +![](https://zhengyuanyuan520.cn/images/20200214/photo4.png) +5. 默认即可,点击next +![](https://zhengyuanyuan520.cn/images/20200214/photo5.png) +6. 选择基本存储设别,点击下一步 +![](https://zhengyuanyuan520.cn/images/20200214/photo6.png) +7. 选择“是,忽略所有数据” +![](https://zhengyuanyuan520.cn/images/20200214/photo7.png) +8. 输入用户名,点击下一步 +![](https://zhengyuanyuan520.cn/images/20200214/photo8.png) +9. 选择时区(默认即可),点击下一步。 +![](https://zhengyuanyuan520.cn/images/20200214/photo9.png) +10. 设置密码,输入密码后点击下一步。 +![](https://zhengyuanyuan520.cn/images/20200214/photo10.png) +11. 提示我们密码过于简单,点击“无论如何都使用”。 +![](https://zhengyuanyuan520.cn/images/20200214/photo11.png) +12. 选择安装的类型,我们选择“使用所有空间”,点击下一步。 +![](https://zhengyuanyuan520.cn/images/20200214/photo12.png) +13. 提示我们“将存储配置写入磁盘”,我们选择“将修改写入磁盘”。 +![](https://zhengyuanyuan520.cn/images/20200214/photo13.png) +14. 选择安装安装方式为基本服务器,点击下一步。 +![](https://zhengyuanyuan520.cn/images/20200214/photo14.png) +15. 提示安装开始,等待即可。 +![](https://zhengyuanyuan520.cn/images/20200214/photo15.png) +16. 安装过程,等待即可。 +![](https://zhengyuanyuan520.cn/images/20200214/photo16.png) +17. 安装完成之后点击重新引导,此时会重启系统,表明系统已经安装成功。 +![](https://zhengyuanyuan520.cn/images/20200214/photo17.png) diff --git a/source/_posts/TD-LTE-System.md b/source/_posts/TD-LTE-System.md new file mode 100644 index 0000000..4c56599 --- /dev/null +++ b/source/_posts/TD-LTE-System.md @@ -0,0 +1,329 @@ +--- +title: TD-LTE系统概述 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-04-20 20:11:00 +music: + enable: true + server: netease + type: song + id: 108245 +comments: true +mathjax: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +了解LTE的系统架构 + +理解TD-LTE的三个核心技术 + +掌握物理层帧结构 + +了解LTE的演进过程 + + + + + +``` +2G的多址方式重点突出的是TDMA(时分多址) + +3G的多址方式重点突出的是CDMA(码分多址) + +3.9/4G的多址方式重点突出的是OFDMA(正交频分多址) + +``` + + + +## 3G各种制式峰值速率及小区吞吐量 + +| 制式 | 峰值速率 | 小区吞吐量 | +| ---------- | ------------- | ----------- | +| WCDMA | 5.76/14.4Mbps | 1.5/3Mbps | +| TD-SCDMA | 0.55/1.68Mbps | 0.36/1Mbps | +| CDMA 2000 | 1.8/3.1Mbps | 0.4/0.8Mbps | + + + +## 3.9G各种制式峰值速率 + +| 制式 | 上行峰值速率(20MHz) | 下行峰值速率(20MHz) | +| ---- | --------------------- | --------------------- | +| FDD | 50Mbps | 150Mbps | +| TDD | 10Mbps | 110Mbps | + +
+ +``` +4G峰值速率:500M~1Gbps +``` + +
+ +4G出现之前为什么会出现3.9G? + +解析:4G在研发的过程当中遇到了一个大的竞争对手WiMAX,WiMAX主要研发的是在一个比较宽的带宽里面如何能够做到城市里面的用户移动化的去进行系统的应用。为了缓解一个较大的冲击,所以3GPP从4G研发过程当中抽身推出了3.9G。 + +
+ +同样是LTE的系统,为什么FDD的峰值速率比TDD的峰值速率要高呢? + +``` +1、FDD是上下行对称的,TDD上下行是非对称的 + +2、TDD有SA和SSP设置,FDD没有。 + +``` + +
+ +``` +峰值速率要求:20M带宽下,下行速率能够达到100Mbps,上行速率能够达到50Mbps。 + +``` + +
+ +``` +控制面的延迟从驻留状态到激活状态下的延迟需低于100ms。 + +``` + +
+ +想要给用户带来更好的体验,需要从以下两点来考虑: + +1. **速率:** + +$$ +C = B·log_2(1+\frac{S}{N}) +$$ + +``` +B:信道带宽 +S:信号的平均功率 +N:噪声平均功率 +S/N:信噪比 +``` + +提高用户速率有两种方法: + +- 提高带宽(B),2G系统里面带宽为200KHz,3G(TD-SCDMA)固定的带宽为1.6MHz,4G(LTE)最高可以达到20MHz。 +- 提高信噪比,即降低干扰,降低干扰有很多方式,例如MIMO技术的波束赋形。 + +2. **降低时延。** + +
+ + + +什么是LTE? + +LTE是Long Term Evolution的缩写,即长期演进。 + +LTE是3GPP制定的下一代无线通信标准。 + +TD-LTE是LTE的TDD模式。 + +LTE是以OFDMA为核心的技术,为了降低用户面的延迟,取消了无线网络控制器(RNC),采用了扁平网络架构。 + +
+ +LTE有两种双工方式:TDD(TD-LTE)和FDD(LTE FDD)。 + +FDD(频分双工):上行和下行是不同的频段。 + +TDD(时分双工):上行和下行共享同一个频段。 + +
+ +4G技术的特点:大带宽,高速率。 + +
+ +4G网络与3G网络的区别? + +- 核心网只有PS域 +- 控制与承载相分离应用于PS域中: + +
+ +## 系统容量和性能需求 + +| 名称 | 需求 | +| :--------- | ------------------------------------------------------------ | +| 峰值数据率 | 20MHz系统带宽下,下行瞬间峰值速率100Mbps(频谱效率2.5bps/Hz),上行瞬间峰值速率50Mbps(频谱效率2.5bps/Hz) | +| 控制面延迟 | 从驻留状态转换到激活状态的时延小于100ms。
从睡眠状态转换到激活状态的时延小于50ms。 | +| 用户面延迟 | 零负载(单用户/单数据流),小IP分组条件下时延小于5ms。 | +| 控制面容量 | 每个小区在5MHz带宽下最少支持200个用户。 | +| 用户吞吐量 | 下行每兆赫兹平均用户吞吐量为R6 HSDPA的3~4倍;上行每兆赫兹平均用户吞吐量为R6 HSUPA的2~3倍。 | +| 频谱效率 | 在真实负载的网络中,下行频谱效率为R6 HSPDA的3~4倍;上行频谱效率为R6 HSUPA的2~3倍。 | + +
+ +## UE的两种状态 + +``` +Idle态:RRC建立连接没有成功,则处于Idle态。 +connected态:RRC连接成功,UE就会进入连接态。 +``` + +
+ +## 系统部署和无线资源管理需求 + +**频谱灵活性**:支持不同大小的频带尺寸,从1.4~20MHz。 + +**与3GPP无线接入技术的共存和互操作**:和GERAN/UTRAN系统可以邻频共站址共存;支持UTRAN/GERAN操作的E-UTRAN终端应支持对UTRAN/GERAN的测量,以及E-UTRAN和UTRAN/GERAN之间的切换。实时业务在E-UTRAN和UTRAN/GERAN之间的切换中断时间小于300ms。 + +**系统架构和演进**:单一基于分组的E-UTRAN系统架构,通过分组架构支持实时业务和会话业务最大限度的避免淡点失败;支持端到端QoS,优化回转通信协议。 + +**无线资源管理**:增强的端到端QoS;有效支持高层传输;支持不同的无线接入技术之间的负载均衡和政策管理。 + +
+ +## TD-LTE核心技术 + +### MIMO技术 + +多进多出(MIMO)是为极大地提高信道容量,在发送端和接收端都使用多根天线,在收发之间构成多个信道的天线系统。MIMO系统的一个明显特点就是具有极高的频谱利用效率,在对现有频谱资源充分利用的基础上通过利用空间资源来获取可靠性与有效性两方面增益,其代价是增加了发送端与接收端的处理复杂度。大规模MIMO技术采用大量天线来服务数量相对较少的用户,可以有效提高频谱效率。 + +### 扁平网络 + +删除了RNC网络单元,网络组成减少,时延就降低了。 + +### 频分多址系统 + +OFDMA技术与OFDM技术相比,每个用户可以选择信道条件较好的子信道进行数据传输,而不像OFDM技术在整个频带内发送,从而保证了各个子载波都被对应信道条件较优的用户使用,获得了频率上的多用户分集增益。在OFDMA中,一组用户可以同时接入到某一信道。 + +### 干扰抑制技术ICIC + +小区在进行同频组网的过程中,不同的小区之间可以通过信息的交互来了解到这些同频资源当中哪些资源收到的干扰较高,那么在本小区进行资源分配的时候尽量避开这些高干扰的资源,从而降低小区间的干扰来提高用户的感知。 + +
+ +## E-UTRAN扁平网络架构 + +- 取消RNC(中央控制节点),只保留一层RAN节点——eNodeB +- NodeB和核心网采用基于IP路由的灵活多重连接——S1-flex接口 +- 相邻eNodeB采用Mesh连接——X2接口 +- 扁平网络架构,减少设备投入 +- 减少接口数量,IP的网络接口 +- 增强的端对端QoS + +
+ +UE:终端 + +eNodeB:LTE系统中基站称之为eNodeB + +NodeB:3G里面基站称之为NodeB + +E-UTRAN:基站之间构成了一个网络,称之为无线接入网(E-UTRAN) + +EPC:核心分组网演进,4G的核心网 + +
+ +## LTE网元功能 + +### eNodeB + +具有现3GPP NodeB全部和RNC大部分功能,包括: + +- 物理层功能 +- MAC,RLC,PDCP功能 +- RRC功能 +- 资源调度和无线资源管理 +- 无线接入控制 +- 移动性管理 + +### MME + +- NAS信令以及安全性功能 +- 3GPP接入网络移动性导致的CN节点间信令 +- 空闲模式下UE跟踪和可达性 +- 漫游 +- 鉴权 +- 承载管理功能(包括专用承载的建立) + +### SGW + +- 支持UE的移动性切换用户面数据的功能 +- E-UTRAN空闲模式下行分组数据缓存和寻呼支持 +- 数据包路由和转发 +- 上下行传输层数据包标记 + +### PGW + +- 基于用户的包过滤 +- 合法监听 +- IP地址分配 +- 上下行传输层数据包标记 +- DHCPv4和DHCPv6(client,relay,server) + +
+ +## LTE各种接口协议 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307122645.png) + +
+ +## 承载用户业务分类 + +- 话音类业务:例如打电话,此类业务时延要求高 +- 交互类:例如网络游戏,此类业务对丢包率要求很高 +- 流类:例如视频点播下载 +- 背景类:例如收发电子邮件,此类业务对丢包率要求很高 + +
+ +## E-UTRAN + +### eNodeB功能划分 + +- PHY(物理层):负责处理编译码、调制解调、多天线映射以及其它电信物理层功能。物理层以传输信道的方式为MAC层提供服务。 +- MAC(媒体接入控制层):负责处理HARQ重传与上下行调度。MAC层将以逻辑信道的方式为RLC层提供服务。 +- RLC(无线链路控制层):负责分段与连接、重传处理,以及对高层数据的顺序传送。与UMTS系统不同,LTE系统的RLC协议位于eNodeB,这是因为在LTE系统对无线接入网的架构进行了扁平化,仅仅只有一层节点eNodeB。RLC层以无线承载的方式为PDCP层提供服务,其中,每个终端的每个无线承载配置一个RLC实体。 +- PDCP:提供加密和完整性保护功能。负责执行头压缩以减少无线接口必须传送的比特流量。头压缩机制基于ROHC,ROHC是一个标准的头压缩算法,已被应用于UMTS及多个移动通信规范中。PDCP层同时负责传输数据的加密和完整性保护功能;在接收端,PDCP协议将负责执行解密及解压缩功能。对于一个终端每个无线承载有一个PDCP实体。 +- RRC:RRC层协议终止于eNodeB,主要提供广播、寻呼、RRC连接管理、无线承载(RB)控制、移动性管理、UE测量上报和控制等功能。 +- 动态资源分配(调度集) +- eNodeB测量配置与提供 +- 无线许可控制 +- 连接移动性控制 +- 无线承载控制 +- 小区间RRM + + + +## EPC + +### MME主要功能 + +- NAS安全性 +- Idle状态移动性管理 +- EPS承载控制 + + + +### SGW主要功能 + +- 移动性锚定 + + + +## PGW主要功能 + +- UE IP地址分配 +- 包过滤 + + + diff --git a/source/_posts/Web_site_SSL.md b/source/_posts/Web_site_SSL.md new file mode 100644 index 0000000..347cfb0 --- /dev/null +++ b/source/_posts/Web_site_SSL.md @@ -0,0 +1,188 @@ +--- +title: Web站点数字证书(5) +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 服务器 +date: 2020-02-15 19:29:30 +music: + type: song + id: 1357825630 +comments: true +tags: + - 软考 + - IIS + - Web服务器 +--- +内容: Web站点数字证书 +难度: ★★★★☆ + + + + +> Web站点数字证书的申请和安装包括3个部分:申请数字证书、下载数字证书、安装数字证书。 + +## 申请数字证书 + +### 1.添加CA证书服务。 + +> 【开始】--->【管理工具】--->【服务器管理器】--->【角色】--->【添加角色】--->勾选【Active Directory证书服务】。 + +> 开始--> 管理工具 --> 服务器管理器 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image001.png) +> 角色 --> 添加角色 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image003.png) +> 下一步 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image005.png) +> 勾选【Active Directory证书服务】,点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image007.png) +> 点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image009.png) +> 勾选【证书颁发机构】和【证书颁发机构Web注册】,点击下一步。 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image011.png) +> 点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image013.png) +> 选择【根CA】,点击下一步。 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image015.png) +> 选择【新建秘钥】,点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image017.png) +> 点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image019.png) +> 点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image021.png) +> 点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image023.png) +> 点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image025.png) +> 检查无误,点击【安装】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image027.png) +> 等待安装完成 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image029.png) +> 点击【关闭】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image031.png) + +### 2.创建证书申请 + +> 选择【角色】-->【Web服务器(IIS)】-->【Internet信息服务】-->右侧主机-->【服务器证书】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image033.png) +> 选择到期日期为5年之后的,点击右侧【创建证书申请】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image035.png) +> 通用名称须填写网站绑定的IP,其他可随意填写,填写完成点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image037.png) +> 点击【下一步】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image039.png) +> 选择路径并设置文件名,点击【完成】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image041.png) +> 完成后会回到此界面 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image043.png) + +## 下载数字证书 +### 1.申请证书 + +> 浏览器地址栏输入localhost/certsrv + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image045.png) +> 点击【申请证书】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image047.png) +> 点击【高级证书申请】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image049.png) +> 找到之前下载的文件,打开并复制所有内容 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image051.png) +> 在【保存的申请】文本框将复制的内容粘贴,点击【提交】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image053.png) +> 提示证书正在挂起,以及ID + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image055.png) +### 2.颁发证书 + +> 【角色】-->【Active Directory 证书服务】-->【Win ...】-->【挂起的申请】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image057.png) +> 找到刚刚对应的ID,右键,【所有任务】--->【颁发】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image059.png) +> 点击左侧【颁发的证书】,查看对应的ID证书是否已颁发 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image061.png) +### 3.下载证书 + +> 浏览器地址栏输入localhost/certsrv,点击【查看挂起的证书申请的状态】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image063.png) +> 点击【保存的申请证书】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image065.png) +> 点击【下载证书】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image067.png) +## 安装数字证书 +### 1.安装数字证书 + +> 找到刚刚下载证书的文件 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image069.png) +> 选择【Web服务器(IIS)】-->【Internet信息服务(IIS)】-->【Win...】-->【服务器证书】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image071.png) +> 选择到期时间为5年后的,点击【完成证书申请】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image073.png) +> 选择刚刚浏览器下载的证书文件,输入名称,点击【确定】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image075.png) +> 在服务器证书列表查看新证书是否出现在列表 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image077.png) + +### 2.绑定网站类型为HTTPS + +> 选择自己的网站,点击右侧【绑定】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image079.png) +> 点击【添加】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image081.png) +>类型为HTTPS,IP为网站绑定IP,选择SSL证书,点击【确定】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image083.png) + +### 3.启用SSL + +> 选择【SSL设置】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image084.png) +> 勾选【要求SSL】,将客服证书设置为【接受】,点击【应用】 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image086.png) + +## 最终效果 +> 接下来就可以用https访问网站啦 + +![](https://zhengyuanyuan520.cn/images/softexam/SSL/image088.png) \ No newline at end of file diff --git a/source/_posts/Windows_Web_build_environment.md b/source/_posts/Windows_Web_build_environment.md new file mode 100644 index 0000000..3781ab1 --- /dev/null +++ b/source/_posts/Windows_Web_build_environment.md @@ -0,0 +1,52 @@ +--- +title: Windows Web服务器环境搭建(1) +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 服务器 +date: 2020-02-14 21:21:21 +music: + type: song + id: 36270426 +comments: true +tags: + - 软考 + - IIS + - Web服务器 +--- +IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。 + + +## Windows Web服务器配置 + +1. 我们需要安装IIS工具才能搭建网站。我们依次点击开始 ---> 管理工具 ---> 服务器管理器。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo1.png) +2. 进入服务器管理器界面后,我们点击角色。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo2.png) +3. 点击添加角色。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo3.png) +4. 此时我们会进入添加角色向导,如果不想每次提醒的话可以勾选下面的默认情况下将跳过此页,点击下一步。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo4.png) +5. 此时我们进入到选择服务器角色,勾选Web服务器(IIS),点击下一步。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo5.png) +6. 此时会出现Web服务器的简介和注意事项,我们直接点击下一步。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo6.png) +7. 选择需要安装的服务,这里我就直接全部勾选,全部安装了(建议将FTP也勾选上),点击下一步。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo7.png) +8. 确认信息,确保无误之后我们就可以点击安装。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo8.png) +9. 等待安装。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo9.png) +10. 安装完成以后,点击关闭。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo10.png) +11. 如果在角色摘要里面看到了Web服务器(IIS)就表明我们安装成功。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo11.png) +12. 点击角色前面的“+”号将其展开,找到Web服务器(IIS)将其展开,点击Internet信息服务(IIS)。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo12.png) +13. 将标记处依次展开,站到网站,展开找到Default Web Site。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo13.png) +14. 双击Default Web Site,点击右侧浏览 *:80 (http)即可查看IIS提供的默认界面。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo14.png) +15. 预览结果。 +![](https://www.zhengyuanyuan520.cn/images/softexam/Web/photo15.png) diff --git a/source/_posts/Windows_Web_build_website.md b/source/_posts/Windows_Web_build_website.md new file mode 100644 index 0000000..69e8c96 --- /dev/null +++ b/source/_posts/Windows_Web_build_website.md @@ -0,0 +1,56 @@ +--- +title: Windows Web服务器创建网站(2) +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 服务器 +date: 2020-02-14 22:22:22 +music: + type: song + id: 1372796676 +comments: true +tags: + - 软考 + - IIS + - Web服务器 +--- +创建一个新的网站,并将一些知识点标记了出来,学会创建一个新的网站,并且知道参数的作用是本次的目的。 + +## IIS新增一个网站 + +1. 双击网站,点击右侧添加网站。 + +![](https://zhengyuanyuan520.cn/images/softexam/AddWeb/photo1.png) + +2. 此时会出现添加网站的对话框。网站名称物理路径按需求填写和选择即可。 + +![](https://zhengyuanyuan520.cn/images/softexam/AddWeb/photo2.png) + +3. 此时我们来到绑定栏,找到类型复选框。 + +![](https://zhengyuanyuan520.cn/images/softexam/AddWeb/photo3.png) + +>HTTP:默认端口80,以明文的方式进行传输,对于一般博客类网站可能会没有什么很大的问题,但是不适用于对安全性要求较高的场合,例如涉及金融,网购的一些涉及个人隐私的网站就不适用于HTTP了,现在很多网站都会使用HTTPS协议进行传输以确保数据安全。如果发现有使用HTTP方式进行传输的网站,千万不要输入银行卡等重要隐私数据以防泄露。 + +>HTTPS: 默认端口443,以加密的方式进行传输,使用HTTPS协议需要申请CA证书,常见的有SSL证书。通过HTTPS传输的网站最大的特点便是安全,为用户的隐私提供了保障。 + +4. 找到IP地址复选框。 + +![](https://zhengyuanyuan520.cn/images/softexam/AddWeb/photo4.png) +>全部未分配:如果电脑有多张网卡,则可以通过多张网卡的任何一个IP地址进行新增网站的访问。 +> +>如果选择了其中任何一个IP,则表示只能通过选择的IP访问新增的网站。 + + +5. 主机名,此时不用填写: + +>这里我们配置与否都没有任何作用,因为目前还没有搭建DNS服务器,所有域名无法解析,暂时不用填。 + +6. 填写完成后点击确定。 + +![](https://zhengyuanyuan520.cn/images/softexam/AddWeb/photo5.png) + +7. 左侧如果有你刚刚新建的网站名,表明新建成功。 + +![](https://zhengyuanyuan520.cn/images/softexam/AddWeb/photo6.png) \ No newline at end of file diff --git a/source/_posts/Windows_Web_often_use.md b/source/_posts/Windows_Web_often_use.md new file mode 100644 index 0000000..517426d --- /dev/null +++ b/source/_posts/Windows_Web_often_use.md @@ -0,0 +1,145 @@ +--- +title: Windows Web服务器常用功能(3) +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 服务器 +date: 2020-02-15 14:23:30 +music: + type: song + id: 514761281 +comments: true +tags: + - 软考 + - IIS + - Web服务器 +--- +内容: Windows Web服务器常用功能 +难度: ★★★☆☆ + + + + +## 给网站绑定IP地址 + +1. 双击自己的网站名称,点击右侧【绑定】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p1.png) + +2. 点击左边列表中的绑定,点击【编辑】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p2.png) + +3. 默认的是HTTP类型,我们不可以进行更改。IP地址分为未分配和单独IP地址,IP地址的内容我们在上一篇文章已经提到了,所以不再叙述。端口号我们可以自行设置。默认是80端口,使用80端口我们就可以直接通过IP地址就可以访问,使用其它端口则需要在IP后面添加端口号,例:192.168.74.128:8080。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p3.png) + +4. 选择好IP地址和端口号后,点击【确定】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p4.png) + + +## 更换自己的网站为默认页 +1. 首先我们可以点击右侧【浏览】,进入到网站的主目录。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p5.png) + +2. 将自己的网页文件放置到网站主目录。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p6.png) + +3. 我们可以打开浏览器输入你自己网站绑定的IP地址,我的是192.168.74.128,端口号是80,那么我们直接在浏览器输入192.168.74.128,当然,输入192.168.74.128:80也会在浏览器自动显示为192.168.74.128。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p7.png) + + +## 修改默认网页文件 +1. 我们可以先查看一下IIS给我们设置的默认访问文件,我们双击自己的网站名,然后找到【IIS】栏里面的【默认文档】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p8.png) + +2. 下面列出来的这些就是默认访问文件,也就是我们放在根目录只要是这些文件名都将会设置为首页。如果根目录有多个下面列表的名称的文件,那么会根据列表的顺序进行访问,例如我们根目录同时有Default.htm和index.html,由于Default.htm是在index.html之前的,所以我们打开网页会显示Default.htm的内容。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p9.png) + +3. 将index.html设置为优先级最高的文件。点击【index.html】,然后点击右侧【上移】,移到顶部。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p10.png) + +4. 假如我们需要设置首页的网页是hello.html,而不是index.html。此时我们可以点击右侧【添加】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p11.png) + +5. 此时会弹出【添加默认文档】对话框,输入我们需要设置主页的文件,如:hello.html,点击【确定】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p12.png) + +6. 检查添加的网页文件名称是否置顶。可以看到我们新增的网站条目类型为【本地】,一般【本地】的优先级比【继承】高。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p13.png) + +7. 刷新浏览器,可以看到我们的已经将主页文件改成了hello.html。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p14.png) + +## 设置网站访问需要验证。 + +> 验证方式常用的有: +> * Windows身份验证 +> * 基本身份验证 +> * 匿名身份验证 +> * 摘要式身份验证。 +--- + +> +> * 匿名身份验证:允许匿名访问,则不需要验证用户。 +> * 基本身份验证:访问网站需要用户输入账户名及密码。但由于采用不加密的Base64编码传输,故传输并不安全。 +> * 摘要式身份验证:访问网站也需要用户输入账户名及密码,但采用了MD5的加密方式进行传输,故安全性比基本身份验证高。 +> * Windows身份验证:希望客户端使用 NTLM 或 Kerberos 协议进行身份验证,则使用 Windows 身份验证。 +--- + +> 默认开启的是匿名身份验证,如果同时开启了匿名身份验证和其他身份验证,会优先匿名身份认证。 +--- + +> 安全性比较: Windows身份验证 > 摘要式身份验证 > 基本身份验证 > 匿名身份验证 + +1. 双击【IIS】栏里面的【身份验证】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p15.png) + +2. 例如我们要将身份验证方式改为基本身份验证,我们首先需要关闭匿名身份验证。点击【匿名身份验证】,点击右侧【禁用】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p16.png) + +3. 然后点击【基本身份验证】,点击右侧【启用】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p17.png) + +4. 然后我们去浏览器刷新网页,此时会提醒我们验证身份,输入用户名和密码就可以正常访问,验证失败则会返回401错误。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p18.png) + +## 设置IP地址和域限制。 +> 设置IP地址和域限制可以限制IP或网段不允许访问网站。 + +--- +1. 双击【IIS】栏的【IP地址和域限制】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p19.png) + +2. 拒绝IP或IP网段进行访问,则点击【添加拒绝条目】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p20.png) + +3. 可以限制IP地址或者IP地址范围。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p21.png) + +4. 也可以拒绝任何人进行访问,直接点击右侧的【编辑功能设置】。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p22.png) + +5. 将【未指定的客户端的访问权】设置为拒绝,点击确定,此时任何IP都不可以进行网站的访问了。 + +![](https://zhengyuanyuan520.cn/images/softexam/idea/p23.png) diff --git a/source/_posts/a_server_build_many_webs.md b/source/_posts/a_server_build_many_webs.md new file mode 100644 index 0000000..6f1f9bc --- /dev/null +++ b/source/_posts/a_server_build_many_webs.md @@ -0,0 +1,108 @@ +--- +title: 一台服务器创建多个Web站点(4) +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 服务器 +date: 2020-02-15 16:45:30 +music: + type: song + id: 1382596189 +comments: true +tags: + - 软考 + - IIS + - Web服务器 +--- +内容: 一台服务器创建多个Web站点 +难度: ★★★☆☆ + + + + +> 实现虚拟主机一般有3种方式: +> * 使用不同的IP +> * 使用相同的IP,不同的TCP端口 +> * 使用相同的IP和TCP端口,不同的主机头(域名) + +--- +## 使用不同的IP +### 1.新建一个网站 +> 现在实验的是使用不同的IP,所以新建网站绑定的IP地址要选择与之前新建网站的IP地址不能相同 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p1.png) + +### 2. 将网页文件放进网站根目录 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p2.png) + +### 3.网站不同IP访问 +> 现在我们就可以通过不同的IP地址进行访问 +> qh:192.168.74.128:80 +> qh2 : 192.168.74.129:80 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p3.png) +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p4.png) + +## 使用相同的IP,不同的TCP端口 +### 1.新建一个网站 +> 现在实验的是使用相同的IP,但是使用不同的TCP端口,所以我们选择与之前的网站IP地址相同。 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p5.png) + +### 2.将网页文件放进网站根目录 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p6.png) + +### 3.通过相同IP不同端口访问 +> 现在我们就可以通过相同的IP,不同的端口进行访问 +> qh:192.168.74.128:80 +> qh3:192.168.74.128:8080 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p7.png) +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p8.png) + + +## 使用相同的IP和TCP端口,不同的主机名(域名) +### 1.新建一个网站 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p9.png) + +### 2.将另一个网站绑定域名 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p10.png) + +### 3.更改host实现本地域名解析 +> 由于我们现在并没有使用DNS来进行域名解析,我们本地实验所有这里就以更改host文件来实现本地域名解析 + +### 4.找到记事本,以管理员身份运行。 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p11.png) + +### 5.点击【文件】--->【打开】 + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p12.png) + +### 6.选择host文件并打开 +> 路径:【C:\Windows\System32\drivers\etc】,找到host文件,如果没有则在右下角选择展示所有文件。 + +### 7.添加域名解析 +> 在host文件最下面加上: +> 192.168.74.128 www.qinhao.com +> 192.168.74.128 tsg.qinhao.com + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p13.png) + +### 8.浏览器访问www.qinhao.com + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p14.png) + +### 9.浏览器访问tsg.qinhao.com + +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p15.png) +![](https://zhengyuanyuan520.cn/images/softexam/twoWeb/p16.png) + + +### 10.注意事项 +> 本方法只能使用域名对网站进行访问,不可以通过IP对网站进行访问。 \ No newline at end of file diff --git a/source/_posts/acl.md b/source/_posts/acl.md new file mode 100644 index 0000000..8a7e76f --- /dev/null +++ b/source/_posts/acl.md @@ -0,0 +1,272 @@ +--- +title: ACL配置练习 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 网络安全 +date: 2020-03-04 12:30:11 +music: + type: song + id: 1376142151 +comments: true +tags: + - 网络安全 + - 交换机 + - 思科 +--- + +为了增强网络的安全性,可以通过防火墙禁止未经授权或可能存在危险的访问进入网络。ACL包过滤技术就是一种被广泛应用于防火墙的网络安全技术。 + + + +## 任务 + +### 基础配置任务 + +``` +(1)按图中所示配置各计算机、服务器、路由器对应端口的IP地址相关信息; +(2)在路由器R0、R1、R2上启动rip v2协议,使得全网互通。 +``` + +### ACL配置任务 + +``` +(1)禁止PC0 ping通外网,允许PC2 ping通外网;(标准acl,序号1) +(2)禁止PC2访问服务器Server0的web服务,但可以ping通服务器Server0。(扩展acl,序号101) +``` + +## 实现步骤 + +``` +1、如图所示,全网由内网1、内网2及ISP(运营商网络:模拟互联网)组成,首先配置各计算机、服务器、路由器对应端口的IP地址相关信息,使用show ip route、ping命令测试网络并记录输出信息。 +``` + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/main_pic.png) + +| 设备名称 | 接口 | IP地址 | 网关 | +| -------- | ------- | ----------------- | ----------------- | +| R0 | Fa0/0 | 192.168.22.254/24 | | +| R0 | Se0/3/0 | 58.1.1.1/30 | | +| R1 | Fa0/0 | 192.168.18.254/24 | | +| R1 | Se0/3/0 | 210.28.144.2/30 | | +| R2 | Se0/1/0 | 58.1.1.2/30 | | +| R2 | Se0/0/0 | 210.28.144.1/30 | | +| Server0 | | 192.168.18.250/24 | 192.168.18.254/24 | +| PC0 | | 192.168.22.10/24 | 192.168.22.254/24 | +| PC2 | | 192.168.22.20/24 | 192.168.22.254/24 | +| PC3 | | 192.168.18.10/24 | 192.168.18.254/24 | +| PC5 | | 192.168.18.20/24 | 192.168.18.254/24 | + +### 基础配置 + +#### Router0配置Fa0/0端口 + +``` +R0> enable #进入特权模式 +R0# config terminal #进入全局模式 +R0(config)# interface fastEthernet 0/0 #进入Fa0/0端口 +R0(config-if)# ip address 192.168.22.254 255.255.255.0 #配置IP和子网掩码 +R0(config-if)# no shutdown #开启端口 +R0(config-if)# exit #退回Fa0/0端口 +``` + +#### Router0配置Se0/3/0端口 + +``` +R0(config)# interface serial 0/3/0 #配置se0/3/0端口 +R0(config-if)# ip address 58.1.1.1 255.255.255.252 #配置IP和子网掩码 +``` + +#### Router2配置Se0/1/0端口 + +``` +R2> enable #进入特权模式 +R2# config terminal #进入全局模式 +R2(config)# interface serial 0/1/0 #进入se0/1/0端口 +R2(config-if)# ip address 58.1.1.2 255.255.255.252 #配置IP和子网掩码 +R2(config-if)# no shutdown #开启端口 +R2(config-if)# exit #退出se0/1/0端口 +``` + +#### Router2配置Se0/0/0端口 + +``` +R2(config)# interface serial 0/0/0 #进入se0/0/0端口 +R2(config-if)# ip address 210.28.144.1 255.255.255.252 #配置IP和子网掩码 +R2(config-if)# no shutdown #开启端口 +R2(config-if)# exit #退出se0/0/0端口 +``` + +#### Router1配置Se0/3/0端口 + +``` +R1> enable #进入特权模式 +R1# config terminal #进入全局模式 +R1(config)# interface serial 0/3/0 #进入se0/3/0端口 +R1(config-if)# ip address 210.28.144.2 255.255.255.252 #配置IP和子网掩码 +R1(config-if)# no shutdown #配置IP和子网掩码 +R1(config-if)# exit #退出se0/3/0端口 +``` + +#### Router1配置Fa0/0端口 + +``` +R1(config)# interface fastEthernet 0/0 #进入Fa0/0端口 +R1(config-if)# ip address 192.168.18.254 255.255.255.0 #配置IP和子网掩码 +R1(config-if)# no shutdown #配置IP和子网掩码 +``` + +#### Router0路由表 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/router0_table.png) + +#### Router1路由表 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/router1_table.png) + +#### Router2路由表 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/router2_table.png) + +#### PC0 ping PC5 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/pc0_ping_pc5.png) + +### 全网互通(RIP配置) + +#### R0:RIP 2配置 + +``` +R0(config)# router rip #启动rip协议 +R0(config-router)# version 2 #指定rip v2版本 +R0(config-router)# no auto-summary #关闭路由器自动汇总功能 +R0(config-router)# network 192.168.22.0 #宣告自己的网段 +R0(config-router)# network 58.1.1.1 #宣告自己的网段 +R0(config-router)# exit #退出rip配置模式 +``` + +#### R1:RIP 2配置 + +``` +R1(config)# router rip #启动rip协议 +R1(config-router)# version 2 #指定rip v2版本 +R1(config-router)# no auto-summary #关闭路由器自动汇总功能 +R1(config-router)# network 192.168.18.0 #宣告自己的网段 +R1(config-router)# network 210.28.144.2 #宣告自己的网段 +R1(config-router)# exit #退出rip配置模式 +``` + +#### R2:RIP 2配置 + +``` +R1(config)# router rip #启动rip协议 +R1(config-router)# version 2 #指定rip v2版本 +R1(config-router)# no auto-summary #关闭路由器自动汇总功能 +R1(config-router)# network 58.1.1.2 #宣告自己的网段 +R1(config-router)# network 210.28.144.1 #宣告自己的网段 +R1(config-router)# exit #退出rip配置模式 +``` + +#### Router0路由表 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/Router0_RIP_table.png) + +#### Router1路由表 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/Router1_RIP_table.png) + +#### Router2路由表 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/Router2_RIP_table.png) + +#### PC0 ping PC5 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/PC0_ping_PC5_RIP.png) + +### R0配置标准ACL + +``` +在R0上配置标准ACL,禁止PC0 ping PC5,允许PC2 ping PC5,请思考需采用几条ACL,应用于R0那个端口、什么方向;配置完毕后,PC0 ping PC5显示什么信息? +``` + +#### 配置ACL + +``` +R0(config)# access-list 1 permit host 192.168.22.20 #允许主机192.168.22.20的数据包 +R0(config)# access-list 1 deny any #拒绝其他所有的数据包 +``` + +#### 接口及方向 + +``` +R0(config)# interface serial 0/3/0 #进入接口se0/3/0端口 +R0(config-if)# ip access-group 1 out #将指定的访问列表应用到se0/3/0接口的入方向 +``` + +#### PC0 ping PC5 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/PC0_ping_PC5_access-list.png) + +#### PC0 PING PC3能通吗,为什么? + +``` +解析:PC0 不能ping通PC3,因为我们配置了标准acl,在R0的进方向就已经将PC0发出的数据包拒绝了,我们设置了在192.168.22.0/24中只允许192.168.22.20发出的数据,其他主机无法向外网发送数据。 +``` + +#### PC2 ping PC5 能通吗,为什么? + +``` +PC2可以ping通PC5.因为我们写的acl配置就是运行主机PC2访问外网,而且由于之前我们写了RIP,保证了全网互通,所以PC2可以ping通PC5。 +``` + +### R0配置拓展ACL + +``` +在R0上配置扩展ACL,禁止PC2访问服务器WEB服务,但是可以ping通服务器,请思考需采用几条ACL,应用于R0那个端口、什么方向;配置完毕后,PC0访问服务器WEB服务显示什么信息? +``` + +#### 配置ACL + +``` +R0(config)# access-list 101 deny tcp host 192.168.22.20 0.0.0.0 192.168.18.250 eq www #拒绝主机192.168.22.20向主机192.168.18.250的www请求 +R0(config)# access-list 101 permit ip any any #允许访问列表101的任意IP通过控制列表 +``` + +#### 端口及方向 + +``` +R0(config)# interface fastEthernet 0/0 #进入Fa0/0端口 +R0(config-if)# ip access-group 101 in #将指定的访问列表应用到Fa0/0接口的入方向 +-------------------------------------------------------------------------------------- +解析:根据ACL的放置原则,拓展ACL应放置在尽可能靠近需要过滤的流量源的位置上,所以应该选择接口R0的Fa0/0接口。由于要检查的数据流是从接口Fa0/0流入的,所以检查方向为“in”。 +``` + +#### PC0访问服务器WEB服务 + +![](https://www.zhengyuanyuan520.cn/images/switch/acl/PC2_to_WEB.png) + +### 思考题 + +**对于标准型ACL,应该放在网络什么位置;而对于扩展型ACL,又应该放在网络什么位置?** + +``` +标准ACL不指定目的地址,所以其位置应该尽可能靠近目的地。 +根据ACL的放置原则,拓展ACL应放置在尽可能靠近需要过滤的流量源的位置上。 +``` + +**在IP访问列表中,如果到最后也没有找到匹配,则传输数据包将如何处理?(以cisco为例)** + +``` +如果都不匹配,那么一定匹配最后的隐含拒绝条目,思科默认拒绝。 +``` + +**你该如何安排访问列表中条目顺序?** + +``` +①最小特权原则。只给受控对象完成任务所必需的最小的权限,因为总规则是各个规则的交集,只满足部分条件的是不容许通过的。 +②最靠近受控对象原则。检查规则时是采用自上向下的形式在ACL中逐条检测的,只要发现符合条件的就立刻转发,不再继续检测后面的ACL语句。 +③默认丢弃原则。如果都不匹配,那么一定匹配最后的隐含拒绝条目,思科默认拒绝。 +④拓展ACL中具体的判别条目放在前面,标准ACL按照主机、网络、any排序。 +``` + diff --git a/source/_posts/bitwarden.md b/source/_posts/bitwarden.md new file mode 100644 index 0000000..6052361 --- /dev/null +++ b/source/_posts/bitwarden.md @@ -0,0 +1,94 @@ +--- +title: centOS 7搭建Bitwarden密码服务器 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Linux +date: 2020-03-31 13:04:14 +music: + type: song + id: 298213 +comments: true +--- + +您可以在Windows,macOS和Linux发行版上使用Docker容器部署Bitwarden。使用提供的PowerShell和Bash脚本快速入门。在[Docker Hub](https://hub.docker.com/u/bitwarden/)上找到所有Bitwarden映像。 + + + +## 安装Docker + +1. 安装所需的软件包。`yum-utils`提供了`yum-config-manager` 效用,并`device-mapper-persistent-data`和`lvm2`由需要 `devicemapper`存储驱动程序。 + +``` +$ sudo yum install -y yum-utils \ + device-mapper-persistent-data \ + lvm2 +``` + +2.使用以下命令来设置**稳定的**存储库。 + +``` +$ sudo yum-config-manager \ + --add-repo \ + https://download.docker.com/linux/centos/docker-ce.repo +``` + +3.安装*最新版本*的Docker Engine-Community和containerd,或者转到下一步安装特定版本: + +``` +$ sudo yum install docker-ce docker-ce-cli containerd.io +``` + +如果提示您接受GPG密钥,请验证指纹是否匹配 `060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35`,如果是,则接受它。 + +4.启动Docker。 + +``` +$ sudo systemctl start docker +``` + +5.设置开机自启动。 + +``` +$ sudo systemctl enable docker +``` + +## 安装Docker Compose + +1.运行以下命令以下载Docker Compose的当前稳定版本: + +``` +sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +``` + +2.将可执行权限应用于二进制文件: + +``` +sudo chmod +x /usr/local/bin/docker-compose +``` + +**注意**:如果命令`docker-compose`在安装后失败,请检查路径。您也可以创建指向`/usr/bin`或路径中任何其他目录的符号链接。 + +例如: + +``` +sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose +``` + +3.测试安装: + +``` +$ docker-compose --version +docker-compose version 1.25.4, build 1110ad01 +``` + +## 安装Bitwarden + +``` +curl -s -o bitwarden.sh \ + https://raw.githubusercontent.com/bitwarden/server/master/scripts/bitwarden.sh \ + && chmod +x bitwarden.sh +./bitwarden.sh install +./bitwarden.sh start +``` \ No newline at end of file diff --git a/source/_posts/build-MAN-idea.md b/source/_posts/build-MAN-idea.md new file mode 100644 index 0000000..0e7ddfe --- /dev/null +++ b/source/_posts/build-MAN-idea.md @@ -0,0 +1,132 @@ +--- +title: 构建宽带城域网的基本技术与方案 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 计算机三级 +date: 2020-04-24 12:12:12 +music: + type: song + id: 1440410293 +comments: true +tags: + - 网络技术 + - 计算机三级 +--- + +基于10GE技术的宽带城域网 + +基于弹性分组环技术的宽带城域网 + + + +## 基于10GE技术的宽带城域网 + +光以太网是以太网与DWDM技术相结合的产物,可运营光以太网的设备和线路必须符合电信网络99.999%的高运行可靠性,并具备以下特征: + +①能够根据终端用户的实际应用需求分配带宽,保证带宽资源充分、合理地应用。 + +②县有认证与授权功能,用户访问网络资源必须经过认证和授权,确保用户和网络资源的安全及合法使用。支持VPN和防火墙,可以有效地保证网络安全。 + +③支挂MPLS(多协议标签交换),县有一定的服务质量保证,提供分等级的QoS网络服务。 + +④提供计费功能,能及时获得用户的上网时间记录和流量记录,支持按上网时间、用户流量计费,或提供包月计费方式,支持实时计费。 + +⑤能够方便、快速、灵活地适应用户和业务的拓展。 + + + +### 真考试题 + +下列关于光以太网在宽带城域网应用的描述中,错误的是( ) +{% checkbox green checked, 光以太网设备与线路符合电信网络99.99%的高运行可靠性 %} +{% checkbox green, 能根据用户需求动态分配带宽 %} +{% checkbox green, 具有认证与授权功能 %} +{% checkbox green, 具有认证与授权功能 %} + +解析:光以太网设备与线路符合电信网络99.999%的高运行可靠性,故A选项错误。 + +
+ +下列关于光以太网技术特征的描述中,错误的是( )。 +{% checkbox green, 能够根据用户的需求分配带宽 %} +{% checkbox green checked, 以信元为单位传输数据 %} +{% checkbox green, 具有保护用户和网络资源安全的认证与授权功能 %} +{% checkbox green, 提供分级的QoS服务 %} + +解析:光以太网以光信号为单位来传输数据,以信元为单位传输数据的是ATM网。 + +
+ +## 基于弹性分组环技术的宽带城域网 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200424112901.png) + +RPR采用双环结构,有内环和外环,两个RPR结点之间的裸光纤的最大长度达到100km,两环均有实现“自愈环”的功能,均可以传输数据分组与控制分组,且可用统计时分多路复用的方法传输IP分组。 + +{% note success, 内环的传输方向是逆时针,外环的传输方向是顺时针。 %} + + + +### 特点 + +{% p subtitle, 特点1 公平性好 %} +{% folding 点击查看详情 %} + +{% note warning, RPR环中每个结点都执行SRP公平算法,使得结点之间能够获得平等的带宽,防止个结点因流量过大而造成环拥塞。同时,RPR环还支持加权公平法则和入口、出口峰值速率限制,用以保证能够根据用户购买的带宽提供相应的服务。 %} + +{% endfolding %} + + + +{% p subtitle, 特点2 带宽的利用率高 %} +{% folding 点击查看详情 %} + +{% note warning, RPR采用双环结构传输数据分组和控制分组,并限制数据帧只在源结点与目的结点之间的光纤段上传输,当源结点成功地发送一个数据帧之后,这个数据帧要由目的结点从环中收回。如此,该数据帧将不再占用下游段的环带宽,从而提高了环带宽的利用率。 %} + +{% endfolding %} + + + +{% p subtitle, 特点3 保证服务质量 %} +{% folding 点击查看详情 %} + +{% note warning, RPR环对不同的业务数据分配不同的优先级,以保证高优先级信息的可靠传输,从而保证了网络的服务质量。 %} + +{% endfolding %} + + + +{% p subtitle, 特点4 快速保护和恢复能力强大 %} +{% folding 点击查看详情 %} + +{% note warning, RPR有自愈环的功能,能够在50ms时间内,隔离出现故障的节点和光纤段,并可在没有专用带宽的前提下就能够提供SDH级的快速保护和恢复。 %} + +{% endfolding %} + + + +
+ + + +### 真考试题 + +下列关于RPR技术的描述中,正确的是( )。 +{% checkbox green checked, RPR的内环与外环都可以传输数据分组与控制分组 %} +{% checkbox green, RPR环将沿顺时针方向传输的光纤环叫做内环 %} +{% checkbox green, RPR环中每一个节点都执行DPT公平算法 %} +{% checkbox green, RPR环能够在100ms内实现自愈 %} + +解析:B选项RPR环将沿顺时针方向传输的光纤环叫做外环,逆时针方向传输的光纤环叫作内环,故B选项错误;C选项RPR环中每一个节点都执行SRP公平算法,故C选项错误;D选项RPR环能够在50ms内实现自愈,故D选项错误。A选项两环均有实现“自愈环”的功能,均可以传输数据分组与控制分组,且可用统计时分多路复用的方法传输IP分组。故A选项正确。 + +
+ +下列关于RPR技术的描述中,正确的是( )。 +{% checkbox green, RPR能够在30ms内隔离出现故障的节点和光纤段 %} +{% checkbox green, RPR环中每一个节点都执行DPT公平算法 %} +{% checkbox green, 两个RPR节点之间的裸光纤最大长度为30公里 %} +{% checkbox green checked, RPR的内环与外环都可以传输数据分组与控制分组 %} + +解析:A选项RPR能够在50ms内隔离出现故障的节点和光纤段,故A选项错误;B选项RPR环中每一个节点都执行SRP公平算法,并不是DPT算法,故B选项错误;C选项两个RPR节点之间的裸光纤最大长度为100公里,故C选项错误。 \ No newline at end of file diff --git a/source/_posts/color.md b/source/_posts/color.md new file mode 100644 index 0000000..e9a38eb --- /dev/null +++ b/source/_posts/color.md @@ -0,0 +1,187 @@ +--- +title: 色彩基础 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Photoshop +date: 2020-04-04 13:06:11 +music: + type: song + id: 1404906595 +comments: true +tags: + - 图像处理 + - Photoshop +--- + +色彩的产生 + +色光 + +固有色 + +RGB模式 + +色彩三要素 + +HSB取色 + +CMYK模式 + + + +## 色彩的产生 + +光是一种电磁波,人可以识别的电磁波波长是770-350nm之间。高于770的是红外线,低于350的是紫外线。 + +人眼能看到的波段:可见光。 + + + +### 光源光 + +``` +太阳,电灯,显示屏,RGB模式。 +``` + +### 反射光 + +``` +月亮,不发光物,CMYK模式。 + +光滑表面形成直反射:镜子。 +粗糙表面形成漫反射:各种物 +``` + + + +### 单色光 + +``` +单色光:三基色光(红Red,绿Green,蓝Blue),一切色彩的基础。 +``` + +### 复合光 + +``` +复合光:色光融合,太阳光等其它可见光。 +``` + + + +### 固有色 + +``` +物体反射到人眼的常态日光,形成人对物体常态的颜色认知。 +``` + +### 光源色 + +``` +物体反射到人眼的目标光源光线,形成人对物体当前状态的颜色认知。 +``` + + + +在RGB原色通道里,填充白色,即为本色光最强的发光。 + + + +## 吸管工具与颜色面板 + +``` +快捷键:I,用于拾取色彩色值。 + +吸管直接生成前景色;按住Alt键吸取,生成背景色。 +``` + + + +## RGB色值表达方式 + +``` +红色的RGB色值是255.0.0 +黑色的RGB色值是0.0.0 +绿色的RGB色值是0.255.0 +蓝色的RGB色值是0.0.255 +``` + + + +## 在RGB通道创建色彩 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200404114855.png) + +``` +红色 + 绿色 = 黄色 +红色 + 蓝色 = 品红 +绿色 + 蓝色 = 青色 +``` + +## 色彩三要素 + +### 色相 + +``` +色相:颜色的品相。 + +15°范围内叫作同类色。 +45°范围内叫作邻近色。 +120°范围内叫作对比色。 +180°范围内叫作补色。 +``` + +### 饱和度 + +``` +饱和度是色彩的鲜艳程度,其实就是加入中性灰的程度。 + +调整饱和度命令,可以看做是增减中性灰的操作。 +``` + +### 明度 + +``` +调整明度,就是调节发光量,加入额外的白光。 +``` + + + +取色模式可以选择HSB,RGB,LAB,CMYK,WEB模式。 + + + +## CMYK模式 + +``` +印刷色彩模式。 + +C:青色 +M:品红 +Y:黄色 +K:黑色 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200404124840.png) + +``` +CMYK通道里,黑色代表100%浓度的油墨。 + +CMYK靠百分比来表达当前通道的色值。 +``` + + + +``` +RGB是加色模式,CMYK是减色模式。 + + + +制作印刷类图像,不要使用RGB模式,否则成品会偏色。 + + + +拾色器会对超出印刷色域的颜色做警告,并可以自动修复。 +``` + diff --git a/source/_posts/computer_Internet_1.md b/source/_posts/computer_Internet_1.md new file mode 100644 index 0000000..d857ff9 --- /dev/null +++ b/source/_posts/computer_Internet_1.md @@ -0,0 +1,179 @@ +--- +title: 计算机网络学习1 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 计算机网络 +mathjax: true +date: 2020-07-17 18:25:00 +music: + type: song + id: 493735012 +comments: true +--- + +学习笔记,包含以下内容: + +- 网络、互联网(互连网)和因特网 +- 三种交换方式 +- 计算机网络的性能指标 + + + + + +## 网络、互联网(互联网)和因特网 + +网络(Network)由若干{% span red, 结点 %}(Node)和连接这些节点的{% span red, 链路 %}(Link)组成。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200717162104.png) + +多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网)。因此,互连网是“{% span red, 网络中的网络 %}(Network of Network)” + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200717162555.png) + +因特网(Internet)是世界上最大的互联网络(用户数以亿计,互连的网络数以百万计) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200717162750.png) + +### Internet与internet的区别 + +> internet(互联网或互连网)是一个通用名词,它泛指由多个计算机网络互连而成的网络。在这些网络之间的通信协议可以是任意的。 + +> Internet(因特网)则是一个专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。 + +### 名词解释 + +ISP:因特网服务提供者 + +### 因特网的组成 + +① 边缘部分:由所有连接在因特网上的主机组成。 + +② 核心部分:由大量的网络和连接这些网络的路由器组成。 + + + +## 电路交换、分组交换和报文交换 + +### 电路交换 + +> 电话交换机接通电话线的方式称为电路交换。 + +> 从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源。 + +> 电路交换的三个步骤: +> +> 1. 建立连接(分配通信资源) +> 2. 通话(一直占用通信资源) +> 3. 释放连接(归还通信资源) + +当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。 + +### 分组交换 + +![image-20200717165117099](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200717180739.png) + +### 三种交换方式的对比 + +![image-20200717165207537](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200717180740.png) + + + +## 计算机网络的性能指标 + +### 速率 + +![image-20200717165735699](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200717180741.png) + +计算题:有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多长时间? + +$$\frac{100MB}{100Mb/s} = \frac{MB}{Mb/s} = \frac{2^{20}·8 b }{10^{6}b/s} ≈ 8.4s$$ + + + +### 带宽 + +![image-20200717171145414](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200717180742.png) + +> 一条通信线路的“频带宽度”越宽,其所传输数据的“最高数据率”也越高。 + + + +### 吞吐量 + +> 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。 + +> 吞吐量被经常用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。 + +> 吞吐量受网络的带宽额定速率的限制。 + + + +### 时延 + +> 发送时延 : $$ \frac{分组长度(b)}{发送速率(b/s)} $$ ,与网卡的发送速率、信道带宽、接口速率都有关。 + +> 传播时延: $$ \frac{信道长度(m)}{电磁波传播速率(m/s)} $$ + +> 处理时延: 路由器接收数据后,对数据进行存储转发所消耗的时间。 + +计算题: 数据块长度为100MB,信道带宽为1 Mb/s,传送距离为1000 km,计算发送时延传播时延。 + +$$ 发送时延 = \frac{分组长度(b)}{发送速率(b/s)} = \frac{100 × 2^{20} × 8(b)}{10^6(b/s)} = 838.8608s $$ + +$$ 传播时延 = \frac{信道长度(m)}{电磁波传播速率(m/s)} = \frac{1000 × 10^3(m)}{2 × 10^8(m/s)} = 0.005s $$ + + + +### 时延带宽积 + +$$ 时延带宽积 = 传播时延 × 带宽 $$ + + + +### 往返时间 + +> 在很多情况下,因特网上的信息不仅仅单方向传输,而是双向交互。因此,往返时间RTT(Round-Trip Time)也是一个重要指标。 + + + +### 利用率 + +> 信道利用率 : 用来表示某信道有百分之几的时间是被利用的(有数据通过)。 +> +> 网络利用率 : 全网络的信道利用率的加权平均。 + +根据排队论,当某信道的利用率增大时,该信道引起的时延也会迅速增加。因此,信道的利用率并非越高越好。 + +如果令$$ D_0 $$ 表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D、$$ D_0 $$ 和利用率U之间的关系: + +$$ D = \frac{D_0}{1 - U} $$ + +- 当网络的利用率达到 50% 的时候,时延就要加倍。 +- 当网络的利用率超过 50% 的时候,时延急剧增大。 +- 当网络的利用率接近 100% 的时候,时延就趋近于无穷大。 +- 因此,一些拥有较大主干网的ISP通常会控制他们的信道利用率不超过 50% 。如果超过了,就要准备扩容,增大线路的带宽。 +- 也不能使信道利用率太低,这会使宝贵的通信资源被白白浪费。应该使用一些机制,可以根据情况动态调整输入到网络中的通信量,使网络利用率保持在一个合理的范围内。 + + + +### 丢包率 + +> 丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。 + +> 丢包率具体可分为接口丢失率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。 + +> 丢包率是网络运维人员非常关心的一个网络性能指标,但对于普通用户来说往往并不关心这个指标,因为他们通常意识不到网络丢包。 + +> 分组丢失主要有两种情况: +> +> - 分组在传输过程中出现误码,被结点丢弃 +> - 分组到达一台队列已满的分组交换机时被丢弃,在通信量较大时就可能造成网络拥塞。 + +> 丢包率反映了网络的拥塞情况: +> +> - 无拥塞时路径丢包率为0 +> - 轻度拥塞时路径丢包率为1% ~ 4% +> - 严重拥塞时路径丢包率为5% ~ 15% \ No newline at end of file diff --git a/source/_posts/computer_network_basics.md b/source/_posts/computer_network_basics.md new file mode 100644 index 0000000..57ac6b0 --- /dev/null +++ b/source/_posts/computer_network_basics.md @@ -0,0 +1,204 @@ +--- +title: 计算机网络基础知识 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 计算机网络 +date: 2020-02-27 13:14:20 +music: + type: song + id: 1410666632 +comments: true +tags: + - 基础网络 + - 路由器 + - VPN + +--- + +计算机网络基础知识,简单介绍了IP地址,TCP与UDP,路由器以及VPN等相关知识。 + + + + + +``` +IPv4中的v是英文version的缩写,表示版本。 +``` + + + +``` +IP地址一共有32位,用点分十进制表示。 +``` + + + +## 私有地址: + +``` +A类: 10.0.0.0/8 +B类: 172.16.0.0/12 +C类: 192.168.0.0/16 +``` + + + +## 广播地址 + +``` +网络位不变,主机位全1 +``` + + + +## Windows查看ip地址 + +``` +ipconfig +``` + +## Linux查看ip地址 + +``` +ifconfig +``` + + + +## 专业术语 + +``` +Cable:线缆 +Physical Layer:物理层 +Data Link Layer:数据链路层 +Network Layer:网络层 +Transport Layer:传输层 +Application Layer:应用层 +``` + + + +## 组播地址 + +``` +组播IP地址以224段开头。 +``` + + + +## TCP与UDP + +``` +TCP/UDP工作在传输层。 + +TCP特点:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 + +UDP特点:无连接、不可靠、快速传输 + +TCP提供可靠的传输,UDP提供不可靠的传输。 +``` + + + +## Windows常用命令解析 + +``` +ping:利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。 +trace:TRACE和TRACK是用来调试web服务器连接的HTTP方式。 +ICMP:在主机与路由器之间传递控制信息,是网络层的协议。 +IGMP:主要用于主机和多播路由器的请求和探询。 +``` + +## 单模光纤与多模光纤 + +``` +单模光纤:传输距离远,色散小,造价高。一般单模光纤跳线用黄色表示。 + +多模光纤:传输距离短,带宽大,造价低。一般多模光纤跳线用橙红色,灰色等颜色表示。 +``` + + + +## 光纤常见类型 + +``` +SC,ST,LC,FC。 +``` + + + +## 什么是路由? + +``` +路由的概念就是将多个不同子网的IP,进行转发通信。选择一个将数据包发往某个目标网段或主机的路径就是路由的过程。 +``` + +## 路由器的概念 + +``` +用来表示逻辑源和逻辑目的地址的是IP地址,因此我们认为路由的过程是将不同IP地址网段的IP包进行转发。实现这一功能的设备我们称之为路由器。 +``` + +## 数据包路由过程 + +``` +在路由的过程中,三层地址不变,二层地址随着下跳的改变而改变。 +``` + +## 如何进行路径选择? + +``` +路径选择依据:根据信宿地址确定下一个站点是谁 +路径选择方法:查看邮局各自去往信宿的路由表 +``` + +路由必须要有回指路由,保证有去有回。 + + + +## **策略路由** + +``` +策略路由,是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。路由器将通过路由图决定如何对需要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器。它分为目的地址路由,源地址路由。 +``` + +## **VPN概念** + +``` +虚拟专用网技术,顾名思义,虚拟专用网不是真的专用网络,但却能够实现专用网络的功能。 +``` + + + +## ISP与NSP + +``` +ISP:Internet服务提供商。 + +NSP:网络服务提供商。 +``` + + + +## VPN按应用类型分布 + +#### Access VPN(远程访问虚拟网) + +``` +Access VPN最适用于公司内部经常有流动人员远程办公的情况。 +``` + +#### Intranet VPN(企业内部虚拟网) + +``` +Intranet VPN通过公网网络进行企业内部的互联,是传统专网或其它企业网的扩展或替代形式。 +``` + +#### Extranet VPN(企业拓展虚拟网) + +``` +Extranet利用VPN将企业网延伸至供应商、合作伙伴与客户处,在具有共同利益的不同企业间通过公网构筑VPN,使部分资源能够在不同VPN用户间共享。 +``` + diff --git a/source/_posts/free-get-189vip.md b/source/_posts/free-get-189vip.md new file mode 100644 index 0000000..f1c46b6 --- /dev/null +++ b/source/_posts/free-get-189vip.md @@ -0,0 +1,80 @@ +--- +title: 白嫖天翼云盘4T空间和1年会员 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 小技巧 +date: 2020-05-23 12:00:00 +music: + type: song + id: 1424520099 +comments: true +--- + +天翼云盘是中国电信推出的云存储服务,通过天翼云盘可多终端上传和下载、管理和分享文件。天翼网盘免费提供30G个人云空间、30G家庭云空间,单文件最大为2G。订购会员可以获得4T空间,且上传文件无大小限制。接下来我们来免费撸1年的黄金VIP会员和4T云存储空间。 + + + +## 下载客户端 +![安卓版下载](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200523120118.png) + +## 注册天翼网盘账号 + +打开APP,点击短信验证码登录,勾选登录即同意服务协议和隐私协议。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/26d2fd87bf99a5fa9070b75448b910b.jpg) + +此时会跳转到短信验证码登录界面,输入手机号,点击获取验证码,将收到的验证码输入到验证码输入栏,点击登录即可注册登录成功。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/516134a47a66e7470b1287b77536964.jpg) + +## 获得三个月黄金会员 + +进入软件首页,点击活动。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/3656609eb88d907dccdaa2da9132e2c.jpg) + +找到家庭云免费赠送三个云黄金会员活动。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/166468859c7e643be42facc03fc0713.jpg) + +完成两个任务即可领取天翼网盘黄金会员。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200523115644.jpg) + +## 获得4T空间加1年黄金会员 + +找到活动1年教师尊享会员免费领。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200523115708.jpg) + +点击立即认证领取。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200523115736.jpg) + +认证界面填写自己的姓名学校身份证号码,然后上传相关的资格证即可领取高达4T的云空间和1年的黄金会员。 + +{% note success, 其实上面的姓名、学校、身份证号码可以随便乱填,资格证上传一张表情包都是可以通过的。 %} + +## 查看会员是否到账 + +退出APP,重新进入APP,然后查看会员和空间是否到账。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200523115802.jpg) + +## 领取更多空间 + +每日签到可以增大云空间容量。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200523115822.jpg) + +## 写在最后 + +活动截止到6月30日结束,大家赶紧行动起来。不限速,不限速,不限速,重要的事情说三遍,大家且行且珍惜。 + +
+ +如果想获取更多内容欢迎关注我的公众号! + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/weixin.jpg) \ No newline at end of file diff --git a/source/_posts/huawei-PCManager.md b/source/_posts/huawei-PCManager.md new file mode 100644 index 0000000..e513eb1 --- /dev/null +++ b/source/_posts/huawei-PCManager.md @@ -0,0 +1,124 @@ +--- +title: 非华为电脑使用多屏协同 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 软件破解 +date: 2020-05-19 11:42:14 +music: + type: song + id: 1425626819 +comments: true +--- + + + +绕过华为对非华为电脑管家的限制,一键安装PCManager(不需要改BOIS) + +PCManager管理功能,启动、关闭、服务控制等。 + +提供极客模式。 + + + +## 前期准备 + +{% checkbox green checked, 具有多屏协同功能的华为或荣耀手机 %} + + {% checkbox green checked, 一台带蓝牙和无线网卡的win 10电脑 %} + +## 安装华为的电脑管家 + +华为电脑管家的安装包大家可以关注我的微信公众号,回复“多屏协同”即可获取安装包及安装工具下载地址。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/weixin.jpg) + +### 解压文件 + +解压之后会得到下图的文件。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200518202819.png) + +### 启动安装工具 + +1. 将之前安装的电脑管家完全卸载,删除C:\Program Files\Huawei\PCManager目录所有文件。 +2. 重启电脑。 +3. PCManagerMgr.exe右键,以管理员身份运行。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519100611.png) + +### 卸载之前的版本 + +{% note success, 如果之前安装过旧版本请执行此步骤,没有安装过请跳过 %} + +点击卸载,会弹出华为电脑管家的卸载界面,点击我要卸载,等待卸载完成,出现电脑管家已卸载,点击完成。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519101314.png) + +### 重启电脑 + +{% note success, 卸载完成后需要重启电脑,然后再次打开工具。 %} + +### 获取口令 + +关注汉客儿的微信公众号,回复关键字口令,将获取到的口令复制到下图方框位置。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519101920.png) + +### 开始安装 + +复制口令后,点击安装。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519102200.png) + +点击安装后会出现正在安装hw电脑管家...,等待弹出华为电脑管家的安装界面。注意:系统必须是win10的,我这里由于安装过了,用虚拟机展示的界面。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519102314.png) + +点击立即安装。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519102434.png) + +安装完成后会到工具,看到当前管家已经xx,尽情享受吧,此时软件已经安装完成。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519102713.png) + +### 检查服务是否运行 + +检查上图中右边的服务是否是运行中的状态,如果是未运行则点击后面的运行按钮。 + +## 连接手机 + +点击左侧我的手机,然后点击立即连接。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519110854.png) + +选择扫码连接,手机打开华为浏览器,扫码后点击连接。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519111026.png) + +点击连接。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/5382a561154e1d7697f13ce372a3516.jpg) + +点击允许。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519111423.png) + +连接成功之后会出现手机的型号以及存储空间信息。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519113119.png) + +## 多屏协同 + +点击多屏协同。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519113243.png) + +此时就可以使用多屏协同功能啦。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200519113426.png) + +{% note success, 建议电脑和手机处于5GHz频带的wifi可提升流畅度。 %} + diff --git a/source/_posts/huawei-exam-application.md b/source/_posts/huawei-exam-application.md new file mode 100644 index 0000000..6cae0ed --- /dev/null +++ b/source/_posts/huawei-exam-application.md @@ -0,0 +1,643 @@ +--- +title: 华为应用开发学习笔记 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 华为认证 +date: 2020-05-29 20:13:14 +music: + type: song + id: 1351520305 +comments: true +--- + +华为应用开发学习笔记 + + + +## 解压命令 + +.tartar -xvf 解压 + +.gzgzip -d 或者 gunzip 解压 + +.tar.gz.tgztar -xzf 解压 + +.bz2bzip2 -d 或者用 bunzip2 解压 + +.tar.bz2tar -xjf 解压 + +.Zuncompress 解压 + +.tar.Ztar -xZf 解压 + +.tar.xzjxvf 解压 + +.rarunrar e 解压 + +.zipunzip 解压 + +
+ +使用rpmbuild命令将源码打包成rpm包。 + +
+ +公共镜像:常见的标准操作系统镜像。 + +私有镜像:个人镜像,仅用户自己可见。 + +共享镜像:由其他用户共享的私有镜像。 + +市场镜像:提供预装操作系统、应用环境和各类软件的优质第三方镜像。 + +
+ +## Linux安装软件方式 + +### 源码安装 + +> - 可以自定义安装目录和一些配置文件 +> - 需要事先调整编译参数 + +### yum安装软件 + +> - 全自动安装,自动安装依赖 +> - 缺乏自主性,软件的功能和存放的位置均已设置好 + +### RPM安装 + +> - 自主制作的RPM包能够实现全自动安装,且可自动以安装路径等配置 +> - 需提前识别依赖并手动安装 + + + +## 数据库配置文件 + +props.oraOracle + +props.pgPostgreSQL + +Props.fbFireBirdSQL + +Props.gbGuassDB + +Props.perconapercona + + + +## 华为云服务中的鲲鹏云手机服务的特性 + +> - 原生指令兼容性 +> - 32/64位应用全兼容 +> - ARM原生指令兼容性 +> - Monbox双OS共内核架构 +> - 单台服务器超200路并发 +> - 性能较模拟器提升10倍以上 +> - 自研芯片及硬件底座 +> - 华为鲲鹏916/920芯片 +> - 自研高性能GPU + +华为云鲲鹏云手机结合华为在操作系统、虚拟化以及容器等方面技术深厚积累,构建高密MonBox仿真软件架构,相比同等性能x86服务器构造方案,性能提升高达10倍以上,并完美兼容32位与64位的应用。 + + + +## 华为云服务器应用场景 + +计算加速型 : AI训练、推理 + +内存密集型KM1 :Redis、Cassandra内存数据库 + +存储密集型KI1 :分布式缓存数据库、大数据 + +通用计算型KC1 :建站、电商、游戏、视频、大数据、HPC等 + +通用型KS1 :大数据管理节点、NameNode、HPC等 + +存储型KD1 :大数据数据节点、DataNode、Kafka等 + + + + + +
+ +{% note success, **openEuler1.0是一款开源操作系统,支持鲲鹏、至强及其他多种处理器,能充分释放计算芯片的潜能** %} + +
+ +## iSula特点 + +iSula 通用容器引擎(iSulad)是一种新的容器解决方案,具有以下特点: + +- 快速灵活&轻量级 +- 可信&安全启动 +- 升级不中断业务 +- 增强安全性和调测特性 + + + +## iSula部署模式 + +> iSula 通用容器引擎(iSulad)是一种新的容器解决方案,提供统一的架构设计来满足CT和IT领域的不同需求。相比 Golang 编写的 Docker,轻量级容器具有轻、灵、巧、快的特点,不受硬件规格和架构的限制,底噪开销更小,可应用领域更为广泛。openEuler 1.0 中提供容器运行的基础平台iSula。 + +容器根据部署模型可以分成三种模型:应用容器安全容器系统容器。 + +### 应用容器 + +应用最广泛的容器形态,容器中仅运行客户定义的应用程序。openEuler 1.0 集成 moby 18.09 版本,并在版本基础上进行了 bugfix 和稳 + +定性增强。 + +### 安全容器 + +本质上是虚拟机,但是接口封装为容器接口;着重容器的隔离性缺陷。openEuler 1.0 集成 kata-container1.7 版本,在社区版本的基础 + +上,进行了稳定性和可靠性加固,增加了异构计算支持,更适于生产环境的 Host CGroup 配置与 DPDK/SPDK 高性能网络、存储支持。 + +### 系统容器 + +本质上是容器,但是使用方式和虚拟机相同;着重解决虚拟机的厚重问题。iSula 容器平台支持创建系统容器,并能支持在系统容器内动 + +态调整设备、运行资源,且提供更优秀的 user namespace 隔离。 + +
+ +华为鲲鹏920处理器内置了3大加速引擎:ssl加速引擎加解密加速引擎压缩解压缩加速引擎。 + +
+ +## 华为计算服务适用场景 + +高性能计算型:可适用于基因工程、游戏动画、生物制药的计算和存储系统;渲染农场、动漫影视基地等公共渲染平台,以及影视等渲染 + +平台;高性能前端集群、Web 服务器、高性能科学和工程应用、广告服务、视频编码和分布式分析等等 + +计算加速型 : AI训练、推理 + +内存密集型KM1 :Redis、Cassandra内存数据库 + +存储密集型KI1:分布式缓存数据库、大数据 + +通用计算型KC1:建站、电商、游戏、视频、大数据、HPC等 + +通用型KS1:大数据管理节点、NameNode、HPC等 + +存储型KD1:大数据数据节点、DataNode、Kafka等 + + + +## TPCC衡量标准 + +tpmC(NewOrders):每分钟处理的订单个数 + +tpmTOTAL(TPS):每分钟处理的总数 + + + +## 华为云通过的国际认证 + +近日,全球权威标准机构BSI(英国标准协会)和CSA(云安全联盟)宣布,华为云顺利通过ISO 27001& ISO 27017&ISO 27018&CSA STAR四个安全复审和认证。 + + + +## 容灾指标 + +业界领先:跨AZ RPO=0,RTO< 30分钟,确保数据零丢失,业务快速恢复。 + +最高等级:快速构建云上两地三中心,同城双中心可达Tier5~Tier6容灾等级。 + +专属安全:物理隔离,满足安全合规要求,相比客户自建容灾中心免基础设施运维。 + + + +## 云计算的特征 + +1.按需自助服务,消费者不需要或很少需要云服务提供商的协助,就可以单方面按需获取云端的计算资源。 + +2.广泛的网络接入,消费者可以随时随地使用云终端设备接入网络并使用云端的计算资源。常见的云终端设备包括手机、平板、笔记本电 + +脑、PDA掌上电脑和台式机等。 + +3.资源池化,云端计算资源需要被池化,以便通过多租户形式共享给多个消费者,也只有池化才能根据消费者的需求动态分配或再分配各 + +种物理的和虚拟的资源。消费者通常不知道自己正在使用的计算资源的确切位置,但是在自助申请时允许指定大概的区域范围(比如在哪 + +个国家、哪个省或者哪个数据中心)。 + +4.快速弹性伸缩。消费者能方便、快捷地按需获取和释放计算资源,也就是说,需要时能快速获取资源从而扩展计算能力,不需要时能迅 + +速释放资源,以便降低计算能,从而减少资源的使用费用。对于消费者来说,云端的计算资源是无限的,可以随时申请并获取任何数量的 + +计算资源。但是我我们一定要消除一个误解,那就是一个实际的云计算系统不一定是投资巨大的工程,也不一定要购买成千上万台计算 + +机,也不一定具备超大规模的运算能力。其实一台计算机就可以组建一个最小的云端,云端建设方案务必采用可伸缩性策略,刚开始时采 + +用几台计算机,然后根据用户数量规模来增减计算资源。 + +5.可计量服务,消费者使用云端计算资源是要付费的,付费的计量方法有很多,比如根据某类资源(如存储、CPU、内存、网络带宽等) + +的使用量和时间长短计费,也可以按照每使用一次来计费。但不管如何计费,对消费者来说,价码要清楚,计量方法要明确,而云服务提 + +供商需要监视和控制资源的使用情况,并及时输出各种资源的使用报表,做到供/需双方费用结清清楚楚、明明白白。 + + + +## 云计算的四种部署模型 + +### 私有云 + +云端资源只给一个单位组织内的用户使用,这是私有云的核心特征。而云端的所有权、日程管理和操作的主体到底属于谁并没有严格的规 + +定,可能是本单位,也可能是第三方机构,还可能是二者的联合。云端可能位于本单位内部,也可能托管在其他地方。 + +### 社区云 + +云端资源专门给固定的几个单位内的用户使用,而这些单位对云端具有相同的诉求(如安全要求、云端使命、规章制度、合规性要求 + +等)。云端的所有权、日常管理的操作的主体可能是本社区内的一个或多个单位,也可能是社区外的第三方机构,还可能是二者的联合。 + +云端可能部署在本地,也可能部署与他处。 + +### 公共云 + +云端资源开发给社会公众使用。云端的所有权、日常管理和操作的主体可以是一个商业组织、学术机构、政府部门或者它们其中的几个联 + +合。云端可能部署在本地,也可能部署于其他地方,比如中山市民公共云的云端可能就建在中山,也可能建在深圳。 + +### 混合云 + +混合云由两个或两个以上不同类型的云(私有云、社区云、公共云)组成,它们各自独立,但用标准的或专有的技术将它们组合起点,而 + +这些技术能实现云之间的数据和应用程序的平滑流转。由多个相同类型的云组合在一起,混合云属于多云的一种。私有云和公共云构成的 + +混合云是目前最流行的——当私有云资源短暂性需求过大(称为云爆发,Cloud Bursting)时,自动租赁公共云资源来平抑私有云资源 + +的需求峰值。例如,网店在节假日期间点击量巨大,这时就会临时使用公共云资源的应急。 + + + +## 云计算的3种服务模式 + +### SaaS + +软件即服务(Software as a Service,SaaS),云服务提供商把IT系通中的应用软件层作为服务租出去,消费者不用自己安装应用软件,直 + +接使用即可,这进一步降低了云服务消费者的技术门槛。 + +### PaaS + +平台即服务(Platform as a Service,PaaS)。云服务提供商把IT系统中的平台软件层作为服务租出去,消费者自己开发或者安装程序, + +并运行程序。 + +### IaaS + +基础设施及服务(Infrastructure as a Service,IaaS)。云服务提供商把IT系统的基础设施层作为服务租出去,由消费者自己安装操作系 + +统、中间件、数据库和应用程序。 + + + +## 云硬盘的类型 + +### 普通IO + +该类型云硬盘的最大IOPS为2200,适用于大容量读写速率中等事务性处理较少的应用场景,例如企业的日常办公应用或者小型测试 + +等 + +### 高速高IO + +该类型云硬盘的最大IOPS可达5000最低读写时延为1 ms适用于主流的高性能、高可靠应用场景,例如企业应用、大型开发测试以及 + +Web服务器日志等。 + +### 超高IO + +该类型云硬盘的最大IOPS可达33000最低读写时延为1 ms适用于超高IO、超大带宽的读写密集型应用场景,例如高性能计算应用场 + +景,用来部署分布式文件系统,或者I/O密集型应用场景,用来部署各类NoSQL/关系型数据库。 + +### 超高IO (时延优化) + +该类型的云硬盘提供低至1 ms的读写时延和高达1 GB/s的吞吐量,可运行企业核心业务,如SAP HANA。 + + + +## docker ps -a显示标题含义 + +CONTAINER ID:容器的唯一表示ID。 + +IMAGE:创建容器时使用的镜像。 + +COMMAND:容器最后运行的命令。 + +CREATED:创建容器的时间。 + +STATUS:容器状态。 + +PORT::对外开放的端口。 + +
+ +**CPU性能和网络带宽都会影响HPC性能** + +
+ +–mcpu=tsv110GNU9编译器对鲲鹏架构进行指定优化的参数。 + +
+ +## RPM常用命令 + +安装软件:执行rpm -ivh rpm包名,如: #rpm -ivh apache-1.3.6.i386.rpm + +升级软件:执行rpm -Uvh rpm包名。 + +反安装:执行rpm -e rpm包名。 + +查询软件包的详细信息:执行rpm -qpi rpm包名。 + +查询某个文件是属于那个rpm包:执行rpm -qf rpm包名。 + +查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名。 + + + +## TaiShan服务器适用场景 + +> - TaiShan 5280:存储型服务器 +> - TaiShan 2280:均衡型服务器 +> - TaiShan X6000:高密型服务器 +> - TaiShan 2480: 2U4路高性能型 + + + +## 设置CPU的亲和性 + +- echo cpuMask>/proc/irq/smp affinity- list +- numactl命令 +- C语言的sched setaffinity函数 + +
+ +**在从x86平台向鲲鹏处理器迁移软件时,技术分析阶段需要完成以下哪些活动?** + +- 软件栈分析(应用软件、OS、数据库、中间件组件等) +- 编程语言/代码、依赖库分析 +- 准备调试编译环境(准备测试样机服务器/OpenLab线上服务器) +- 成立项目组 +- 制定迁移计划 +- 协调相关人力/物料资源 + +**主要活动为**: + +- 软件栈分析、制定迁移替换策略 +- 申请线上资源/测试样机上架上电 +- 安装OS/编译器/JDK/其他工具软件 + + + +## GNU + +1984年有Richard Stallman发起并创建,意在创造一个自由使用、自由学习和修改、自由分发、自由创建衍生版软件的环境。 + +GNU目标是编写大量兼容于Unix系统的自由软件 + +## GPL + +- 通用性公开许可证,开源协议 +- 自由软件的通用许可证 +- 允许用户任意复制、传递、修改及再发布 +- 基于自由软件修改再次发布的软件,仍需遵循GPL + +## LGPL + +- 相对于GPL较为宽松,允许不公开全部源代码 +- 为基于Linux平台开发商业软件提供了更多空间 + + + +## OpenEuler的技术特性 + +系统安装:openEuler 1.0 改进了安装程序 Anaconda,并做了个性化定制和修改,方便用户安装。 + +定制/剪裁:openEuler 1.0 提供优化的 kiwi 工具对系统进行个性化的自定义修改。 + +文件系统:openEuler 1.0 中使用的默认文件系统是ext4,兼容ext3/2文件系统。openEuler 1.0 支持高性能日志文件系统XFS。 + +系统管理:openEuler 1.0 使用 systemd 进行系统和服务的管理,systemd 与 SysV 和 Linux 标准的 init 脚本兼容。 + +系统安全:openEuler 1.0 提供多重安全手段,包括身份识别与认证、安全协议、强制访问控制、完整性保护、安全审计等安全机制,保 + +障操作系统的安全性,为各类上层应用提供安全基础。 + +系统调测:openEuler 1.0 支持Perf性能调测工具和blktrace块设备I/O跟踪工具。 + +编译器:openEuler 1.0 基于原生GCC进行了Bug修复、特性增强;同时openEuler 1.0提供Huawei Open JDK支持,相比较Open JDK, + +Huawei Open JDK作了优化、稳定性增强、安全增强等。 + +内核:openEuler 1.0 采用 kernel 版本 4.19。Linux Kernel 4.19 是一个 LTS 版本,提供长期支持并持续更新版本,以保障用户的 + +Linux 操作系统安全、可靠。 + + + +## PostgreSQL常用命令 + +登陆数据库:/home/pgsql/bin/psql -U postgres + +初始化数据库: /home/pgsql/bin/initdb -D pgsql/ + +启动数据库: /home/pgsql/bin/pg_ctl -D pgsql/ -l logfile start + + + +## BenchmarkSQL配置文件参数 + +warehouse:指定仓库数量。 + +loadWorkers:指定装载数据的并发数。 + +Terminals:指定并发用户数。 + +runMins:指定测试时间。 + +runTxnsPerTerminal:指定每个Terminal运行的事务数量,runMins必须等于0。 + +limitTxnsPerMin:指定每分钟总事务数。 + +terminalWarehouseFixed:指定每个终端是否绑定固定warehouse。 + + + +## HCS Online主打应用场景 + +- 行业云场景 + +- HCSO+HPC场景 +- HCSO+灾备场景 +- 智能大数据场景 +- 多级混合云场景 + + + +## 鲲鹏处理器优点 + +- 采用ARM架构,同样功能性能占用的芯片面积小、功耗低、集成度更高,更多的硬件CPU核具备更好的并发性能。 +- 支持16位、32位、64位多种指令集,能很好的兼容从IoT、终端到云端的各类应用场景。 +- 大量使用寄存器,大多数数据操作都在寄存器中完成,指令执行速度更快。 +- 采用RISC指令集,指令长度固定,寻址方式灵活简单,执行效率高。 + + + +## HiBench + +开源的大数据基准测试套件。 + +用于评估大数据框架的速度,吞吐量和系统资源利用率。 + +支持的框架:hadoopbench、sparkbench、stormbench、flinkbench、gearpumpbench。 + +支持的开源版本组件:Hadoop、Spark、Storm、Kafka、Flink。 + +目前使用较多的版本:HiBench-7.0。 + +共计19个测试方向,可分为6种测试类别。 + + + +## 软件迁移过程 + +技术分析->编译迁移->功能验证->性能调优->规模商用 + + + +## 容灾 + +容灾系统是指在相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外 + +(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。容灾技术是系统的高可用性技术 + +的一个组成部分,容灾系统恢复功能。 + +### 数据库容灾 + +{% note success, 数据库容灾,即在异地部署一个一模一样的数据库,一个数据库所处的地理位置发生自然灾害了导致当前数据库发生灾难,另一个数据库会立马顶替工作。 %} + +### 冷备容灾 + +{% note success, 每天备份一次数据库,保存在磁带或光盘上。 %} + +### 热备容灾 + +{% note success, 建立数据库灾备中心,与主库实时进行数据同步,同时应用系统保持文件实时同步,保证引用系统版本最新。 %} + +### 应用双活 + +{% note success, 双活容灾即灾备系统中使主生产端数据库和备机端数据库同时在线运行,处于可读可查询的状态的技术。 %} + + + +## SHARE78容灾备份标准等级 + +**真正的容灾必须满足三个要素** + +1. 系统中的部件 +2. 数据都具有冗余性,即一个系统发生故障 +3. 容灾系统要追求全部的数据复制,也称为容灾的"3R"(Redundance、Remote、Replication) + +> ​ 从简单的仅在本地进行磁带备份,到将备份的磁带存储在异地,再到建立应用系统实时切换的异地备份系统,恢复时间也可以从 +> +> 几天到小时级到分钟级、秒级或零数据丢失等。目前针对这七个层次,都有相应的容灾方案,所以,用户在选择容灾方案时应重点区 +> +> 分它们各自的特点和适用范围,结合自己对容灾系统的要求判断选择哪个层次的方案。 + +### 零级 无异地备份 + +> 零级容灾方案数据仅在本地进行备份,没有在异地备份数据,未制定灾难恢复计划。这种方式是成本低的灾难恢复解决方案,但不具 +> +> 备真正灾难恢复能力。 +> +> 特点:是用户投资较少,技术实现简单。 +> +> 缺点:是一旦本地发生毁灭性灾难,将丢失全部的本地备份数据,业务无法恢复。 + +### 一级 实现异地备份 + +> 进行本地数据备份,然后将备份介质送往异地存放。异地未建容灾备份中心,没有灾难恢复计划。 +> +> 该方案成本较低,运用本地备份管理软件,可以在本地发生毁灭性灾难后,恢复从异地运送过来的备份数据到本地,进行业务恢复, +> +> 但难以管理。 + +### 二级 热备份站点备份 + +> 将关键数据进行备份并存放到异地,制定有相应灾难恢复计划,具有热备份能力的站点灾难恢复。一旦发生灾难,利用热备份主机系 +> +> 统将数据恢复。 +> +> 该容灾方案由于备份介质是采用交通运输方式送往异地,异地热备中心保存的数据是上一次备份的数据,可能会有几天甚至几周的数 +> +> 据丢失。这对于关键数据的容灾是不能容忍的。 + +### **三级 在线数据恢复** + +> 通过网络将关键数据进行备份并存放至异地,制定有相应灾难恢复计划,有备份中心,并配备部分数据处理系统及网络通信系统。特 +> +> 点:用电子数据传输取代交通工具传输备份数据,从而提高了灾难恢复的速度。 +> +> 该方案由于备份站点要保持持续运行,对网络的要求较高,因此成本相应有所增加。利用异地的备份管理软件将通过网络传送到异地 +> +> 的数据备份到主机系统。一旦灾难发生,需要的关键数据通过网络可迅速恢复,通过网络切换,关键应用恢复时间可降低到天(数量 +> +> 1)或小时级。 + +### **四级 定时数据备份** + +> 该方案是在第三级容灾方案的基础上,利用备份管理软件自动通过通信网络将部分关键数据定时备份至异地,并制定相应的灾难恢复 +> +> 计划。一旦灾难发生,利用备份中心已有资源及异地备份数据恢复关键业务系统运行。 +> +> 该方案由于对备份管理软件设备和网络设备的要求较高,因此投入成本也会增加。但由于该级别备份的特点,业务恢复时间和数据的 +> +> 丢失量还不能满足关键行业对关键数据容灾的要求。 + +### **五级 实时数据备份** + +>在前面几个级别的基础上使用了硬件的镜像技术和软件的数据复制技术,可以实现在应用站点与备份站点的数据都被更新。数据在两 +> +>个站点之间相互镜像,由远程异步提交来同步,因为关键应用使用了双重在线存储,所以在灾难发生时,仅仅很小部分的数据被丢 +> +>失,恢复的时间被降低到了分钟级或秒级。 +> +>由于对存储系统和数据复制软件的要求较高,所需成本也大大增加。该方案由于既能保证不影响当前交易的进行,又能实时复制交易 +> +>产生的数据到异地,所以这一层次的方案是目前应用较常见的一类产品容灾解决方案。 + +### **六级 零数据丢失** + +> 该方案是灾难恢复中较昂贵的方式,也是速度较快的恢复方式,它是灾难恢复的级别中的佼佼者,利用专用的存储网络将关键数据同 +> +> 步镜像至备份中心,数据不仅在本地进行确认,而且需要在异地(备份)进行确认。 +> +> 因为,数据是镜像地写到两个站点,所以灾难发生时异地容灾系统保留了全部的数据,实现零数据丢失。要求实现远程实时备份,数 +> +> 据零丢失;备份中心具备与生产中心一致的处理能力,可实现业务的实时无缝切换,即业务接管。 + + + +## 鲲鹏通用计算型KC1 + +> - CPU:MEM = 1:2/1:4 +> - 最高30G内网带宽 +> - 400万PPS + +
+ +{% note success, Tai Shan5280存储型服务器支持RAID 0/1/10/1E/5/50/6/60 %} + +
\ No newline at end of file diff --git a/source/_posts/lanzous.md b/source/_posts/lanzous.md new file mode 100644 index 0000000..2e6bb82 --- /dev/null +++ b/source/_posts/lanzous.md @@ -0,0 +1,28 @@ +--- +title: 无法访问蓝奏云的解决方法 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 小技巧 +date: 2020-06-11 20:20:11 +music: + type: song + id: 33206214 +comments: true +--- + +介绍一下打开蓝奏云链接时提示我们网页不存在的解决方法 + + + +## 方法一 + +将蓝奏云链接的www改成pan,然后删掉lanzous后面的s。 + +## 方法二 + +更改DNS为114.114.114.114 和 114.114.115.115 + + + diff --git a/source/_posts/linux.md b/source/_posts/linux.md new file mode 100644 index 0000000..2f72bf4 --- /dev/null +++ b/source/_posts/linux.md @@ -0,0 +1,105 @@ +--- +title: TCP/IP简介 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 计算机网络 +date: 2020-10-05 13:14:14 +music: + type: song + id: 1426649237 +comments: true +--- + +知识点 + +- IP 地址 +- 域名 +- MAC 地址 +- 端口号 +- 封装和分用 + + + +提到网络协议栈结构,最著名的当属 OSI 七层模型,但是 TCP/IP 协议族的结构则稍有不同,它们之间的层次结构有如图对应关系: + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/1548669082626.png) + +可见 TCP/IP 被分为 4 层,每层承担的任务不一样,各层的协议的工作方式也不一样,每层封装上层数据的方式也不一样: + +- 应用层:应用程序通过这一层访问网络,常见 FTP、HTTP、DNS 和 TELNET 协议; +- 传输层:TCP 协议和 UDP 协议; +- 网络层:IP 协议,ARP、RARP 协议,ICMP 协议等; +- 网络接口层:是 TCP/IP 协议的基层,负责数据帧的发送和接收。 + +> TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。 +> +> TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP 协议、ICMP 协议、TCP 协议、以及 http、ftp、pop3 协议等。网络中的计算机都采用这套协议族进行互联。 + +# IP地址 + +网络上每一个节点都必须有一个独立的 IP 地址,通常使用的 IP 地址是一个 32bit 的数字,被 `.` 分成 4 组,例如,`255.255.255.255` 就是一个 IP 地址。有了 IP 地址,用户的计算机就可以发现并连接互联网中的另外一台计算机。 + +在 终端输入 `ifconfig -a` 命令查看自己的 IP 地址: + +```shell +ifconfig -a +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/61acdc3e0704fdf5fb97876dec817ff3-0) + +# 域名 + +用 12 位数字组成的 IP 地址很难记忆,在实际应用时,用户一般不需要记住 IP 地址,互联网给每个 IP 地址起了一个别名,习惯上称作域名。 + +域名与计算机的 IP 地址相对应,并把这种对应关系存储在域名服务系统 DNS(Domain Name System) 中,这样用户只需记住域名就可以与指定的计算机进行通信了。 + +常见的域名包括 com、net 和 org 三种顶级域名后缀,除此之外每个国家还有自己国家专属的域名后缀(比如我国的域名后缀为 cn)。目前经常使用的域名诸如百度([www.baidu.com](https://www.baidu.com/))、Linux 组织([www.lwn.net](https://lwn.net/))等等。 + +我们可以使用命令 `nslookup` 或者 `ping` 来查看与域名相对应的 IP 地址,由于实验楼网络限制,我们可以使用 `ping github.com`(如果 `github` 也 ping 不通,那么可以使用 `ping labfile.oss.aliyuncs.com`,如果你是会员账户,那么也可以 ping 其他的域名)查看。 + +例如: + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20201016215115.png) + +# MAC地址 + +MAC(Media Access Control)地址,或称为物理地址、硬件地址,用来定义互联网中设备的位置。 + +在 TCP/IP 层次模型中,网络层管理 IP 地址,链路层则负责 MAC 地址。因此每个网络位置会有一个专属于它的 IP 地址,而每个主机会有一个专属于它 MAC 地址。 + +# 端口号 + +IP 地址是用来发现和查找网络中的地址,但是不同程序如何互相通信呢?这就需要端口号来识别了。如果把 IP 地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是端口采用 16 比特的端口号标识,一个 IP 地址的端口可以有 65536(即:216)个之多! + +服务器的默认程序一般都是通过人们所熟知的端口号来识别的。例如,对于每个 TCP/IP 实现来说,SMTP(简单邮件传输协议)服务器的 TCP 端口号都是 `25`,FTP(文件传输协议)服务器的 TCP 端口号都是 `21`,TFTP(简单文件传输协议)服务器的 UDP 端口号都是 `69`。任何 TCP/IP 实现所提供的服务都用众所周知的 `1-1023` 之间的端口号。这些人们所熟知的端口号由 Internet 端口号分配机构(Internet Assigned Numbers Authority,IANA)来管理。 + +常用协议对应端口号: + +- SSH 22 +- FTP 20 和 21 +- Telnet 23 +- SMTP 25 +- TFTP 69 +- HTTP 80 +- SNMP 161 +- Ping 使用 ICMP,无具体端口号 + +# 封装和分用 + +**封装**:当应用程序发送数据的时候,数据在协议层次当中自顶向下通过每一层,每一层都会对数据增加一些首部或尾部信息,这样的信息称之为协议数据单元(Protocol Data Unit,缩写为 PDU),在分层协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制信息和用户信息。如下图所示: + +- 物理层(一层)PDU 指数据位(Bit) +- 数据链路层(二层)PDU 指数据帧(Frame) +- 网络层(三层)PDU 指数据包(Packet) +- 传输层(四层)PDU 指数据段(Segment) +- 第五层以上为数据(data) + +![](https://dn-simplecloud.shiyanlou.com/uid/8797/1548670748600.png) + +**分用**:当主机收到一个数据帧时,数据就从协议层底向上升,通过每一层时,检查并去掉对应层次的报文首部或尾部,与封装过程正好相反。 + +# RFC + +RFC(Request for Comment)文档是所有以太网协议的正式标准,并在其官网上面公布,由 IETF 标准协会制定。大量的 RFC 并不是正式的标准,出版的目的只是为了提供信息。RFC 的篇幅不一,从几页到几百页不等。每一种协议都用一个数字来标识,如 RFC 3720 是 iSCSI 协议的标准,数字越大意味着 RFC 的内容越新或者是对应的协议(标准)出现的比较晚。 \ No newline at end of file diff --git a/source/_posts/manage-MAN-skill.md b/source/_posts/manage-MAN-skill.md new file mode 100644 index 0000000..939c6f4 --- /dev/null +++ b/source/_posts/manage-MAN-skill.md @@ -0,0 +1,118 @@ +--- +title: 管理和运营宽带城域网的关键技术 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 计算机三级 +date: 2020-04-13 19:46:11 +music: + type: song + id: 1405283464 +comments: true +tags: + - 网络技术 + - 计算机三级 +--- + +网络管理 + +QoS + +用户管理 + +IP地址分配与地址转换 + + + +## 网络管理 + +- 带内网络管理是指利用传统的电信网络,通过数据通信网(DCN)或公共交换电话网(PSTN)拨号,对网络设备进行数据配置 +- 带外网络管理是指利用IP网络及协议进行网络管理,是利用简单网络管理协议(SNMP)建立网络管理系统。 +- 对汇聚层以下采用带内管理,而对汇聚层及其以上设备采取带外管理。 + +## 真考试题 + +下列关于宽带城域网网络管理的描述中,错误的是( )。 + +A. 利用传统电信网进行的网络管理称为"带内"管理 + +B. 利用IP协议进行的网络管理称为“带外”管理 + +C. 带内管理使用的是SNMP协议 + +D. 汇聚层以下采用带内管理 + +``` +答案:C +解析:带外管理使用的是SNMP协议,故C选项错误。 +``` + +## QoS + +- 在宽带城域网业务中有多媒体业务、数据业务与普通的语音服务;网络服务质量表现在延时、抖动、吞吐量和丢包率等几个方面。 +- 目前宽带城域网保证QoS要求的技术主要有:资源预留(RSVP)区分服务(DiffServ)多协议标记交换(MPLS)。 + +## 真考试题 + +1. 下列技术中,不属于宽带城域网QoS保证技术的是( )。 + +A. DiffServ + +B. MPLS + +C. MTBF + +D. RSVP + +``` +答案:C +解析:MTBF是平均无故障时间,不属于QoS保证技术。 +``` + +2. 下列关于宽带城域网技术的描述中,错误的是( )。 + +A. 网络业务包括多媒体、数据与语音业务。 + +B. 网络服务质量表现在延时、抖动、吞吐量与丢包率 + +C. 网络服务质量保障技术主要有RSVP、DiffServ与MPLS + +D. 网络采用IP网络的带内管理 + +``` +答案:D +解析:采用IP网络的是带外管理,故D选项错误。 +``` + +## 用户管理 + +宽带城域网的用户管理应该包括用户认证与接入管理、计费管理等,能够为用户提供带宽保证,实现流量工程。 + +## IP地址分配与地址转换 + +为了解决IP地址不足的问题,目前的基本方案是使用内部专用IP地址与网络地址转换(NAT)技术,只为宽带城域网的关键设备与特殊用户分配固定的公网IP地址。 + +## 真考试题 + +下列关于宽带城域网技术的描述中,错误的是( )。 + +A. 宽带城域网保证QoS的主要技术有RSVP、 DiffServ和MPLS + +B. 宽带城域网带内网络管理是指利用网络管理协议SNMP建立网络管理系统 + +C. 宽带堿堿网能够为用户提供带宽保证,实现流量工程 + +D. 宽带城域网可以利用NAT技术解决IP地址资源不足的问题 + +``` +答案:B +解析:带外管理是指利用网络管理协议SNMP建立网络管理系统,带内管理通过数据通信网(DCN)或公共交换电话网(PSTN)拨号,对网络设备进行数据配置,故B选项错误。 +``` + +## 易错提示 + +要熟练掌握"带内" ”带外“ 的概念,差异化记忆。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200413194859.png) + diff --git a/source/_posts/mobile_communication.md b/source/_posts/mobile_communication.md new file mode 100644 index 0000000..377a598 --- /dev/null +++ b/source/_posts/mobile_communication.md @@ -0,0 +1,353 @@ +--- +title: 移动网络发展与技术笔记 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-06 13:30:11 +music: + type: song + id: 553815178 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +移动通信基础的学习笔记 + + + +## 第一代移动通信(1G) + +**采用模拟技术的语言移动通信,提供9.6Kbit/s的通信带宽,接入技术采用FDMA。** + +### 缺点 + +``` +- 频谱利用率低 +- 系统容量有限 +- 抗干扰能力差 +- 标准不统一,跨国漫游困难 +- 没有数字业务,不能与综合业务数字网(ISDN)兼容。 +``` + + + +## 第二代移动通信(2G) + +**采用数字技术的移动通信,以语音为主,低速数据传输。提供9.6Kbit/s~28.8Kbit/s的传输速率,接入技术是TDMA,CDMA。** + +### 优点 + +``` +相比1G具有保密性强,频谱利用率高,标准化程度高的特点。 +``` + +### 缺点 + +``` +- 系统带宽有限,限制了数据业务的发展 +- 无法实现多媒体业务 +- 各国标准不统一,无法实现全球漫游。 +``` + +### 2G代表系统 + +``` +TDMA体制:欧洲的全球移动通信系统(GSM)等 + +CDMA体制:美国的CDMA系统 +``` + + + +## 第三代移动通信(3G) + +采用CDMA技术和分组交换技术。提供9.6Kbit/s~2Mbit/s的接入速率。 + +### 优点 + +``` +相对2G频谱利用率高,性能更好;提供移动多媒体业务;3G支持漫游。 +``` + +### 3G代表系统 + +``` +美国:CDMA2000 + +欧洲和日本:WCDMA + +中国:TD-SCDMA +``` + +**2009年1月中国“信息产业部”发下了3张3G牌照,将3G的三大标准分别分配给:** + +``` +中国移动:TD-SCDMA + +中国联通:WCDMA + +中国电信:CDMA 2000 +``` + + + +## 第四代移动通信(4G) + +提供2~20Mbit/s。 + +### 提高传输速率的主要技术: + +``` +OFDM:正交频分复用 + +SA:智能天线技术 + +MIMO:多输入多输出技术 + +SDR:软件无线电 +``` + + + +## 第五代移动通信(5G) + +### 三大目标场景: + +``` +- 增强移动带宽:eMBB + +- 海量机器通信:mMTC + +- 超高可靠低时延通信:URLLC +``` + + + +## 通信的概念 + +``` +指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息的双方或多方在不违背各自意愿的情况下采用任意方法,任意媒介,将信息从某方准确安全地传送到另方。 +``` + +```mermaid +graph LR +A[信源] -->B(发送设备) -->C(信道) --> D(接收设备) --> E(信宿) + F(噪声源) --> C +``` + +``` +信源:把各种信息转换成原始电信号。信源分为数字信源和模拟信源。 +发送设备:产生适合于在信道中传输的信号。 +信道:将来自发送端的信号传送到接收端的物理媒介。可分为有线信道和无线信道两大类。 +噪声源:集中表示分布于通信系统中各处的噪声。 +接收设备:将受到减损的接收信号中正确恢复出原始电信号。 +信宿:将原始电信号还原成相应的消息。 +``` + + + +## 信源 + +### 模拟信号与数字信号 + +``` +模拟信号:模拟信号是连续的信号。 + +数字信号:时间上离散的信号,通过电压脉冲的变化来表示要传输的数据 +``` + + + +### 数字信号的优点 + +``` +(1) 抗干扰能力强,且噪声不积累 +(2) 传输差错可控 +(3) 便于处理、变换、存储 +(4) 便于将来自不同信源的信号综合到一起传输 +(5) 易于集成 +(6) 易于加密处理,且保密性好 +``` + +### 数字信号的缺点 + +``` +(1) 需要较大的传输带宽 +(2) 对同步要求高 +``` + +## 发射设备 + +### 调制 + +``` +调制的目的是把要传输的模拟信号或数字信号变换成适合信道传输的信号。该信号称为已调信号。调制过程用于发送端。 +``` + +### 解调 + +``` +在接收端将已调信号还原成要传输的原始信号,该过程称为解调。解调过程用于接收端。 +``` + +### 模拟调制 + +``` +利用输入的模拟信号直接调制载波的振幅、频率或相位,从而得到调幅(AM)、调频(FM)或调相(PM)信号。 +``` + +### 数字调制 + +``` +利用数字信号来控制载波的振幅、频率或相位。 +``` + +### 常用的数字调制 + +``` +FSK:频移键控 +PSK:相移键控 +``` + + + +## 信道 + +``` +将来自发送设备的信号传送到接收端的物理媒介。分为有线信道和无线信道。 +``` + +### 信道的基本特征 + +``` +(1) 带宽有限,它取决于可使用的频率资源和信道的传播特性。 +(2) 干扰和噪声大,这主要是移动通信工作的电磁环境所决定。 +(3) 存在多径衰落。 +``` + +**针对信道的特点,已调信号应具有高的频谱利用率较强的抗干扰、抗衰落的特点。** + +## 噪声与干扰 + +``` +除有用信号以外的一切无用信号,一般把系统内部产生的无用信号称作噪声,系统外部引入的无用信号称作干扰。 +``` + +## 信号损耗 + +### 无线链路损耗 + +**典型:自由空间传输损耗** + +**[Lfs](dB)=32.44+20lgd(D)+20lgf(F)** + +- **Lfs:传输损耗** +- **F:频率(MHz)** +- **D:距离(KM)** + + + +## 脉冲编码调制(PCM) + +### 抽样 + +``` +对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号,抽样必须遵循奈奎斯特抽样定理。该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号。它的抽样速率的下限是由抽样定理确定的。抽样速率采用8KHZ。 +``` + +### 量化 + +``` +把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示,通常是用二进制表示。 +``` + +### 编码 + +``` +用一组二进制码组来表示每一个有固定电平的量化值。然而,实际上量化是在编码过程中同时完成的,故编码过程也称为模/数变换,可记作A/D。 +``` + +## 调制技术 + +### BPSK + +``` +二进制相移键控(Binary Phase Shift Keying,BPSK)是把模拟信号转换成数据值的转换方式之一,利用偏离相位的复数波浪组合来表现信息键控移相方式。BPSK使用了基准的正弦波和相位反转的波浪,使一方为0,另一方为1,从而可以同时传送接受2值(1比特)的信息。 +``` + +### QPSK + +``` +正交相移键控(Quadrature Phase Shift Keying,QPSK)是一种数字调制方式。它分为绝对相移和相对相移两种。由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式DQPSK。 +``` + +### 8PSK + +``` +8PSK (8 Phase Shift Keying 8移相键控) 是一种相位调制算法。相位调制(调相)是频率调制(调频)的一种演变,载波的相位被调整用于把数字信息的比特编码到每一次相位改变(相移)。 +``` + +### 16QAM + +``` +16QAM全称正交幅度调制是英文Quadrature Amplitude Modulation的缩略语简称,意思是正交幅度调制,是一种数字调制方式。产生的方法有正交调幅法和复合相移法 +``` + +### 64QAM + +``` +64QAM,Quadrature Amplitude Modulation,指的是相正交振幅调制。 +``` + + + +## 多址技术 + +### 频分多址 + +``` +频分复用(FDM)是指载波带宽被划分为多种不同频带的子信道,每个子信道可以并行传送一路信号的一种技术。频分复用技术下,多个用户可以共享一个物理通信信道,该过程即为频分多址复用(FDMA)。FDMA 模拟传输是效率最低的网络,这主要体现在模拟信道每次只能供一个用户使用,使得带宽得不到充分利用。 +``` + +### 时分多址 + +``` +允许多个用户在不同的时间片(时隙)来使用相同的频率。用户迅速的传输,一个接一个,每个用户使用他们自己的时间片。 +``` + +### 码分多址 + +``` +码分多址(CDMA)的基本思想是靠不同的地址码来区分的地址。每个配有不同的地址码,用户所发射的载波(为同一载波)既受基带数字信号调制,又受地址码调制,接收时,只有确知其配给地址码的接收机,才能解调出相应的基带信号,而其他接收机因地址码不同,无法解调出信号。 +``` + +### 正交频分复用 + +``` +将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰 ICI。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上的可以看成平坦性衰落,从而可以消除符号间干扰。 +``` + + + +## 多天线技术 + +### SISO + +**单发单收** + +### SIMO + +**分集接收** + +### Beanforming + +**波束赋形** + +### MIMO + +**多进多出(STC,SM)** \ No newline at end of file diff --git a/source/_posts/mysql-install.md b/source/_posts/mysql-install.md new file mode 100644 index 0000000..0e1f9dd --- /dev/null +++ b/source/_posts/mysql-install.md @@ -0,0 +1,148 @@ +--- +title: MySQL压缩包版安装方法 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 数据库 +date: 2020-06-13 12:00:00 +music: + type: song + id: 1425626819 +comments: true +--- + +MySQL虽然提供了msi的安装包方式,但是最新版的会默认安装在C盘,而压缩版的我们只需要将文件夹放在自己想放的位置,配置即可使用。接下来我们介绍一下MySQL压缩包安装方式。 + + + +## 下载压缩包 + +首先我们到MySQL官网下载[MySQL的压缩包](https://dev.mysql.com/downloads/mysql/),MySQL提供了压缩包和安装包两种方式,两种方式的区别是压缩包解压之后配置一下就可以使用,而.msi的安装包安装较为繁琐,故我们介绍压缩包的方式。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613101840.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613102214.png) + +## 解压压缩包 + +解压之后我们会得到下图所示的文件及文件夹 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613102143.png) + +## MySQL安装 + +### 以管理员身份运行cmd + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613102404.png) + +### 进入到解压根目录/bin目录下 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613102633.png) + +### 创建配置文件my.ini + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613115839.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613102927.png) + +``` +# 设置mysql的安装目录 +basedir=D:\\mysql-8.0.20-winx64 +# 设置mysql数据库的数据的存放目录 +datadir=D:\\mysql-8.0.20-winx64\\data +``` + +{% note success, **basedir和datadir设置时需要注意的是如果使用“\”请使用双“\\”来分割目录,如果不使用这种可以使用单“/”** %} + +### 将my.ini剪切到bin目录下 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613103046.png) + +### 新建data文件夹 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613103557.png) + +### 初始化MySQL数据目录 + +执行命令mysqld --initialize + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613103303.png) + +运行完之后就会发现在我们新建的data文件夹生成了很多文件 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613103432.png) + +### 报错 + +如果出现了下面的提示,说明没有安装VC++2015运行库,MySQL运行需要这个运行库,可以去微软官网下载。没有出现报错则跳过该步骤。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613103812.png) + +进入微软官网搜索并下载 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613103926.png) + +### 获取初始化数据库随机密码 + +执行完上一步之后,在data目录下生的文件有一个.err文件,这里面有初始化的密码。我们编辑打开此文件,找到密码。该文件命名规则是【电脑用户名.err】如下图 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613104100.png) + +找到我们的随机密码 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613104246.png) + +### 安装MySQL服务 + +执行命令mysqld --install mysql + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613104649.png) + +### 启动MySQL服务 + +执行命令net start mysql + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613113631.png) + +### 配置环境变量 + +此电脑右键--->属性--->高级系统设置--->环境变量 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613114009.png) + +找到PATH变量,推荐配置在用户变量。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613114042.png) + +将MySQL文件夹的bin目录的路径复制,点击右侧新建,添加到环境变。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613114137.png) + +{% note success, 配置完成后记得点击确定,有两个地方需要点击确定。 %} + +## MySQL连接 + +### 登录连接MySQL + +输入mysql -u root -p,输入我们刚刚获取到的随机密码。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613114457.png) + +出现下面的提示又电脑的路径变成了mysql> 表示我们连接数据库成功。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200613114553.png) + +### 修改密码 + +输入ALTER USER 'root'@'localhost' IDENTIFIED BY '密码'; + +{% note success, 修改密码成功会提示Query OK, 0 rows affected(0.04sec); %} + +### 退出重新登录 + +```mysql +exit +mysql -u root -p +``` + diff --git a/source/_posts/not-allow-F12.md b/source/_posts/not-allow-F12.md new file mode 100644 index 0000000..6842c0b --- /dev/null +++ b/source/_posts/not-allow-F12.md @@ -0,0 +1,60 @@ +--- +title: 网页禁止审查元素和F12 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 小技巧 +date: 2020-05-19 22:25:11 +music: + type: song + id: 1387581250 +comments: true +--- + + + +很多时候我们不想要自己的博客被其他人审查元素,防止其他人扒下自己的网页,获取网站内资源的真实链接,都会选择使用禁止浏览器右键查看元素或F12审查元素。 + + + +```js + + + +``` + diff --git a/source/_posts/optical_transport_network_basic.md b/source/_posts/optical_transport_network_basic.md new file mode 100644 index 0000000..79c1a72 --- /dev/null +++ b/source/_posts/optical_transport_network_basic.md @@ -0,0 +1,115 @@ +--- +title: 光传输网络基础 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-07 16:30:00 +music: + type: song + id: 1331819951 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +光传输网络基础学习笔记 + + + +## OTN + +``` +Optical Transport Network,光传送网。 +``` + +### OTN的优势 + +``` +1.透明传送能力; +2.支持多种客户信号的封装传送; +3.交叉连接的可升级性; +4.强大的带外前向纠错功能(FEC); +5.串连监控(Tandem Connection Monitoring)。 +``` + +### OTN网络结构 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307162130.png) + +``` +按照OTN技术的网络分层,可分为光通道层、光复用段层和光传送段层三个层面。 + +另外,为了解决客户信号的数字监视问题,光通道层又分为光通路净荷单元(OPU)、光通道数据单元(ODU)和光通道传送单元(OUT)三个子层。 +``` + + + +#### OPU + +``` +光通道净荷单元,提供客户信号的映射功能; +``` + +#### ODU + +``` +光通道数据单元,提供客户信号的数字包封、OTN的保护倒换、提供踪迹监测、通用通信处理等功能; +``` + +#### OTU + +``` +光通道传输单元、提供OTN成帧、FEC处理、通信处理等功能波分设备中的发送OTU单板完成了信号从客户接口到OCC的变化;波分设备中的接收OTU单板完成了信号从OCC到客户接口的变化。 +``` + + + +### 常用单板 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images20200307162434.png) + +#### 光转发单板 + +``` +主要功能: +1.提供线路侧光模块,内有激光器,发出特定稳定的,符合波分系统标准的波长的光 +2.将客户侧接收的信息封装到对应的OTN帧中,送到线路侧输出。 +3.提供客户侧光模块,连接PTN/路由器/交换机等设备。 +``` + +#### 合波/分波单板 + +``` +光合波板OMU位于发送端业务单板与光放大器之间。 +主要功能:将从各业务单板接收到的各个特定波长的光复用在一起,从出口输出。 + +光分波板ODU位于接收端光放大器和业务单板之间。 +主要功能:将从光放大器收到的多路业务在光层上解复用为多个单路光送给业务单板的线路口。 +``` + +#### 光放大板 + +``` +光放大板主要功能是将光功率放大到合理的范围。 + +发送端OBA(功率放大板)位于OMU单板之后,用于将合波信号放大后发出。 + +接收端OPA(前置放大板)位于ODU单板之前,将合波信号放大后送到ODU解复用。 + +OLA(光线路放大板),用于OLA站点放大光功率。 +``` + +#### 电交叉子系统 + +``` +OTN电交叉子系统以时隙电路交换为核心,通过电路交叉配置功能,支持各类大颗粒用户业务的接入和承载,实现波长和子波长级别的灵活调度。同时继承OTN网络监测、保护等各类技术,支持毫秒级的业务保护倒换。 + +电交叉子系统的核心是交叉板,主要是根据管理配置实现业务的自由调度,完成基于ODUK颗粒的业务调度。 + +电交叉需要采用O/E/O转换。 +``` + diff --git a/source/_posts/python-2.md b/source/_posts/python-2.md new file mode 100644 index 0000000..aeaf005 --- /dev/null +++ b/source/_posts/python-2.md @@ -0,0 +1,80 @@ +--- +title: 七段数码管绘制系统时间 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Python +date: 2020-05-20 20:13:14 +music: + type: song + id: 440353010 +comments: true +--- + +Python代码利用turtle(海龟绘图)实现七段数码管的显示,绘制当前的系统日期。 + + + +## 代码 + +```python +#SevennDigitsDrawV1.py +import turtle +import time + +def DrawGap(): + turtle.penup() + turtle.fd(5) + +def DrawLine(draw): + DrawGap() + turtle.pendown() if draw else turtle.penup() + turtle.fd(40) + DrawGap() + turtle.right(90) + +def DrawDigits(digits): + DrawLine(True) if digits in [2,3,4,5,6,8,9] else DrawLine(False) + DrawLine(True) if digits in [0,1,3,4,5,6,7,8,9] else DrawLine(False) + DrawLine(True) if digits in [0,2,3,5,6,8,9] else DrawLine(False) + DrawLine(True) if digits in [0,2,6,8] else DrawLine(False) + turtle.left(90) + DrawLine(True) if digits in [0,4,5,6,8,9] else DrawLine(False) + DrawLine(True) if digits in [0,2,3,5,6,7,8,9] else DrawLine(False) + DrawLine(True) if digits in [0,1,2,3,4,7,8,9] else DrawLine(False) + turtle.left(180) + turtle.penup() + turtle.fd(20) + +def DrawDate(date): + turtle.pencolor("red") + for i in date: + if i == "-": + turtle.write('年',font=("Arial",18,"normal")) + turtle.pencolor("green") + turtle.fd(40) + elif i == "=": + turtle.write('月',font=("Arial",18,"normal")) + turtle.pencolor("blue") + turtle.fd(40) + elif i == "+": + turtle.write('日',font=("Arial",18,"normal")) + else: + DrawDigits(eval(i)) + +def main(): + turtle.setup(800,300) + turtle.penup() + turtle.fd(-300) + turtle.pensize(5) + DrawDate(time.strftime("%Y-%m=%d+",time.gmtime())) + turtle.hideturtle() + turtle.done() + +main() +``` + +## 效果 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200524092806.png) \ No newline at end of file diff --git a/source/_posts/ssh.md b/source/_posts/ssh.md new file mode 100644 index 0000000..57b04e4 --- /dev/null +++ b/source/_posts/ssh.md @@ -0,0 +1,61 @@ +--- +title: 思科交换机开启ssh远程 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 网络安全 +date: 2020-02-24 17:52:30 +music: + type: song + id: 1376142151 +comments: true +tags: + - 网络安全 + - 交换机 + - 思科 +--- + +由于传统的telnet方式使用明文的方式进行密码和数据的传送,对于安全性我们无法得到保障,那么接下来介绍一下通过ssh方式远程,ssh方式使用了加密的方式进行密码和数据的传输,提高了网络设备的安全性。 + + +## 配置IP + + Switch> enable #进入管理员模式 + Switch# config terminal #进入全局模式 + Switch(config)# interface vlan 1 #进入vlan1接口 + Switch(config)# ip address 192.168.0.1 255.255.255.0 #配置IP地址和子网掩码 + Switch(config)# no shutdown #启用vlan 1接口 + +## 修改主机名 + + Switch(config)# hostname MS1 #修改交换机的主机名,后期配置域名的主机名 + +## 配置域名 + + MS1(config)# ip domain-name qinhao.com #配置域名 + +## 生成rsa秘钥 + + MS1(config)# crypto key generate rsa #生成rsa秘钥,默认长度为512,建议修改为1024 + +## 定义ssh远程的线路 + + MS1(config)# line vty 0 15 #进入vty端口模式 + MS1(config)# transport input ssh + MS1(config)# privilege level 15 + MS1(config)# login local + +## 创建本地用户 + + MS1(config)# username qinhao password zyy520 + +## 设置enable登录密码 + + MS1(config)# enable secret 123456 #进入管理员模式需要的密码 + +## PC0通过ssh远程连接MS1 + + pc> ssh -l qinhao 192.168.0.1 #ssh用法:ssh -l 用户名 IP地址 + open #会提示我们开启 + Password: zyy520 #输入ssh用户的密码 diff --git a/source/_posts/structure-of-MAN.md b/source/_posts/structure-of-MAN.md new file mode 100644 index 0000000..4e680fb --- /dev/null +++ b/source/_posts/structure-of-MAN.md @@ -0,0 +1,96 @@ +--- +title: 宽带城域网的结构 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 计算机三级 +date: 2020-04-13 09:46:11 +music: + type: song + id: 550138197 +comments: true +tags: + - 网络技术 + - 计算机三级 +--- + +常考知识点: + +宽带城域网的结构 + +管理和运营宽带城域网的关键技术 + +构建宽带城域网的基本技术与方案 + +网络接入技术与方法 + + + +## 宽带城域网的逻辑结构 + +完整的宽带城域网主要包括网络平台、业务平台、管理平台3个平台与城市宽带一个出口。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200413090441.png) + +## 宽带城域网网络平台各层的主要功能 + +### 核心交换层的基本功能 + +- 核心交换层将多个汇聚层连接起来,为汇聚层的网络提供高速转发,为整个城域网提供一个高速、安全与具有QoS保障能力的数据传输环境。 +- 核心交换层实现与主干网络的互联, 提供城市的宽带IP数据出口。 +- 核心交换层提供宽带城域网的用户访问Internet所需要的路由服务。 + +### 汇聚层的基本功能 + +- 汇聚接入层的流量,进行数据分组传输的汇聚、转发与交换。 +- 根据汇聚接入层的用户流量,进行本地路由、过滤、流量均衡、QoS优先级管理,以及安全控制、IP地址转换、流量整型等处理。 +- 根据处理结果把用户流量转发到核心交换机或本地进行路由处理。 + +### 接入层的基本功能 + +- 接入层解决的是“最后一公里”问题。通过各种接入技术,连接最终用户,为它所覆盖范围内的用户提供访问Internet以及其它的信息服务。 + +### 三层结构思想 + +上层负责下层的数据汇聚;核心层提供出口与QoS、汇聚本地路由,接入服务用户。 + +## 真考试题 + +[单选] 下列关于宽带城域网核心交换层特点的描述中,正确的是( )。 + +A. 将多个接入层连接起来 + +B. 根据接入层的用户流量进行本地路由、过滤、流量均衡 + +C. 提供城市的宽带IP数据出口 + +D. 解决“最后一公里”问题 + +``` +答案:C +解析:A选项将多个接入层连接起来的是汇聚层而不是核心交换层,故A选项错误;B选项根据接入层的用户流量进行本地路由、过滤、流量均衡的是汇聚层,故B选项错误;D选项解决“最后一公里”的是接入层的任务,故D选项错误。核心交换层实现与主干网络的互联, 提供城市的宽带IP数据出口,故C选项正确。 +``` + +[单选] 下列关于宽带城域网汇聚层基本功能的描述中,错误的是( )。 + +A. 提供用户访问Internet所需要的路由服务 + +B. 根据处理结果把用户流量转发到核心交换机 + +C. 汇聚接入层的用户流量,进行数据转发与交换 + +D. 根据接入层的用户流量,进行流量均衡、安全控制等处理 + +``` +答案:A +解析:提供用户访问Internet所需要的路由服务是核心层的基本功能,故A选项错误。 +``` + +## 易错提示 + +要熟练掌握每个网络平台各层的主要功能,差异化的记忆。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200413094251.png) + +宽带城域网网络平台的核心层主要承担高速数据交换的功能,汇聚层主要承担路由与流量汇聚的功能,接入层主要承担用户接入与本地流量控制的功能。 \ No newline at end of file diff --git a/source/_posts/switchport-security.md b/source/_posts/switchport-security.md new file mode 100644 index 0000000..339995b --- /dev/null +++ b/source/_posts/switchport-security.md @@ -0,0 +1,259 @@ +--- +title: 交换机端口安全配置练习 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 网络安全 +date: 2020-02-27 11:11:11 +music: + type: song + id: 1404885266 +comments: true +tags: + - 网络安全 + - 交换机 + - 思科 +--- + +实验用到的知识点: + +1. 启用端口安全功能配置 + +2. 端口安全mac地址配置 +3. 端口安全mac地址数目配置 +4. 端口安全违规处理方式配置 + + + +## 任务 + +> 1. VLAN及VLAN间路由配置; +> +> 2. 端口安全应用配置:左边网络中只允许PC0接入C1,右边网络允许两个终端用户接入C1; + +## 实现步骤 + +> 如图所示,二层结构构建的本地网络包括一个核心交换机和两个接入交换机,按图示要求为S1、S2划分VLAN及成员。 + + + +![](https://www.zhengyuanyuan520.cn/images/switch/switchport-security/photo1.png) + + + +### 记录表格: + +| 设备名 | 接口 | IP地址/掩码 | 网关地址 | 备注 | +| ------ | ------ | -------------- | -------------- | ------------------- | +| C1 | vlan 1 | 10.35.1.254/24 | | | +| C1 | vlan 2 | 10.35.2.254/24 | | | +| S1 | Fa0/1 | | | vlan 1 | +| S1 | Fa0/2 | | | vlan 2 | +| S1 | Fa0/3 | | | mac: 0001.96ce.1e03 | +| S2 | Fa0/1 | | | vlan 1 | +| S2 | Fa0/2 | | | vlan 2 | +| S2 | Fa0/3 | | | mac: 00e0.b086.8803 | +| PC0 | | 10.35.1.1/24 | 10.35.1.254/24 | mac: 0060.7020.93BB | +| PC1 | | 10.35.2.1/24 | 10.35.2.254/24 | mac: 0090.2150.050B | +| PC2 | | 10.35.1.2/24 | 10.35.1.254/24 | mac: 0004.9A58.D178 | +| PC3 | | 10.35.2.2/24 | 10.35.2.254/24 | mac: 0002.17B3.896B | + +### 配置VLAN间路由 + +> 在S1、S2、C1进行设置,最终实现PC间的互Ping,各PC均可ssh C1 + +#### S1: 中继接口 + +``` +S1(config)# vlan 2 #创建vlan2 +S1(config-vlan)# exit #回到全局模式 +S1(config)# interface fastEthernet 0/2 #进入2号接口 +S1(config-if)# switchport mode access #定义端口工作模式为access +S1(config-if)# switchport access vlan 2 #将端口加入到vlan 2 +S1(config-if)# exit #回到全局模式 +S1(config)# interface fastEthernet 0/3 #进入3号接口 +S1(config-if)# switchport mode trunk #定义端口工作模式为trunk +S1(config-if)# exit #回到全局模式 +``` + +#### S2: 中继接口 + +``` +S2(config)# vlan 2 #创建vlan2 +S2(config-vlan)# exit #回到全局模式 +S2(config)# interface fastEthernet 0/2 #进入2号接口 +S2(config-if)# switchport mode access #定义端口工作模式为access +S2(config-if)# switchport access vlan 2 #将端口加入到vlan 2 +S2(config-if)# exit #回到全局模式 +S2(config)# interface fastEthernet 0/3 #进入3号接口 +S2(config-if)# switchport mode trunk #定义端口工作模式为trunk +S2(config-if)# exit #回到全局模式 +``` + +#### C1:SSH + +> 主机名C1、域名wtctx、用户名、密码均为txXX、enable不加密密码tx18XX(XX为学号最后2位) + +``` +C1(config)# hostname C1 #设置主机名为C1 +C1(config)# ip domain-name wtctx #设置域名为wtctx +C1(config)# crypto key generate rsa #生成rsa秘钥 +C1(config)# line vty 0 15 #进vty接口,最多15人同时在线 +C1(config-line)# transport input ssh #启用SSH登录 +C1(config-line)# privilege level 15 #设置用户操作等级为最高级 +C1(config-line)# login local #使用本地验证 +C1(config-line)# exit #回退到全局模式 +C1(config)# username tx11 password tx11 #创建用户tx11,密码为tx11 +C1(config)# enable password tx1811 #设置enable明文密码 +``` + +#### C1:中继接口 + +``` +C1(config)# interface range fastEthernet 0/1-2 #进入0/1和0/2端口 +C1(config-if)# switchport trunk encapsulation dot1q #封装vlan帧 +C1(config-if)# switchport mode trunk #定义接口工作模式 +C1(config-if)# exit #退出端口 +``` + +#### C1:开启路由功能 + +``` +C1(config)# ip routing #开启路由功能 +``` + +#### C1:设置各VLAN网关地址 + +> 地址为该网段最大主机地址(注意VLAN接口默认关闭且手工打开) + +``` +C1(config)# vlan 2 #创建vlan 2 +C1(config-vlan)# exit #退回到全局模式 +C1(config)# interface vlan 1 #进入vlan1接口 +C1(config-if)# ip address 10.35.1.254 255.255.255.0 #配置IP和子网掩码 +C1(config-if)# no shutdown #接口启用 +C1(config-if)# exit #退出vlan1接口 +C1(config)# interface vlan 2 #进入vlan2接口 +C1(config-if)# ip address 10.35.2.254 255.255.255.0 #配置IP和子网掩码 +C1(config-if)# exit #退出vlan2接口 +``` + +#### 记录结果 + +> 为各PC设置网关地址,设置完毕PC0 分别ping PC1 和PC2,记录结果。 + + + +![](https://www.zhengyuanyuan520.cn/images/switch/switchport-security/photo2.png) + + + +### 端口安全配置。 + +#### C1:fa0/1开启安全端口功能 + +> 配置时建议关闭端口,关闭端口可清空mac地址表 + +``` +C1(config)# interface fastEthernet 0/1 #进入Fa0/1接口 +C1(config-if)# shutdown #关闭端口 +C1(config-if)# switchport port-security #开启安全端口功能 +``` + +#### C1:fa0/1安全端口禁用DTP + +``` +C1(config-if)# switchport nonegotiate #禁用DTP +``` + +#### C1:fa0/1安全端口允许最大地址数 + +``` +C1(config-if)# switchport port-security maximum 3 #设置允许最大地址数 +------------------------------------------------------------------------ +解析:C1从Fa0/1学习地址时会优先学习与之直连的接口地址(即S1交换机的Fa0/3端口),C1上有两个VLAN对应两条,加上静态指定的共有三条; +``` + +#### C1:fa0/1安全端口指定允许接入的地址 + +``` +C1(config-if)# switchport port-security mac-address 0060.7020.93BB +``` + +#### C1:fa0/1安全端口指定违规处理行为 + +> 建议使用protected,思考为什么 + +``` +C1(config-if)# switchport port-security violation protect +------------------------------------------------------------------------ +解析:违规方式采用protect是为了确保网络能为合规的数据提供继续的服务,若采用默认方式,违规后端口将自动关闭,从而导致网络不可用。 +``` + +#### C1:fa0/2开启安全端口功能 + +> 配置时建议关闭端口,关闭端口可清空mac地址表 + +``` +C1(config-if)# no shutdown #开启Fa0/1端口 +C1(config-if)# exit #退出Fa0/1端口 +C1(config)# interface fastEthernet 0/2 #进入Fa0/2端口 +C1(config-if)# shutdown #关闭Fa0/2端口 +C1(config-if)# switchport port-security #开启安全端口功能 +``` + +#### C1:fa0/2安全端口禁用DTP + +``` +C1(config-if)# switchport nonegotiate #禁用DTP +``` + +#### C1:fa0/2安全端口允许最大地址数 + +> 思考数值设置多少合理,依据是什么 + +``` +C1(config-if)# switchport port-security maximum 5 #设置允许最大地址数 +------------------------------------------------------------------------ +解析:C1会粘滞5个来自Fa0/2的mac地址记录,分别是从Fa0/1学习地址时会优先学习与之直连的接口地址(即S1交换机的Fa0/3端口),vlan1和vlan2接口的mac地址,PC2和PC3的mac地址。 +``` + +#### C1:fa0/2安全端口采用地址粘滞功能 + +``` +C1(config-if)# switchport port-security mac-address sticky +``` + +#### C1:fa0/2安全端口指定违规处理行为 + +> 建议使用protected,思考为什么 + +``` +C1(config-if)# switchport port-security violation protect +------------------------------------------------------------------------ +解析:违规方式采用protect是为了确保网络能为合规的数据提供继续的服务,若采用默认方式,违规后端口将自动关闭,从而导致网络不可用。 +``` + +#### 记录结果 + +> 设置完毕PC0 分别ping PC1 和PC2,记录结果,思考原因 + + + +![](https://www.zhengyuanyuan520.cn/images/switch/switchport-security/photo3.png) + + + +``` +解析:虽然已经做到了全网互通,但是由于PC1没有设置允许它接入,且设置了保护模式为protect,所以PC1的数据流量对于交换机来说是违规的,端口对PC1的数据进行丢弃,所以PC0的数据无法发送给PC1。 +``` + +### 思考 + +![](https://www.zhengyuanyuan520.cn/images/switch/switchport-security/photo4.png) + +``` +解析:此时mac地址表会出现共5个来自Fa0/2的mac地址记录,分别是从Fa0/1学习地址时会优先学习与之直连的接口地址(即S1交换机的Fa0/3端口),vlan1和vlan2接口的mac地址,PC2和PC3的mac地址。 +``` + diff --git a/source/_posts/system_info.md b/source/_posts/system_info.md new file mode 100644 index 0000000..b792d35 --- /dev/null +++ b/source/_posts/system_info.md @@ -0,0 +1,77 @@ +--- +title: 系统信息相关命令 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: Linux +date: 2020-08-13 20:14:14 +music: + type: song + id: 1363205817 +comments: true +--- + +* 本节内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前 **系统日期和时间** / **磁盘空间占用情况** / **程序执行情况** +* 本小结学习的终端命令基本都是查询命令,通过这些命令对系统资源的使用情况有个了解 + + + +## 目标 + +* 时间和日期 + * `date` + * `cal` +* 磁盘和目录空间 + * `df` + * `du` +* 进程信息 + * `ps` + * `top` + * `kill` + +## 01. 时间和日期 + +| 序号 | 命令 | 作用 | +| --- | --- | --- | +| 01 | date | 查看系统时间 | +| 02 | cal | `calendar` 查看日历,`-y` 选项可以查看一年的日历 | + +## 02. 磁盘信息 + +| 序号 | 命令 | 作用 | +| --- | --- | --- | +| 01 | df -h | `disk free` 显示磁盘剩余空间 | +| 02 | du -h [目录名] | `disk usage` 显示目录下的文件大小 | + +* 选项说明 + +| 参数 | 含义 | +| --- | --- | +| -h | 以人性化的方式显示文件大小 | + +## 03. 进程信息 + +* 所谓 **进程**,通俗地说就是 **当前正在执行的一个程序** + +| 序号 | 命令 | 作用 | +| --- | --- | --- | +| 01 | ps aux | `process status` 查看进程的详细状况 | +| 02 | top | 动态显示运行中的进程并且排序 | +| 03 | kill [-9] 进程代号 | 终止指定代号的进程,`-9` 表示强行终止 | + +> `ps` 默认只会显示当前用户通过终端启动的应用程序 + +* `ps` 选项说明 + +| 选项 | 含义 | +| --- | --- | +| a | 显示终端上的所有进程,包括其他用户的进程 | +| u | 显示进程的详细状态 | +| x | 显示没有控制终端的进程 | + +> 提示:使用 `kill` 命令时,最好只终止由当前用户开启的进程,而不要终止 `root` 身份开启的进程,否则可能导致系统崩溃 + +> +> * 要退出 `top` 可以直接输入 `q` + diff --git a/source/_posts/wireless_framework.md b/source/_posts/wireless_framework.md new file mode 100644 index 0000000..407e90e --- /dev/null +++ b/source/_posts/wireless_framework.md @@ -0,0 +1,294 @@ +--- +title: 5G无线网络架构演进 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-04-09 11:25:00 +music: + enable: true + server: netease + type: song + id: 1374329431 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +了解移动通信网络发展 + +熟悉接入网架构演进策略 + +熟悉5G网元接口功能 + +掌握5G组网特性与应用 + + + +## 移动通信发展历程 + +### 移动通信标准发展历程 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200407095820.png) + +### RAN网络架构变迁 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408132416.png) + +### 3G-4G的演进 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408132644.png) + +### 4G-5G的演进 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408132814.png) + +## 5G接入网架构演进 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408133503.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408133546.png) + +``` +演进G的gNB,也可以是LTE eNB升级后的ng-eNB。采用gNB与5GC组网时,对应架构Option 2。将LTE eNB需升级到ng-eNB后连接到5G核心网,对应架构Option 5。 + +对于拥有较丰富、优质的Sub-6GHz频谱资源作为覆盖,同时又有足够的高频频谱资源来增强容量的运营商,选择Option 2独立组网是一个比较好的选择。 +``` + + + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408134106.png) + + + +``` +4G基站(eNB)和5G基站(gNB)公用4G核心网(EPC),LTE eNB和5G gNB用户面可以直接连接到EPC,控制面则仅经由LTE eNB连接到EPC。用户面可以分别经由LTE eNB、EPC或者gNB进行分流。优势在于不需要新增5G核心网,利用运营商现有4G网络基础设施快速部署5G,抢占覆盖和热点。但是5G信令全走4G通道,有4G核心网信令过载风险,因此该阶段主要解决初期的5G覆盖。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408134927.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408135117.png) + +### 组网部署方式比较和运营商选择 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408135306.png) + +### 5G接入网方案部署 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408135831.png) + +### CU-DU划分 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408140119.png) + +### CU-DU方案策略比较 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408140304.png) + +### 5G基站部署 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408140458.png) + +### 5G传输部署 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408140706.png) + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408140804.png) + + + +## 5G网元与接口功能 + +### 5G接入网架构概述 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408182932.png) + +### 4G/5G共核心网网元与接口 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408183138.png) + +### 网元功能-UPF + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408183404.png) + +### 网元功能-SMF + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408183500.png) + +### 网元功能-AMF + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408183558.png) + +### 网元功能-gNB/en-gNB + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408183644.png) + +### 接口概述-NG + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408183824.png) + +### NG接口协议-总览 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408184052.png) + +### 接口NG-C协议与功能 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408184414.png) + +### 接口NG-U协议与功能 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408184555.png) + +### 接口概述-Xn + +``` +接口定义:ng-eNB/gNB与ng-eNB/gNB之间的接口 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408184827.png) + +### Xn接口协议-总览 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408184915.png) + +### 接口Xn-U协议与功能 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408185046.png) + +### 接口概述-F1 + +``` +接口定义:gNB-CU与gNB-DU之间的接口,包括F1-C和F1-U。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408185232.png) + +### F1接口协议-总览 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408185350.png) + +### 接口F1-C协议与功能 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408190004.png) + +### 接口F1-U协议与功能 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408190403.png) + +### 接口概述-E1 + +``` +接口定义:gNB-CU-CP与gNB-CU-UP之间的接口,目前只有E1-C接口。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408190658.png) + +### 接口E1-C协议与功能 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408191240.png) + +### 接口概述-Radio UU + +``` +接口定义:UE与gNB及网络之间的接口。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408191547.png) + +### Radio UU口控制面协议栈 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408191759.png) + +## 5G无线组网与应用 + +### C-RAN概念演进 + +``` +C-RAN的概念:“Centralization,Collaborative,Cloud,Clean”无线接入云网络架构。 +``` + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408205638.png) + +### C-RAN推进目标 + +根据工作内容的独立性,可分为5个具体的工作组: + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408223223.png) + +### C-RAN部署的三种方式 + +根据不同的业务和部署场景,C-RAN的架构总体可以分为CU和DU两级,但是实际部署可以出现CU、DU和RRU分离的三级配置,也可以出现RRU直接连入中心节点。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200408223602.png) + +### C-RAN场景部署-eMBB + +Case 1:基于多连接的部署用于网络容量和覆盖的提升。 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200409132236.png) + +``` +典型的部署场景包括: +·一个宏站覆盖一个宏小区,一个微站覆盖一个微小区,一个宏站可以连接一个或多个微站。宏微小区可以同频或者异频。 +·对于宏基站,DU和AAU通常分离,但对于微站,DU和AAU可以分离也可以集成在一起; +·对于宏站,CU、DU可以部署在一起,对于微站,CU和DU的连接一般需要专门的fronthaul连接,根据具体的技术应用对fronthaul的时延有不同的需求,如果无线承载需要合并,则时延要求一般小于5ms,否则需求可以放松一些。 +``` + +Case 2:基于基站协同管理的服务与小区间干扰协调和高密度业务的需求 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200409132058.png) + +``` +相关的部署需求包括: +·所有AAU需要和DU池通过直接光纤或高速传输网络连接,时延要求一般在微秒量级。 +·DU池支持的小区数目可以达到数十至数百个。 +·CU和DU的连接一般通过传输网络,时延要求则没有RU和DU的fronthaul连接严格。 +``` + +Case 3:基于时延差异性的部署优化 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200409132501.png) + +``` +·高实时大带宽的业务如视频和虚拟现实业务:为了保证高效的时延控制,需要高速传输网络或光纤直连AAU,数据统一传输到中心机房进行处理,减少中间的流程,同时DU和CU则可以部署在同一位置,网络实体则合而为一。 +·低实时语音等一般业务:在这种场景下,带宽和实时性要求不高,实时功能DU可以部署在站点侧,多个DU通过fronthaul连接到一个CU,非实时功能CU可以部署在中心机房。 +``` + +### C-RAN场景部署-mMTC + +Case:垂直行业和机器通信需求-物联网的集中化管控 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200409132728.png) + +``` +物联网的集中化管控:可以让多个DU或者AAU连接到一个CU,由CU进行区域物联网的集中管控。由于物联网业务实时性要求不高,可以将CU和核心网进行共平台部署,减少无线网和核心网的信令的交互,减少机房的数量。 +``` + +### C-RAN场景部署-uRLLC + +Case:低时延高可靠需求-车联网 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200409132939.png) + +``` +·基于高实时通信的自动驾驶:将RAN的实时处理DU和非实时处理功能单元CU部署在更加靠近用户的位置,并配置相应的服务器和业务网关,进而满足特定的时延和可靠性需求。 +·基于高可靠需求的公共安全应急通信:在涉及到公共安全的通信业务时,通常需要高可靠性,一般采取广播方式,多小区传送相同信息,因此多个DU需要连接相同的CU做重复的数据传输。 +·高移动性的业务支持:当UE处于高速移动时,比如在无人机控制场景,为了减少切换,可以让多个DU共享一个逻辑小区,CU对这个逻辑小区做集中控制,在DU间移动无需切换。 +``` + +### C-RAN场景部署总结 + +基于网络切片的三大场景部署 + +![](https://cdn.jsdelivr.net/gh/queen999/ImageHosting/images/20200409133235.png) + +``` +从功能上,实时处理单元和非实时处理单元需要各有分工 +从实体上,RRU冋以部分和DU耦合,DU也可以和CU耦合,实现部分功能的转移 +从部署上,RRU、DU、CU的地理位置可以灵活部署 +从对业务的支持上,必须种统的架构去满足eMBB,MTC,URL等不同的业务特点 +``` + diff --git a/source/_posts/wireless_radio.md b/source/_posts/wireless_radio.md new file mode 100644 index 0000000..e0b59fb --- /dev/null +++ b/source/_posts/wireless_radio.md @@ -0,0 +1,74 @@ +--- +title: LTE信道及协议栈分析 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-07 13:00:00 +music: + type: song + id: 477754663 +comments: true +tags: + - 通信技术 + - 无线技术 + - 通信原理 +--- + +LTE信道及协议栈分析学习笔记 + + + +## 无线帧结构-FDD制式 + +``` +1个无线帧Tf=207200Ts=10ms + +每个10ms无线帧被分为10个子帧 + +每个子帧包含两个时隙,每时隙长0.5ms + +Ts=1/(15000*2048)是基本时间单元 + +任何一个子帧即可以作为上行,也可以作为下行 +``` + + + +## 无线帧结构-TDD制式 + +``` +1个无线帧Tf=307200Ts=10ms + +每个10ms无线帧包括2个长度为5ms的半帧,每个半帧由4个数据子帧和1个特殊子帧组成 + +特殊子帧包括3个特殊时隙:DWPTS,GP和UpPTS,总长度为1ms + +支持5ms和10ms上下行切换点 + +子帧0、5和DWPTS总是用于下行发送 +``` + + + +## LTE信道及协议栈分析(物理层) + +### RE + +``` +最小的资源单位,时域上为1个符号,频域上为1个子载波用(k,l)标记 +``` + +### RB + +``` +业务信道的资源单位,时域上为1个时隙,频域上为12个子载波 +``` + +## PCM的主要步骤 + +``` +抽样、量化、编码 +``` + diff --git a/source/_posts/wireless_word.md b/source/_posts/wireless_word.md new file mode 100644 index 0000000..2cdd406 --- /dev/null +++ b/source/_posts/wireless_word.md @@ -0,0 +1,171 @@ +--- +title: 移动通信术语 +author: + name: 覃浩 + avatar: https://cdn.jsdelivr.net/gh/queen999/ImageHosting//imagesavatar.jpg + url: https://www.zhengyuanyuan520.com +categories: 通信技术 +date: 2020-03-06 15:00:00 +music: + type: song + id: 1302090321 +comments: true +tags: + - 通信技术 + - 无线技术 +--- + +记录了一些无线侧和核心侧的一些术语 + + + +## 无线侧术语 + +### 频谱 + +``` +一个时域的信号在频域下表示方式 +``` + +### 频段 + +``` +频谱中的某一区间 +``` + +### 载频 + +``` +载波或者载频(载波频率)是一个物理概念,其实就是一个特定频率的无线电波,单位Hz。在无线通信技术上我们使用载波传递信息,将数字信号调制到一个高频载波上然后再在空中发射和接收 +``` + +### 速率单位 + +``` +1B = 1024bt +1KB = 1024B +1MB = 1024KB +1GB = 1024MB +1Mbps = 1024Kbps = 128KBps +1Gbps = 1024Mbps = 128MBps +``` + +### 带宽 + +``` +在模拟信号系统又叫频宽,是指在固定的时间可传输的资料数量,亦即在传输管道中可以传递数据的能力。通常以每秒传送周期或赫兹(Hz)来表示。 +1GHz = 1000MHz = 1000 000KHz = 1000 000 000Hz +``` + +### 基站 + +``` +无线电台站的一种形式,是指在一定的无线电覆盖区中,通过移动通信交换中心,与移动电话终端之间进行信息传递的无线电收发信电台 +``` + +### 小区 + +``` +在蜂窝移动通信系统中,其中的一个基站或基站的一部分(扇形天线)所覆盖的区域,在这个区域内移动台可以通过无线信道可靠地与基站进行通信 +``` + +### 跟踪区域(TA) + +``` +LTE/SAE系统为UE的位置管理新设立的概念。其被定义为UE不需要更新服务的自由移动区域。TA功能为实现对终端位置的管理,可分为寻呼管理和位置更新管理。UE通过跟踪区注册告知EPC自己的跟踪区TA +``` + +### 物理小区标识PCl + +``` +LTE中终端以此区分不同小区的无线信号。LTE系统提供504个PCI,网管配置时,为小区配置0~503之间的一个号码。LTE小区搜索流程中通过检索主同步序列(PSS,共有3种可能性)、辅同步序列(SSS,共有168种可能性),二者相结合来确定具体的小区ID +``` + +### 参考信号功率 + +``` +是在某个符号内承载参考信号的所有RE(资源粒子)上接收到的信号功率的平均值,也就是子载波功率 +``` + +### 载波聚合 + +``` +为了满足单用户峰值速率和系统容量提升的要求,一种最直接的办法就是增加系统传输带宽。因此LTE-Advanced系统引入一项增加传输带宽的技术,也就是CA(Carrier Aggregation,载波聚合) +``` + +## 核心侧术语 + +### 国家码MCC + +``` +移动国家码,MCC的资源由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共3位,中国为460 +``` + +### 网络码MNC + +``` +移动网络码,共2位,中国移动TD系统使用00,中国联通GSM系统使用01,中国移动GSM系统使用02,中国电信CDMA系统使用03 +``` + +### APN + +``` +一种网络接入技术,是通过手机上网时必须配置的一个参数,它决定了手机通过哪种接入方式来访问网络 +``` + +### QCI + +``` +用于衡量特定的提供给SDF(服务数据流)的包转发行为(如丢包率,包延迟预算),它同时应用于GBR和Non-GBR承载,用于指定访问节点内定义的控制承载级分组转发方式(如调度权重、接纳门限、队列管理门限、链路层协议配置等),这些都由运营商预先配置到接入网节点中 +``` + +### 国际移动用户识别码(lMSl) + +``` +国际上为唯一识别一个移动用户所分配的号码,IMSI共有15位,其结构如下:MCC+MNC+MSIN,(MNC+MSIN=NMSI) +``` + +### Kl(Key identifier) + +``` +SIM卡与运营商之间加密数据传递的密钥,主要作用在于系统为确认手机用户所进行的身份验证功能 +``` + +### MSISDN + +``` +主叫用户为呼叫GSM PLMN中的一个移动用户所需拨的号码,作用于固定网PSTN号码;是在公共电话网交换网络编号计划中,唯一能识别移动用户的号码 +``` + +## 其它术语 + +### 单工 + +``` +数据传输只支持数据在一个方向上传输;在同一时间只有一方能接受或发送信息,不能实现双向通信,举例:电视,广播 +``` + +### 半双工 + +``` +数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送信息,可以实现双向通信。举例:对讲机 +``` + +### 双工 + +``` +数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发送信息,实现双向通信,举例:电话通信 +``` + +### 时分复用(TDD) + +``` +是在帧周期的下行线路操作中及时区分无线信道以及继续上行线路操作的一种技术,也是移动通信技术使用的双工技术之一 +``` + +### 频分复用(FDD) + +``` +移动通信系统中使用的全双工通信技术的一种,与TDD相对应。FDD采用两个独立的信道分别进行向下传送和向上传送信息的技术。为了防止邻近的发射机和接收机之间产生相互干扰,在两个信道之间存在一个保护频段。 +``` + diff --git a/source/about/index.md b/source/about/index.md new file mode 100644 index 0000000..77452b0 --- /dev/null +++ b/source/about/index.md @@ -0,0 +1,8 @@ +--- +layout: page +title: 关于 +body: [article, grid, comments] +valine: + placeholder: 有什么想对我说的呢? +sidebar: false +--- \ No newline at end of file diff --git "a/source/archives/categories/\346\212\200\346\234\257/HP\344\272\244\346\215\242\346\234\272\351\205\215\347\275\256.md" "b/source/archives/categories/\346\212\200\346\234\257/HP\344\272\244\346\215\242\346\234\272\351\205\215\347\275\256.md" new file mode 100644 index 0000000..8eb7a34 --- /dev/null +++ "b/source/archives/categories/\346\212\200\346\234\257/HP\344\272\244\346\215\242\346\234\272\351\205\215\347\275\256.md" @@ -0,0 +1,162 @@ + +# HP交换机配置 + +## 连接交换机的方法: + +### 本地连接: + +1. 使用配置线连接电脑 + +2. 查看对应的端口(方法:计算机右键---->管理---->系统工具---->设备管理器---->端口,查看对应的端口) + + ![查看对应端口](https://zhengyuanyuan520.cn/images/20191206/photo1.png) + +3. 打开CRT软件,选择快速连接![选择快速链接](https://zhengyuanyuan520.cn/images/20191206/photo2.png) + +4. 弹出的窗口中选择一下配置: + + ```文本 + 协议:Serial + 端口:COM XX (选择上面查到的端口号) + 波特率:9600 + 流控:全部不选择 + 其它不需要修改,点击连接即可 + ``` + +### 远程连接 + +1. win + r + +2. 输入cmd,回车运行。 + +3. 远程功能的语法: + + ``` + telnet IP地址 + ``` + +4. 输入用户名和密码登录远程交换机 + + ``` + Username:此处输入用户名 + Password:此处输入密码 + ``` + +## 配置命令 + +1.进入管理员模式,默认登录是游客登录,需要使用命令进入管理员模式进行更多操作。#代表进入了管理员模式 + +``` +enable +``` + +![进管理员模式](https://zhengyuanyuan520.cn/images/20191206/photo3.png) + +2.进入全局模式。只有进入了全局模式,我们才可以对交换机的配置进行修改。 + +```文本 +configure +``` + +![进入全局模式](https://zhengyuanyuan520.cn/images/20191206/photo4.png) + +3.更换交换机的名称: + +``` +hostname 需要更换的名称 +``` + +4.重启交换机: + +``` +reload +``` + +5.设置交换机远程登录的用户名以及密码: + +``` +设置用户名语法:password manager username 设置的远程登录用户名 +``` + +![设置用户名](https://zhengyuanyuan520.cn/images/20191206/photo5.png) + +![设置密码](https://zhengyuanyuan520.cn/images/20191206/photo6.png) + +6.保存配置命令: + +``` +write memory +``` + +7.添加vlan。前提是进入了配置模式。 + +``` +vlan 端口号 +``` + +8.配置管理IP,vlan 2000是管理vlan。 + +​ 家属区、西区宿舍区以及办公区:10.10.102段 + +​ 东区学生区多为:10.10.101段 + +​ vlan一般设置了untagged就必须设置对应的tagged口,否则会出现无法正常通信等故障。 + +``` +vlan 2000 +ip address IP地址 +``` + +9.查看交换机的配置。既然添加了配置,我们就需要查看配置,看看我们是否添加成功。 + +``` +show run +``` + +10.静态路由。配置交换机一定要配置静态路由,否则会造成无法远程等故障。 + +``` +ip route IP地址 +``` + +11.修改支持的默认vlan数,修改后需要重启才可使用: + +``` +max-vlans 数字 +``` + +12.查看端口的连接情况: + +``` +show interface brief +``` + +13.tagged与untagged。交换机连接电脑的端口设置为untagged端口,交换机与交换机之间的端口设为tagged端口。设置untagged与tagged需要进入vlan里面进行配置。 + +``` +练习:A交换机的25号口上面接的是B交换机(汇聚)的13号口,我应该怎么配置才能保证可以上网呢? +``` + +14.端口隔离。端口隔离是为了实现[报文](https://baike.baidu.com/item/报文/3164352)之间的二层隔离,可以将不同的端口加入不同的VLAN,但会浪费有限的VLAN资源。采用端口隔离特性,可以实现同一VLAN内端口之间的隔离。用户只需要将端口加入到隔离组中,就可以实现隔离组内端口之间二层数据的隔离。端口隔离功能为用户提供了更安全、更灵活的组网方案。 + +``` +filter source-port "端口号" drop 隔离的端口号 +``` + +15.查看邻居: + +``` +show lldp info remote-device +``` + +16.删除vlan + +``` +no vlan [vlan号码] +``` + +17.清空交换机配置: + +``` +erase startup-config +``` \ No newline at end of file diff --git a/source/category/index.md b/source/category/index.md new file mode 100644 index 0000000..e5ab835 --- /dev/null +++ b/source/category/index.md @@ -0,0 +1,5 @@ +--- +layout: category +index: true +title: 所有分类 +--- \ No newline at end of file diff --git a/source/footer/index.md b/source/footer/index.md new file mode 100644 index 0000000..01422de --- /dev/null +++ b/source/footer/index.md @@ -0,0 +1,81 @@ +--- +layout: false +--- + + + + + + +
+ +
您的喜欢是作者写作最大的动力!❤️
+ +
+ +
    + + +
  • AliPay
  • + + +
  • WeChatPay
  • + + +
  • QQPay
  • + +
+
Donate
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/source/friends/index.md b/source/friends/index.md new file mode 100644 index 0000000..abf427c --- /dev/null +++ b/source/friends/index.md @@ -0,0 +1,27 @@ +--- +layout: links # 必须 +title: 我的朋友们 # 可选,这是友链页的标题 +music: + type: song + id: 27808044 +links: + - group: 技术大佬 + icon: fas fa-user-tie + items: + - name: xaoxuu + avatar: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-assets/avatar/avatar.png + url: https://xaoxuu.com + tags: [ios] + - name: TRHX’S BLOG + avatar: https://www.itrhx.com/images/trhx.png + url: https://www.itrhx.com/ + tags: [Python, 爬虫, 前端] + - name: hojun + avatar: https://cdn.jsdelivr.net/gh/honjun/ImageHosting/sina/006bYVyvgy1ftand2qurdj303c03cdfv.jpg + url: https://www.hojun.cn + tags: [一个好奇的博客] + - name: JerryC + avatar: https://jerryc.me/img/avatar.png + url: https://jerryc.me/ + tags: [今日事,今日毕] +--- \ No newline at end of file diff --git a/source/mylist/index.md b/source/mylist/index.md new file mode 100644 index 0000000..14a284a --- /dev/null +++ b/source/mylist/index.md @@ -0,0 +1,5 @@ +--- +layout: list +type: mylist +index: true +--- \ No newline at end of file diff --git a/source/root.txt b/source/root.txt new file mode 100644 index 0000000..7d43090 --- /dev/null +++ b/source/root.txt @@ -0,0 +1 @@ +d6a06d7a22c4b6707927c788fbc25483 \ No newline at end of file diff --git a/source/sogousiteverification.txt b/source/sogousiteverification.txt new file mode 100644 index 0000000..3f71176 --- /dev/null +++ b/source/sogousiteverification.txt @@ -0,0 +1 @@ +ZtVEFEMFyf \ No newline at end of file diff --git a/source/tags/index.md b/source/tags/index.md new file mode 100644 index 0000000..5ba5487 --- /dev/null +++ b/source/tags/index.md @@ -0,0 +1,5 @@ +--- +layout: tag +index: true +title: 所有标签 +--- \ No newline at end of file diff --git a/themes/volantis3 b/themes/volantis3 new file mode 160000 index 0000000..71a0430 --- /dev/null +++ b/themes/volantis3 @@ -0,0 +1 @@ +Subproject commit 71a04303a6f48dfda95deb5ce5cf4a2291bfee58