From c654d9fa9bd7b210238701e28940dddd96a78a6e Mon Sep 17 00:00:00 2001 From: ctownshend Date: Thu, 15 Aug 2024 22:16:07 +1000 Subject: [PATCH] merge in Mitun project --- CODE_OF_CONDUCT.md | 76 + CONTRIBUTING.md | 13 + Dockerfile | 18 + Gruntfile.js | 194 + Jenkinsfile | 24 - LICENSE | 191 + Procfile | 1 + README.md | 189 +- SECURITY.md | 79 - app.json | 29 + app/assets/favicon.ico | Bin 0 -> 334342 bytes app/assets/images/nodegoat_logo.png | Bin 0 -> 613270 bytes app/assets/images/owasplogo.png | Bin 0 -> 18505 bytes app/assets/js/chart/chart-data-morris.js | 120 + app/assets/js/tour/redirects-steps.js | 29 + .../vendor/bootstrap/bootstrap-tour.css | 65 + app/assets/vendor/bootstrap/bootstrap-tour.js | 694 + app/assets/vendor/bootstrap/bootstrap.css | 5909 ++++ app/assets/vendor/bootstrap/bootstrap.js | 11 + app/assets/vendor/chart/morris-0.4.3.min.js | 1 + app/assets/vendor/chart/raphael-min.js | 10 + app/assets/vendor/html5shiv.js | 8 + app/assets/vendor/jquery.min.js | 6 + .../font-awesome/css/font-awesome.min.css | 395 + .../theme/font-awesome/fonts/FontAwesome.otf | Bin 0 -> 63008 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 38239 bytes .../fonts/fontawesome-webfont.svg | 414 + .../fonts/fontawesome-webfont.ttf | Bin 0 -> 80776 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 44476 bytes app/assets/vendor/theme/sb-admin.css | 158 + app/data/allocations-dao.js | 114 + app/data/benefits-dao.js | 43 + app/data/contributions-dao.js | 86 + app/data/memos-dao.js | 39 + app/data/profile-dao.js | 113 + app/data/research-dao.js | 27 + app/data/user-dao.js | 123 + app/routes/allocations.js | 34 + app/routes/benefits.js | 57 + app/routes/contributions.js | 80 + app/routes/error.js | 15 + app/routes/index.js | 85 + app/routes/memos.js | 37 + app/routes/profile.js | 111 + app/routes/research.js | 38 + app/routes/session.js | 277 + app/routes/tutorial.js | 39 + app/views/allocations.html | 53 + app/views/benefits.html | 75 + app/views/contributions.html | 134 + app/views/dashboard.html | 118 + app/views/error-template.html | 14 + app/views/layout.html | 131 + app/views/login.html | 179 + app/views/memos.html | 38 + app/views/profile.html | 84 + app/views/research.html | 30 + app/views/signup.html | 131 + app/views/tutorial/a1.html | 409 + app/views/tutorial/a10.html | 59 + app/views/tutorial/a2.html | 310 + app/views/tutorial/a3.html | 243 + app/views/tutorial/a4.html | 81 + app/views/tutorial/a5.html | 132 + app/views/tutorial/a6.html | 124 + app/views/tutorial/a7.html | 93 + app/views/tutorial/a8.html | 103 + app/views/tutorial/a9.html | 177 + app/views/tutorial/layout.html | 101 + app/views/tutorial/redos.html | 64 + app/views/tutorial/ssrf.html | 50 + artifacts/cert/server.crt | 13 + artifacts/cert/server.key | 15 + artifacts/db-reset.js | 135 + config/config.js | 15 + config/env/all.js | 14 + config/env/development.js | 14 + config/env/production.js | 1 + config/env/test.js | 8 + cypress.json | 10 + docker-compose.yml | 17 + nodemon.json | 7 + package-lock.json | 27516 ++++++++++++++++ package.json | 65 + server.js | 157 + set-up-cloud.groovy | 308 - test/e2e/fixtures/users/admin.json | 4 + test/e2e/fixtures/users/new_user.json | 6 + test/e2e/fixtures/users/user.json | 4 + test/e2e/integration/allocations_spec.js | 48 + test/e2e/integration/benefits_spec.js | 54 + test/e2e/integration/contributions_spec.js | 55 + test/e2e/integration/dashboard_spec.js | 38 + test/e2e/integration/general_spec.js | 77 + test/e2e/integration/learn_spec.js | 20 + test/e2e/integration/login_spec.js | 92 + test/e2e/integration/logout_spec.js | 30 + test/e2e/integration/memos_spec.js | 49 + test/e2e/integration/profile_spec.js | 70 + test/e2e/integration/research_spec.js | 46 + test/e2e/integration/signup_spec.js | 76 + test/e2e/integration/tutorial_spec.js | 73 + test/e2e/plugins/index.js | 23 + test/e2e/support/commands.js | 36 + test/e2e/support/index.js | 2 + test/e2e/tsconfig.json | 12 + test/security/profile-test.js | 290 + 107 files changed, 41802 insertions(+), 483 deletions(-) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 Dockerfile create mode 100644 Gruntfile.js delete mode 100644 Jenkinsfile create mode 100644 LICENSE create mode 100644 Procfile delete mode 100644 SECURITY.md create mode 100644 app.json create mode 100644 app/assets/favicon.ico create mode 100644 app/assets/images/nodegoat_logo.png create mode 100644 app/assets/images/owasplogo.png create mode 100644 app/assets/js/chart/chart-data-morris.js create mode 100644 app/assets/js/tour/redirects-steps.js create mode 100755 app/assets/vendor/bootstrap/bootstrap-tour.css create mode 100755 app/assets/vendor/bootstrap/bootstrap-tour.js create mode 100644 app/assets/vendor/bootstrap/bootstrap.css create mode 100644 app/assets/vendor/bootstrap/bootstrap.js create mode 100644 app/assets/vendor/chart/morris-0.4.3.min.js create mode 100644 app/assets/vendor/chart/raphael-min.js create mode 100755 app/assets/vendor/html5shiv.js create mode 100644 app/assets/vendor/jquery.min.js create mode 100644 app/assets/vendor/theme/font-awesome/css/font-awesome.min.css create mode 100644 app/assets/vendor/theme/font-awesome/fonts/FontAwesome.otf create mode 100644 app/assets/vendor/theme/font-awesome/fonts/fontawesome-webfont.eot create mode 100644 app/assets/vendor/theme/font-awesome/fonts/fontawesome-webfont.svg create mode 100644 app/assets/vendor/theme/font-awesome/fonts/fontawesome-webfont.ttf create mode 100644 app/assets/vendor/theme/font-awesome/fonts/fontawesome-webfont.woff create mode 100644 app/assets/vendor/theme/sb-admin.css create mode 100644 app/data/allocations-dao.js create mode 100644 app/data/benefits-dao.js create mode 100644 app/data/contributions-dao.js create mode 100644 app/data/memos-dao.js create mode 100644 app/data/profile-dao.js create mode 100644 app/data/research-dao.js create mode 100644 app/data/user-dao.js create mode 100644 app/routes/allocations.js create mode 100644 app/routes/benefits.js create mode 100644 app/routes/contributions.js create mode 100644 app/routes/error.js create mode 100644 app/routes/index.js create mode 100644 app/routes/memos.js create mode 100644 app/routes/profile.js create mode 100644 app/routes/research.js create mode 100644 app/routes/session.js create mode 100644 app/routes/tutorial.js create mode 100644 app/views/allocations.html create mode 100644 app/views/benefits.html create mode 100644 app/views/contributions.html create mode 100644 app/views/dashboard.html create mode 100644 app/views/error-template.html create mode 100644 app/views/layout.html create mode 100644 app/views/login.html create mode 100644 app/views/memos.html create mode 100644 app/views/profile.html create mode 100644 app/views/research.html create mode 100644 app/views/signup.html create mode 100644 app/views/tutorial/a1.html create mode 100644 app/views/tutorial/a10.html create mode 100644 app/views/tutorial/a2.html create mode 100644 app/views/tutorial/a3.html create mode 100644 app/views/tutorial/a4.html create mode 100644 app/views/tutorial/a5.html create mode 100644 app/views/tutorial/a6.html create mode 100644 app/views/tutorial/a7.html create mode 100644 app/views/tutorial/a8.html create mode 100644 app/views/tutorial/a9.html create mode 100644 app/views/tutorial/layout.html create mode 100644 app/views/tutorial/redos.html create mode 100644 app/views/tutorial/ssrf.html create mode 100644 artifacts/cert/server.crt create mode 100644 artifacts/cert/server.key create mode 100644 artifacts/db-reset.js create mode 100644 config/config.js create mode 100755 config/env/all.js create mode 100755 config/env/development.js create mode 100755 config/env/production.js create mode 100755 config/env/test.js create mode 100644 cypress.json create mode 100644 docker-compose.yml create mode 100644 nodemon.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 server.js delete mode 100644 set-up-cloud.groovy create mode 100644 test/e2e/fixtures/users/admin.json create mode 100644 test/e2e/fixtures/users/new_user.json create mode 100644 test/e2e/fixtures/users/user.json create mode 100644 test/e2e/integration/allocations_spec.js create mode 100644 test/e2e/integration/benefits_spec.js create mode 100644 test/e2e/integration/contributions_spec.js create mode 100644 test/e2e/integration/dashboard_spec.js create mode 100644 test/e2e/integration/general_spec.js create mode 100644 test/e2e/integration/learn_spec.js create mode 100644 test/e2e/integration/login_spec.js create mode 100644 test/e2e/integration/logout_spec.js create mode 100644 test/e2e/integration/memos_spec.js create mode 100644 test/e2e/integration/profile_spec.js create mode 100644 test/e2e/integration/research_spec.js create mode 100644 test/e2e/integration/signup_spec.js create mode 100644 test/e2e/integration/tutorial_spec.js create mode 100644 test/e2e/plugins/index.js create mode 100644 test/e2e/support/commands.js create mode 100644 test/e2e/support/index.js create mode 100644 test/e2e/tsconfig.json create mode 100644 test/security/profile-test.js diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..09a62cc --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all project spaces, and it also applies when +an individual is representing the project or its community in public spaces. +Examples of representing a project or community include using an official +project e-mail address, posting via an official social media account, or acting +as an appointed representative at an online or offline event. Representation of +a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at chetan.karande@owasp.org. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..4f2d3df --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,13 @@ +## Contributing + +Contributions from community are key to make NodeGoat a high quality comprehensive resource. Lets make NodeGoat awesome together! + +### Ways to Contribute +Depending on your preference, you can contribute in various ways. Here are tasks planned for [upcoming release](https://github.com/OWASP/NodeGoat/milestones). +You can also open an issue, sending a PR, or get in touch on [Gitter Chat](https://gitter.im/OWASP/NodeGoat) or [Slack](https://owasp.slack.com/messages/project-nodegoat/) + +If sending PR, once code is ready to commit, run: +``` +npm run precommit +``` +This command uses `js-beautifier` to indent the code and verifies these [coding standards](https://github.com/OWASP/NodeGoat/blob/master/.jshintrc) using `jsHint`. Please resolve all `jsHint` errors before committing the code. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..91a5b43 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM node:12-alpine +ENV WORKDIR /usr/src/app/ +WORKDIR $WORKDIR +COPY package*.json $WORKDIR +RUN npm install --production --no-cache + +FROM node:12-alpine +ENV USER node +ENV WORKDIR /home/$USER/app +WORKDIR $WORKDIR +COPY --from=0 /usr/src/app/node_modules node_modules +RUN chown $USER:$USER $WORKDIR +COPY --chown=node . $WORKDIR +# In production environment uncomment the next line +#RUN chown -R $USER:$USER /home/$USER && chmod -R g-s,o-rx /home/$USER && chmod -R o-wrx $WORKDIR +# Then all further actions including running the containers should be done under non-root user. +USER $USER +EXPOSE 4000 diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..f826cc4 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,194 @@ +"use strict"; + +var exec = require("child_process").exec; + +var APP_JS_FILES = ["app/assets/js/**/*.js", "config/**/*.js", "app/data/**/*.js", + "app/routes/**/*.js", "server.js" +]; + +var SUPPORT_JS_FILES = ["Gruntfile.js", "artifacts/**/*.js", "test/**/*.js"]; + +var JS_FILES = APP_JS_FILES.concat(SUPPORT_JS_FILES); + + +module.exports = function(grunt) { + // Project Configuration + grunt.initConfig({ + pkg: grunt.file.readJSON("package.json"), + watch: { + js: { + files: APP_JS_FILES, + tasks: ["jshint"], + options: { + livereload: true + } + }, + support: { + files: SUPPORT_JS_FILES, + tasks: ["jshint"] + }, + html: { + files: ["app/views/**"], + options: { + livereload: true + } + }, + css: { + files: ["app/assets/css/**"], + options: { + livereload: true + } + } + }, + jshint: { + all: JS_FILES, + options: { + jshintrc: true + } + }, + jsbeautifier: { + files: JS_FILES.concat(["app/views/**", "app/assets/css/**"]), + options: { + html: { + braceStyle: "collapse", + indentChar: " ", + indentScripts: "keep", + indentSize: 4, + maxPreserveNewlines: 10, + preserveNewlines: true, + unformatted: ["a", "sub", "sup", "b", "i", "u", "pre"], + wrapLineLength: 0 + }, + css: { + indentChar: " ", + indentSize: 4 + }, + js: { + braceStyle: "collapse", + breakChainedMethods: false, + e4x: false, + evalCode: false, + indentChar: " ", + indentLevel: 0, + indentSize: 4, + indentWithTabs: false, + jslintHappy: false, + keepArrayIndentation: false, + keepFunctionIndentation: false, + maxPreserveNewlines: 10, + preserveNewlines: true, + spaceBeforeConditional: true, + spaceInParen: false, + unescapeStrings: false, + wrapLineLength: 0 + } + } + }, + concurrent: { + tasks: ["nodemon", "watch"], + options: { + logConcurrentOutput: true + } + }, + if: { + testSecurityDependenciesInstalled: { + options: { + test: function() { + console.log("Checking to see if chromedriver is installed."); + try { + return require.resolve("chromedriver"); + } catch (e) { + console.log(e); + console.log("We will now try to install it."); + console.log("If this fails, please try installing manually,"); + console.log("there may be some help here:"); + console.log("https://github.com/vuejs/vue-router/issues/261#issuecomment-218618180"); + throw e; + } + } + }, + ifTrue: ["mochaTest:security"], + ifFalse: ["npm-install:chromedriver@^2.21.2", "mochaTest:security"] + } + }, + mochaTest: { + options: { + reporter: "spec" + }, + unit: { + src: ["test/unit/*.js"], + }, + security: { + src: ["test/security/*.js"] + } + }, + env: { + test: { + NODE_ENV: "test" + } + }, + retire: { + js: [], + node: ["./"], + options: { + verbose: true, + packageOnly: true, + jsRepository: "https://raw.github.com/bekk/retire.js/master/repository/jsrepository.json", + nodeRepository: "https://raw.github.com/bekk/retire.js/master/repository/npmrepository.json", + } + } + + }); + + // Load NPM tasks + grunt.loadNpmTasks("grunt-contrib-watch"); + grunt.loadNpmTasks("grunt-contrib-jshint"); + grunt.loadNpmTasks("grunt-mocha-test"); + grunt.loadNpmTasks("grunt-nodemon"); + grunt.loadNpmTasks("grunt-concurrent"); + grunt.loadNpmTasks("grunt-env"); + grunt.loadNpmTasks("grunt-jsbeautifier"); + grunt.loadNpmTasks("grunt-retire"); // run as: grunt retire + grunt.loadNpmTasks("grunt-if"); + grunt.loadNpmTasks("grunt-npm-install"); + + // Making grunt default to force in order not to break the project. + grunt.option("force", true); + + grunt.registerTask("db-reset", "(Re)init the database.", function(arg) { + var finalEnv = process.env.NODE_ENV || arg || "development"; + var done; + + done = this.async(); + var cmd = process.platform === "win32" ? "NODE_ENV=" + finalEnv + " & " : "NODE_ENV=" + finalEnv + " "; + + exec( + cmd + "node artifacts/db-reset.js", + function(err, stdout, stderr) { + if (err) { + grunt.log.error("db-reset:"); + grunt.log.error(err); + grunt.log.error(stderr); + } else { + grunt.log.ok(stdout); + } + done(); + } + ); + }); + + // Code Validation, beautification task(s). + grunt.registerTask("precommit", ["jsbeautifier", "jshint"]); + + // Test task. + grunt.registerTask("test", ["env:test", "mochaTest:unit"]); + + // Security test task. + grunt.registerTask("testsecurity", ["env:test", "if:testSecurityDependenciesInstalled"]); + + // start server. + grunt.registerTask("run", ["precommit", "concurrent"]); + + // Default task(s). + grunt.registerTask("default", ["precommit", "concurrent"]); +}; diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 389f34b..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,24 +0,0 @@ -pipeline { - agent { - label 'maven-node' - } - stages { - stage('Pull Source') { - // Get some code from a GitHub repository - steps { - git url: 'https://github.com/OWASP-Benchmark/BenchmarkJava.git' - } - } - stage('Build & Install') { - steps { - echo "Performing maven build" - sh 'mvn clean install' - } - } - stage('Nexus Lifecycle Evaluation') { - steps { - nexusPolicyEvaluation failBuildOnNetworkError: false, iqApplication: "${env.JOB_BASE_NAME}", iqStage: 'build', jobCredentialsId: '' - } - } - } -} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..37ec93a --- /dev/null +++ b/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..3360097 --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: ./node_modules/.bin/forever -m 5 server.js diff --git a/README.md b/README.md index 31edc4d..6b3754f 100644 --- a/README.md +++ b/README.md @@ -1,117 +1,162 @@ -# Sonatype Lifecycle CI Examples -CI example builds and Sonatype Lifecycle analysis for different languages. +# NodeGoat -Each of the examples are split into separate Git branches, so they can easily automatically be pulled into a CI multibranch build job, as explained below for Jenkins CI. +Being lightweight, fast, and scalable, Node.js is becoming a widely adopted platform for developing web applications. This project provides an environment to learn how OWASP Top 10 security risks apply to web applications developed using Node.js and how to effectively address them. -|Language |Build System |Lifecycle Integration |Git Branch| -|----------|---------------------|----------------------------------|:-----| -|C++ |cmake |[Sonatype CLI][CLI] |[c++-cmake-opencv](../../tree/c++-cmake-opencv)| -|Java |Gradle/Android Studio|[Sonatype CLI][CLI] |[java-android-gradle-LeafPic](../../tree/java-android-gradle-LeafPic)| -|Java |Gradle/Android Studio|[Sonatype CLI][CLI] |[java-android-gradle-nextcloud](../../tree/java-android-gradle-nextcloud)| -|Java |Maven |[Sonatype Jenkins Plugin][Jenkins]|[java-maven-struts2-rce](../../tree/java-maven-struts2-rce)| -|Java |Maven |[Sonatype Jenkins Plugin][Jenkins]|[java-maven-webgoat](../../tree/java-maven-webgoat)| -|Javascript|NPM |AuditJS |[javascript-auditjs-juiceshop](../../tree/javascript-auditjs-juiceshop)| -|Javascript|NPM |[Sonatype Jenkins Plugin][Jenkins]|[javascript-npm-juiceshop](../../tree/javascript-npm-juiceshop)| -|Javascript|NPM |[Sonatype Jenkins Plugin][Jenkins]|[javascript-npm-nodegoat](../../tree/javascript-npm-nodegoat)| -|PHP |Composer |[Sonatype CLI][CLI] |[php-composer-symfony](../../tree/php-composer-symfony)| -|Python |PIP |Jake |[python-jake-homeassistant](../../tree/python-jake-homeassistant)| -|Python |PIP |[Sonatype Jenkins Plugin][Jenkins]|[python-pip-homeassistant](../../tree/python-pip-homeassistant)| -|Rust |Rust |[Sonatype Jenkins Plugin][Jenkins]|[rust-rust-story](../../tree/rust-rust-story)| +## Getting Started -To make the builds repeatable and simple, this project include Jenkins Docker build nodes provided as Docker containers with a preconfigured build environment for each ecosystem; for example for Maven build example, the container [preconfigures Maven and Java](https://github.com/sonatype-nexus-community/nexus-ci-examples/blob/java-maven-struts2-rce/jenkins-node-maven/Dockerfile). The Dockerfile and supporting content are provided with each build example branch. +OWASP Top 10 for Node.js web applications: -## Usage instructions for Jenkins -### Jenkins setup +### Know it! -You will need the Jenkins "Docker" and “Nexus Platform” plugins +This application bundled a tutorial page that explains the OWASP Top 10 vulnerabilities and how to fix them. -Jenkins -> Manage Jenkins -> Manage Plugins -> Available - Type: “Nexus Platform” in the search box - Select the Nexus Platform plugin, then “Install without restart” +Once the application is running, you can access the tutorial page at [http://localhost:4000/tutorial](http://localhost:4000/tutorial) (or the port you have configured). -### Configure the Nexus Plugin -Jenkins -> Manage Jenkins -> Configure System +### Do it! -Scroll down to the Sonatype Nexus section +[A Vulnerable Node.js App for Ninjas](http://nodegoat.herokuapp.com/) to exploit, toast, and fix. You may like to [set up your own copy](#how-to-set-up-your-copy-of-nodegoat) of the app to fix and test vulnerabilities. Hint: Look for comments in the source code. -“Add IQ Server” +##### Default user accounts -and add the IQ server configuration and cridentials, you can check the connection on this page. +The database comes pre-populated with these user accounts created as part of the seed data - +* Admin Account - u:`admin` p:`Admin_123` +* User Accounts (u:`user1` p:`User1_123`), (u:`user2` p:`User2_123`) +* New users can also be added using the sign-up page. -### Install the Docker Plugin -Jenkins -> Manage Jenkins -> Manage Plugins -> Available - Type: “Docker” in the search box - Select the “Docker” plugin (not the Docker API plugin) +## How to Set Up Your Copy of NodeGoat -Select “Download now and install after restart” - Select the “Restart after download when no jobs are running” +### OPTION 1 - Run NodeGoat on your machine -### Configure the Docker Cloud -The groovy scipt on the project can automate the setup of the Docker plugin. - Click on the set-up-cloud.groovy file - Click the “raw” button near the top - Copy the entire file +1) Install [Node.js](http://nodejs.org/) - NodeGoat requires Node v8 or above -Login to Jenkins: - Jenkins -> Manage Jenkins -> Script Console (it’s under Tools and Actions) +2) Clone the github repository: + ``` + git clone https://github.com/OWASP/NodeGoat.git + ``` -Paste the text/copy buffer into the window +3) Go to the directory: + ``` + cd NodeGoat + ``` -Search for 'IQserver' and change the IQ URL to match you system configuration (bear in mind that this is from within a docker build node, not from the Jenkins machine itself) -For example if you use Docker Desktop and your IQ server is running on the same host as docker you would use: http://host.docker.internal:8070 -You will also need to configure the location the system can use to reach your docker host. For a local Jenkins and Docker install the unix socket in the default config will work, for other systems, such as Jenkins within docker you will need to mount the socket as a volume or expose the API to http. +4) Install node packages: + ``` + npm install + ``` +5) Set up MongoDB. You can either install MongoDB locally or create a remote instance: -### Jenkins Job Configuration -Before configuring this, you need to create a GitHub token for Jenkins to access the GitHub repository with. Failure to do this will result in errors caused by hitting the GitHub API limits. + * Using local MongoDB: + 1) Install [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) + 2) Start [mongod](http://docs.mongodb.org/manual/reference/program/mongod/#bin.mongod) -### Create a GitHub “Token” -Open http://www.github.com and “Signin”. You may need to provide your 2FA token using Google Authenticator. + * Using remote MongoDB instance: + 1) [Deploy a MongoDB Atlas free tier cluster](https://docs.atlas.mongodb.com/tutorial/deploy-free-tier-cluster/) (M0 Sandbox) + 2) [Enable network access](https://docs.atlas.mongodb.com/security/add-ip-address-to-list/) to the cluster from your current IP address + 3) [Add a database user](https://docs.atlas.mongodb.com/tutorial/create-mongodb-user-for-cluster/) to the cluster + 4) Set the `MONGODB_URI` environment variable to the connection string of your cluster, which can be viewed in the cluster's + [connect dialog](https://docs.atlas.mongodb.com/tutorial/connect-to-your-cluster/#connect-to-your-atlas-cluster). Select "Connect your application", + set the driver to "Node.js" and the version to "2.2.12 or later". This will give a connection string in the form: + ``` + mongodb://:@/?ssl=true&replicaSet=&authSource=admin&retryWrites=true&w=majority + ``` + The `` and `` fields need filling in with the details of the database user added earlier. The `` field sets the name of the + database nodegoat will use in the cluster (eg "nodegoat"). The other fields will already be filled in with the correct details for your cluster. -Click on your user icon in the upper right corner -> Settings +6) Populate MongoDB with the seed data required for the app: + ``` + npm run db:seed + ``` + By default this will use the "development" configuration, but the desired config can be passed as an argument if required. -At the bottom left -> Developer settings -> Personal access tokens +7) Start the server. You can run the server using node or nodemon: + * Start the server with node. This starts the NodeGoat application at [http://localhost:4000/](http://localhost:4000/): + ``` + npm start + ``` + * Start the server with nodemon, which will automatically restart the application when you make any changes. This starts the NodeGoat application at [http://localhost:5000/](http://localhost:5000/): + ``` + npm run dev + ``` -[Generate new token] +#### Customizing the Default Application Configuration +By default the application will be hosted on port 4000 and will connect to a MongoDB instance at localhost:27017. To change this set the environment variables `PORT` and `MONGODB_URI`. -### Create the Jenkins job +Other settings can be changed by updating the [config file](https://github.com/OWASP/NodeGoat/blob/master/config/env/all.js). -Jenkins -> Create a job +### OPTION 2 - Run NodeGoat on Docker - Enter an item name: Nexus Example Builds +The repo includes the Dockerfile and docker-compose.yml necessary to set up the app and db instance, then connect them together. - Scroll to the bottom and select: Multibranch Pipeline. -> OK +1) Install [docker](https://docs.docker.com/installation/) and [docker compose](https://docs.docker.com/compose/install/) +2) Clone the github repository: + ``` + git clone https://github.com/OWASP/NodeGoat.git + ``` +3) Go to the directory: + ``` + cd NodeGoat + ``` - Display Name: Nexus Example Builds +4) Build the images: + ``` + docker-compose build + ``` - Branch Sources -> Add source -> GitHub +5) Run the app, this starts the NodeGoat application at http://localhost:4000/: + ``` + docker-compose up + ``` - Credentials: Add -> Jenkins +### OPTION 3 - Deploy to Heroku - Username: @sonatype.com +This option uses a free ($0/month) Heroku node server. - Password: Paste your token password +Though not essential, it is recommended that you fork this repository and deploy the forked repo. +This will allow you to fix vulnerabilities in your own forked version, then deploy and test it on Heroku. - ID: NexusExampleBuilds-GitHub +1) Set up a publicly accessible MongoDB instance: + 1) [Deploy a MongoDB Atlas free tier cluster](https://docs.atlas.mongodb.com/tutorial/deploy-free-tier-cluster/) (M0 Sandbox) + 2) [Enable network access](https://docs.atlas.mongodb.com/security/ip-access-list/#add-ip-access-list-entries) to the cluster from anywhere (CIDR range 0.0.0.0/0) + 3) [Add a database user](https://docs.atlas.mongodb.com/tutorial/create-mongodb-user-for-cluster/) to the cluster - Description: NexusExampleBuilds-GitHub +2) Deploy NodeGoat to Heroku by clicking the button below: - [Add] + [![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy) - Credentials: Select NexusExampleBuilds-GitHub + In the Create New App dialog, set the `MONGODB_URI` config var to the connection string of your MongoDB Atlas cluster. + This can be viewed in the cluster's [connect dialog](https://docs.atlas.mongodb.com/tutorial/connect-to-your-cluster/#connect-to-your-atlas-cluster). + Select "Connect your application", set the driver to "Node.js" and the version to "2.2.12 or later". + This will give a connection string in the form: + ``` + mongodb://:@/?ssl=true&replicaSet=&authSource=admin&retryWrites=true&w=majority + ``` + The `` and `` fields need filling in with the details of the database user added earlier. The `` field sets the name of the + database nodegoat will use in the cluster (eg "nodegoat"). The other fields will already be filled in with the correct details for your cluster. - Repository HTTPS URL: https://github.com/sonatype-nexus-community/nexus-ci-examples.git +## Report bugs, Feedback, Comments - [Validate] +* Open a new [issue](https://github.com/OWASP/NodeGoat/issues) or contact team by joining chat at [Slack](https://owasp.slack.com/messages/project-nodegoat/) or [![Join the chat at https://gitter.im/OWASP/NodeGoat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/OWASP/NodeGoat?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - Scroll to the bottom and select “Save” +## Contributing +Please Follow [the contributing guide](CONTRIBUTING.md) +## Code Of Conduct (CoC) -At this point – Builds for all the platforms/eco-systems will automatically kick off. +This project is bound by a [Code of Conduct](CODE_OF_CONDUCT.md). -[CLI]: https://help.sonatype.com/en/sonatype-iq-cli.html -[Jenkins]: https://help.sonatype.com/en/sonatype-platform-plugin-for-jenkins.html \ No newline at end of file +## Contributors + +Here are the amazing [contributors](https://github.com/OWASP/NodeGoat/graphs/contributors) to the NodeGoat project. + +## Supports + +- Thanks to JetBrains for providing licenses to fantastic [WebStorm IDE](https://www.jetbrains.com/webstorm/) to build this project. + +## License + +Code licensed under the [Apache License v2.0.](http://www.apache.org/licenses/LICENSE-2.0) diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 35d4abc..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,79 +0,0 @@ - - -# Reporting Security Vulnerabilities - -## When to report - -First check -[Important advisories of known security vulnerabilities in Sonatype products](https://support.sonatype.com/hc/en-us/sections/203012668-Security-Advisories) -to see if this has been previously reported. - -## How to report - -Please email reports regarding security related issues you find to [mailto:security@sonatype.com](security@sonatype.com). - -Use our public key below to keep your message safe. - -## What to include - -Please use a descriptive subject line in your email report. - -Your name and/or affiliation. - -A detailed technical description of the vulnerability, attack scenario and where -possible, how we can reproduce your findings. - -Provide us with a secure way to respond. - -## What to expect - -Your email will be acknowledged within 1 - 2 business days, and you'll receive a -more detailed response to your email within 7 business days. - -We ask that everyone please follow responsible disclosure practices and allow -time for us to release a fix prior to public release. - -Once an issue is reported, Sonatype uses the following disclosure process: - -When a report is received, we confirm the issue and determine its severity. - -If third-party services or software require mitigation before publication, those -projects will be notified. - -## Our public key - -```console ------BEGIN PUBLIC KEY BLOCK----- -mQENBFF+a9ABCADQWSAAU7w9i71Zn3TQ6k7lT9x57cRdtX7V709oeN/c/1it+gCw -onmmCyf4ypor6XcPSOasp/x0s3hVuf6YfMbI0tSwJUWWihrmoPGIXtmiSOotQE0Q -Sav41xs3YyI9LzQB4ngZR/nhp4YhioD1dVorD6LGXk08rvl2ikoqHwTagbEXZJY7 -3VYhW6JHbZTLwCsfyg6uaSYF1qXfUxHPOiHYKNbhK/tM3giX+9ld/7xi+9f4zEFQ -eX9wcRTdgdDOAqDOK7MV30KXagSqvW0MgEYtKX6q4KjjRzBYjkiTdFW/yMXub/Bs -5UckxHTCuAmvpr5J0HIUeLtXi1QCkijyn8HJABEBAAG0KVNvbmF0eXBlIFNlY3Vy -aXR5IDxzZWN1cml0eUBzb25hdHlwZS5jb20+iQE4BBMBAgAiBQJRfmvQAhsDBgsJ -CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAgkmxsNtgwfUzbCACLtCgieq1kJOqo -2i136ND5ZOj31zIzNENLn8dhSg5zQwTHOcntWAtS8uCNq4fSlslwvlbPYWTLD7fE -iJn1z7BCU8gBk+pkAJJFWEPweMVt+9bYQ4HfKceGbJeuwBBhS34SK9ZIp9gfxxfA -oTm0aGYwKR5wH3sqL/mrhwKhPt9wXR4qwlE635STEX8wzJ5SBqf3ArJUtCp1rzgR -Dx+DiZed5HE1pOI2Kyb6O80bm485WThPXxpvp3bfzTNYoGzeLi/F7WkmgggkXxsT -Pyd0sSx0B/MO4lJtQvEBlIHDFno9mXa30fKl+rzp2geG5UxNHJUjaC5JhfWLEXEX -wV0ErBsmuQENBFF+a9ABCADXj04+GLIz8VCaZH554nUHEhaKoiIXH3Tj7UiMZDqy -o4WIw2RFaCQNA8T0R5Q0yxINU146JQMbA2SN59AGcGYZcajyEvTR7tLG0meMO6S0 -JWpkX7s3xaC0s+5SJ/ba00oHGzW0aotgzG9BWA5OniNHK7zZKMVu7M80M/wB1RvK -x775hAeJ+8F9MDJ+ijydBtaOfDdkbg+0kU1xR6Io+vVLPk38ghlWU8QFP4/B0oWi -jK4xiDqK6cG7kyH9kC9nau+ckH8MrJ/RzEpsc4GRwqS4IEnvHWe7XbgydWS1bCp6 -8uP5ma3d02elQmSEa+PABIPKnZcAf1YKLr9O/+IzEdOhABEBAAGJAR8EGAECAAkF -AlF+a9ACGwwACgkQIJJsbDbYMH3WzAf/XOm4YQZFOgG2h9d03m8me8d1vrYico+0 -pBYU9iCozLgamM4er9Efb+XzfLvNVKuqyR0cgvGszukIPQYeX58DMrZ07C+E0wDZ -bG+ZAYXT5GqsHkSVnMCVIfyJNLjR4sbVzykyVtnccBL6bP3jxbCP1jJdT7bwiKre -1jQjvyoL0yIegdiN/oEdmx52Fqjt4NkQsp4sk625UBFTVISr22bnf60ZIGgrRbAP -DU1XMdIrmqmhEEQcXMp4CeflDMksOmaIeAUkZY7eddnXMwQDJTnz5ziCal+1r0R3 -dh0XISRG0NkiLEXeGkrs7Sn7BAAsTsaH/1zU6YbvoWlMlHYT6EarFQ== =sFGt ------END PUBLIC KEY BLOCK----- -``` diff --git a/app.json b/app.json new file mode 100644 index 0000000..1780b83 --- /dev/null +++ b/app.json @@ -0,0 +1,29 @@ +{ + "name": "OWASP NodeGoat", + "description": "Educational tool to learn about OWASP Top 10 for node.js apps.", + "keywords": [ + "security", + "node.js", + "OWASP Top 10" + ], + "website": "https://www.owasp.org/index.php/Projects/OWASP_Node_js_Goat_Project", + "logo": "https://www.owasp.org/skins/owasplogo.png", + "success_url": "/login", + "scripts": { + "postdeploy": "node artifacts/db-reset.js" + }, + "env": { + "MONGODB_URI": { + "description": "Connection string for MongoDB database to use. Must be publicly accessible.", + "value": "" + }, + "NODE_ENV": { + "description": "NODE_ENV for build and runtime. Must be in lowercase for Heroku build process.", + "value": "production" + }, + "NPM_CONFIG_ONLY": { + "description": "Controls devDependency install: \"production\" = skip, \"all\" = install", + "value": "production" + } + } +} diff --git a/app/assets/favicon.ico b/app/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..280e0131ed6f2edeafd3a33c7eb32674d232cee2 GIT binary patch literal 334342 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 R<%5&G&RuES2O?AO{{VchhKK+F literal 0 HcmV?d00001 diff --git a/app/assets/images/nodegoat_logo.png b/app/assets/images/nodegoat_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fb755a894856da2abff6ec0227fc36af7b940a14 GIT binary patch literal 613270 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"Rez-fuRV-~< zo)ek8<&GaL)f|9=S|Q}cmyEg$ZCsFH=#NV5PgEpgu%7#lvPmFujc;zOwUyX@&DgGy zsJI<^W#f{9aW74?g7y_q-HpcN{feCJ%=4GdL;DcJ4281XafqAGqGOqUZ2rW1L^U6v z0@SlYi4gjG$5uy7hMI_hc*h9$9i`bL56UT4!$RhNu8UhbLm}kGrt&2h@wk zXgmU95FzmJCv6`CI}NHT9AH+9;8tif5+PJS)8$!{P=KdxQMnqL&mlz|7`JO3b`@wy z8qNb|ltN+{kk)S+T%^d$2@)@>wNMZN2WZ4p65ESXL2G`YXdA@6L;%V}UzF6^kqxn{ zCVJQ7Rk%DumX@$rp+pExz7#6%R6k0*>|C4HzBDwul&D&K{J?N9{VOrf9aZ8Yb3*+pLr{f(z8_t)Y;>s~8_8%wRTq&;!*@sNDKy|_fi^h+gE>&blhMfH7$F?-HGG@svsaT5}*n%*mY01t?v~*GT+0IKMk9UC85lP2X24te^Sp zS0^Fx#C-AW?`!?qp=@sjUbg43m8{xB1#3{WCqXa1Qxa;fv)V5IE4T_gfgOK^G}CA- zS^*k_AY`e+E{QV1bX?4{e$wJgH1ug#;Ui~QXJ|iyLR_PfhLW{YS+q$dmXsb@EsV@D zv9!LQq*U}fP=ODLG^izO9p4@A7bvwmGmQQ{`5A`-keMS2QE8o#ymMD84FNFGQu1c) zsX2GR(zoKK(n5_7ooQo__j>|C7t}_Eel*`V+5d~$zj4p9jZz1zKLto?v`4E@F}zC>GN1ZA5*7&Iw7Z+DKAS~GY0NzZWS z?_0-GxWVu}VW;_t0chR=u>L76WNo4B(VcC2I|H(ONS)DH_f| zX)@rTV9mbOf)NWcP;aJ)HymPiw!XJ4yA*E=)I4h<43!IpJ7F~1AP%8tykSJWIg~6o zQ!kx6Xd3_qG>(B`3S}bN@*AN?;aqDL77va)NlJEHJZc6jkt~%~_5rk?z&r!s2Rz3U z7e{$S^znYR2)d&7c~r9|V0fkv^n(HX#bFnhPcXC%VBfBC?U5Hg8O^oDJK{8BNlT?E zNBj(>v_iZrVV86V1D->PeRk;YvSCI&0@rN(F|kzy)#oFLX3VSZhKFiNUZ(A1U~{3jb*wnq z4qT^Rr={=j1uGdqq2MkQ&yzK%yaqg|7*Ox~kV@eqJw;>9^+4@g6h=;_+yks*h--Ab zHw!g(LfFnjk|?!Dci7Xc7B^F>xUQwRK!(J>?(RGFCo)oaw}?5VcG4UgT(60fg@KCD zmMHRJ^dI%%dHa)s4`azL?h_KkJ3-Z=$wsMmOWdS7Ku4Z?h|!%h!KFr^3*~:qg4 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�=LM?+x>ZB|?WUUK2gVXVi2e8B32DmBTwcIzH zn0mK7;;Rb&oznQsH&_lv0?iZzTFD0R8W04)Tnx2mceMG)5byEER2H~ zm=2`lY!VPNc{(-X2Jm^N{c#0K6K`!mSNRM>KARtM?Hc(%NMzyPU8phPA_gV(j_p^W z#LQend{pK}A$H5XIryR68&a5|fn#vjNk2>ZXts4XJIg%XERECfS*`>b0e(gn;iI#5UIAdUnj!@;CqL(|Gbrejwn;i@+ z4VCEtmv*9g_fH8!_ytKFk<{8w05(6a)GY zq(Qu>vfR&IlI8yCJ${1K4|E01MPPfne)1I3DUm~oGx^%Ju9SkRNTl{p744beq$%@R zJDqrSYQ51RHwy zy3&wZJcc*SFaPQC{&@S=PVtc+M!fpc%2fAV?t6!?QaXL_zUu?!H-DjhTCrzR}4mYy$q{njCQNb8X7nEK+z$}cV*J#&|jrKV$Y26-C{r4rUa zI0?HC;z5G{ZaD(D*ZmQ1o`s+Sr2qHg@f=2G&j%1CwFhD>gGVH6v8MJ<{w`Oa!c-r` zdToL0S0Ecxvv8o3taCVL89YNB-jqILfBsZPGusjV8~!N0Ioz81n1gJLwZ=sVcgNo~ zpR7u#Y&jHvU|3N<{(1Z>>|rpeoeDE&e5D4G^SSg#JT|g!!I7ny%-o8>h!o%jrF3KP zf%H>bfpnVijlt(k zn-M7#R4iWgeTwHzj7rj>OOzyB?5cHekv#?oy7EyjY+6E}G5gjq_KZ4xKgs5c{bUoo z#09omgvxcbJECr5KPxAELF2Te)8ci|4%v?{(JCHeqo?!*>^$^@HW{#g_KeLN@Kev2 zv%HUJCma*(AQLzpJ^P3cV!(s{RPSFDIBy8nY66d@T7b!taACq{!b%a>8ff1OcA&tX z$SHrJTZGacm`)~G#xejy{FLfQv zsbSdzzu#7wcsaW?S64?j-1RW8gK2`klM)Z3I}*uz7O|+zOl#V%1-|`r8}$6u{Re$_ zR9*rOsviJz0o8^^XRk@X@$dQ*8?q+PitFNgJrsQ&BC++Dt|o$ihHK8a#30I*UYoc)Ea2= zVI23j!;lZ5u7+eR%?s=05@^?-=18ngamZETRZzC2`DN1LCjF z+=yyA|7SoC;<|i8nB-N3iqWt*BW)K12puxezdIMfDH!gCm3W=_x=n1(f2upGhyGNC zgS9*uA7Yk61c;iBiQu0!RN4`1B7GH@)s-qT_ z)$HlKELz`#vGv2h!v}uH+|*w#>2&n)JLKMiAddmdT3IDi1#PF>GM>vJ3^u9;{f$*y z2E-P|n)&3fIz2T)R;D;>9Bbvvm&n!hQgGOAff|}2(KPm!H!eE%9m$j+&l}6xVuEDrT}VD zO`+kbQy@U-luWW0jxm;}nNCBb<2y}&bi0MbYM9@;&dj1*kJYBnkWwpGA>5CH32mLC z0p7tri~fv+wGgXgv3pa;2kC=rCg&n^dpDnwlpK@S%wjbM5H#UCjy68fy`vGv0enBE z;$*+)(pJyYkooB;i>(rCB+x5>dwUCm97xI*K^f)%(1ANvY692R8Wnl<_u9=bamru# zTAL@eF3VssTqkj?2h{`o^k{%C;b09&8>E)1n3rm6ul(AiWBV(9xR(pe1P-cOv~?;; z!7;=#<=HnE=6OM^zIIE4|mMC-qB41`A z4Xc2OHP8m#KM`bn^Kxd^n1~%dQt)qT6Japa${wME78^F}X01H-W!VAXZsgPk>`S#j z%8dgR(HFoo`RFbo0MDBlma%gj*_WUlhgFiqOX`zAlTW!f&cNMa=QYREgVJQor0N`U zN-$~yb!LFox^019kU%BRqsr|4`*qKqL166$tM^0Vm5fTt?AiE53K?HBJOW4T>cdo>-Ty17Gr~$!(%}KH zI6}f4e~F}h<)=vYNwLy^e$&`@62@tRJnIzIX1D8OSRK*wjz%*_7&w7`6UvAah_MjP z;ngom9i&DqqLJGFRg|@4!e-t!wpWJ<7Tlt#Yh2QBI%ak(j?|y<=D7Q;JeIIc8@{D_u(GTq@NFEXEmQTR3r5Gkz$g@Ub>L&HfuNpRk5{|oIE&q;mI z0=6WrqBXTt_$BM|)a%_#TL=6G^TDTl0jno`T^7plF4QfkJ|k-uG~p^F{X7bA7GQ{j zn!2b8w|JCrdKQY+4lHYN4ly_{JT0BL7-ql7APLxL3a(1IK}2K}+&%PrT!VRj;#-;e z=aD+9JKCuz6+h}(^K7I3 zrlgeARW-S-B==NTb-mndZto?(K4 zT#|cQF;H0o#7Y;#HZ7()ZF#P!dO=4}E4`w!b>_LJ6(R+s;I|6-g(W{q$yQV|v|~Bs z;QB17tuvNG5@7g5M?b(1eXnx19pOJL=XVk@uSuP0*JmsoHAUd>?1-5S$z4`k#z zK&E^cO-akmu%G5)DVf+`95Xf@WPiva5L zLBq)}NOcIK{g*cIEf`>ux;v~m((bXK_Sf8Rb0#0Pz1G>d|CQ{`-2(#M=DA&d=F`&7 z>z9UisKbSZ?C&Q*Ojiklj9xME&JEFjyJl;>1ASO zfiBCCDn`}>XgKW_cv6#ZW6iM*`8#v;J{;jH7&0!}vgz93;)Q6dN$rjyJ|Weg{m0S7 z(Dz5y>etc!fk>ma0~z^TKqOp-t{0S-auHNMxT}(iM$ff~fzJPVJ%BT6&$WT|UFLQ} zu@iZ?!b^$MZ~j{QN44(r*Ps$r-sZdCfv$4mfaIM5s($H|Oa$$X$ zZ92TcZTtqSF=8xhi2eC2<4%jwx-Lo@c1^H$31kI>@d~Y^tQO?hyZ&@y2FOvzKT)=D z?vWIrlKA{O56~G{fMhnz3ozMnE+%8NS9nU2eI4Vwy`+1k z@#wZpoeG)&bqx`M1fy)Ze1`(A4u7Q-p*FmYV*{RA01l?Lh3Y|%LN57hSn)?#221!Q zQ5WDMXTiT6hzI!n%I3?luP_0F+dWJFPF%BsNpCR<5@DTfd0Oud6vT_(7 zW5b3rTfgF&M3*U10DD9vgV;m_WLA7f(hBx?q50~iZ3txxG;k+|`Gkj9uQhnyXa-jF zXl*;peo4=Ql%k>gVK4&5*F1gNEmS2_oX^PUSF0-C-84Xtl||S|#sV4n37D+Bj*Y5i zKgNuOUzMLQY93JuJOQWP046;~D8y+W*hhpHX>g!yR_Lpja@IT@F0~LC(AcFo=YoMZ z=YLvain?E}-FGCb=8je5Lq!s(BF+m6lvaxi9ISTAi< z5?xc_-swbO>UJ0Z2ewmW5 zqt}`qN3w)&B)rBAPZDlncr9lDU!axDAytfI5xkRg-Os&3zr%H}_*<(^&ui{9D?k60 zd=04-aMpM$(ERDvp#?zz+=6eRDaj{@!8p+a#&xdN>fn-Ys3psg(!fjSQ{U!ZCcJ?S z;8ze&CTU2TA7G*C;8;Qpq~s9zU{L2CMb!;2VSPrt4Q@a;d+&HHC7ewho>Temrf;=; zfpjz99J2q)hmdiQ0?{;_s*;lPGK({n`hC;C(fvXQaEXTkOju$+blGK#65LWrSuB7M zbK+l2)+zS`8Ps~DrXtW^xFV?*9ueRmZa9#yUDfzMre|*6EL;ORdmfH4OpDw8s3U89 zeVJp^6Svn97n1OJnz&nl|`z$RO08=7X&FJeBA{WNV!&q&2RB)Z_3Ch>*Y>yDNkgU99|SSPt#gpS>JAPw zeJYoL1-Ty(6a{0$qAZ>8I~vqHrVQ_Cr(wqpm%`2R^lrHnl5qlXV-Nj!|KGvRDIL0i2~I84*3E{%)MgHCHWPs(g8&7JHt zG3OS%xJ{-th19c@affjqrG)EO1*#7-@43`Nz%#Tz*4UyUWuVh~4r=R$Vr3gaeHfY( zlGN4W3;ZXA8B~J?^e%7lwXT)m7$U?^mT z2$1Mu*QzWQtkKwuR+eTPGN1mXrDqdz9=T3hFyBI$PJ$1h}eN)?M~kT z)oW3=jG^O60_u)N5*T8dgQpfZj3oC`!MiPPTs32eN1U(bnlN>P`eHj}r93-=CiCig z#!2nLTVC$})e=y7$&351fPW@+DI9?INA;`8o51o8txo_S;1&skXAX8x+$oXL3Huyt zdHu$SI4YX8D^NUn#s<&A7y%v$)g>1N8N5_a^?4pT%MY0d=B>vliXi%fG;fi6+fFCO zeTaG`Yu?vN>&)dlI+|)3>0EgxV55A@>$Mig^aC z=Yd1f(oZs}#0HgIO*#M*Im0v6QE&wchp6?Dl{EY-c7tngJdsK}m*!)FZ(mu#79e=O zqK?n$9;MWFd{RPZPsT_3_)-!3t%a%;fKx&~mxa@|UyT!yaRsFIM3YC7-$c`Qi`Bw-^o$@n7cj9TAEm;p#N$bk88A*J5XlqOgwU-j(bFpbR zp?hdU4)bqQ`VPbMB~nVHV3z?6Q;Wt7=VFk1qXz0qIEK(hw`H_Vq6UfzHKVF7F7o=- z-LMJcWbirk(}ybxmv#OCpxmZ)88E!#;Eq|3oD`wl4m>JF_Um})^jXs#?2RiGB zipn0iHf05FIO>5)RTXqNfQ_*2-8g`c@vS^|F5YKV+mMt2u;JOYDal?WVS-HxIkhPD zm#95D$D-lD=7z9dZL2*-aMg~Hdo-{vi4$y+_wO(u0Z-66M+SX@O@RS6HpABr1Dit# z5k=Lx(d8fkt=C}ATv`>s_z}ndsIGE=KM$f%J|Sg-1b%@Hk`a@m{Iu~5_mfBh|AISk zm;$5{h@VPtj^)GeXI%RzS6`n{?t4mKGLsjHcFxJqn? zA>ZF?um1N^e5g)G0zboDm^hK#eu240_!$}wh__B38&bh$TOGU5FSN4@%>^KQD zzf7;OC1XDr`qjGtAt(>&U#j)T>x9?gUt5KEDo~+$#uf45HM~wc?V|dhagwL=xctr?FFAVN6Fq zQ{|>`Z5^d$EBX~Z+lJ0*UT$|e3=alQGa$E%W*BuZa>D@R7+8vVi-ug~B{~!cbs}3Q z$t~51ZVHcR`K;Olf)2wk!4Z$Y0^FrvhmlSqVu#AGtM$b$5JkOw?5zfMPMPE8MZkZ~$NZUhT z++9jgqzct@m#nQr2LetLx#_@SD4CrHRFSp%>ZhE=ql{yE4Hos9LU8J0d0qVaQ!uQX zJ|H*4S?4L^d8|{7?JRyuYG={5d)yts4pLiuG_OIwVxVJ9><_XXE=g7AL_zL>+s|3c zYBazHV?Rv@>UPit0CB0{2%T62@T{ts9Ht8zX}!E&ooY!6@;lk)-q#jdH~M8O+Oh zIIrH6SGl8%C~}VPy@fTZw6~y9*|TA#8wIOueKtc0+wixEC>vgT{2(%Gm|f#9(Bi;> zo=%o7C0U$Zlj5t#q~1W8SM?_D-0GcUy40%c#dO{v6RVaF57K{y|DyJc+W4p-1G7IE z_4CN6L#j02<{cY(^+Tvp+uw|Wy5BFS{Ee94xa(T29#X}93XGf;j1~67pm{3f3y| zD_UTA7DjJ8>u}FV66T~OyB`fu%1&;J>P+X(C&|C%BtZ;Piywe&<$PDa*;$7aZ0FVx zcAU-K=aI!IxZUd_NI~&n6S+L^QkLmMXFd?<*<~M|8pF<6DLhyfJ;JYYleQnGEJLqw zx4p_z5}8eHOcBC%2^G8yU{_mmU4YgvNAE8#yEQL4uz)$ z|8A>H44gL{iNU%+Ybdwm{(V6yo%s1^Oz*#buWizB`%IiTHX$vgHXT zDYc#?`KMfm!dxEs#xJ0hLWsHW4y_cU0dng8u+j}#o7PiKNaNbT$ObM{E~&|C*o~=Y zl^h{LNa<(l0^iQxz%09M%0~6ky2^49G+SPQX3GZHaB6Q!41SdDMAf3oHHnr(!;1zw zu}6~Ta`SG5Cot0>6E;%VG4V8})uyrXzQmb-s(z2?O&eP)+v0^Wa}uZ2*F}N))Y6Vg ztA3f^0+k(uaVC{1R_v1Lc_S(z@ru>5rXv3J2B3~*fwlo(Km#o#BG{$VAo zEwFVG8mBBDik7+I07=4)Z*Z+T0qfXvQ_F?iv0%NBa;W2AfAL%JlbV}04%QMc#JOlrqy?7-h3 z8MctcMP^A_LwC~Q|8aXV>w85z6~P#Ro-l`XNv3{)q1oXD`iP1!vzZi@W?9R+%<|vY zl~Q)bg2|Vly4DTbjrTXy5a!>+U@hMgS_}Z~;7FHr5j@IYpwY3*U5;qlnf&XI3#ybI z3X5WUxO-F5c@AF+2OCBSFHLH#Y9v5wB!@MP~ zfjvk2bK*+nr4`jI-raCkrPVuh-y$!93ftAF>%}Hwb^`!SLAT{KXOp0wHxZSQ&dpC^ zlFF;1b8OIFC35?dP+9x15X_laG?mh%VfwVde~41hBVB0=8kJ zXidEqkw$PPkG2ka&OXp;`465^QjXBwPiWzlEn?}bwjCAny&kCipJ*@jgasS2HUS70 zSJqa#H}Fm{A3B4Xv%d}3l4)CIr?~h-!?g{X%uo3l=7D2&>5@n*h4oj-`~huz#v+3l z&|dB-ZxJ^AB*V9)@u~FSIfG@Kqn!LqC?}1Pf?rY2H^TA=?=7fLXv(ZU(Z)`G&vH_J zXhC@;Ht8(%24A!M8_=7{Axh!m5j6QU2s@JEA)15zalxw9^}O$9g59*Mmy#8#)V6MdgOXa7`8aY& zZTHc%g=@uiuqs!}ws#WFL$dw`n2>NDP8>b8yTi6xk5*M0@;?0b#?y z7&5}~3GE;9gluc4*oI5pLY?8pjtC?Qe=J?<8(8H8Il*X#G%8%%=ln)Gff15;h7y2o7$;cV zUwp*5*v5Bn-i?e4ZR-rnKDrpXEsvfEb6-_>c1sh1#&eDI6W z7Wl#`km*{0r<)kH4Xt;{ZTlwlBc8Xw-#1=9Se7B$<8u^E9MLSey;WgTd8`_*zt^j?7KmiOQF!vG_ z!42xzUlR6fGpX(z_)ImgV8k>*1PKPHmSzd|V3r+pBn#r4-pTzZCulBg!a5+J$?h&u z1LHG|EB;)Nv}lhrnKx&1kCF`B4I4lW$PSF8%A!+puV6^0Tm~F8Uzz$8lfhdAKMyYZ z7K>tBZD+8#I-#B$*QAhgX3(4exK36`Al;cJ3gMqEWA|PLrXf%T$Kq0^&foAgka*ma z`qn9qr0d^ZkG@mhcw^bjw(T)X#$%1^u0?W__MWXz%7g$h z4a0U{OWcxip6Heyw*gfqJi&<)>V4J8e(T?TdXL?y`-IQqqwIMqamiuu%~Q0GPS?NO zR?x=XK$ThjSPTsgs?WQT4Nd|Fc{az{vh-xGnXt68FAq8=_yqNzFf9bGInSwz>EG$l z73y53&GYC!6g;9-e8jQlTx)Dbmafj}7d3VE0(EYWsy^V{mJKem0P4Y-yz+AJaL(?F zlE!yIOhDxj%b0xe_5r|#ofdwJ+zQP0(AaAJ^601FDi&r;Utiq*6{sXn zxcT$#x0_hh+uJr1sKoJol7z#1I{SHD_FPDDsS{6%XW>y#f|eZxEgyhYX3X_etxUk! zL&Ao{)+bRaYI}XQ6C$z@n8eY8RI`9dER9lJ!$;L4 zqQ|y$C8;R%@AP3`MqSX3p<7-SRifvQBo%E+=EvCz3?J#BRpmq{ZNG^sVfxHkAO9z0 z5KjJjrAQ;hwXbdCX`xTRVleG$esWPh58n2*`uCd|KVTr`D1nb!-Vk3Qodzy1KG?Vs z(Bd6rxQM_39+Cc?s0*`+ZOe~yK?XSp0`HqCWTHTxEF|QX1rD0Pd?!Ss@}Ne-wQ&{0 z$Ic^&rC0=#l)1EdsY3|P{3(dz$Qc&^jfLmI(U<`iKD=g+;GHtpq%wB7Ro3!R_tMg(>;jO!1$rTA+ti}f%(8!Ki=A>u zK3nMy3=Xa}rsV#UsEY&4 zwzl1Ug`CsF-FB$#+KJd(L`_nEYi3loT3waNBUQ)|mW>{{B4(q8!=i`xy6WIy(&`d# z)tShJD2&9S92WL~_}!I^q)i{XL>Cn&#q+GZE7!wxpzZVx+?`r55G}DvlGki8R0jTa zz$7x4KS|5j={?|{nebbK=xniKh_Qvk zMn*|!zVkX(>CJP%l&Mii7eb*POR8KcX{sPeDd}onb8Rc{6`20zRA;4kTi=Lm17nK@ zst4&kWJeTRPB4 zm7|^K?Ehb>DJSQ&F3Uu<=16^|nvr(C2**jAp_1hvF5f;a!x1Oz+JYV8?PR2#aGZ-$ zFHxnQEkPSx$g{LXP8CWhpPqT<+=yC~K7iRG=+UktCQZOf*WKrQ+5g6797 z_r%p*>I=w_)GQQ|h-|G3j9;n>Qbob(Z zfrYvoC3UnYR23KBAT_U_kpmQgP>eX%#SC9L?ZLc?bx&f_3dY=PR}2JiekClS<)th2 zEq_g$)Yg7-=i9LE(EMQ()k4fRh}}eJjHNhI7bh5uVYyz@Ty&&fVnhgnyP^=4G-C;&6fN2gAxW~O(sqa%QC(79t-sg% zoO5sYp7T!qzW$lv!RegW`?Wk@ulMWqd|87KG3ZkyFlx~sYI&uBf|RF0bGy4+-hu$9 z71BAKEU$b&bnU%4^S{~h&E`@6+1PW$=);3ME$H~aQ%g6i(>hq$}AOM(^xG!nYs zfyiVguc|8P%$uTwQA}7fxcY>TA~UmAjMEx$WCyB@^9nJt|D~qnxr_qeP&J=T0}NUU znwbvkQ}Q4qQm?8K-Vb?`UWE4F4DA-zC#^!9kNDeO4F#?PUexb@Lw&v-iliTWROk-q zG$jP1-@!C(fr&StQ&F2YPYXr0WWZ0UigZS*XcM8+U_KsV9WOOhl|sn=#^Y1slP7Vv z%A~&Xf`Lp0E*Drr29(loRR0B(-_#g&z{l!3*G$j^rT}j7y2>=F*!$uS4)uE?cr8Oj zlkg#-lRmiXmM{Zn@Z(4`#YnKu-REEwF|86Ez+cu5Xe>zq7^~PGCGD+r@@SNGHyk7{ zR(m`Ve8hYRbufp@-IK_cD-BCl3=Aeg_NRE0i=+#0t{ApQMFpzTHJG%NDvDf$T!Qf8 zUP3X%>|iL4xH^NZfNOW5+yh@mz>XdDt|QfRAw)mcU)c+{1WAKg5)~EpHm}U*yP-s( z&#RgVIL`>edKm>y=t=+ExNL4N?nixT|?nO zK3xMWVBoP8zzuE&Ge^ozvrt~jA_dia@}=ZB=z_mm)l4vh2~cj67oxsc#&Q2QD-%1C zAuxGTR+TtdEwzNoTcDHLJu<0ZwSnP%;9vvC{Xud@ee%ux)@rEm1%;l0uOZMWMvIg` zo?Zleh=G8^1J%F4ipTl@U+|-GeZhX9pkoKrR0>9P4up-9x2wwhi%P z%Pa||bF~&g3!l3hfL6EYS@q=yS}dCCt}I;A=YYAxD6O9F*N(>Uql@;RC@)p|W<%w= zPuTT|3s3}~F%4jowKMcYC_FRl5mL;^q2X6c-o7dL0Fj7)64d0nv4|X#1Mrd%&Z|j6 z&cnv`uU(iCqT%%!2ayceyH9AJS8%RLV2MWp&^W4(Y7*ow-fTX^hXmCiO_NIeE9#7J ziVbi6myq=nD6-)_T@}JH70$DHMuCZwl|!l z=X|D!P4-hpSZH?o!Nm{YqPj&>b9fXm1mXQC6h+wjM7C_0siX*?+~5OX>nw2PyQ<2~ zo5xQD+I(G2n}1d+10rq%J|cAvZII#xK4>M(Dq|XhQ(N3xH?Dz=?#2;fwl*3ExaPZ> zr8?!{mpLKmx0v)bso@eI70aengH9OsTQ{A-AB2y;uozY_ymtLYF6Dr`3dqKSgWRrcr=IrUW|9- zRQ~l)5v3_jC5?-0BEvbiBWa=Pz$Xkm1PaBF0-~%nMreiUxtD8jUD|S30}j%50KxK1ZtJOYR}iK`>zD>+ep+efvVNSumL35Py#bIPtMMGEsWu@J z*O&Vt>*RFXP+2je-<|-{TZp>qtqA06frrqbRHGJkKuIqo@&Fb+OMo!ybrPcMN`Wen z`3#dDON0V5u!_rDkqtI#k)3!H#t`_(Nz5bIOHXpwW_Co1UfyQVBD_=YdQNz&j9T<^ zB?Qz+$7YsfCqdMb&}vbutCHkM@)NjP)U~8WAOcv0pe)-XdrD$jSb4Ukw zP7`ubb`9q6)y$IIQ&UzoJsp)>*!~=jrddhkeRAZS^A06By^zIf=MokW*)6KfWc;0KNT*( zmYy^E6*jvhzKZdSn>J0q51)?ch@Q9@J zaE48flR`XKXpjTN!EpdD>FUJ}HDyR$ll<$mittQ-_L3_}S@NRu@Q7SCMd0D(D;Q_nGrcL+=N>8NzM`kGrS1)LI#t!I{UI8y9U*T~^$4aHVba|$NMVplgmNyiA zFhx)zm`89453z#jQ^bKn4lMNLfr;)J=mvhVJO>I9c{3J4Y zENp;78>>EAWdUIB;$+vQ^f<587 z+lKnCBI28?v%eXb3R_(Q_44$R)zdU`)PiCgwP-`k`~u78;|jS265jd$aNKDk#3wx< zci@*RYGpj)Xw)yIYO^SW^;0`@qx5PnSM`3be1Z|=d9}K_d?-(>zH%?lRCTC`I9jva zx7;-`o=sJ?PqG(o)DfuWf4jm08KuAybD93 z>x!|D)MknZdbvk_<(r||oJmkU7AZI@V2(B=tZ~n7eo34Txy=6r?I6wif}pqCxUr(H zj!!rmJJ_N6LpJK0;~m8=fgmM^n=B&>lHYFQy6;7%2RJS{`tdBMpOQRmr0V?$(7U!i zsQWynFyMcv$@M|@Q8txLY&}l<#59hvN@4)lBmwq;{Lm?qhHV_KI*x&+AXoWjxF*)m zV?w9sKZ>^qxp@(0#G?772kOb9LvCu7ap3;a^>sY{p1biMV0&xJfuFX1Xgc}AcFqP67{*DdJLrB$5hWy2e2#la^O2|KCCxT2&3%{ zya%ZMQ$oDEak^D}a$F8O-SwSP8#AGNgfnVCp(gpB*9!zaV%giI0~IGoUxbi(43r>7 zJ>W_r1%AQurK(j2=P0aNI+(HQE&{98cj4O=sh6yuJ3O1a`lWhtZ6V?#7k^l2KIyAw zO$^R;srR^<92d(%K=BcU9?MQZS=k)+jPoEM-7L^TS{LlPsl~4QFHzXF4^*+X`a1D( z2bCPbS0*YMLS40MB0G3Mnn~DJc_~z;uljw^Z1PvHXQ~|}{hxAUa#BH&jSbs;r*lgw zL<1D>Vat+w+Z@q+i*L_F5$(npV-!epeYG9a@CkBDfkiZsn#jp>wHDc~N9>@V$=dZP1KZH&Am8-H-H#hH z?y|jivR%qgs0A215N=8MVlWZ7X!7*uacNl)A=q^w9($DPFpMG3oy42IAgE44b=c`K z%k_p$B|GT{6-$LxheMb_0|)ANMbP^uh*L7k(<*Y=Rqo=G4Ck!cgSi7AmiCo`6D-7t zF4A7#5~#wJX59=j#F#aqlO|9GpS3e17b`uRSA-(gH9@&%A;daAx6kL3p|6gpO=1aMG+IO5en6>WP6>05;(j5%Jc~Qb^2AJJaYc$ zcTFX)FEJI>pajKX2A#k71N89^6#My@U-f^_EeaBuD?FSCwYK;<3M3Ky zL?DUG4^xn3aiBy0E%z0$7BIVwAVpQ>x%_gYKJdVMrl2bML!r?UNb|pk2&q0KMiBc2 z${2Duld-2v_6eVrPe{P)v*}2I2zq}WnYJdba0lxl%{C|^WhyksZ1sK5@5v>m3Dns- zN4I|BSq5()IOhF`ZNe0dXXA8?x@UpE(ejH-xl!~xQs+SS12!o?KpXjIz~H=`j_M$g z0c{HFKEWW_y@b>pg+)*+n00tYX)fw7Kz520xVD{Nh9DuZJ-L#{%C~?h5mc#}BbfWp zcr4I^u0S1^rxb$5Q%(poz{9rzPi|`4}%mn5`6q+5VqaB*$D=I5qg6>qMV<{^l7w7l5xDh>=evJP3;lYdJ>;RM6XcPJDkgpO2IrZ`C3w_H?-eMc z@(h?seMcMu$lgIhf0K!x+-)*3I>Ub z)1r+6r*PP$rruH+r^Q?*C9^+o4bGy^DD9yb>|rn*BG00UCSit1rTzpjdf4#j+B}Jil{`O78LE_NL=aRb zTznn<8q|k02|7)vOi`+l%2HA1A?Ly!@_a}{ig*PtaUee{CZr2gY@6(*sMXN(ppaao zJ0m%vkNR~!5u7DZ$D=ZpS`oF6h2Yda=r1`2&5`b{ZWv;$JjA>4UREd|H}<+PXs_ZJ zQ=!rm2;o+Jx)H7F6e!|@FR?|*%KCz6rNX4p>V_&v>i8x#Q>X}$ll0RXhWwRU}yD;S*79dF^XOQxTPE+$Oq^U82E&&A)yu4g$iG#r~o%i z?G~JnNQ95*3vIRV2)3bAWX;aViLBekp@e9dfBmp4aH8xIGYzF$P64YBvX8*M)LKE% zl*m*oMlc(}mEAO;gt!pkyr+6E0wL)w{DQTr$)yIxIXLnGsu+QmM51pZkp*7lKrXt>CqQ|m;z3g z?_A`<7$G;Aq>liU3Hylq%10c>M=GLuxxmNC`@qf-@Nw+mhmXC&$xMO%9$ctu&=MRb zwXoq@Q5PnqSc1-CIcwC?A@%K@F7B6ePKX=VMhYYQoJho4^`h#8Ck?C%Iuw z1s$ES!6{o-wT`-&wX;ixXy*8c@%OWLervRROW$*y&Ud&~(RUqrc*5h9~k#HCmct*XgV8(K&w7dyJP=f?CuK_#u5?_9np?0pQ0Cns}XnZ<* ziL3A8!sXkdWplN{eLZFfE*K0QlX8DlyP_cI|9V(Po*3p{%Y1_63yv*QvJHq^^}ZYy zWJ$JZ9=ypSf*Jz+)+3izFeO!BKjZ4_LEaY+m7-}swMAGU$RU9)(du_^gaIAX_$b#g zZaZ^fB^kvQmV*vnJahnjWjzlPt4YBWc(taz5Nu;R6YS%rIVWfovF_B4%&LVgf~V4 z)xmn`zK_nI$V@Sa2D5(B`@!>j(|q^vsI}F;AD)&HQ#5^pmAn4|rV3}aTA>EexE79x ze0Z>f>@-qfP7>2e*2S=Vb`*2`9}!ojA`D&8aq(5d}f>}lo{ zozLc~T{kG+V;17tyv%PS1j@Gnfg*^kn`cHA7BQLtWo3y(ahxfmZftD$G^d(>XVw*? z($o$_obS%E9f%ARr-2qYphjJH{-<;leu~*^XfA-aFhIRWlK&{);w5aDfgb)ib;<~6 zd^#!ol2N*_kR!c-X^AACvKoEV=*C9W8^Qbc>IW)YSd+H_2vl8}_VbYI99d`x?7)B< zGu~c1IIR9-g~xeklK$d{$K&f6jd-iz;oS^`$}>LwCMce0$9>`TpAlp)*`TzQinCm; zctSWVU)Tywe1SZZ4BCr%!l$Lad5nXGx-y-`(zi%A&(-P!o{j$ibrG06sBhc?8`a+a zgD$+NFa;g6E$p8_Bsjd0PlE0&3{*iERIFP1UxgN=w_?>n5tuKiHA7m!rs}rOIo~K7 z1zJ#PvO6h1P`!HrYEI?Kfq?HvVO3b##gKtXAWJZuzanxU#0`*{WYifQy71q*I4@b<$*x4^V%FQGzF z3jq&LQ22NUcLtKv(2EGeJqX_mT0d$$jT&c^=6wj!Hg&1O>DXr!C z1=>XzsOWf@WcCXj=I+CMOHw+6>S2`tW7p~nllX^9KmQQ(<|QcgB}S>;73Yuyh$Bo7 zI%Ie$GAt~>9A-|b-T~!V1}fl}mlKkMV5o$E?E?bOMCW?UL?NGn^_1N&93+M+9M-gD zmxaL!F>Ni*JRZ+Zx7clF)gcTi_4Tg@D?)Bm|HDlbuNl`Wo3F4-Xd8p31i@qt%&rPS zlWfXt1~erxg7i|*TQ`N{F(|3)EQtAJpN}fG-IU7dWDu++DXsT8YFNv+%LJi^BWxcg zqp6am6*}EN!)fbRFf|;>>-HHpVRA3fFmE%mj00%cjM~S!IdU#gg~N7I0UoEqFsGU2 zF%wy41(WFME4a2T(^@g^`9e=AE1NWMaRzsq3f8os!|i~e#Pf)vSOh&7(Pf3AA{8k zU(k9c{PDX!jzhtgO{%;p#Uo%fVIScH2>`9tm`4DAo+4HO;TZ?Q_rL~+FHI@^)E9q( zuEM5C0e;iIZ0C2`frBhG!3J!N#|VNRSKlqjcWp%Iy5x)5ip-MiG)D2`fiNGJSW>qz zuGIhrX&_KCMlI>fog%cGVe?Azj1a_9bD$_&1kRc9Y}Wal7}4$laavh=;vltIZfJ4C zi1AESIO@Ac#sDU1I)}mGG?vS6Q-Wj!vF&K6sD5;7l*t|yWn$5(r<(?(4|4E4|)RQ61uQdkl&qn$xL(e z^7EE=NB>9au1L;B=g975>B9YRY6B!P$KFigQAh)rcq4Sq5?>YUNe$tm9O)1FSiiJA zLZ6l<%mV1MDh4gPtuSar{Este(N>`@AAS?l$mJ0L7!nRMg;c8h$(OM+fMAQ4lBx@V zIQAi?Ng1bQzbk&cSt}8WN*1DjvU$`1?yVvdnSPx5R2FdV?h~RnAU zC_|p&tXg)8&7_Lfp$$WgQyMq(yu12Ghz8UTyM+KWQzN0=Ij}<}uUcPx0?-D3#W$@h zjIgBFzbX+*W~?xZm{#&h(m`mFL?&EIDHBSMU0hBlAC0UUQgpTT*zgI`=@>aYR1MRo z*-WBgUwdK{Wfx!Q(qmG=GPXxWxu_Fb#_-Uyp)cm=cY?fHQ7Qrj=XAO`6X~?D!JBAU zj(J8$m_&iZl)2ZJEB1vl$}m8n&p#t|F6sj$1Q9N*a1i_DEyW_zk8MY_1mD8cieUUh zjpaaH3Iwq}*F|TNxM10E6ksTG4n5OSSco?cxRBy`slDk)p%|-J+)6U?ip6!7!?j&XMXi-4JvT?xgq&bjv_`;Pq+X>i%{hk>bCqW zN}CjFk?22YTWWeiCCcJx1J0r)Ijs~ufsH~?#HMxv8{q?F=Nge{Pva^<`Kb!LV#Xrf)6|tG~coO(ZrSl-nP|MrceW61j`|lTAxzX`w zc#!5Lg!#KTVzuHBiCTO0$#jr#I}%G>s-vk}zh2|DaWz522x zIKkxV)D`-X=vYzU3TKZs@fUy3KzsAAHw6%sn|sb)n~JNCq8V3bdu7RnE~DUNN)K5y z8^MwCy8?)$v~4D8yKz9G@-@&aa&tu!GYjPTk`sexJ`%$R--ZQzF~noUP+7AOoumaS zWXe}?ry=(&etKF*=Z1M9KP{2}CRA^FPh+rs_77D|m#o}bA2I#Y@rNvu%_H>$2ui64 z%>U4fevKaBA0HOQG>FKZ6+hnyX#>nsC-A%lWwo?YecKW|ruKDR#Dv@*szT8*$Yv|7 zqY^|}A|r(i1vD(6;hO}xz4~Ls6nMxVs2JOHh0_O*g4oagsArs)AQG_)F>)wuJZ0}5 z>wLlmm7S>M>+7%l7c7$WG8(?4`R$WBb%q}J8@m<>KSr~}4V{M=FMtT>tA390E0PAGnryRE){-HI;VLz)73&u7$2?&zwEKdCU`CYK z?V+QFHyWk+zES5mQa?=ion~>wvbg+ZrG=yv(uCAi zc$6W3nrOuP7mO%E-$Bn{92`C4Agj{6dpn*G$R!$q{>Z^G&4^|zS@BaAM#CHP^x}mn zron3A2OJ%Z#NTic`6k00)~-qawKjFepacAdCz$aRx(0*y;d*(T2og*=v$FLC@22UK zVOY!O$}(MykwHR{--nwklF(ES)t%7-vX8w@-E6c4_p7u#AQ7s{J?B9}T>SVvRMn@u zEN0J9me2UN)xvYkyeIq!>4K}869N>vFgk`c20HE+|E4kEBl&@bbZ`)gQfvY1X1Amy zFt2fv;W?m2k42FxWf#!hsxDmM9V9`dzKyuJ)y;kL78GYlhxOc1x{VsX z74T-1ATJ;cA7CW8vBjXt+f1Oc&WZh;r)MF!cI8QdUTULlG_H~hR0fW$3{1ziX3~Z) zFhBhXG(BzN^!YC56)u218pFNmIDXMb_F9No$TN~t_Rm=FO!nhEy!ZwR*3c5ke}ZHT zMu>C1^iNyOK^EysCP+zF7C&|I9V(1+>M|hre6EOiyVZSjH1eoauce$W_XeL72ztQd zvxEZXI-wqFUm2MetyN-$!o9R3XOKG2P^h*U$YbFFfA<{o1yAaSphqx>#b+(2jH`a~ zZ~83zw!xLhZ~&e!QRvuBeUtq@XfUxF>YzHe7;XTaTd|)5^_WSD`Cl!g5`(u^udc5u zsVH-t8`2ecW+OO@{QICq^9J8#LaT1j75Wv@>lO4Y8b4%OQe~#xVdlr6!~7s5X{Cn< zML{&*OGWODDThij8GV*y-aD5(E0WJ>q<)m}yUg4b{WpPQibp*y)I{zuCA#;{Rl<)~ zZ?A>FP8nl@w8xni{7G(CNWlT5Fc3^qyopG~_s-)0A?#5!oG+%WeO?m_d^t+9(R#STL>S(lY)zTjvkVN5i(2pe(uLN=OHQB3>3H~s?!o7ViQNS zShn1bQ)g{P7gh_I-^BkDS|!#0i!{fueD_x5UnHM3xM!p~A;gj=jMlI&LFiy)d!avf zf(??xHs~ULiA)>rF(6dEL1VlE_nf7r7?28!#zKa6HgTQsToX>$NLIX)66 ztZ?t}XAAO_Y*Kv2D)brgd>U(TgDWwI*|8;1(Q6spCHkfKsolWELeIeaf-;d~@Nh_y z{n1%^-(xL`UajTdi^Yw7?e0_n-tuxIb56_!A&aWv))3S=pHFl2I-1PIyH;pSJ^AN-LR2C)>C4$v^+AgwudO2z`L!^r`wh%n+yXZZ>4XF1_@pcM zgw3sm>;wtMD*FTc;t(j%)Uf3zE0|0543b#HxZhO+PKBQt~whL3FP4 z-`Ykts78>E@;NJKPMgLc^aUAVHeVM+zvDijdK{|uFz_q*4(A&-LNbC4*dm-~>hG?E zp!6KBUZazWvg&9df+R6VDL3@ei~F$q3rY;BGa^K}CNsEqu1IfjTQ{GCbw+&3Hy`>v&5V_b2u5d^9Io+Ce~p(NDFf+G zNBq1Uaxw;sOI$czG;y%0Lu9dne2R3578(Q{Z=+jd4@ns+oYA3NLgM+bl?n;vj`7m6 zDRBGwfeqQRDGUN_IK1(lp`W(S=stXvL~pM0%R6Jm(i%X~AJ7gsN|VctJ>oaMtA{wr zTekqN#cHt-b;zEn7_|%MTI7I%RVuaTp;CXi%wsn$gI`OFAPd zKsW8AG#<4kPZtQ{`KPkhxdFnUe3ft3O18s-B~1g$ zw7gAzU#Cn%azV6d51ce({E=aj{kg%7)aB04jtbc|;dbfUVt$u60hbJnWO-CSP8uR@V9dc0k0U{Ax#{QVj@PyGM+h#)j7Ld0o7$p?^IxH-a5;U$6 z+LwV~GyVYEJSHI@p?j~cYn`99eUD0@*0pPSI?jd*kq{J}YkO8YKf~-60-5bHcIHp7 zzzwp8x$BKZ6%4nM#vQirY@Ttn#_q7LYW_s<#e{;|H&Mj~_nknP4U<0)5gE>r@3u5(I#LR@z-8i?fsx_OYihjbp zMl);+b(V3SP5cjP5rM6vd7BU!B)?yZCkDd%mgnf$iTSonzmpHw6y0<&ZZ-@e2|IlV z`E-nHlWVl7w0sZSEkv7TINd~hZFn>&VAT^aRzY`#J(&tIbmd%IEi!Ab6M`usK+_=@ zeQM|gEqsQYHn=lAA|9b}vlp6I`0@t~`BEU~Mi>3!3=W?0ZIxUXViDuppbV?dMG5~H z3bg$BK={M7(ngJsoN3FyVLSL_?j=UcKIrBjHgKJ<=mo%(0(G9?9tgZB!{LEwtcFbH zMp~L5<)4SOC&FZv@NvXgh!vd)ZMuw&Oe82fw()}W8XL2&t}en;0O_RtFy|}%-Od-q z9n=IwdMVyxwevF!g)RsuI0y4B!M93L_+$7;CWP(*;}WV3LFa zqS6BMuEX9X!EFQobj7FK>t`45$xBC&PSMULn%%0ccfo`m`mdJAMf$M{LahV%fDPZ^ zONCCC>{A1*eC%=3XIWF1{DOqA7&GYBdj#eQ{a}+=)FNhtfih?M8ueE=KSPtzg2=}c zf^}wnc~A5ni+TUs zO*0~w3}xERwNJ7B(mOT(d{yI=n)kd7V(|XGjWCbs1T>D-oUb!0MspTZxc=AJRDwYa5? zb5+_Ge9WDHOlS6~b$!Qt#90)#YBZm=6}ZS}QALZA6p^dzItD?IDI+0vgSQo^frQ3= zLgyp~Llr^aJ9Ufo2_Z@7Bq7b4+gH&!#i@{}C&nj;`n6zD19qO8yxE#TOYCtk@h6Ou zjOP5c^$Ro~X0V}sNECInjgEn1M9R!Hw2@0nj1sZ^N>mRmOwc@1@B3!`wS0yT@EmK5 z)+zbtu}$ZMC53TmmUn>T=m0azO!j2eK)RSw15CWJypMarLl}AFz<2^fyCwSv!UgdC zx6#=N4N^B6&%3bztRrE_I#jY0khBvFx1Ht}G70_l7<<-tv_#g3uKlPewl9x}G4+c5N{DIMCF((N> z)*k4M8BXJ^z@!9RGE_3gwGmA(QkejUW=D0hn9rE!7UZC|3=LHnYod(nTd-(z4x3q-z%!VkPXU0D567KF{0=1+m9Jor(<2#<)7%*o zWMxxuuc2A*lx&>Hg(!E1q@l>EomPGErORxERm+{ZpC8y-h@y2dW=;6Kw(v!1HtN*z z;9z}IVQY3R9fK3YoJJ)Ul`myqqu~b9>aGhgL=!&F7}FB(g9$N+5r`!~Zh_J(+7JLS z+7iicFyX5-UH`%OQXUtncr zh(vHkYGW`2S_D4(vM&+p===<5M=+L6=VBle=}_(9Tipb}aR_;{u*}InKPYV( z@U6CW{Yl8KLy{TIL^?<^scx);5{+#w$D|HmQZ&M_Oqpa-``8Y6(SKWu)w0(Zl{W3B z%T!&^QCi+%KH^UPd5(>Se|YM@hXI1+NTCt#4BE@!9deZs^3j;a%N?konsMW?*DRce~rX@tqI+-_S#|~>@oRVC} z9p;>tIAuDL^(*rqI@O_pnm~RDlQ6>-eS-eXWbzQSDrp*v+!C(07NsPka4%v0opDV%l=&}0>`Caq zZwXR{%bAm)$Dw)&wA%}Xpznn73qc8)=2zJaf*Q>Z>q#|Q1D}1Yv zU8raz-h~pWHprBaK&+qCHx86@Au9M512(9+Oc`{1nw6mPChvpMB{F%0GDJ!Hv5MdW zNC7(@M#x++3QaVjJ+>?Yr;o5lAwG@*wWd5=&`}Eu%2#0oDf^+tuBCd&uBCeIhM$D? zfyUkP0!|V-X{;nnM#j8DtOUGW^B_3cuNZA4ir%^T26C9CnVo5;e4r#843`T698P%R zauK@gj#&uH*Fva4*_5T+Od48KiD&<7cy?wRby&AX9ulo%n7 zbKSOl1mRUsJbml-*tkW=M@(RUep5``AzfdOnF6jcXn>xXn zC9`f$9FQj;o;FZ8i$X{{;J(4|jS+x{moX4_^edk*$|-qSf|!{w1t+Te5@&aQ^AsUn z0V@WEo^J&7L;4|tN&0MtQ$l-iED>B(9F3%acs3(wcVaMQ)&ywIML_afbhWZ$oCvB3y zYTP0iAtkIS*Z3jo`+b1ipa*bmZB1Zwp_Ak@iWl06afep<#sdXz8#AQv4P{%aoO(4@ zyka&uP)}GK>-{Vr*z+7Qd6ns8+)+*|fSZoOe00c!*`2VIp&=7BnYeO)=ix8FoV*{fY9uc)@|*!Pjd_BYt-Tj# zk)1w`O=z{iTRu^Os z(Ez38r)z?-fv)Q@xwYCu)$J)Ij?i$X%mj5YgC|Mf|FlsxLtQFIwgk_`dvA z$x68TqiNP2_pER(2AXXF%N78zZ?RvnFC2pQvnH7Bf_F#|Ysln+`l56Z5g*c14u`SBK=MLEbe{};$pdU^GmiJ3j zm(||A?gEdnWht^`P#f?zd{Fe|denIyF@el`+DJosm>geU#k4R{V5G3&-j zoI=TfycW3yjyxBt;qr`!% zNxsVf_Y52kwSqWHTMfflwQLz|PGtm#E!=ld~x0uMkbnbc=HI~qp2X_@Hd>Ip`p;o@;MPN^FXk3-Ha z8Ah5owlp#s;6^;S1_6NySWz@aov5NuKug5NYOi!womN4pHu1cZRKTat10WfLRR{xNSrpZV&6>nhWypX@YSIeKe_m4fh#- zaXa$Q!BHRsZwg~oq8>qxT)nuVJc1|a9mRQRQonXw+P0D9OW{N+k%N*gbJNN;*D;yr zFVHFeH^?{W7?)LYYMsQ6y31jpJQa>YxXy!$!g&XJ@eal;(d|eBr`64XyxhP|W3)OK ztJVFSnP>|+D%H&RIdZOX46rMWPfHakoo@8 z#^NS6R*5z;MkU$bx@`}}{`j$WP&PW>2s4{hHzvU(=Ylff12(zv22L5m;u-e!PNXcXrCP0dm5@TC{Dh-hDAR9R%?rd0%_2^dvgjZ*{bm&#~uwuZ^`z3=AV>onCs zs^|r%O7%&P;qy4ddCpvl5eMB@Y2Rdj!BzQ$7w4kfz2XQWyL zsiFqrdI!P}Cma2BnE22C1WAC7acy2o#$8zEAR*bGZv7C*OaMmn$xNWF%>{!1$ulw~ z4%KEWvKPRt;`L5rkT_ws3i}9GMRG~LW?llSXn@3Dm`~!7_(39i2B%lloVxOj;a(%l zE5XA|L(Dw;1M(2(n1|3q@?~K1dSh7f#C)5}0Kuj)B@fd9NULE_51*n5Fzb3;w9-yg zqR^1Tj9Om+t7;`!`9)w1gG!547`8QAuShtLM6du;Or^}RKK4zECNJCsnk=1$H2J!K zW0n8?0Idgzof}ZZhH5G`g!N4RfTHmzl(xs&rQ~S|T-IH025tc3)x;Au;M+LjGdhkjggQ)CNtokoi4Fw1d~xB*mqmU4?GT)cOyOh(XmdNw zdEV!NX`6lH89_{>Ml)$8Svn#H2r*$CT!{a?R$`QyNGdi$(4`X8DU+>4217bf1&D&SM2e6hSLY=J{z#ukb&ZK zS7g(kkMr-LP$fjMe4Q4p*7dv2LQtCReWUD{vOztZ<1TG;S%QRWn=EZ8!;L?W4IKbL~lu#szHB;nN1+45ZR)J2auoGTQ1Pl#8IN zRM45imjWRxhH?aF*QZ&`)C?$k51axSJ#g6<$DWP7k+9s>5nNk?(f#n2w7 z&9;xBbjzp${f6948s?_uWf_TSmm_5RvF_!VvScJ0#9+Xn-K|xOh%UHv!nB7Hfd>5v7X*@? zYynj08Te;OZX3=V<>s9~a=m8IYSvo$)A}LKo_c>Ci)xn$e3`K_EQZ=49)1%0v7X^J zY}pugeg~{cH*-MXi!27K5~mHuw0Vcb;!Z(CC~aEw3wSnqEmG!o+~LE$XKJb*S1t0s z$9T3qPOTM-2#xzV322{CWR*L2F{K`AMXU8+vJ=*?buIHjaSr?%-IrD7MJT77WLi`) zd#4`n)M!&&sHAqnzJ)amR-q=Nx?$JV2!gk-^hsFeDMHjRi8Z6g7hGC3X)|nu^1iP$ z>9@=`SZB8yp!(zB7GVaol;9Mg49>KfL6=$a__X3Fm{8A?2tkM6oaI_8al1DBamUr{ z4^Pj(HxdA|uCFt%z?D5E zzhhm&9S^4J2K5oyB}k*Fuy*53Sw3sYP#%%86yymBDwZts%DEVrH~p%!Q;OzT`uefS z-2<}jKMI-9Y2i2hPLL;d{`>vEo&T)({zK<)2X*>yr@mVp`dW?6)vaqhSgWnweCf*R z0kDi`Y{C2Kf7bxlm&z~EA1T6X9YVCy&Ua`@dL!_zNH<2IwPVt8zzgc@=-Xh;ui6nJ zSKK4|#+d(D^%iaecJ>+l9{Ge);~O8xfKQk&C^nJJKSc|x&_r|fT;FPsICL+Ri6+a$ z@$B*y;R95@hxuRf5|ZWnD%epV-NL@U&Ri{%flz4@G?@`p<@cET5Yl7}(B=BqLq~~h z=o+-*Qg;2kQ7}qL4FuH{S?F%e#TI2(Hy~|&Qa+f2>@53;G4Ke_9T8rE?p=KOFWvMs zLU=hv$d|&kkjJSnu7LWw2H$~^cxg|xuL4@_(Wd&ZQ9q*}KwBqRxE^~`@v6>a4*K_( zYi;{>LiGNXkjr^szQh1`mh=-SvXnCFAYa4EGvVT)P;@6EXn=%fuoc3a9YU4?1yqnH zvW&I*;NhQ~XD&thv{`8)ytAhH)<||Ffot$FVpIw3SU7<#|B_x#Il>Y$A>L<4}UMf#J~h28BX4?&>^!X+o4QXUGY|6pz6Ks{^+ zPs#__`fBf~-fQW-vz=`8pbb~}27D37M!}shYt-I3NdCK4!J3R!a3!KC)FImpto-NC z_03`gaQg`R{zF^0=`!5=n|1@FR*D30`^X7K0{=1+Xf&$iv*ZHp!3am;JumS9m~uvrFH19HxDEab=?EH!k3ge9R}|MyTivY-DhG03)7XT$|l?{#Y2xJ|pY- zy(p+H;apk?*1sFSGfG>@IOl{pj6D?wAeV-_9wQPKW4+?+`ax;iSY1AZgrGH=C4Fu? z9j7+N&w8qJH4~PRt|b0iXR)Kuj2O(0G75 zM3E>N=-mD57lizEn|%Uo`S|>Pitn3Cf@@xCGS;PZeGdhHCOG}|KX7Q)%xZ>sy@f)H zL`-eZt63fX`0kS@%^VU7?kvT^ZsPAm}hG7>OY`C_}_;aeMkD7dD2 z=L`(52E7)m1!q3N4G60Rk&GgR1K06*Kq>LUuwb?t7Z$Wn+4(spJz{JjWeDR{WWT_2 zhUAHzG0C*{Ih;L8uEUrJ9K`AF*JaTtGIlcq2HfWs?i+ym{$+EqY(N%lYX5r4L- z&xh@CUm^>H@)86|Xk0KvGwg=T8QSM|pm$>M%^66Yvq2X-Fvb*|-l|QL&8x6Ky(`E7 zydnTDu^)33R6F|;jA5;_&y3U``B(`_dd;2;Z=u4G>Ww$(j@89t0Y%C&GdO?uIx zdhc0<)(7Ipo%*mx2@$yq0~}wWi9K&njct-$@3pV?F&IN`eBQ`&7E}_1y=8>X3ak)j zC<9dT2xJuWQrIwI0gsp>K+QzbEu2x)T8+L)5#UlU=@t_vQ-R36uKG1LM9B`}EQ@G< z>SJ!is)COMq+kZCI%Ys^3E73Y;KO-;Ao-vOP}gPOGRM&L2x$YQ zmIFdM0BcSQKMz1rwy5{oapRFH94sE$YLJqy#y+B>0&=>JVf@-2SopUN7XF0^zo7R> z9N;o|qli&&X(RzDyYCP4@A(oiUAEBtWlHsze@xSF1tOfJeICUq$ee^kxX`7IiBZHf z;ByBd)!->1tq4WQ}*RVWX5Dc=F90|snJ zSK(hmY0{t8WS|tR5Y|Vwl0(X-V|BSOLJ^_T1Ks`zd6m&_)Jb?}E0V}hC5&?}+>MSB z+C&9Y(Qu==9Os-ReU(ua0N2MlBmhV}{ubax!fYk>^{09=Uh#@)dKhC-2}lX-y!PTkv}hFm zEk3XE&0z4>r}cn269BiPoxE+7g+>xD_9=P+kZeeQ*JEdyH0pXn0KyyhU=JtAV?3@R zpnVMo+o&Uf$TXo!cDxVcou#nDI};YSVA3EG8|LIbiWs%E2cuD?u*zsmS{cr^i6$&= zqP(EXuxc~B#*UrA4x7O$7SCqyHfO>_=#S6H_5xV|yMEzXpb*Cyzp3AU8s13H|}2 z+hS}^Ou9h7!bpU?j=M0AkOsAiz$s%aW|4(A9JQYaD8Bo3G0bQzf^4H48U2`j8|LNlL2pOYDVmb;pDVCF}*7B>+rwL*AM|z+LDA@HqgAjjyv-@qb<`kc(+3gCf!Pawu>#&hLaO zov>_rd)9yW50G}jc{sv0UlFg97XbWh8hjuW63QK9ZMe{$yI>uQbS#4!8Z*PMdA!)} z_2jR)TFKBm^y$^KKCtgZ?U(6f{5uq|HKOfl=b{Sh4-Dl3)u(Ac!fFMzUz8TM&J}Wy z4c1Kqj-N`n1MA~a>+@TS5B#66_AK-pdN!L)E;PL62=5-963Q8~!&3f_CS0(XiS*@i z$%()q4K}rL|9*5>^WuL0tVfX_<`4U@a%JcbIX~6s{1Dsw>6iiQ`hH$n?`e1a%?}@v zc9kUT`VeUIm+KZc{{x3I=YMy1viZ7Mvu{Ov9QpU2>p#BJD?+yQ)3ex+@o>DfGI;h< z-+Nx4OZDGZb=Wzks(xbT!j9?X~A@`du+z0w`8Z!C2;-mrXo)HemO zJ3cz}*f^n|=e5P7VG+jHf6?Jh!}>WdO!g>o2pk)cH6~-#53w8TUmxi4ar)GT@QnR@ z;ggB4pKo{THjn>Q>Z)7+ex8#)zPyr~`t#HE0VPkOi;|?`euaDYdTkBj|7{{C-7?YG zUoaL#d|1+K%swX1$2AUKXUa14I=AY(H`g6AdGH7SL3Hw|Z7#zFgDpf(b(8zlgpu$% z@tSTI8%OMM$xo6;?Tyvxk-T?r!{5Eyl*{s}#(w>-GID_jz>8$-+=Lg2+bf07l#Bl2 zzX(+{p}NpUFjYawrfxOqXM0*&{^CRSua0A9R~>UHgacYWHK9ijlY$Sw^PkhV74i0Z zXVUL=^}cN9f~HHI%EPx6-zz^5Zg!{ffJs4Q3o#%6X^P+H{9e#GP>Ygaeb8Q(jjfX zk>B@~+6T%WjJC*F8FO%NnwN)3eWb;P;=LB9v)>-sx1u5T!|-2UW)F%v2WyYo_@(nq zI@YI5Gt_^≈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 literal 0 HcmV?d00001 diff --git a/app/assets/images/owasplogo.png b/app/assets/images/owasplogo.png new file mode 100644 index 0000000000000000000000000000000000000000..3525797d56b4b27022d6613fd10627147c5475f9 GIT binary patch literal 18505 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 IM6N<$g46CIrT_o{ literal 0 HcmV?d00001 diff --git a/app/assets/js/chart/chart-data-morris.js b/app/assets/js/chart/chart-data-morris.js new file mode 100644 index 0000000..47a3398 --- /dev/null +++ b/app/assets/js/chart/chart-data-morris.js @@ -0,0 +1,120 @@ +/* globals $, Morris */ +$(function() { + + "use strict"; + + if ($("#morris-chart-area").length > 0) { + let oneYearAgo = new Date().getFullYear() - 1, + twoYearsAgo = oneYearAgo - 1, + threeYearsAgo = oneYearAgo - 2; + + Morris.Area({ + // ID of the element in which to draw the chart. + element: "morris-chart-area", + // Chart data records -- each entry in this array corresponds to a point on the chart. + data: [{ + d: threeYearsAgo + "-5-01", + balance: 1020 + }, { + d: threeYearsAgo + "-6-02", + balance: 3000 + }, { + d: threeYearsAgo + "-7-03", + balance: 5470 + }, { + d: threeYearsAgo + "-8-04", + balance: 7000 + }, { + d: threeYearsAgo + "-9-05", + balance: 7920 + }, { + d: threeYearsAgo + "-10-06", + balance: 12990 + }, { + d: threeYearsAgo + "-11-07", + balance: 15000 + }, { + d: threeYearsAgo + "-12-08", + balance: 16820 + }, { + d: twoYearsAgo + "-1-09", + balance: 15592 + }, { + d: twoYearsAgo + "-2-10", + balance: 14250 + }, { + d: twoYearsAgo + "-3-11", + balance: 18999 + }, { + d: twoYearsAgo + "-4-12", + balance: 19000 + }, { + d: twoYearsAgo + "-5-13", + balance: 20778 + }, { + d: twoYearsAgo + "-6-14", + balance: 23001 + }, { + d: twoYearsAgo + "-7-15", + balance: 30001 + }, { + d: twoYearsAgo + "-8-16", + balance: 34500 + }, { + d: twoYearsAgo + "-9-17", + balance: 40987 + }, { + d: twoYearsAgo + "-10-18", + balance: 38908 + }, { + d: twoYearsAgo + "-11-19", + balance: 39000 + }, { + d: twoYearsAgo + "-12-20", + balance: 39125 + }, { + d: oneYearAgo + "-1-21", + balance: 50200 + }, { + d: oneYearAgo + "-2-22", + balance: 56002 + }, { + d: oneYearAgo + "-3-23", + balance: 60888 + }, { + d: oneYearAgo + "-4-24", + balance: 70897 + }, { + d: oneYearAgo + "-5-25", + balance: 79330 + }, { + d: oneYearAgo + "-6-26", + balance: 80993 + }, { + d: oneYearAgo + "-7-27", + balance: 84000 + }, { + d: oneYearAgo + "-8-28", + balance: 82098 + }, { + d: oneYearAgo + "-9-29", + balance: 86044 + }, { + d: oneYearAgo + "-10-30", + balance: 89000 + }, { + d: oneYearAgo + "-11-31", + balance: 89925 + }], + + // The name of the data record attribute that contains x-balances. + xkey: "d", + // A list of names of data record attributes that contain y-balances. + ykeys: ["balance"], + // Labels for the ykeys -- will be displayed when you hover over the chart. + labels: ["Balance ($)"], + // Disables line smoothing + smooth: false + }); + } +}); diff --git a/app/assets/js/tour/redirects-steps.js b/app/assets/js/tour/redirects-steps.js new file mode 100644 index 0000000..b328bf0 --- /dev/null +++ b/app/assets/js/tour/redirects-steps.js @@ -0,0 +1,29 @@ +/* globals $, Tour */ + +const redirectsTour = new Tour({ + name: "redirects" +}); + +redirectsTour.addSteps([{ + title: "A10 Redirects", + content: "Contents here", + orphan: true +}, { + element: "#learn-menu-link", + title: "Title of my popover1", + content: "Content of my popover1" +}, { + element: "#profile-menu-link", + title: "Title of my popover ", + content: "Content of my popover" +}, { + element: "#logout-menu-link", + title: "Title of my popover lo ", + content: "Content of my popover oi" +}]); + +$("#redirects-tour").on("click", () => { + "use strict"; + redirectsTour.init(); + redirectsTour.restart(); +}); diff --git a/app/assets/vendor/bootstrap/bootstrap-tour.css b/app/assets/vendor/bootstrap/bootstrap-tour.css new file mode 100755 index 0000000..671c184 --- /dev/null +++ b/app/assets/vendor/bootstrap/bootstrap-tour.css @@ -0,0 +1,65 @@ +/* =========================================================== +# bootstrap-tour - v0.8.0 +# http://bootstraptour.com +# ============================================================== +# Copyright 2012-2013 Ulrich Sossou +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/ +.tour-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000; + opacity: 0.8; +} +.tour-step-backdrop { + position: relative; + z-index: 1031; + background: inherit; +} +.tour-step-background { + position: absolute; + z-index: 1030; + background: inherit; + border-radius: 6px; +} +.popover[class*="tour-"] { + z-index: 1030; +} +.popover[class*="tour-"] .popover-navigation { + padding: 9px 14px; +} +.popover[class*="tour-"] .popover-navigation *[data-role=end] { + float: right; +} +.popover[class*="tour-"] .popover-navigation *[data-role=prev], +.popover[class*="tour-"] .popover-navigation *[data-role=next], +.popover[class*="tour-"] .popover-navigation *[data-role=end] { + cursor: pointer; +} +.popover[class*="tour-"] .popover-navigation *[data-role=prev].disabled, +.popover[class*="tour-"] .popover-navigation *[data-role=next].disabled, +.popover[class*="tour-"] .popover-navigation *[data-role=end].disabled { + cursor: default; +} +.popover[class*="tour-"].orphan { + position: fixed; + margin-top: 0; +} +.popover[class*="tour-"].orphan .arrow { + display: none; +} diff --git a/app/assets/vendor/bootstrap/bootstrap-tour.js b/app/assets/vendor/bootstrap/bootstrap-tour.js new file mode 100755 index 0000000..54cbfc7 --- /dev/null +++ b/app/assets/vendor/bootstrap/bootstrap-tour.js @@ -0,0 +1,694 @@ +/* =========================================================== +# bootstrap-tour - v0.8.0 +# http://bootstraptour.com +# ============================================================== +# Copyright 2012-2013 Ulrich Sossou +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +*/ +(function($, window) { + var Tour, document; + document = window.document; + Tour = (function() { + function Tour(options) { + this._options = $.extend({ + name: "tour", + container: "body", + keyboard: true, + storage: window.localStorage, + debug: false, + backdrop: false, + redirect: true, + orphan: false, + duration: false, + basePath: "", + template: "

", + afterSetState: function(key, value) {}, + afterGetState: function(key, value) {}, + afterRemoveState: function(key) {}, + onStart: function(tour) {}, + onEnd: function(tour) {}, + onShow: function(tour) {}, + onShown: function(tour) {}, + onHide: function(tour) {}, + onHidden: function(tour) {}, + onNext: function(tour) {}, + onPrev: function(tour) {}, + onPause: function(tour, duration) {}, + onResume: function(tour, duration) {} + }, options); + this._force = false; + this._inited = false; + this._steps = []; + this.backdrop = { + overlay: null, + $element: null, + $background: null, + backgroundShown: false, + overlayElementShown: false + }; + } + + Tour.prototype.setState = function(key, value) { + var e, keyName; + if (this._options.storage) { + keyName = "" + this._options.name + "_" + key; + try { + this._options.storage.setItem(keyName, value); + } catch (_error) { + e = _error; + if (e.code === DOMException.QUOTA_EXCEEDED_ERR) { + this.debug("LocalStorage quota exceeded. setState failed."); + } + } + return this._options.afterSetState(keyName, value); + } else { + if (this._state == null) { + this._state = {}; + } + return this._state[key] = value; + } + }; + + Tour.prototype.removeState = function(key) { + var keyName; + if (this._options.storage) { + keyName = "" + this._options.name + "_" + key; + this._options.storage.removeItem(keyName); + return this._options.afterRemoveState(keyName); + } else { + if (this._state != null) { + return delete this._state[key]; + } + } + }; + + Tour.prototype.getState = function(key) { + var keyName, value; + if (this._options.storage) { + keyName = "" + this._options.name + "_" + key; + value = this._options.storage.getItem(keyName); + } else { + if (this._state != null) { + value = this._state[key]; + } + } + if (value === void 0 || value === "null") { + value = null; + } + this._options.afterGetState(key, value); + return value; + }; + + Tour.prototype.addSteps = function(steps) { + var step, _i, _len, _results; + _results = []; + for (_i = 0, _len = steps.length; _i < _len; _i++) { + step = steps[_i]; + _results.push(this.addStep(step)); + } + return _results; + }; + + Tour.prototype.addStep = function(step) { + return this._steps.push(step); + }; + + Tour.prototype.getStep = function(i) { + if (this._steps[i] != null) { + return $.extend({ + id: "step-" + i, + path: "", + placement: "right", + title: "", + content: "

", + next: i === this._steps.length - 1 ? -1 : i + 1, + prev: i - 1, + animation: true, + container: this._options.container, + backdrop: this._options.backdrop, + redirect: this._options.redirect, + orphan: this._options.orphan, + duration: this._options.duration, + template: this._options.template, + onShow: this._options.onShow, + onShown: this._options.onShown, + onHide: this._options.onHide, + onHidden: this._options.onHidden, + onNext: this._options.onNext, + onPrev: this._options.onPrev, + onPause: this._options.onPause, + onResume: this._options.onResume + }, this._steps[i]); + } + }; + + Tour.prototype.init = function(force) { + var _this = this; + this._force = force; + if (this.ended()) { + return this._debug("Tour ended, init prevented."); + } + this.setCurrentStep(); + this._setupMouseNavigation(); + this._setupKeyboardNavigation(); + this._onResize(function() { + return _this.showStep(_this._current); + }); + if (this._current !== null) { + this.showStep(this._current); + } + this._inited = true; + return this; + }; + + Tour.prototype.start = function(force) { + var promise; + if (force == null) { + force = false; + } + if (!this._inited) { + this.init(force); + } + if (this._current === null) { + promise = this._makePromise(this._options.onStart != null ? this._options.onStart(this) : void 0); + return this._callOnPromiseDone(promise, this.showStep, 0); + } + }; + + Tour.prototype.next = function() { + var promise; + if (this.ended()) { + return this._debug("Tour ended, next prevented."); + } + promise = this.hideStep(this._current); + return this._callOnPromiseDone(promise, this._showNextStep); + }; + + Tour.prototype.prev = function() { + var promise; + if (this.ended()) { + return this._debug("Tour ended, prev prevented."); + } + promise = this.hideStep(this._current); + return this._callOnPromiseDone(promise, this._showPrevStep); + }; + + Tour.prototype.goTo = function(i) { + var promise; + if (this.ended()) { + return this._debug("Tour ended, goTo prevented."); + } + promise = this.hideStep(this._current); + return this._callOnPromiseDone(promise, this.showStep, i); + }; + + Tour.prototype.end = function() { + var endHelper, promise, + _this = this; + endHelper = function(e) { + $(document).off("click.tour-" + _this._options.name); + $(document).off("keyup.tour-" + _this._options.name); + $(window).off("resize.tour-" + _this._options.name); + _this.setState("end", "yes"); + _this._inited = false; + _this._force = false; + _this._clearTimer(); + if (_this._options.onEnd != null) { + return _this._options.onEnd(_this); + } + }; + promise = this.hideStep(this._current); + return this._callOnPromiseDone(promise, endHelper); + }; + + Tour.prototype.ended = function() { + return !this._force && !!this.getState("end"); + }; + + Tour.prototype.restart = function() { + this.removeState("current_step"); + this.removeState("end"); + this.setCurrentStep(0); + return this.start(); + }; + + Tour.prototype.pause = function() { + var step; + step = this.getStep(this._current); + if (!(step && step.duration)) { + return; + } + this._paused = true; + this._duration -= new Date().getTime() - this._start; + window.clearTimeout(this._timer); + this._debug("Paused/Stopped step " + (this._current + 1) + " timer (" + this._duration + " remaining)."); + if (step.onPause != null) { + return step.onPause(this, this._duration); + } + }; + + Tour.prototype.resume = function() { + var step, + _this = this; + step = this.getStep(this._current); + if (!(step && step.duration)) { + return; + } + this._paused = false; + this._start = new Date().getTime(); + this._duration = this._duration || step.duration; + this._timer = window.setTimeout(function() { + if (_this._isLast()) { + return _this.next(); + } else { + return _this.end(); + } + }, this._duration); + this._debug("Started step " + (this._current + 1) + " timer with duration " + this._duration); + if ((step.onResume != null) && this._duration !== step.duration) { + return step.onResume(this, this._duration); + } + }; + + Tour.prototype.hideStep = function(i) { + var hideStepHelper, promise, step, + _this = this; + step = this.getStep(i); + if (!step) { + return; + } + this._clearTimer(); + promise = this._makePromise(step.onHide != null ? step.onHide(this, i) : void 0); + hideStepHelper = function(e) { + var $element; + $element = $(step.element); + if (!($element.data("bs.popover") || $element.data("popover"))) { + $element = $("body"); + } + $element.popover("destroy"); + if (step.reflex) { + $element.css("cursor", "").off("click.tour-" + _this._options.name); + } + if (step.backdrop) { + _this._hideBackdrop(); + } + if (step.onHidden != null) { + return step.onHidden(_this); + } + }; + this._callOnPromiseDone(promise, hideStepHelper); + return promise; + }; + + Tour.prototype.showStep = function(i) { + var promise, showStepHelper, skipToPrevious, step, + _this = this; + step = this.getStep(i); + if (!step) { + return; + } + skipToPrevious = i < this._current; + promise = this._makePromise(step.onShow != null ? step.onShow(this, i) : void 0); + showStepHelper = function(e) { + var current_path, path; + _this.setCurrentStep(i); + path = $.isFunction(step.path) ? step.path.call() : _this._options.basePath + step.path; + current_path = [document.location.pathname, document.location.hash].join(""); + if (_this._isRedirect(path, current_path)) { + _this._redirect(step, path); + return; + } + if (_this._isOrphan(step)) { + if (!step.orphan) { + _this._debug("Skip the orphan step " + (_this._current + 1) + ". Orphan option is false and the element doesn't exist or is hidden."); + if (skipToPrevious) { + _this._showPrevStep(); + } else { + _this._showNextStep(); + } + return; + } + _this._debug("Show the orphan step " + (_this._current + 1) + ". Orphans option is true."); + } + if (step.backdrop) { + _this._showBackdrop(!_this._isOrphan(step) ? step.element : void 0); + } + _this._scrollIntoView(step.element, function() { + if ((step.element != null) && step.backdrop) { + _this._showOverlayElement(step.element); + } + _this._showPopover(step, i); + if (step.onShown != null) { + step.onShown(_this); + } + return _this._debug("Step " + (_this._current + 1) + " of " + _this._steps.length); + }); + if (step.duration) { + return _this.resume(); + } + }; + this._callOnPromiseDone(promise, showStepHelper); + return promise; + }; + + Tour.prototype.getCurrentStep = function() { + return this._current; + }; + + Tour.prototype.setCurrentStep = function(value) { + if (value != null) { + this._current = value; + this.setState("current_step", value); + } else { + this._current = this.getState("current_step"); + this._current = this._current === null ? null : parseInt(this._current, 10); + } + return this; + }; + + Tour.prototype._showNextStep = function() { + var promise, showNextStepHelper, step, + _this = this; + step = this.getStep(this._current); + showNextStepHelper = function(e) { + return _this.showStep(step.next); + }; + promise = this._makePromise((step.onNext != null ? step.onNext(this) : void 0)); + return this._callOnPromiseDone(promise, showNextStepHelper); + }; + + Tour.prototype._showPrevStep = function() { + var promise, showPrevStepHelper, step, + _this = this; + step = this.getStep(this._current); + showPrevStepHelper = function(e) { + return _this.showStep(step.prev); + }; + promise = this._makePromise((step.onPrev != null ? step.onPrev(this) : void 0)); + return this._callOnPromiseDone(promise, showPrevStepHelper); + }; + + Tour.prototype._debug = function(text) { + if (this._options.debug) { + return window.console.log("Bootstrap Tour '" + this._options.name + "' | " + text); + } + }; + + Tour.prototype._isRedirect = function(path, currentPath) { + return (path != null) && path !== "" && path.replace(/\?.*$/, "").replace(/\/?$/, "") !== currentPath.replace(/\/?$/, ""); + }; + + Tour.prototype._redirect = function(step, path) { + if ($.isFunction(step.redirect)) { + return step.redirect.call(this, path); + } else if (step.redirect === true) { + this._debug("Redirect to " + path); + return document.location.href = path; + } + }; + + Tour.prototype._isOrphan = function(step) { + return (step.element == null) || !$(step.element).length || $(step.element).is(":hidden") && ($(step.element)[0].namespaceURI !== "http://www.w3.org/2000/svg"); + }; + + Tour.prototype._isLast = function() { + return this._current < this._steps.length - 1; + }; + + Tour.prototype._showPopover = function(step, i) { + var $element, $navigation, $template, $tip, isOrphan, options, + _this = this; + options = $.extend({}, this._options); + $template = $.isFunction(step.template) ? $(step.template(i, step)) : $(step.template); + $navigation = $template.find(".popover-navigation"); + isOrphan = this._isOrphan(step); + if (isOrphan) { + step.element = "body"; + step.placement = "top"; + $template = $template.addClass("orphan"); + } + $element = $(step.element); + $template.addClass("tour-" + this._options.name); + if (step.options) { + $.extend(options, step.options); + } + if (step.reflex) { + $element.css("cursor", "pointer").on("click.tour-" + this._options.name, function() { + if (_this._isLast()) { + return _this.next(); + } else { + return _this.end(); + } + }); + } + if (step.prev < 0) { + $navigation.find("*[data-role=prev]").addClass("disabled"); + } + if (step.next < 0) { + $navigation.find("*[data-role=next]").addClass("disabled"); + } + if (!step.duration) { + $navigation.find("*[data-role='pause-resume']").remove(); + } + step.template = $template.clone().wrap("
").parent().html(); + $element.popover({ + placement: step.placement, + trigger: "manual", + title: step.title, + content: step.content, + html: true, + animation: step.animation, + container: step.container, + template: step.template, + selector: step.element + }).popover("show"); + $tip = $element.data("bs.popover") ? $element.data("bs.popover").tip() : $element.data("popover").tip(); + $tip.attr("id", step.id); + this._reposition($tip, step); + if (isOrphan) { + return this._center($tip); + } + }; + + Tour.prototype._reposition = function($tip, step) { + var offsetBottom, offsetHeight, offsetRight, offsetWidth, originalLeft, originalTop, tipOffset; + offsetWidth = $tip[0].offsetWidth; + offsetHeight = $tip[0].offsetHeight; + tipOffset = $tip.offset(); + originalLeft = tipOffset.left; + originalTop = tipOffset.top; + offsetBottom = $(document).outerHeight() - tipOffset.top - $tip.outerHeight(); + if (offsetBottom < 0) { + tipOffset.top = tipOffset.top + offsetBottom; + } + offsetRight = $("html").outerWidth() - tipOffset.left - $tip.outerWidth(); + if (offsetRight < 0) { + tipOffset.left = tipOffset.left + offsetRight; + } + if (tipOffset.top < 0) { + tipOffset.top = 0; + } + if (tipOffset.left < 0) { + tipOffset.left = 0; + } + $tip.offset(tipOffset); + if (step.placement === "bottom" || step.placement === "top") { + if (originalLeft !== tipOffset.left) { + return this._replaceArrow($tip, (tipOffset.left - originalLeft) * 2, offsetWidth, "left"); + } + } else { + if (originalTop !== tipOffset.top) { + return this._replaceArrow($tip, (tipOffset.top - originalTop) * 2, offsetHeight, "top"); + } + } + }; + + Tour.prototype._center = function($tip) { + return $tip.css("top", $(window).outerHeight() / 2 - $tip.outerHeight() / 2); + }; + + Tour.prototype._replaceArrow = function($tip, delta, dimension, position) { + return $tip.find(".arrow").css(position, delta ? 50 * (1 - delta / dimension) + "%" : ""); + }; + + Tour.prototype._scrollIntoView = function(element, callback) { + var $element, $window, counter, offsetTop, scrollTop, windowHeight, + _this = this; + $element = $(element); + if (!$element.length) { + return callback(); + } + $window = $(window); + offsetTop = $element.offset().top; + windowHeight = $window.height(); + scrollTop = Math.max(0, offsetTop - (windowHeight / 2)); + this._debug("Scroll into view. ScrollTop: " + scrollTop + ". Element offset: " + offsetTop + ". Window height: " + windowHeight + "."); + counter = 0; + return $("body,html").stop(true, true).animate({ + scrollTop: Math.ceil(scrollTop) + }, function() { + if (++counter === 2) { + callback(); + return _this._debug("Scroll into view. Animation end element offset: " + ($element.offset().top) + ". Window height: " + ($window.height()) + "."); + } + }); + }; + + Tour.prototype._onResize = function(callback, timeout) { + return $(window).on("resize.tour-" + this._options.name, function() { + clearTimeout(timeout); + return timeout = setTimeout(callback, 100); + }); + }; + + Tour.prototype._setupMouseNavigation = function() { + var _this = this; + _this = this; + $(document).off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=next]:not(.disabled)").on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=next]:not(.disabled)", function(e) { + e.preventDefault(); + return _this.next(); + }); + $(document).off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=prev]:not(.disabled)").on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=prev]:not(.disabled)", function(e) { + e.preventDefault(); + return _this.prev(); + }); + $(document).off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=end]").on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=end]", function(e) { + e.preventDefault(); + return _this.end(); + }); + return $(document).off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=pause-resume]").on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role=pause-resume]", function(e) { + var $this; + e.preventDefault(); + $this = $(this); + $this.text(_this._paused ? $this.data("pause-text") : $this.data("resume-text")); + if (_this._paused) { + return _this.resume(); + } else { + return _this.pause(); + } + }); + }; + + Tour.prototype._setupKeyboardNavigation = function() { + var _this = this; + if (!this._options.keyboard) { + return; + } + return $(document).on("keyup.tour-" + this._options.name, function(e) { + if (!e.which) { + return; + } + switch (e.which) { + case 39: + e.preventDefault(); + if (_this._isLast()) { + return _this.next(); + } else { + return _this.end(); + } + break; + case 37: + e.preventDefault(); + if (_this._current > 0) { + return _this.prev(); + } + break; + case 27: + e.preventDefault(); + return _this.end(); + } + }); + }; + + Tour.prototype._makePromise = function(result) { + if (result && $.isFunction(result.then)) { + return result; + } else { + return null; + } + }; + + Tour.prototype._callOnPromiseDone = function(promise, cb, arg) { + var _this = this; + if (promise) { + return promise.then(function(e) { + return cb.call(_this, arg); + }); + } else { + return cb.call(this, arg); + } + }; + + Tour.prototype._showBackdrop = function(element) { + if (this.backdrop.backgroundShown) { + return; + } + this.backdrop = $("
", { + "class": "tour-backdrop" + }); + this.backdrop.backgroundShown = true; + return $("body").append(this.backdrop); + }; + + Tour.prototype._hideBackdrop = function() { + this._hideOverlayElement(); + return this._hideBackground(); + }; + + Tour.prototype._hideBackground = function() { + this.backdrop.remove(); + this.backdrop.overlay = null; + return this.backdrop.backgroundShown = false; + }; + + Tour.prototype._showOverlayElement = function(element) { + var $background, $element, offset; + if (this.backdrop.overlayElementShown) { + return; + } + this.backdrop.overlayElementShown = true; + $element = $(element); + $background = $("
"); + offset = $element.offset(); + offset.top = offset.top; + offset.left = offset.left; + $background.width($element.innerWidth()).height($element.innerHeight()).addClass("tour-step-background").offset(offset); + $element.addClass("tour-step-backdrop"); + $("body").append($background); + this.backdrop.$element = $element; + return this.backdrop.$background = $background; + }; + + Tour.prototype._hideOverlayElement = function() { + if (!this.backdrop.overlayElementShown) { + return; + } + this.backdrop.$element.removeClass("tour-step-backdrop"); + this.backdrop.$background.remove(); + this.backdrop.$element = null; + this.backdrop.$background = null; + return this.backdrop.overlayElementShown = false; + }; + + Tour.prototype._clearTimer = function() { + window.clearTimeout(this._timer); + this._timer = null; + return this._duration = null; + }; + + return Tour; + + })(); + return window.Tour = Tour; +})(jQuery, window); diff --git a/app/assets/vendor/bootstrap/bootstrap.css b/app/assets/vendor/bootstrap/bootstrap.css new file mode 100644 index 0000000..ac95e5c --- /dev/null +++ b/app/assets/vendor/bootstrap/bootstrap.css @@ -0,0 +1,5909 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} +audio, +canvas, +video { + display: inline-block; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden] { + display: none; +} +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +body { + margin: 0; +} +a:focus { + outline: thin dotted; +} +a:active, +a:hover { + outline: 0; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +mark { + background: #ff0; + color: #000; +} +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} +pre { + white-space: pre-wrap; +} +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 0; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +button, +input, +select, +textarea { + font-family: inherit; + font-size: 100%; + margin: 0; +} +button, +input { + line-height: normal; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +textarea { + overflow: auto; + vertical-align: top; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + color: #333333; + background-color: #ffffff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +button, +input, +select[multiple], +textarea { + background-image: none; +} +a { + color: #428bca; + text-decoration: none; +} +a:hover, +a:focus { + color: #2a6496; + text-decoration: underline; +} +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +img { + vertical-align: middle; +} +.img-responsive { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0 0 0 0); + border: 0; +} +@media print { + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: #fff !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16.099999999999998px; + font-weight: 200; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small { + font-size: 85%; +} +cite { + font-style: normal; +} +.text-muted { + color: #999999; +} +.text-primary { + color: #428bca; +} +.text-warning { + color: #c09853; +} +.text-danger { + color: #b94a48; +} +.text-success { + color: #468847; +} +.text-info { + color: #3a87ad; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} +h1, +h2, +h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h4, +h5, +h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h1, +.h1 { + font-size: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +h1 small, +.h1 small { + font-size: 24px; +} +h2 small, +.h2 small { + font-size: 18px; +} +h3 small, +.h3 small, +h4 small, +.h4 small { + font-size: 14px; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} +dl { + margin-bottom: 20px; +} +dt, +dd { + line-height: 1.428571429; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + + } + .dl-horizontal dd:after { + clear: both; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + + } + .dl-horizontal dd:after { + clear: both; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} +blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} +blockquote p:last-child { + margin-bottom: 0; +} +blockquote small { + display: block; + line-height: 1.428571429; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} +blockquote.pull-right small:before { + content: ''; +} +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} +code, +pre { + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + white-space: nowrap; + border-radius: 4px; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + word-break: break-all; + word-wrap: break-word; + color: #333333; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} +pre.prettyprint { + margin-bottom: 20px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} +.container:before, +.container:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.container:after { + clear: both; +} +.container:before, +.container:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.container:after { + clear: both; +} +.row { + margin-left: -15px; + margin-right: -15px; +} +.row:before, +.row:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.row:after { + clear: both; +} +.row:before, +.row:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.row:after { + clear: both; +} +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px; +} +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11 { + float: left; +} +.col-xs-1 { + width: 8.333333333333332%; +} +.col-xs-2 { + width: 16.666666666666664%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-4 { + width: 33.33333333333333%; +} +.col-xs-5 { + width: 41.66666666666667%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-7 { + width: 58.333333333333336%; +} +.col-xs-8 { + width: 66.66666666666666%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-10 { + width: 83.33333333333334%; +} +.col-xs-11 { + width: 91.66666666666666%; +} +.col-xs-12 { + width: 100%; +} +@media (min-width: 768px) { + .container { + max-width: 750px; + } + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11 { + float: left; + } + .col-sm-1 { + width: 8.333333333333332%; + } + .col-sm-2 { + width: 16.666666666666664%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-4 { + width: 33.33333333333333%; + } + .col-sm-5 { + width: 41.66666666666667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-7 { + width: 58.333333333333336%; + } + .col-sm-8 { + width: 66.66666666666666%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-10 { + width: 83.33333333333334%; + } + .col-sm-11 { + width: 91.66666666666666%; + } + .col-sm-12 { + width: 100%; + } + .col-sm-push-1 { + left: 8.333333333333332%; + } + .col-sm-push-2 { + left: 16.666666666666664%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-4 { + left: 33.33333333333333%; + } + .col-sm-push-5 { + left: 41.66666666666667%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-7 { + left: 58.333333333333336%; + } + .col-sm-push-8 { + left: 66.66666666666666%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-10 { + left: 83.33333333333334%; + } + .col-sm-push-11 { + left: 91.66666666666666%; + } + .col-sm-pull-1 { + right: 8.333333333333332%; + } + .col-sm-pull-2 { + right: 16.666666666666664%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-4 { + right: 33.33333333333333%; + } + .col-sm-pull-5 { + right: 41.66666666666667%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-7 { + right: 58.333333333333336%; + } + .col-sm-pull-8 { + right: 66.66666666666666%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-10 { + right: 83.33333333333334%; + } + .col-sm-pull-11 { + right: 91.66666666666666%; + } + .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } + .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } +} +@media (min-width: 992px) { + .container { + max-width: 970px; + } + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11 { + float: left; + } + .col-md-1 { + width: 8.333333333333332%; + } + .col-md-2 { + width: 16.666666666666664%; + } + .col-md-3 { + width: 25%; + } + .col-md-4 { + width: 33.33333333333333%; + } + .col-md-5 { + width: 41.66666666666667%; + } + .col-md-6 { + width: 50%; + } + .col-md-7 { + width: 58.333333333333336%; + } + .col-md-8 { + width: 66.66666666666666%; + } + .col-md-9 { + width: 75%; + } + .col-md-10 { + width: 83.33333333333334%; + } + .col-md-11 { + width: 91.66666666666666%; + } + .col-md-12 { + width: 100%; + } + .col-md-push-0 { + left: auto; + } + .col-md-push-1 { + left: 8.333333333333332%; + } + .col-md-push-2 { + left: 16.666666666666664%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-4 { + left: 33.33333333333333%; + } + .col-md-push-5 { + left: 41.66666666666667%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-7 { + left: 58.333333333333336%; + } + .col-md-push-8 { + left: 66.66666666666666%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-10 { + left: 83.33333333333334%; + } + .col-md-push-11 { + left: 91.66666666666666%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-pull-1 { + right: 8.333333333333332%; + } + .col-md-pull-2 { + right: 16.666666666666664%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-4 { + right: 33.33333333333333%; + } + .col-md-pull-5 { + right: 41.66666666666667%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-7 { + right: 58.333333333333336%; + } + .col-md-pull-8 { + right: 66.66666666666666%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-10 { + right: 83.33333333333334%; + } + .col-md-pull-11 { + right: 91.66666666666666%; + } + .col-md-offset-0 { + margin-left: 0; + } + .col-md-offset-1 { + margin-left: 8.333333333333332%; + } + .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .col-md-offset-11 { + margin-left: 91.66666666666666%; + } +} +@media (min-width: 1200px) { + .container { + max-width: 1170px; + } + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11 { + float: left; + } + .col-lg-1 { + width: 8.333333333333332%; + } + .col-lg-2 { + width: 16.666666666666664%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-4 { + width: 33.33333333333333%; + } + .col-lg-5 { + width: 41.66666666666667%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-7 { + width: 58.333333333333336%; + } + .col-lg-8 { + width: 66.66666666666666%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-10 { + width: 83.33333333333334%; + } + .col-lg-11 { + width: 91.66666666666666%; + } + .col-lg-12 { + width: 100%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-push-1 { + left: 8.333333333333332%; + } + .col-lg-push-2 { + left: 16.666666666666664%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-4 { + left: 33.33333333333333%; + } + .col-lg-push-5 { + left: 41.66666666666667%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-7 { + left: 58.333333333333336%; + } + .col-lg-push-8 { + left: 66.66666666666666%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-10 { + left: 83.33333333333334%; + } + .col-lg-push-11 { + left: 91.66666666666666%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-pull-1 { + right: 8.333333333333332%; + } + .col-lg-pull-2 { + right: 16.666666666666664%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-4 { + right: 33.33333333333333%; + } + .col-lg-pull-5 { + right: 41.66666666666667%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-7 { + right: 58.333333333333336%; + } + .col-lg-pull-8 { + right: 66.66666666666666%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-10 { + right: 83.33333333333334%; + } + .col-lg-pull-11 { + right: 91.66666666666666%; + } + .col-lg-offset-0 { + margin-left: 0; + } + .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } + .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } +} +table { + max-width: 100%; + background-color: transparent; +} +th { + text-align: left; +} +.table { + width: 100%; + margin-bottom: 20px; +} +.table thead > tr > th, +.table tbody > tr > th, +.table tfoot > tr > th, +.table thead > tr > td, +.table tbody > tr > td, +.table tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} +.table caption + thead tr:first-child th, +.table colgroup + thead tr:first-child th, +.table thead:first-child tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #dddddd; +} +.table .table { + background-color: #ffffff; +} +.table-condensed thead > tr > th, +.table-condensed tbody > tr > th, +.table-condensed tfoot > tr > th, +.table-condensed thead > tr > td, +.table-condensed tbody > tr > td, +.table-condensed tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #dddddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover > td, +.table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} +table col[class*="col-"] { + float: none; + display: table-column; +} +table td[class*="col-"], +table th[class*="col-"] { + float: none; + display: table-cell; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; + border-color: #d6e9c6; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td { + background-color: #d0e9c6; + border-color: #c9e2b3; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; + border-color: #eed3d7; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td { + background-color: #ebcccc; + border-color: #e6c1c7; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; + border-color: #fbeed5; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td { + background-color: #faf2cc; + border-color: #f8e5be; +} +@media (max-width: 768px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + overflow-x: scroll; + border: 1px solid #dddddd; + } + .table-responsive > .table { + margin-bottom: 0; + background-color: #fff; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > thead > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > thead > tr:last-child > td, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} +input[type="file"] { + display: block; +} +select[multiple], +select[size] { + height: auto; +} +select optgroup { + font-size: inherit; + font-style: inherit; + font-family: inherit; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + height: auto; +} +.form-control:-moz-placeholder { + color: #999999; +} +.form-control::-moz-placeholder { + color: #999999; +} +.form-control:-ms-input-placeholder { + color: #999999; +} +.form-control::-webkit-input-placeholder { + color: #999999; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} +textarea.form-control { + height: auto; +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + display: block; + min-height: 20px; + margin-top: 10px; + margin-bottom: 10px; + padding-left: 20px; + vertical-align: middle; +} +.radio label, +.checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +.radio[disabled], +.radio-inline[disabled], +.checkbox[disabled], +.checkbox-inline[disabled], +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] .radio, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm { + height: auto; +} +.input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.input-lg { + height: 45px; + line-height: 45px; +} +textarea.input-lg { + height: auto; +} +.has-warning .help-block, +.has-warning .control-label { + color: #c09853; +} +.has-warning .form-control { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} +.has-warning .input-group-addon { + color: #c09853; + border-color: #c09853; + background-color: #fcf8e3; +} +.has-error .help-block, +.has-error .control-label { + color: #b94a48; +} +.has-error .form-control { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} +.has-error .input-group-addon { + color: #b94a48; + border-color: #b94a48; + background-color: #f2dede; +} +.has-success .help-block, +.has-success .control-label { + color: #468847; +} +.has-success .form-control { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} +.has-success .input-group-addon { + color: #468847; + border-color: #468847; + background-color: #dff0d8; +} +.form-control-static { + margin-bottom: 0; + padding-top: 7px; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} +.form-horizontal .control-label, +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} +.form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.form-horizontal .form-group:after { + clear: both; +} +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.form-horizontal .form-group:after { + clear: both; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + } +} +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 4px; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; +} +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} +.btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #39b3d7; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-link { + color: #428bca; + font-weight: normal; + cursor: pointer; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #999999; + text-decoration: none; +} +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.btn-sm, +.btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs { + padding: 1px 5px; +} +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; +} +.glyphicon-asterisk:before { + content: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.glyphicon-euro:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-briefcase:before { + content: "\1f4bc"; +} +.glyphicon-calendar:before { + content: "\1f4c5"; +} +.glyphicon-pushpin:before { + content: "\1f4cc"; +} +.glyphicon-paperclip:before { + content: "\1f4ce"; +} +.glyphicon-camera:before { + content: "\1f4f7"; +} +.glyphicon-lock:before { + content: "\1f512"; +} +.glyphicon-bell:before { + content: "\1f514"; +} +.glyphicon-bookmark:before { + content: "\1f516"; +} +.glyphicon-fire:before { + content: "\1f525"; +} +.glyphicon-wrench:before { + content: "\1f527"; +} +.btn-default .caret { + border-top-color: #333333; +} +.btn-primary .caret, +.btn-success .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret { + border-top-color: #fff; +} +.dropup .btn-default .caret { + border-bottom-color: #333333; +} +.dropup .btn-primary .caret, +.dropup .btn-success .caret, +.dropup .btn-warning .caret, +.dropup .btn-danger .caret, +.dropup .btn-info .caret { + border-bottom-color: #fff; +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus { + outline: none; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar:before, +.btn-toolbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.btn-toolbar:after { + clear: both; +} +.btn-toolbar:before, +.btn-toolbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.btn-toolbar:after { + clear: both; +} +.btn-toolbar .btn-group { + float: left; +} +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group, +.btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group-xs > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + padding: 1px 5px; +} +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.btn-group-vertical > .btn-group:after { + clear: both; +} +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.btn-group-vertical > .btn-group:after { + clear: both; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 4px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child > .btn:last-child, +.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified .btn { + float: none; + display: table-cell; + width: 1%; +} +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group.col { + float: none; + padding-left: 0; + padding-right: 0; +} +.input-group .form-control { + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -4px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:active { + z-index: 2; +} +.nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.nav:before, +.nav:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.nav:after { + clear: both; +} +.nav:before, +.nav:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.nav:after { + clear: both; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.nav > li.disabled > a { + color: #999999; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #428bca; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #dddddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + text-align: center; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } +} +.nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #dddddd; + margin-right: 0; +} +.nav-tabs.nav-justified > .active > a { + border-bottom-color: #ffffff; +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 5px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #428bca; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + text-align: center; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + border-bottom: 1px solid #dddddd; + margin-right: 0; +} +.nav-tabs-justified > .active > a { + border-bottom-color: #ffffff; +} +.tabbable:before, +.tabbable:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.tabbable:after { + clear: both; +} +.tabbable:before, +.tabbable:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.tabbable:after { + clear: both; +} +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .active, +.pill-content > .active { + display: block; +} +.nav .caret { + border-top-color: #428bca; + border-bottom-color: #428bca; +} +.nav a:hover .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar { + position: relative; + z-index: 1000; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +.navbar:before, +.navbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar:after { + clear: both; +} +.navbar:before, +.navbar:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar:after { + clear: both; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +.navbar-header:before, +.navbar-header:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar-header:after { + clear: both; +} +.navbar-header:before, +.navbar-header:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar-header:after { + clear: both; +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + max-height: 340px; + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbar-collapse:before, +.navbar-collapse:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar-collapse:after { + clear: both; +} +.navbar-collapse:before, +.navbar-collapse:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.navbar-collapse:after { + clear: both; +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-collapse .navbar-nav.navbar-left:first-child { + margin-left: -15px; + } + .navbar-collapse .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } + .navbar-collapse .navbar-text:last-child { + margin-right: 0; + } +} +.container > .navbar-header, +.container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + z-index: 1030; + top: 0; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; +} +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} +.navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: 8px; + margin-bottom: 8px; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-nav.pull-right > li > .dropdown-menu, +.navbar-nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-text { + float: left; + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + margin-left: 15px; + margin-right: 15px; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777777; +} +.navbar-default .navbar-nav > li > a { + color: #777777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #dddddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e6e6e6; +} +.navbar-default .navbar-nav > .dropdown > a:hover .caret, +.navbar-default .navbar-nav > .dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + background-color: #e7e7e7; + color: #555555; +} +.navbar-default .navbar-nav > .open > a .caret, +.navbar-default .navbar-nav > .open > a:hover .caret, +.navbar-default .navbar-nav > .open > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777777; +} +.navbar-default .navbar-link:hover { + color: #333333; +} +.navbar-inverse { + background-color: #222222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #999999; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #999999; +} +.navbar-inverse .navbar-nav > li > a { + color: #999999; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + background-color: #080808; + color: #ffffff; +} +.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} +.navbar-inverse .navbar-nav > .open > a .caret, +.navbar-inverse .navbar-nav > .open > a:hover .caret, +.navbar-inverse .navbar-nav > .open > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999999; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #999999; +} +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + content: "/\00a0"; + padding: 0 5px; + color: #cccccc; +} +.breadcrumb > .active { + color: #999999; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + margin-left: -1px; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + background-color: #eeeeee; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; + cursor: default; +} +.pagination > .disabled > span, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #999999; + background-color: #ffffff; + border-color: #dddddd; + cursor: not-allowed; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + list-style: none; + text-align: center; +} +.pager:before, +.pager:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.pager:after { + clear: both; +} +.pager:before, +.pager:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + background-color: #ffffff; + cursor: not-allowed; +} +.label { + display: inline; + padding: .2em .6em .3em; + /*font-size: 75%; + font-weight: bold;*/ + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +.label[href]:hover, +.label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.label-default { + background-color: #999999; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #808080; +} +.label-primary { + background-color: #428bca; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #3071a9; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #ffffff; + line-height: 1; + vertical-align: baseline; + white-space: nowrap; + text-align: center; + background-color: #999999; + border-radius: 10px; +} +.badge:empty { + display: none; +} +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.btn .badge { + position: relative; + top: -1px; +} +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #428bca; + background-color: #ffffff; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #eeeeee; +} +.jumbotron h1 { + line-height: 1; + color: inherit; +} +.jumbotron p { + line-height: 1.4; +} +.container .jumbotron { + border-radius: 6px; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + .jumbotron h1 { + font-size: 63px; + } +} +.thumbnail { + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; + display: block; +} +.thumbnail > img { + display: block; + max-width: 100%; + height: auto; +} +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #428bca; +} +.thumbnail > img { + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; + color: #333333; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable { + padding-right: 35px; +} +.alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #356635; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #2d6987; +} +.alert-warning { + background-color: #fcf8e3; + border-color: #fbeed5; + color: #c09853; +} +.alert-warning hr { + border-top-color: #f8e5be; +} +.alert-warning .alert-link { + color: #a47e3c; +} +.alert-danger { + background-color: #f2dede; + border-color: #eed3d7; + color: #b94a48; +} +.alert-danger hr { + border-top-color: #e6c1c7; +} +.alert-danger .alert-link { + color: #953b39; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + overflow: hidden; + height: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .progress-bar { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media, +.media .media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media-object { + display: block; +} +.media-heading { + margin: 0 0 5px; +} +.media > .pull-left { + margin-right: 10px; +} +.media > .pull-right { + margin-left: 10px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + margin-bottom: 20px; + padding-left: 0; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +a.list-group-item { + color: #555555; +} +a.list-group-item .list-group-item-heading { + color: #333333; +} +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-body:before, +.panel-body:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.panel-body:after { + clear: both; +} +.panel-body:before, +.panel-body:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.panel-body:after { + clear: both; +} +.panel > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item { + border-width: 1px 0; +} +.panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.panel > .table { + margin-bottom: 0; +} +.panel > .panel-body + .table { + border-top: 1px solid #dddddd; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; +} +.panel-title > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; + overflow: hidden; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} +.panel-default { + border-color: #dddddd; +} +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} +.panel-primary { + border-color: #428bca; +} +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #428bca; +} +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #428bca; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-warning { + border-color: #fbeed5; +} +.panel-warning > .panel-heading { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #fbeed5; +} +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #fbeed5; +} +.panel-danger { + border-color: #eed3d7; +} +.panel-danger > .panel-heading { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #eed3d7; +} +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #eed3d7; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + border-bottom: 0 dotted; + content: ""; +} +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + text-decoration: none; + color: #ffffff; + background-color: #428bca; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + outline: 0; + background-color: #428bca; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999999; +} +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000000; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} +.tooltip { + position: absolute; + z-index: 1030; + display: block; + visibility: visible; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + right: 5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + background-color: #ffffff; + background-clip: padding-box; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow { + border-width: 11px; +} +.popover .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.popover.bottom .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; +} +.modal-open { + overflow: hidden; +} +body.modal-open, +.modal-open .navbar-fixed-top, +.modal-open .navbar-fixed-bottom { + margin-right: 15px; +} +.modal { + display: none; + overflow: auto; + overflow-y: scroll; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-dialog { + margin-left: auto; + margin-right: auto; + width: auto; + padding: 10px; + z-index: 1050; +} +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; + outline: none; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; + min-height: 16.428571429px; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.428571429; +} +.modal-body { + position: relative; + padding: 20px; +} +.modal-footer { + margin-top: 15px; + padding: 19px 20px 20px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer:before, +.modal-footer:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.modal-footer:after { + clear: both; +} +.modal-footer:before, +.modal-footer:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +@media screen and (min-width: 768px) { + .modal-dialog { + left: 50%; + right: auto; + width: 600px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; +} +.carousel-inner > .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; + line-height: 1; +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 15%; + opacity: 0.5; + filter: alpha(opacity=50); + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-control.left { + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} +.carousel-control.right { + left: auto; + right: 0; + background-image: -webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + left: 50%; + z-index: 5; + display: inline-block; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid #ffffff; + border-radius: 10px; + cursor: pointer; +} +.carousel-indicators .active { + margin: 0; + width: 12px; + height: 12px; + background-color: #ffffff; +} +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + + display: table; + /* 2 */ + +} +.clearfix:after { + clear: both; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px; + } +} +.hidden { + display: none !important; + visibility: hidden !important; +} +.visible-xs { + display: none !important; +} +tr.visible-xs { + display: none !important; +} +th.visible-xs, +td.visible-xs { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} +.visible-sm { + display: none !important; +} +tr.visible-sm { + display: none !important; +} +th.visible-sm, +td.visible-sm { + display: none !important; +} +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} +.visible-md { + display: none !important; +} +tr.visible-md { + display: none !important; +} +th.visible-md, +td.visible-md { + display: none !important; +} +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} +.visible-lg { + display: none !important; +} +tr.visible-lg { + display: none !important; +} +th.visible-lg, +td.visible-lg { + display: none !important; +} +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +.hidden-xs { + display: block !important; +} +tr.hidden-xs { + display: table-row !important; +} +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + tr.hidden-xs { + display: none !important; + } + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important; + } + tr.hidden-xs.hidden-sm { + display: none !important; + } + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important; + } + tr.hidden-xs.hidden-md { + display: none !important; + } + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important; + } + tr.hidden-xs.hidden-lg { + display: none !important; + } + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} +.hidden-sm { + display: block !important; +} +tr.hidden-sm { + display: table-row !important; +} +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important; + } + tr.hidden-sm.hidden-xs { + display: none !important; + } + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } + tr.hidden-sm { + display: none !important; + } + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important; + } + tr.hidden-sm.hidden-md { + display: none !important; + } + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important; + } + tr.hidden-sm.hidden-lg { + display: none !important; + } + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} +.hidden-md { + display: block !important; +} +tr.hidden-md { + display: table-row !important; +} +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important; + } + tr.hidden-md.hidden-xs { + display: none !important; + } + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important; + } + tr.hidden-md.hidden-sm { + display: none !important; + } + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } + tr.hidden-md { + display: none !important; + } + th.hidden-md, + td.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important; + } + tr.hidden-md.hidden-lg { + display: none !important; + } + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} +.hidden-lg { + display: block !important; +} +tr.hidden-lg { + display: table-row !important; +} +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important; + } + tr.hidden-lg.hidden-xs { + display: none !important; + } + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important; + } + tr.hidden-lg.hidden-sm { + display: none !important; + } + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important; + } + tr.hidden-lg.hidden-md { + display: none !important; + } + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } + tr.hidden-lg { + display: none !important; + } + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +tr.visible-print { + display: none !important; +} +th.visible-print, +td.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print { + display: none !important; + } + tr.hidden-print { + display: none !important; + } + th.hidden-print, + td.hidden-print { + display: none !important; + } +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} diff --git a/app/assets/vendor/bootstrap/bootstrap.js b/app/assets/vendor/bootstrap/bootstrap.js new file mode 100644 index 0000000..f0b7d68 --- /dev/null +++ b/app/assets/vendor/bootstrap/bootstrap.js @@ -0,0 +1,11 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + ++function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed.bs.alert").remove()}var c=a(this),d=c.attr("data-target");d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));var e=a(d);b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close.bs.alert"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.one(a.support.transition.end,f).emulateTransitionEnd(150):f()};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");b.prop("type")==="radio"&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f=typeof c=="object"&&c;e||d.data("bs.button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();if(b>this.$items.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){if(this.sliding)return;return this.slide("next")},b.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(e.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")}));if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),c.data()),g=c.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=c.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){function e(){a(b).remove(),a(c).each(function(b){var c=f(a(this));if(!c.hasClass("open"))return;c.trigger(b=a.Event("hide.bs.dropdown"));if(b.isDefaultPrevented())return;c.removeClass("open").trigger("hidden.bs.dropdown")})}function f(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}"use strict";var b=".dropdown-backdrop",c="[data-toggle=dropdown]",d=function(b){var c=a(b).on("click.bs.dropdown",this.toggle)};d.prototype.toggle=function(b){var c=a(this);if(c.is(".disabled, :disabled"))return;var d=f(c),g=d.hasClass("open");e();if(!g){"ontouchstart"in document.documentElement&&!d.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||(typeof b.content=="function"?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f=typeof c=="object"&&c;e||d.data("bs.popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});b.trigger(f);if(f.isDefaultPrevented())return;var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})},b.prototype.activate=function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g).emulateTransitionEnd(150):g(),e.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;typeof f!="object"&&(h=g=f),typeof g=="function"&&(g=f.top()),typeof h=="function"&&(h=f.bottom());var i=this.unpin!=null&&d+this.unpin<=e.top?!1:h!=null&&e.top+this.$element.height()>=c-h?"bottom":g!=null&&d<=g?"top":!1;if(this.affixed===i)return;this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin=i=="bottom"?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),i=="bottom"&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()})};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f=typeof c=="object"&&c;e||d.data("bs.affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var b=a.Event("show.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])},b.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var b=a.Event("hide.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};if(!a.support.transition)return d.call(this);this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350)},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c);e||d.data("bs.collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":c.data(),i=c.attr("data-parent"),j=i&&a(i);if(!g||!g.transitioning)j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(c).addClass("collapsed"),c[f.hasClass("in")?"addClass":"removeClass"]("collapsed");f.collapse(h)})}(window.jQuery),+function(a){function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}"use strict",b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this,d=this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f=typeof c=="object"&&c;e||d.data("bs.scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(a.style[c]!==undefined)return{end:b[c]}}"use strict",a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery) \ No newline at end of file diff --git a/app/assets/vendor/chart/morris-0.4.3.min.js b/app/assets/vendor/chart/morris-0.4.3.min.js new file mode 100644 index 0000000..edc5d7b --- /dev/null +++ b/app/assets/vendor/chart/morris-0.4.3.min.js @@ -0,0 +1 @@ +(function(){var e,t,n,r,i=[].slice,s={}.hasOwnProperty,o=function(e,t){function r(){this.constructor=e}for(var n in t)s.call(t,n)&&(e[n]=t[n]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},u=function(e,t){return function(){return e.apply(t,arguments)}},a=[].indexOf||function(e){for(var t=0,n=this.length;tn.length&&(r+=i.slice(n.length)),r):"-"},t.pad2=function(e){return(e<10?"0":"")+e},t.Grid=function(n){function r(t){var n=this;typeof t.element=="string"?this.el=e(document.getElementById(t.element)):this.el=e(t.element);if(this.el==null||this.el.length===0)throw new Error("Graph container element not found");this.el.css("position")==="static"&&this.el.css("position","relative"),this.options=e.extend({},this.gridDefaults,this.defaults||{},t),typeof this.options.units=="string"&&(this.options.postUnits=t.units),this.raphael=new Raphael(this.el[0]),this.elementWidth=null,this.elementHeight=null,this.dirty=!1,this.init&&this.init(),this.setData(this.options.data),this.el.bind("mousemove",function(e){var t;return t=n.el.offset(),n.fire("hovermove",e.pageX-t.left,e.pageY-t.top)}),this.el.bind("mouseout",function(e){return n.fire("hoverout")}),this.el.bind("touchstart touchmove touchend",function(e){var t,r;return r=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],t=n.el.offset(),n.fire("hover",r.pageX-t.left,r.pageY-t.top),r}),this.el.bind("click",function(e){var t;return t=n.el.offset(),n.fire("gridclick",e.pageX-t.left,e.pageY-t.top)}),this.postInit&&this.postInit()}return o(r,n),r.prototype.gridDefaults={dateFormat:null,axes:!0,grid:!0,gridLineColor:"#aaa",gridStrokeWidth:.5,gridTextColor:"#888",gridTextSize:12,gridTextFamily:"sans-serif",gridTextWeight:"normal",hideHover:!1,yLabelFormat:null,xLabelAngle:0,numLines:5,padding:25,parseTime:!0,postUnits:"",preUnits:"",ymax:"auto",ymin:"auto 0",goals:[],goalStrokeWidth:1,goalLineColors:["#666633","#999966","#cc6666","#663333"],events:[],eventStrokeWidth:1,eventLineColors:["#005a04","#ccffbb","#3a5f0b","#005502"]},r.prototype.setData=function(e,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m;n==null&&(n=!0),this.options.data=e;if(e==null||e.length===0){this.data=[],this.raphael.clear(),this.hover!=null&&this.hover.hide();return}d=this.cumulative?0:null,v=this.cumulative?0:null,this.options.goals.length>0&&(u=Math.min.apply(null,this.options.goals),o=Math.max.apply(null,this.options.goals),v=v!=null?Math.min(v,u):u,d=d!=null?Math.max(d,o):o),this.data=function(){var n,r,o;o=[];for(s=n=0,r=e.length;nt.x)-(t.x>e.x)})),this.xmin=this.data[0].x,this.xmax=this.data[this.data.length-1].x,this.events=[],this.options.parseTime&&this.options.events.length>0&&(this.events=function(){var e,n,i,s;i=this.options.events,s=[];for(e=0,n=i.length;e=n;h=e+=l)r.push(h);return r}.call(this));this.dirty=!0;if(n)return this.redraw()},r.prototype.yboundary=function(e,t){var n,r;return n=this.options["y"+e],typeof n=="string"?n.slice(0,4)==="auto"?n.length>5?(r=parseInt(n.slice(5),10),t==null?r:Math[e](t,r)):t!=null?t:0:parseInt(n,10):n},r.prototype.autoGridLines=function(e,t,n){var r,i,s,o,u,a,f,l,c;return u=t-e,c=Math.floor(Math.log(u)/Math.log(10)),f=Math.pow(10,c),i=Math.floor(e/f)*f,r=Math.ceil(t/f)*f,a=(r-i)/(n-1),f===1&&a>1&&Math.ceil(a)!==a&&(a=Math.ceil(a),r=i+a*(n-1)),i<0&&r>0&&(i=Math.floor(e/a)*a,r=Math.ceil(t/a)*a),a<1?(o=Math.floor(Math.log(a)/Math.log(10)),s=function(){var e,t;t=[];for(l=e=i;i<=r?e<=r:e>=r;l=e+=a)t.push(parseFloat(l.toFixed(1-o)));return t}()):s=function(){var e,t;t=[];for(l=e=i;i<=r?e<=r:e>=r;l=e+=a)t.push(l);return t}(),s},r.prototype._calc=function(){var e,t,n,r,i,s;i=this.el.width(),n=this.el.height();if(this.elementWidth!==i||this.elementHeight!==n||this.dirty){this.elementWidth=i,this.elementHeight=n,this.dirty=!1,this.left=this.options.padding,this.right=this.elementWidth-this.options.padding,this.top=this.options.padding,this.bottom=this.elementHeight-this.options.padding,this.options.axes&&(s=function(){var e,n,r,i;r=this.grid,i=[];for(e=0,n=r.length;et;r=0<=t?++e:--e)n.push(this.measureText(this.data[r].text,-this.options.xLabelAngle).height);return n}.call(this),this.bottom-=Math.max.apply(Math,e)),this.width=Math.max(1,this.right-this.left),this.height=Math.max(1,this.bottom-this.top),this.dx=this.width/(this.xmax-this.xmin),this.dy=this.height/(this.ymax-this.ymin);if(this.calc)return this.calc()}},r.prototype.transY=function(e){return this.bottom-(e-this.ymin)*this.dy},r.prototype.transX=function(e){return this.data.length===1?(this.left+this.right)/2:this.left+(e-this.xmin)*this.dx},r.prototype.redraw=function(){this.raphael.clear(),this._calc(),this.drawGrid(),this.drawGoals(),this.drawEvents();if(this.draw)return this.draw()},r.prototype.measureText=function(e,t){var n,r;return t==null&&(t=0),r=this.raphael.text(100,100,e).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).rotate(t),n=r.getBBox(),r.remove(),n},r.prototype.yAxisFormat=function(e){return this.yLabelFormat(e)},r.prototype.yLabelFormat=function(e){return typeof this.options.yLabelFormat=="function"?this.options.yLabelFormat(e):""+this.options.preUnits+t.commas(e)+this.options.postUnits},r.prototype.updateHover=function(e,t){var n,r;n=this.hitTest(e,t);if(n!=null)return(r=this.hover).update.apply(r,n)},r.prototype.drawGrid=function(){var e,t,n,r,i,s;if(this.options.grid===!1&&this.options.axes===!1)return;i=this.grid,s=[];for(n=0,r=i.length;n
"),this.el.hide(),this.options.parent.append(this.el)}return n.defaults={"class":"morris-hover morris-default-style"},n.prototype.update=function(e,t,n){return this.html(e),this.show(),this.moveTo(t,n)},n.prototype.html=function(e){return this.el.html(e)},n.prototype.moveTo=function(e,t){var n,r,i,s,o,u;return o=this.options.parent.innerWidth(),s=this.options.parent.innerHeight(),r=this.el.outerWidth(),n=this.el.outerHeight(),i=Math.min(Math.max(0,e-r/2),o-r),t!=null?(u=t-n-10,u<0&&(u=t+10,u+n>s&&(u=s/2-n/2))):u=s/2-n/2,this.el.css({left:i+"px",top:parseInt(u)+"px"})},n.prototype.show=function(){return this.el.show()},n.prototype.hide=function(){return this.el.hide()},n}(),t.Line=function(e){function n(e){this.hilight=u(this.hilight,this),this.onHoverOut=u(this.onHoverOut,this),this.onHoverMove=u(this.onHoverMove,this),this.onGridClick=u(this.onGridClick,this);if(!(this instanceof t.Line))return new t.Line(e);n.__super__.constructor.call(this,e)}return o(n,e),n.prototype.init=function(){this.pointGrow=Raphael.animation({r:this.options.pointSize+3},25,"linear"),this.pointShrink=Raphael.animation({r:this.options.pointSize},25,"linear");if(this.options.hideHover!=="always")return this.hover=new t.Hover({parent:this.el}),this.on("hovermove",this.onHoverMove),this.on("hoverout",this.onHoverOut),this.on("gridclick",this.onGridClick)},n.prototype.defaults={lineWidth:3,pointSize:4,lineColors:["#0b62a4","#7A92A3","#4da74d","#afd8f8","#edc240","#cb4b4b","#9440ed"],pointWidths:[1],pointStrokeColors:["#ffffff"],pointFillColors:[],smooth:!0,xLabels:"auto",xLabelFormat:null,xLabelMargin:24,continuousLine:!0,hideHover:!1},n.prototype.calc=function(){return this.calcPoints(),this.generatePaths()},n.prototype.calcPoints=function(){var e,t,n,r,i,s;i=this.data,s=[];for(n=0,r=i.length;n"+r.label+"
",u=r.y;for(n=s=0,o=u.length;s\n "+this.options.labels[n]+":\n "+this.yLabelFormat(i)+"\n
";return typeof this.options.hoverCallback=="function"&&(t=this.options.hoverCallback(e,this.options,t)),[t,r._x,r._ymax]},n.prototype.generatePaths=function(){var e,n,r,i,s;return this.paths=function(){var o,u,f,l;l=[];for(r=o=0,u=this.options.ykeys.length;0<=u?ou;r=0<=u?++o:--o)s=this.options.smooth===!0||(f=this.options.ykeys[r],a.call(this.options.smooth,f)>=0),n=function(){var e,t,n,s;n=this.data,s=[];for(e=0,t=n.length;e1?l.push(t.Line.createPath(n,s,this.bottom)):l.push(null);return l}.call(this)},n.prototype.draw=function(){this.options.axes&&this.drawXAxis(),this.drawSeries();if(this.options.hideHover===!1)return this.displayHoverForRow(this.data.length-1)},n.prototype.drawXAxis=function(){var e,n,r,i,s,o,u,a,f,l,c=this;u=this.bottom+this.options.padding/2,s=null,i=null,e=function(e,t){var n,r,o,a,f;return n=c.drawXAxisLabel(c.transX(t),u,e),f=n.getBBox(),n.transform("r"+ -c.options.xLabelAngle),r=n.getBBox(),n.transform("t0,"+r.height/2+"..."),c.options.xLabelAngle!==0&&(a=-0.5*f.width*Math.cos(c.options.xLabelAngle*Math.PI/180),n.transform("t"+a+",0...")),r=n.getBBox(),(s==null||s>=r.x+r.width||i!=null&&i>=r.x)&&r.x>=0&&r.x+r.width=0;e=r<=0?++t:--t)this._drawLineFor(e);s=[];for(e=n=i=this.options.ykeys.length-1;i<=0?n<=0:n>=0;e=i<=0?++n:--n)s.push(this._drawPointFor(e));return s},n.prototype._drawPointFor=function(e){var t,n,r,i,s,o;this.seriesPoints[e]=[],s=this.data,o=[];for(r=0,i=s.length;r=i;t=0<=i?++n:--n)this.seriesPoints[t][this.prevHilight]&&this.seriesPoints[t][this.prevHilight].animate(this.pointShrink);if(e!==null&&this.prevHilight!==e)for(t=r=0,s=this.seriesPoints.length-1;0<=s?r<=s:r>=s;t=0<=s?++r:--r)this.seriesPoints[t][e]&&this.seriesPoints[t][e].animate(this.pointGrow);return this.prevHilight=e},n.prototype.colorFor=function(e,t,n){return typeof this.options.lineColors=="function"?this.options.lineColors.call(this,e,t,n):n==="point"?this.options.pointFillColors[t%this.options.pointFillColors.length]||this.options.lineColors[t%this.options.lineColors.length]:this.options.lineColors[t%this.options.lineColors.length]},n.prototype.drawXAxisLabel=function(e,t,n){return this.raphael.text(e,t,n).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},n.prototype.drawLinePath=function(e,t){return this.raphael.path(e).attr("stroke",t).attr("stroke-width",this.options.lineWidth)},n.prototype.drawLinePoint=function(e,t,n,r,i){return this.raphael.circle(e,t,n).attr("fill",r).attr("stroke-width",this.strokeWidthForSeries(i)).attr("stroke",this.strokeForSeries(i))},n.prototype.strokeWidthForSeries=function(e){return this.options.pointWidths[e%this.options.pointWidths.length]},n.prototype.strokeForSeries=function(e){return this.options.pointStrokeColors[e%this.options.pointStrokeColors.length]},n}(t.Grid),t.labelSeries=function(n,r,i,s,o){var u,a,f,l,c,h,p,d,v,m,g;f=200*(r-n)/i,a=new Date(n),p=t.LABEL_SPECS[s];if(p===void 0){g=t.AUTO_LABEL_ORDER;for(v=0,m=g.length;v=h.span){p=h;break}}}p===void 0&&(p=t.LABEL_SPECS.second),o&&(p=e.extend({},p,{fmt:o})),u=p.start(a),c=[];while((d=u.getTime())<=r)d>=n&&c.push([p.fmt(u),d]),p.incr(u);return c},n=function(e){return{span:e*60*1e3,start:function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours())},fmt:function(e){return""+t.pad2(e.getHours())+":"+t.pad2(e.getMinutes())},incr:function(t){return t.setUTCMinutes(t.getUTCMinutes()+e)}}},r=function(e){return{span:e*1e3,start:function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes())},fmt:function(e){return""+t.pad2(e.getHours())+":"+t.pad2(e.getMinutes())+":"+t.pad2(e.getSeconds())},incr:function(t){return t.setUTCSeconds(t.getUTCSeconds()+e)}}},t.LABEL_SPECS={decade:{span:1728e8,start:function(e){return new Date(e.getFullYear()-e.getFullYear()%10,0,1)},fmt:function(e){return""+e.getFullYear()},incr:function(e){return e.setFullYear(e.getFullYear()+10)}},year:{span:1728e7,start:function(e){return new Date(e.getFullYear(),0,1)},fmt:function(e){return""+e.getFullYear()},incr:function(e){return e.setFullYear(e.getFullYear()+1)}},month:{span:24192e5,start:function(e){return new Date(e.getFullYear(),e.getMonth(),1)},fmt:function(e){return""+e.getFullYear()+"-"+t.pad2(e.getMonth()+1)},incr:function(e){return e.setMonth(e.getMonth()+1)}},day:{span:864e5,start:function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())},fmt:function(e){return""+e.getFullYear()+"-"+t.pad2(e.getMonth()+1)+"-"+t.pad2(e.getDate())},incr:function(e){return e.setDate(e.getDate()+1)}},hour:n(60),"30min":n(30),"15min":n(15),"10min":n(10),"5min":n(5),minute:n(1),"30sec":r(30),"15sec":r(15),"10sec":r(10),"5sec":r(5),second:r(1)},t.AUTO_LABEL_ORDER=["decade","year","month","day","hour","30min","15min","10min","5min","minute","30sec","15sec","10sec","5sec","second"],t.Area=function(n){function i(n){var s;if(!(this instanceof t.Area))return new t.Area(n);s=e.extend({},r,n),this.cumulative=!s.behaveLikeLine,s.fillOpacity==="auto"&&(s.fillOpacity=s.behaveLikeLine?.8:1),i.__super__.constructor.call(this,s)}var r;return o(i,n),r={fillOpacity:"auto",behaveLikeLine:!1},i.prototype.calcPoints=function(){var e,t,n,r,i,s,o;s=this.data,o=[];for(r=0,i=s.length;r=t;0<=t?e++:e--)a.push(e);return a}.apply(this):t=function(){f=[];for(var e=u=this.options.ykeys.length-1;u<=0?e<=0:e>=0;u<=0?e++:e--)f.push(e);return f}.apply(this),l=[];for(i=0,s=t.length;ic;e=0<=c?++l:--l)u=this.data[this.data.length-1-e],t=this.drawXAxisLabel(u._x,f,u.label),a=t.getBBox(),t.transform("r"+ -this.options.xLabelAngle),n=t.getBBox(),t.transform("t0,"+n.height/2+"..."),this.options.xLabelAngle!==0&&(i=-0.5*a.width*Math.cos(this.options.xLabelAngle*Math.PI/180),t.transform("t"+i+",0...")),(o==null||o>=n.x+n.width||s!=null&&s>=n.x)&&n.x>=0&&n.x+n.width=0?this.transY(0):null,this.bars=function(){var u,d,v,m;v=this.data,m=[];for(r=u=0,d=v.length;u"+r.label+"",a=r.y;for(n=o=0,u=a.length;o\n "+this.options.labels[n]+":\n "+this.yLabelFormat(s)+"\n";return typeof this.options.hoverCallback=="function"&&(t=this.options.hoverCallback(e,this.options,t)),i=this.left+(e+.5)*this.width/this.data.length,[t,i]},r.prototype.drawXAxisLabel=function(e,t,n){var r;return r=this.raphael.text(e,t,n).attr("font-size",this.options.gridTextSize).attr("font-family",this.options.gridTextFamily).attr("font-weight",this.options.gridTextWeight).attr("fill",this.options.gridTextColor)},r.prototype.drawBar=function(e,t,n,r,i){return this.raphael.rect(e,t,n,r).attr("fill",i).attr("stroke-width",0)},r}(t.Grid),t.Donut=function(n){function r(n){this.select=u(this.select,this),this.click=u(this.click,this);var r;if(!(this instanceof t.Donut))return new t.Donut(n);typeof n.element=="string"?this.el=e(document.getElementById(n.element)):this.el=e(n.element),this.options=e.extend({},this.defaults,n);if(this.el===null||this.el.length===0)throw new Error("Graph placeholder not found.");if(n.data===void 0||n.data.length===0)return;this.data=n.data,this.values=function(){var e,t,n,i;n=this.data,i=[];for(e=0,t=n.length;eMath.PI?1:0,this.path=this.calcSegment(this.inner+3,this.inner+this.outer-5),this.selectedPath=this.calcSegment(this.inner+3,this.inner+this.outer),this.hilight=this.calcArc(this.inner)}return o(t,e),t.prototype.calcArcPoints=function(e){return[this.cx+e*this.sin_p0,this.cy+e*this.cos_p0,this.cx+e*this.sin_p1,this.cy+e*this.cos_p1]},t.prototype.calcSegment=function(e,t){var n,r,i,s,o,u,a,f,l,c;return l=this.calcArcPoints(e),n=l[0],i=l[1],r=l[2],s=l[3],c=this.calcArcPoints(t),o=c[0],a=c[1],u=c[2],f=c[3],"M"+n+","+i+("A"+e+","+e+",0,"+this.is_long+",0,"+r+","+s)+("L"+u+","+f)+("A"+t+","+t+",0,"+this.is_long+",1,"+o+","+a)+"Z"},t.prototype.calcArc=function(e){var t,n,r,i,s;return s=this.calcArcPoints(e),t=s[0],r=s[1],n=s[2],i=s[3],"M"+t+","+r+("A"+e+","+e+",0,"+this.is_long+",0,"+n+","+i)},t.prototype.render=function(){var e=this;return this.arc=this.drawDonutArc(this.hilight,this.color),this.seg=this.drawDonutSegment(this.path,this.color,this.backgroundColor,function(){return e.fire("hover",e.index)},function(){return e.fire("click",e.index)})},t.prototype.drawDonutArc=function(e,t){return this.raphael.path(e).attr({stroke:t,"stroke-width":2,opacity:0})},t.prototype.drawDonutSegment=function(e,t,n,r,i){return this.raphael.path(e).attr({fill:t,stroke:n,"stroke-width":3}).hover(r).click(i)},t.prototype.select=function(){if(!this.selected)return this.seg.animate({path:this.selectedPath},150,"<>"),this.arc.animate({opacity:1},150,"<>"),this.selected=!0},t.prototype.deselect=function(){if(this.selected)return this.seg.animate({path:this.path},150,"<>"),this.arc.animate({opacity:0},150,"<>"),this.selected=!1},t}(t.EventEmitter)}).call(this); \ No newline at end of file diff --git a/app/assets/vendor/chart/raphael-min.js b/app/assets/vendor/chart/raphael-min.js new file mode 100644 index 0000000..f980ba7 --- /dev/null +++ b/app/assets/vendor/chart/raphael-min.js @@ -0,0 +1,10 @@ +// ┌────────────────────────────────────────────────────────────────────┐ \\ +// │ Raphaël 2.1.0 - JavaScript Vector Library │ \\ +// ├────────────────────────────────────────────────────────────────────┤ \\ +// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\ +// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\ +// ├────────────────────────────────────────────────────────────────────┤ \\ +// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\ +// └────────────────────────────────────────────────────────────────────┘ \\ + +(function(a){var b="0.3.4",c="hasOwnProperty",d=/[\.\/]/,e="*",f=function(){},g=function(a,b){return a-b},h,i,j={n:{}},k=function(a,b){var c=j,d=i,e=Array.prototype.slice.call(arguments,2),f=k.listeners(a),l=0,m=!1,n,o=[],p={},q=[],r=h,s=[];h=a,i=0;for(var t=0,u=f.length;tf*b.top){e=b.percents[y],p=b.percents[y-1]||0,t=t/b.top*(e-p),o=b.percents[y+1],j=b.anim[e];break}f&&d.attr(b.anim[b.percents[y]])}if(!!j){if(!k){for(var A in j)if(j[g](A))if(U[g](A)||d.paper.customAttributes[g](A)){u[A]=d.attr(A),u[A]==null&&(u[A]=T[A]),v[A]=j[A];switch(U[A]){case C:w[A]=(v[A]-u[A])/t;break;case"colour":u[A]=a.getRGB(u[A]);var B=a.getRGB(v[A]);w[A]={r:(B.r-u[A].r)/t,g:(B.g-u[A].g)/t,b:(B.b-u[A].b)/t};break;case"path":var D=bR(u[A],v[A]),E=D[1];u[A]=D[0],w[A]=[];for(y=0,z=u[A].length;yd)return d;while(cf?c=e:d=e,e=(d-c)/2+c}return e}function n(a,b){var c=o(a,b);return((l*c+k)*c+j)*c}function m(a){return((i*a+h)*a+g)*a}var g=3*b,h=3*(d-b)-g,i=1-g-h,j=3*c,k=3*(e-c)-j,l=1-j-k;return n(a,1/(200*f))}function cq(){return this.x+q+this.y+q+this.width+" × "+this.height}function cp(){return this.x+q+this.y}function cb(a,b,c,d,e,f){a!=null?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function bH(b,c,d){b=a._path2curve(b),c=a._path2curve(c);var e,f,g,h,i,j,k,l,m,n,o=d?0:[];for(var p=0,q=b.length;p=0&&y<=1&&A>=0&&A<=1&&(d?n++:n.push({x:x.x,y:x.y,t1:y,t2:A}))}}return n}function bF(a,b){return bG(a,b,1)}function bE(a,b){return bG(a,b)}function bD(a,b,c,d,e,f,g,h){if(!(x(a,c)x(e,g)||x(b,d)x(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(!k)return;var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(n<+y(a,c).toFixed(2)||n>+x(a,c).toFixed(2)||n<+y(e,g).toFixed(2)||n>+x(e,g).toFixed(2)||o<+y(b,d).toFixed(2)||o>+x(b,d).toFixed(2)||o<+y(f,h).toFixed(2)||o>+x(f,h).toFixed(2))return;return{x:l,y:m}}}function bC(a,b,c,d,e,f,g,h,i){if(!(i<0||bB(a,b,c,d,e,f,g,h)n)k/=2,l+=(m1?1:i<0?0:i;var j=i/2,k=12,l=[-0.1252,.1252,-0.3678,.3678,-0.5873,.5873,-0.7699,.7699,-0.9041,.9041,-0.9816,.9816],m=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],n=0;for(var o=0;od;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function bx(){return this.hex}function bv(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join("␀"),h=d.cache=d.cache||{},i=d.count=d.count||[];if(h[g](f)){bu(i,f);return c?c(h[f]):h[f]}i.length>=1e3&&delete h[i.shift()],i.push(f),h[f]=a[m](b,e);return c?c(h[f]):h[f]}return d}function bu(a,b){for(var c=0,d=a.length;c',bl=bk.firstChild,bl.style.behavior="url(#default#VML)";if(!bl||typeof bl.adj!="object")return a.type=p;bk=null}a.svg=!(a.vml=a.type=="VML"),a._Paper=j,a.fn=k=j.prototype=a.prototype,a._id=0,a._oid=0,a.is=function(a,b){b=v.call(b);if(b=="finite")return!M[g](+a);if(b=="array")return a instanceof Array;return b=="null"&&a===null||b==typeof a&&a!==null||b=="object"&&a===Object(a)||b=="array"&&Array.isArray&&Array.isArray(a)||H.call(a).slice(8,-1).toLowerCase()==b},a.angle=function(b,c,d,e,f,g){if(f==null){var h=b-d,i=c-e;if(!h&&!i)return 0;return(180+w.atan2(-i,-h)*180/B+360)%360}return a.angle(b,c,f,g)-a.angle(d,e,f,g)},a.rad=function(a){return a%360*B/180},a.deg=function(a){return a*180/B%360},a.snapTo=function(b,c,d){d=a.is(d,"finite")?d:10;if(a.is(b,E)){var e=b.length;while(e--)if(z(b[e]-c)<=d)return b[e]}else{b=+b;var f=c%b;if(fb-d)return c-f+b}return c};var bn=a.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=w.random()*16|0,c=a=="x"?b:b&3|8;return c.toString(16)});a.setWindow=function(b){eve("raphael.setWindow",a,h.win,b),h.win=b,h.doc=h.win.document,a._engine.initWin&&a._engine.initWin(h.win)};var bo=function(b){if(a.vml){var c=/^\s+|\s+$/g,d;try{var e=new ActiveXObject("htmlfile");e.write(""),e.close(),d=e.body}catch(f){d=createPopup().document.body}var g=d.createTextRange();bo=bv(function(a){try{d.style.color=r(a).replace(c,p);var b=g.queryCommandValue("ForeColor");b=(b&255)<<16|b&65280|(b&16711680)>>>16;return"#"+("000000"+b.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=h.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display="none",h.doc.body.appendChild(i),bo=bv(function(a){i.style.color=a;return h.doc.defaultView.getComputedStyle(i,p).getPropertyValue("color")})}return bo(b)},bp=function(){return"hsb("+[this.h,this.s,this.b]+")"},bq=function(){return"hsl("+[this.h,this.s,this.l]+")"},br=function(){return this.hex},bs=function(b,c,d){c==null&&a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b&&(d=b.b,c=b.g,b=b.r);if(c==null&&a.is(b,D)){var e=a.getRGB(b);b=e.r,c=e.g,d=e.b}if(b>1||c>1||d>1)b/=255,c/=255,d/=255;return[b,c,d]},bt=function(b,c,d,e){b*=255,c*=255,d*=255;var f={r:b,g:c,b:d,hex:a.rgb(b,c,d),toString:br};a.is(e,"finite")&&(f.opacity=e);return f};a.color=function(b){var c;a.is(b,"object")&&"h"in b&&"s"in b&&"b"in b?(c=a.hsb2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):a.is(b,"object")&&"h"in b&&"s"in b&&"l"in b?(c=a.hsl2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):(a.is(b,"string")&&(b=a.getRGB(b)),a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b?(c=a.rgb2hsl(b),b.h=c.h,b.s=c.s,b.l=c.l,c=a.rgb2hsb(b),b.v=c.b):(b={hex:"none"},b.r=b.g=b.b=b.h=b.s=b.v=b.l=-1)),b.toString=br;return b},a.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;a=a%360/60,i=c*b,h=i*(1-z(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return bt(e,f,g,d)},a.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h);if(a>1||b>1||c>1)a/=360,b/=100,c/=100;a*=360;var e,f,g,h,i;a=a%360/60,i=2*b*(c<.5?c:1-c),h=i*(1-z(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return bt(e,f,g,d)},a.rgb2hsb=function(a,b,c){c=bs(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;f=x(a,b,c),g=f-y(a,b,c),d=g==0?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=g==0?0:g/f;return{h:d,s:e,b:f,toString:bp}},a.rgb2hsl=function(a,b,c){c=bs(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;g=x(a,b,c),h=y(a,b,c),i=g-h,d=i==0?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=i==0?0:f<.5?i/(2*f):i/(2-2*f);return{h:d,s:e,l:f,toString:bq}},a._path2string=function(){return this.join(",").replace(Y,"$1")};var bw=a._preload=function(a,b){var c=h.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,h.doc.body.removeChild(this)},c.onerror=function(){h.doc.body.removeChild(this)},h.doc.body.appendChild(c),c.src=a};a.getRGB=bv(function(b){if(!b||!!((b=r(b)).indexOf("-")+1))return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bx};if(b=="none")return{r:-1,g:-1,b:-1,hex:"none",toString:bx};!X[g](b.toLowerCase().substring(0,2))&&b.charAt()!="#"&&(b=bo(b));var c,d,e,f,h,i,j,k=b.match(L);if(k){k[2]&&(f=R(k[2].substring(5),16),e=R(k[2].substring(3,5),16),d=R(k[2].substring(1,3),16)),k[3]&&(f=R((i=k[3].charAt(3))+i,16),e=R((i=k[3].charAt(2))+i,16),d=R((i=k[3].charAt(1))+i,16)),k[4]&&(j=k[4][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),k[1].toLowerCase().slice(0,4)=="rgba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100));if(k[5]){j=k[5][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsb2rgb(d,e,f,h)}if(k[6]){j=k[6][s](W),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsla"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsl2rgb(d,e,f,h)}k={r:d,g:e,b:f,toString:bx},k.hex="#"+(16777216|f|e<<8|d<<16).toString(16).slice(1),a.is(h,"finite")&&(k.opacity=h);return k}return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bx}},a),a.hsb=bv(function(b,c,d){return a.hsb2rgb(b,c,d).hex}),a.hsl=bv(function(b,c,d){return a.hsl2rgb(b,c,d).hex}),a.rgb=bv(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),a.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b}));return c.hex},a.getColor.reset=function(){delete this.start},a.parsePathString=function(b){if(!b)return null;var c=bz(b);if(c.arr)return bJ(c.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];a.is(b,E)&&a.is(b[0],E)&&(e=bJ(b)),e.length||r(b).replace(Z,function(a,b,c){var f=[],g=b.toLowerCase();c.replace(_,function(a,b){b&&f.push(+b)}),g=="m"&&f.length>2&&(e.push([b][n](f.splice(0,2))),g="l",b=b=="m"?"l":"L");if(g=="r")e.push([b][n](f));else while(f.length>=d[g]){e.push([b][n](f.splice(0,d[g])));if(!d[g])break}}),e.toString=a._path2string,c.arr=bJ(e);return e},a.parseTransformString=bv(function(b){if(!b)return null;var c={r:3,s:4,t:2,m:6},d=[];a.is(b,E)&&a.is(b[0],E)&&(d=bJ(b)),d.length||r(b).replace($,function(a,b,c){var e=[],f=v.call(b);c.replace(_,function(a,b){b&&e.push(+b)}),d.push([b][n](e))}),d.toString=a._path2string;return d});var bz=function(a){var b=bz.ps=bz.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[g](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])});return b[a]};a.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=A(j,3),l=A(j,2),m=i*i,n=m*i,o=k*a+l*3*i*c+j*3*i*i*e+n*g,p=k*b+l*3*i*d+j*3*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,x=j*e+i*g,y=j*f+i*h,z=90-w.atan2(q-s,r-t)*180/B;(q>s||r=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},a.isBBoxIntersect=function(b,c){var d=a.isPointInsideBBox;return d(c,b.x,b.y)||d(c,b.x2,b.y)||d(c,b.x,b.y2)||d(c,b.x2,b.y2)||d(b,c.x,c.y)||d(b,c.x2,c.y)||d(b,c.x,c.y2)||d(b,c.x2,c.y2)||(b.xc.x||c.xb.x)&&(b.yc.y||c.yb.y)},a.pathIntersection=function(a,b){return bH(a,b)},a.pathIntersectionNumber=function(a,b){return bH(a,b,1)},a.isPointInsidePath=function(b,c,d){var e=a.pathBBox(b);return a.isPointInsideBBox(e,c,d)&&bH(b,[["M",c,d],["H",e.x2+10]],1)%2==1},a._removedFactory=function(a){return function(){eve("raphael.log",null,"Raphaël: you are calling to method “"+a+"” of removed object",a)}};var bI=a.pathBBox=function(a){var b=bz(a);if(b.bbox)return b.bbox;if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=bR(a);var c=0,d=0,e=[],f=[],g;for(var h=0,i=a.length;h1&&(v=w.sqrt(v),c=v*c,d=v*d);var x=c*c,y=d*d,A=(f==g?-1:1)*w.sqrt(z((x*y-x*u*u-y*t*t)/(x*u*u+y*t*t))),C=A*c*u/d+(a+h)/2,D=A*-d*t/c+(b+i)/2,E=w.asin(((b-D)/d).toFixed(9)),F=w.asin(((i-D)/d).toFixed(9));E=aF&&(E=E-B*2),!g&&F>E&&(F=F-B*2)}else E=j[0],F=j[1],C=j[2],D=j[3];var G=F-E;if(z(G)>k){var H=F,I=h,J=i;F=E+k*(g&&F>E?1:-1),h=C+c*w.cos(F),i=D+d*w.sin(F),m=bO(h,i,c,d,e,0,g,I,J,[F,H,C,D])}G=F-E;var K=w.cos(E),L=w.sin(E),M=w.cos(F),N=w.sin(F),O=w.tan(G/4),P=4/3*c*O,Q=4/3*d*O,R=[a,b],S=[a+P*L,b-Q*K],T=[h+P*N,i-Q*M],U=[h,i];S[0]=2*R[0]-S[0],S[1]=2*R[1]-S[1];if(j)return[S,T,U][n](m);m=[S,T,U][n](m).join()[s](",");var V=[];for(var W=0,X=m.length;W"1e12"&&(l=.5),z(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bP(a,b,c,d,e,f,g,h,l),p.push(q.x),o.push(q.y)),n>0&&n<1&&(q=bP(a,b,c,d,e,f,g,h,n),p.push(q.x),o.push(q.y)),i=f-2*d+b-(h-2*f+d),j=2*(d-b)-2*(f-d),k=b-d,l=(-j+w.sqrt(j*j-4*i*k))/2/i,n=(-j-w.sqrt(j*j-4*i*k))/2/i,z(l)>"1e12"&&(l=.5),z(n)>"1e12"&&(n=.5),l>0&&l<1&&(q=bP(a,b,c,d,e,f,g,h,l),p.push(q.x),o.push(q.y)),n>0&&n<1&&(q=bP(a,b,c,d,e,f,g,h,n),p.push(q.x),o.push(q.y));return{min:{x:y[m](0,p),y:y[m](0,o)},max:{x:x[m](0,p),y:x[m](0,o)}}}),bR=a._path2curve=bv(function(a,b){var c=!b&&bz(a);if(!b&&c.curve)return bJ(c.curve);var d=bL(a),e=b&&bL(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=function(a,b){var c,d;if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];!(a[0]in{T:1,Q:1})&&(b.qx=b.qy=null);switch(a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][n](bO[m](0,[b.x,b.y][n](a.slice(1))));break;case"S":c=b.x+(b.x-(b.bx||b.x)),d=b.y+(b.y-(b.by||b.y)),a=["C",c,d][n](a.slice(1));break;case"T":b.qx=b.x+(b.x-(b.qx||b.x)),b.qy=b.y+(b.y-(b.qy||b.y)),a=["C"][n](bN(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][n](bN(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][n](bM(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][n](bM(b.x,b.y,a[1],b.y));break;case"V":a=["C"][n](bM(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][n](bM(b.x,b.y,b.X,b.Y))}return a},i=function(a,b){if(a[b].length>7){a[b].shift();var c=a[b];while(c.length)a.splice(b++,0,["C"][n](c.splice(0,6)));a.splice(b,1),l=x(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&a[g][0]=="M"&&b[g][0]!="M"&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=x(d.length,e&&e.length||0))};for(var k=0,l=x(d.length,e&&e.length||0);ke){if(c&&!l.start){m=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),k+=["C"+m.start.x,m.start.y,m.m.x,m.m.y,m.x,m.y];if(f)return k;l.start=k,k=["M"+m.x,m.y+"C"+m.n.x,m.n.y,m.end.x,m.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!b&&!c){m=cs(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n);return{x:m.x,y:m.y,alpha:m.alpha}}}n+=j,g=+i[5],h=+i[6]}k+=i.shift()+i}l.end=k,m=b?n:c?l:a.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),m.alpha&&(m={x:m.x,y:m.y,alpha:m.alpha});return m}},cu=ct(1),cv=ct(),cw=ct(0,1);a.getTotalLength=cu,a.getPointAtLength=cv,a.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return cw(a,b).end;var d=cw(a,c,1);return b?cw(d,b).end:d},cl.getTotalLength=function(){if(this.type=="path"){if(this.node.getTotalLength)return this.node.getTotalLength();return cu(this.attrs.path)}},cl.getPointAtLength=function(a){if(this.type=="path")return cv(this.attrs.path,a)},cl.getSubpath=function(b,c){if(this.type=="path")return a.getSubpath(this.attrs.path,b,c)};var cx=a.easing_formulas={linear:function(a){return a},"<":function(a){return A(a,1.7)},">":function(a){return A(a,.48)},"<>":function(a){var b=.48-a/1.04,c=w.sqrt(.1734+b*b),d=c-b,e=A(z(d),1/3)*(d<0?-1:1),f=-c-b,g=A(z(f),1/3)*(f<0?-1:1),h=e+g+.5;return(1-h)*3*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a=a-1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){if(a==!!a)return a;return A(2,-10*a)*w.sin((a-.075)*2*B/.3)+1},bounce:function(a){var b=7.5625,c=2.75,d;a<1/c?d=b*a*a:a<2/c?(a-=1.5/c,d=b*a*a+.75):a<2.5/c?(a-=2.25/c,d=b*a*a+.9375):(a-=2.625/c,d=b*a*a+.984375);return d}};cx.easeIn=cx["ease-in"]=cx["<"],cx.easeOut=cx["ease-out"]=cx[">"],cx.easeInOut=cx["ease-in-out"]=cx["<>"],cx["back-in"]=cx.backIn,cx["back-out"]=cx.backOut;var cy=[],cz=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){setTimeout(a,16)},cA=function(){var b=+(new Date),c=0;for(;c1&&!d.next){for(s in k)k[g](s)&&(r[s]=d.totalOrigin[s]);d.el.attr(r),cE(d.anim,d.el,d.anim.percents[0],null,d.totalOrigin,d.repeat-1)}d.next&&!d.stop&&cE(d.anim,d.el,d.next,null,d.totalOrigin,d.repeat)}}a.svg&&m&&m.paper&&m.paper.safari(),cy.length&&cz(cA)},cB=function(a){return a>255?255:a<0?0:a};cl.animateWith=function(b,c,d,e,f,g){var h=this;if(h.removed){g&&g.call(h);return h}var i=d instanceof cD?d:a.animation(d,e,f,g),j,k;cE(i,h,i.percents[0],null,h.attr());for(var l=0,m=cy.length;l.5)*2-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&n!=.5&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/);if(j=="linear"){var t=e.shift();t=-d(t);if(isNaN(t))return null;var u=[0,0,f.cos(a.rad(t)),f.sin(a.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=a._parseDots(e);if(!w)return null;k=k.replace(/[\(\)\s,\xb0#]/g,"_"),b.gradient&&k!=b.gradient.id&&(p.defs.removeChild(b.gradient),delete b.gradient);if(!b.gradient){s=q(j+"Gradient",{id:k}),b.gradient=s,q(s,j=="radial"?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:b.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;x1?G.opacity/100:G.opacity});case"stroke":G=a.getRGB(p),i.setAttribute(o,G.hex),o=="stroke"&&G[b]("opacity")&&q(i,{"stroke-opacity":G.opacity>1?G.opacity/100:G.opacity}),o=="stroke"&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":(d.type=="circle"||d.type=="ellipse"||c(p).charAt()!="r")&&r(d,p);break;case"opacity":k.gradient&&!k[b]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){H=a._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),H&&(I=H.getElementsByTagName("stop"),q(I[I.length-1],{"stop-opacity":p}));break};default:o=="font-size"&&(p=e(p,10)+"px");var J=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[J]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if(d.type=="text"&&!!(f[b]("text")||f[b]("font")||f[b]("font-size")||f[b]("x")||f[b]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(a._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10;if(f[b]("text")){g.text=f.text;while(h.firstChild)h.removeChild(h.firstChild);var j=c(f.text).split("\n"),k=[],m;for(var n=0,o=j.length;n"));var $=X.getBoundingClientRect();t.W=m.w=($.right-$.left)/Y,t.H=m.h=($.bottom-$.top)/Y,t.X=m.x,t.Y=m.y+t.H/2,("x"in i||"y"in i)&&(t.path.v=a.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));var _=["x","y","text","font","font-family","font-weight","font-style","font-size"];for(var ba=0,bb=_.length;ba.25&&(c=e.sqrt(.25-i(b-.5,2))*((c>.5)*2-1)+.5),m=b+n+c);return o}),f=f.split(/\s*\-\s*/);if(l=="linear"){var p=f.shift();p=-d(p);if(isNaN(p))return null}var q=a._parseDots(f);if(!q)return null;b=b.shape||b.node;if(q.length){b.removeChild(g),g.on=!0,g.method="none",g.color=q[0].color,g.color2=q[q.length-1].color;var r=[];for(var s=0,t=q.length;s')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},a._engine.initWin(a._g.win),a._engine.create=function(){var b=a._getContainer.apply(0,arguments),c=b.container,d=b.height,e,f=b.width,g=b.x,h=b.y;if(!c)throw new Error("VML container not found.");var i=new a._Paper,j=i.canvas=a._g.doc.createElement("div"),k=j.style;g=g||0,h=h||0,f=f||512,d=d||342,i.width=f,i.height=d,f==+f&&(f+="px"),d==+d&&(d+="px"),i.coordsize=u*1e3+n+u*1e3,i.coordorigin="0 0",i.span=a._g.doc.createElement("span"),i.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",j.appendChild(i.span),k.cssText=a.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",f,d),c==1?(a._g.doc.body.appendChild(j),k.left=g+"px",k.top=h+"px",k.position="absolute"):c.firstChild?c.insertBefore(j,c.firstChild):c.appendChild(j),i.renderfix=function(){};return i},a.prototype.clear=function(){a.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=a._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},a.prototype.remove=function(){a.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var b in this)this[b]=typeof this[b]=="function"?a._removedFactory(b):null;return!0};var G=a.st;for(var H in E)E[b](H)&&!G[b](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}(window.Raphael) \ No newline at end of file diff --git a/app/assets/vendor/html5shiv.js b/app/assets/vendor/html5shiv.js new file mode 100755 index 0000000..1f349fd --- /dev/null +++ b/app/assets/vendor/html5shiv.js @@ -0,0 +1,8 @@ +/* + HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); +a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; +c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| +"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); +for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="
","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x(" +

+ An effective denial-of-service attack can be executed simply by sending the commands below to + eval()function: +

+ + +
while(1)
+

+ This input will cause the target server's event loop to use 100% of its processor time and unable to process any other incoming requests until process is restarted. +

+

+ An alternative DoS attack would be to simply exit or kill the running process: +

process.exit()
or
process.kill(process.pid) 
+

+

+ File System Access +
+

+ +

+ Another potential goal of an attacker might be to read the contents of files from the server. For example, following two commands list the contents of the current directory and parent directory respectively: +

+

+

res.end(require('fs').readdirSync('.').toString())
+
res.end(require('fs').readdirSync('..').toString()) 
+

+

+ Once file names are obtained, an attacker can issue the command below to view the actual contents of a file: +

+

+

res.end(require('fs').readFileSync(filename))
+

+

+ An attacker can further exploit this vulnerability by writing and executing harmful binary files using + fsand + child_processmodules. +

+

+ + +
+
+

How Do I Prevent It?

+
+
+ To prevent server-side js injection attacks: +
    +
  • Validate user inputs on server side before processing
  • +
  • Do not use + eval()function to parse user inputs. Avoid using other commands with similar effect, such as + setTimeOut(), + setInterval(), and + Function(). +
  • +
  • + For parsing JSON input, instead of using + eval(), use a safer alternative such as + JSON.parse(). For type conversions use type related + parseXXX()methods. +
  • +
  • Include + "use strict"at the beginning of a function, which enables strict mode within the enclosing function scope.
  • + +
+
+
+
+
+

Source Code Example

+
+
+

In + routes/contributions.js, the + handleContributionsUpdate()function insecurely uses + eval()to convert user supplied contribution amounts to integer. +

+        // Insecure use of eval() to parse inputs
+        var preTax = eval(req.body.preTax);
+        var afterTax = eval(req.body.afterTax);
+        var roth = eval(req.body.roth);
+                            
This makes application vulnerable to SSJS attack. It can fixed simply by using + parseInt()instead. +
+        //Fix for A1 -1 SSJS Injection attacks - uses alternate method to eval
+        var preTax = parseInt(req.body.preTax);
+        var afterTax = parseInt(req.body.afterTax);
+        var roth = parseInt(req.body.roth);
+                            
+

+

In addition, all functions begin with + use strictpragma. +

+
+
+
+

Further Reading

+
+ +
+ + + + + + +
+ +
+
+ + +
+
+

Description

+
+
+

+ SQL and NoSQL injections enable an attacker to inject code into the query that would be executed by the database. These flaws are introduced when software developers create dynamic database queries that include user supplied input. +

+
+
+ +
+
+

Attack Mechanics

+
+
+

Both SQL and NoSQL databases are vulnerable to injection attack. Here is an example of equivalent attack in both cases, where attacker manages to retrieve admin user's record without knowing password:

+
1. SQL Injection
+

Lets consider an example SQL statement used to authenticate the user with username and password

+
SELECT * FROM accounts WHERE username = '$username' AND password = '$password'
+

If this statement is not prepared or properly handled when constructed, an attacker may be able to supply + admin' --in the username field to access the admin user's account bypassing the condition that checks for the password. The resultant SQL query would looks like:

+
SELECT * FROM accounts WHERE username = 'admin' -- AND password = ''
+
+
2. NoSQL Injection
+

The equivalent of above query for NoSQL MongoDB database is:

+
db.accounts.find({username: username, password: password});
+

While here we are no longer dealing with query language, an attacker can still achieve the same results as SQL injection by supplying JSON input object as below:

+
+{
+    "username": "admin",
+    "password": {$gt: ""}
+}
+                        
+

In MongoDB, + $gtselects those documents where the value of the field is greater than (i.e. >) the specified value. Thus above statement compares password in database with empty string for greatness, which returns + true.

+

The same results can be achieved using other comparison operator such as + $ne.

+
+
+
+
+

SSJS Attack Mechanics

+
+
+

+ Server-side JavaScript Injection (SSJS) is an attack where JavaScript code is injected and executed in a server component. MongoDB specifically, is vulnerable to this attack when queries are run without proper sanitization. +

+ +
$where operator
+

+ MongoDB's + $where operator performs JavaScript expression evaluation on the MongoDB server. If the user is able to inject direct code into such queries then such an attack can take place +

+ +

+ Lets consider an example query: +

+
 db.allocationsCollection.find({ $where: "this.userId == '" + parsedUserId + "' && " + "this.stocks > " + "'" + threshold + "'" }); 
+ +

+ The code will match all documents which have a + userId field as specified by + parsedUserId and a + stocks field as specified by + threshold. The problem is that these parameters are not validated, filtered, or sanitised, and vulnerable to SSJS Injection. +

+
+
+
+
+

How Do I Prevent It?

+
+
+ Here are some measures to prevent SQL / NoSQL injection attacks, or minimize impact if it happens: +
    +
  • Prepared Statements: For SQL calls, use prepared statements instead of building dynamic queries using string concatenation.
  • +
  • Input Validation: Validate inputs to detect malicious values. For NoSQL databases, also validate input types against expected types
  • +
  • Least Privilege: To minimize the potential damage of a successful injection attack, do not assign DBA or admin type access rights to your application accounts. Similarly minimize the privileges of the operating system account that the database process runs under.
  • +
+
+
+
+
+

Source Code Example

+
+
+

Note: These vulnerabilities are not present when using an Atlas M0 cluster with NodeGoat.

+

The Allocations page of the demo application is vulnerable to NoSQL Injection. For example, set the stocks threshold filter to:

+
1'; return 1 == '1
+

This will retrieve allocations for all the users in the database.

+

An attacker could also send the following input for the + threshold field in the request's query, which will create a valid JavaScript expression and satisfy the + $where query as well, resulting in a DoS attack on the MongoDB server: +

+
http://localhost:4000/allocations/2?threshold=5';while(true){};' 
+

+ You can also just drop the following into the Stocks Threshold input box: +

+
';while(true){};'
+

For these vulnerabilities, bare minimum fixes can be found in + allocations.html and + allocations-dao.js

+
+
+
+
+
+ + + +
+ +
+
+ + +
+
+

Description

+
+
+

+ Log injection vulnerabilities enable an attacker to forge and tamper with an application's logs. +

+
+
+ +
+
+

Attack Mechanics

+
+
+

An attacker may craft a malicious request that may deliberately fail, which the application will log, and when attacker's user input is unsanitized, the payload is sent as-is to the logging facility. Vulnerabilities may vary depending on the logging facility:

+
1. Log Forging (CRLF)
+

Lets consider an example where an application logs a failed attempt to login to the system. A very common example for this is as follows: +

+
+var userName = req.body.userName;
+console.log('Error: attempt to login with invalid user: ', userName);
+                        
+

When user input is unsanitized and the output mechanism is an ordinary terminal stdout facility then the application will be vulnerable to CRLF injection, where an attacker can create a malicious payload as follows: +

+curl http://localhost:4000/login -X POST --data 'userName=vyva%0aError: alex moldovan failed $1,000,000 transaction&password=Admin_123&_csrf='
+                        
+ Where the userName parameter is encoding in the request the LF symbol which will result in a new line to begin. Resulting log output will look as follows: +
+Error: attempt to login with invalid user:  vyva
+Error: alex moldovan failed $1,000,000 transaction
+                        
+
+
2. Log Injection Escalation
+

+ An attacker may craft malicious input in hope of an escalated attack where the target isn't the logs themselves, but rather the actual logging system. For example, if an application has a back-office web app that manages viewing and tracking the logs, then an attacker may send an XSS payload into the log, which may not result in log forging on the log itself, but when viewed by a system administrator on the log viewing web app then it may compromise it and result in XSS injection that if the logs app is vulnerable. +

+
+
+
+
+

How Do I Prevent It?

+
+
+ + As always when dealing with user input: +
    +
  • + Do not allow user input into logs +
  • +
  • + Encode to proper context, or sanitize user input +
  • +
+ + Encoding example: +
+// Step 1: Require a module that supports encoding
+var ESAPI = require('node-esapi');
+// - Step 2: Encode the user input that will be logged in the correct context
+// following are a few examples:
+console.log('Error: attempt to login with invalid user: %s', ESAPI.encoder().encodeForHTML(userName));
+console.log('Error: attempt to login with invalid user: %s', ESAPI.encoder().encodeForJavaScript(userName));
+console.log('Error: attempt to login with invalid user: %s', ESAPI.encoder().encodeForURL(userName));
+                        
+
+
+
+
+

Source Code Example

+
+
+

For the above Log Injection vulnerability, example and fix can be found at + routes/session.js

+
+
+
+
+
+ + + + +{% endblock %} diff --git a/app/views/tutorial/a10.html b/app/views/tutorial/a10.html new file mode 100644 index 0000000..6736cd8 --- /dev/null +++ b/app/views/tutorial/a10.html @@ -0,0 +1,59 @@ +{% extends "./layout.html" %} {% block title %}A10-Unvalidated Redirects and Forwards{% endblock %} {% block content %} +
+
+
+ Exploitability: AVERAGE + Prevalence: COMMON + Detectability: EASY + Technical Impact: MODERATE +
+
+
+
+
+
+
+

Description

+
+
Web applications frequently redirect and forward users to other pages and websites, and use untrusted data to determine the destination pages. Without proper validation, attackers can redirect victims to phishing or malware sites, or use forwards to access unauthorized pages.
+
+ +
+
+

Attack Mechanics

+
+
+

An attacker can use unvalidated redirected links as a medium to redirect user to malicious contents and tricks victims into clicking it. Attacker can exploit it to bypass security checks and make it believe trustworthy.

+ +

For example, the "Learning Resources" link ( + /learn?url=...) in the application redirects to another website without validating the url. +

+ +

Here is code from + routes/index.js, +

+    // Handle redirect for learning resources link
+    app.get("/learn", function (req, res, next) {
+        return res.redirect(req.query.url);
+    });
+                    
An attacker can change the + urlquery parameter to point to malicious website and share it. Victims are more likely to click on it, as the initial part of the link (before query parameters) points to a trusted site. +

+
+
+
+
+

How Do I Prevent It?

+
+
+

Safe use of redirects and forwards can be done in a number of ways:

+
    +
  1. Simply avoid using redirects and forwards.
  2. +
  3. If used, don’t involve user parameters in calculating the destination. This can usually be done.
  4. +
  5. If destination parameters can’t be avoided, ensure that the supplied value is valid, and authorized for the user. +
    It is recommended that any such destination parameters be a mapping value, rather than the actual URL or portion of the URL, and that server side code translate this mapping to the target URL.
  6. +
+
+
+
+
{% endblock %} \ No newline at end of file diff --git a/app/views/tutorial/a2.html b/app/views/tutorial/a2.html new file mode 100644 index 0000000..9202d86 --- /dev/null +++ b/app/views/tutorial/a2.html @@ -0,0 +1,310 @@ +{% extends "./layout.html" %} {% block title %}A2-Broken Authentication and Session Management {% endblock %} {% block content %} +
+
+
+ Exploitability: AVERAGE + Prevalence: WIDESPREAD + Detectability: AVERAGE + Technical Impact: SEVERE +
+
+
+ +
+
+
+
+

Description

+
+
+

+ In this attack, an attacker (who can be anonymous external attacker, a user with own account who may attempt to steal data from accounts, or an insider wanting to disguise his or her actions) uses leaks or flaws in the authentication or session management functions to impersonate other users. Application functions related to authentication and session management are often not implemented correctly, allowing attackers to compromise passwords, keys, or session tokens, or to exploit other implementation flaws to assume other users’ identities. +

+

+ Developers frequently build custom authentication and session management schemes, but building these correctly is hard. As a result, these custom schemes frequently have flaws in areas such as logout, password management, timeouts, remember me, secret question, account update, etc. Finding such flaws can sometimes be difficult, as each implementation is unique. +

+
+ +
+ +
+
+ + +
+ +
+ +
+
+ +
+
+

Description

+
+
+ Session management is a critical piece of application security. It is broader risk, and requires developers take care of protecting session id, user credential secure storage, session duration, and protecting critical session data in transit. +
+
+ +
+
+

Attack Mechanics

+
+
+

Scenario #1: Application timeouts aren't set properly. User uses a public computer to access site. Instead of selecting “logout” the user simply closes the browser tab and walks away. Attacker uses the same browser an hour later, and that browser is still authenticated.

+ +

Scenario #2: Attacker acts as a man-in-middle and acquires user's session id from network traffic. Then uses this authenticated session id to connect to application without needing to enter user name and password.

+ +

Scenario #3: Insider or external attacker gains access to the system's password database. User passwords are not properly hashed, exposing every users' password to the attacker.

+
+
+ +
+
+

How Do I Prevent It?

+
+
+ Session management related security issues can be prevented by taking these measures: +
    +
  • User authentication credentials should be protected when stored using hashing or encryption.
  • +
  • Session IDs should not be exposed in the URL (e.g., URL rewriting).
  • +
  • Session IDs should timeout. User sessions or authentication tokens should get properly invalidated during logout.
  • +
  • Session IDs should be recreated after successful login.
  • +
  • Passwords, session IDs, and other credentials should not be sent over unencrypted connections.
  • +
+
+
+ +
+
+

Source Code Examples

+
+
+

In the insecure demo app, following issues exists:

+

1. Protecting user credentials

+

password gets stored in database in plain text . Here is related code in + data/user-dao.js + addUser()method: +

+// Create user document
+var user = {
+    userName: userName,
+    firstName: firstName,
+    lastName: lastName,
+    password: password //received from request param
+};
+                        
To secure it, handle password storage in a safer way by using one way encryption using salt hashing as below:

+
+// Generate password hash
+var salt = bcrypt.genSaltSync();
+var passwordHash = bcrypt.hashSync(password, salt);
+
+// Create user document
+var user = {
+    userName: userName,
+    firstName: firstName,
+    lastName: lastName,
+    password: passwordHash
+};
+                        
This hash password can not be decrypted, hence more secure. To compare the password when user logs in, the user entered password gets converted to hash and compared with the hash in storage. + +
+if (bcrypt.compareSync(password, user.password)) {
+    callback(null, user);
+} else {
+    callback(invalidPasswordError, null);
+}
+                        
Note: The bcrypt module also provides asynchronous methods for creating and comparing hash. +
+
+

2. Session timeout and protecting cookies in transit

+ +

The insecure demo application does not contain any provision to timeout user session. The session stays active until user explicitly logs out.

+ +

In addition to that, the app does not prevent cookies being accessed in script, making application vulnerable to Cross Site Scripting (XSS) attacks. Also cookies are not prevented to get sent on insecure HTTP connection.

+ +

To secure the application:

+

1. Use session based timeouts, terminate session when browser closes.

+
+// Enable session management using express middleware
+app.use(express.cookieParser());
+ 
+

2. In addition, sets + HTTPOnlyHTTP header preventing cookies being accessed by scripts. The application used HTTPS secure connections, and cookies are configured to be sent only on Secure HTTPS connections by setting + Secureflag. +

+app.use(express.session({
+    secret: "s3Cur3",
+    cookie: {
+        httpOnly: true,
+        secure: true
+    }
+}));
+                        
+

+

+ 3. When user clicks logout, destroy the session and session cookie +

+req.session.destroy(function() {
+    res.redirect("/");
+});
+                        
Note: The example code uses + MemoryStoreto manage session data, which is not designed for production environment, as it will leak memory, and will not scale past a single process. Use database based storage MongoStore or RedisStore for production. Alternatively, sessions can be managed using popular passport module. +
+
+

3. Session hijacking

+ +

The insecure demo application does not regenerate a new session id upon user's login, therefore rendering a vulnerability of session hijacking if an attacker is able to somehow steal the cookie with the session id and use it. + +

Upon login, a security best practice with regards to cookies session management would be to regenerate the session id so that if an id was already created for a user on an insecure medium (i.e: non-HTTPS website or otherwise), or if an attacker was able to get their hands on the cookie id before the user logged-in, then the old session id will render useless as the logged-in user with new privileges holds a new session id now. +

+ +

To secure the application:

+

1. Re-generate a new session id upon login (and best practice is to keep regenerating them +upon requests or at least upon sensitive actions like a user's password reset. + + Re-generate a session id as follows: + By wrapping the below code as a function callback for the method req.session.regenerate() +

+req.session.regenerate(function() {
+
+  req.session.userId = user._id;
+
+  if (user.isAdmin) {
+    return res.redirect("/benefits");
+  } else {
+    return res.redirect("/dashboard");
+  }
+
+})
+                        
+

+
+
+
+
+

Further Reading

+
+
+ +
+
+ +
+
+
+ + +
+ +
+
+
+
+

Description

+
+
+ Implementing a robust minimum password criteria (minimum length and complexity) can make it difficult for attacker to guess password. +
+
+ +
+
+

Attack Mechanics

+
+
+

+ The attacker can exploit this vulnerability by brute force password guessing, more likely using tools that generate random passwords. +

+
+
+
+
+

How Do I Prevent It?

+
+
+

Password length +

+

Minimum passwords length should be at least eight (8) characters long. Combining this length with complexity makes a password difficult to guess and/or brute force.

+

Password complexity +

+

Password characters should be a combination of alphanumeric characters. Alphanumeric characters consist of letters, numbers, punctuation marks, mathematical and other conventional symbols.

+

Username/Password Enumeration +

+

Authentication failure responses should not indicate which part of the authentication data was incorrect. For example, instead of "Invalid username" or "Invalid password", just use "Invalid username and/or password" for both. Error responses must be truly identical in both display and source code

+ +

Additional Measures +

+

+

    +
  • For additional protection against brute forcing, enforce account disabling after an established number of invalid login attempts (e.g., five attempts is common). The account must be disabled for a period of time sufficient to discourage brute force guessing of credentials, but not so long as to allow for a denial-of-service attack to be performed.
  • +
  • Only send non-temporary passwords over an encrypted connection or as encrypted data, such as in an encrypted email. Temporary passwords associated with email resets may be an exception. Enforce the changing of temporary passwords on the next use. Temporary passwords and links should have a short expiration time.
  • +
+
+
+
+
+

Source Code Example

+
+
+

+ The demo application doesn't enforce strong password. In routes/session.js + validateSignup()method, the regex for password enforcement is simply

var PASS_RE = /^.{1,20}$/;
+

+

+ A stronger password can be enforced using the regex below, which requires at least 8 character password with numbers and both lowercase and uppercase letters. +

var PASS_RE =/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/;
+

+

+ Another issue, in routes/session.js, the + handleLoginRequest()enumerated whether password was incorrect or user doesn't exist.This information can be valuable to an attacker with brute forcing attempts. This can be easily fixed using a generic error message such as "Invalid username and/or password". +

+
+
+
+
+
+ + + +
+ +{% endblock %} diff --git a/app/views/tutorial/a3.html b/app/views/tutorial/a3.html new file mode 100644 index 0000000..b1dd5a0 --- /dev/null +++ b/app/views/tutorial/a3.html @@ -0,0 +1,243 @@ +{% extends "./layout.html" %} {% block title %}A3-Cross-Site Scripting (XSS){% endblock %} {% block content %} +
+
+
+ Exploitability: AVERAGE + Prevalence: VERY WIDESPREAD + Detectability: EASY + Technical Impact: MODERATE +
+
+
+ +
+
+ +
+
+

Description

+
+
+ XSS flaws occur whenever an application takes untrusted data and sends it to a web browser without proper validation or escaping. + XSS allows attackers to execute scripts in the victims' browser, which can access any cookies, session tokens, + or other sensitive information retained by the browser, or redirect user to malicious sites. +
+
+ +
+
+

Attack Mechanics

+
+
+

+ There are two types of XSS flaws: +

+ +
    +
  1. Reflected XSS: The malicious data is echoed back by the server in an immediate response to an HTTP + request from the victim.
  2. +
  3. Stored XSS: The malicious data is stored on the server or on browser (using HTML5 local storage, + for example), and later gets embedded in HTML page provided to the victim.
  4. +
+ +

Each of reflected and stored XSS can occur on the server or on the client (which is also known as DOM + based XSS), depending on when the malicious data gets injected in HTML markup.

+
+
+ +
+
+

How Do I Prevent It?

+
+
+
    +
  1. +

    Input validation and sanitization: Input validation and data sanitization are the first + line of defense against untrusted data. Apply white list validation wherever possible.

    +
  2. +
  3. +

    Output encoding for correct context: When a browser is rendering HTML and any other associated + content like CSS, javascript etc., it follows different rendering rules for each context. Hence + Context-sensitive output encoding is absolutely critical for mitigating risk of XSS.

    + Here are the details about applying correct encoding in each context: +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ContextCode SampleEncoding Type
HTML Entity<span> + UNTRUSTED DATA</span>Convert & to &amp; +
Convert < to &lt; +
Convert > to &gt; +
Convert " to &quot; +
Convert ' to &#x27; +
Convert / to &#x2F; +
HTML Attribute Encoding<input type="text" name="fname" value=" + UNTRUSTED DATA">Except for alphanumeric characters, escape all characters with the HTML Entity &#xHH; + format, including spaces. (HH = Hex Value) +
+
URI Encoding<a href="/site/search?value= + UNTRUSTED DATA">clickme</a>Except for alphanumeric characters, escape all characters with ASCII values less + than 256 with the HTML Entity &#xHH; format, including spaces. (HH = Hex Value) +
+
JavaScript Encoding<script>var currentValue=' + UNTRUSTED DATA';</script> +
<script>someFunction(' + UNTRUSTED DATA');</script> +
Ensure JavaScript variables are quoted. Except for alphanumeric characters, escape + all characters with ASCII values less than 256 with \uXXXX unicode escaping format + (X = Integer), or in xHH (HH = HEX Value) encoding format. +
CSS Encoding<div style="width: + UNTRUSTED DATA;">Selection</div>Except for alphanumeric characters, escape all characters with ASCII values less + than 256 with the \HH (HH= Hex Value) escaping format. +
+ +
  • +

    HTTPOnly cookie flag: Preventing all XSS flaws in an application is hard. To help mitigate + the impact of an XSS flaw on your site, set the HTTPOnly flag on session cookie and any custom + cookies that are not required to be accessed by JavaScript. +

    +
  • +
  • +

    Implement Content Security Policy (CSP): CSP is a browser side mechanism which allows creating + whitelists for client side resources used by the web application, e.g. JavaScript, CSS, images, + etc. CSP via special HTTP header instructs the browser to only execute or render resources from + those sources. For example, the CSP header below allows content only from example site's own + domain (mydomain.com) and all its sub domains. +

    Content-Security-Policy: default-src 'self' *.mydomain.com
    + +

    +
  • +
  • Apply encoding on both client and server side: It is essential to apply encoding on both + client and server side to mitigate DOM based XSS attack, in which untrusted data never leaves the + browser. + +

    Source: XSS Prevention Cheat Sheet[1] +

    + + +
    +
    +

    Source Code Example

    +
    +
    +

    + The demo web application is vulnerable to stored XSS attack on profiles form. On form submit, the first and last name field + values are submitted to the server, and without any validation get saved in database. The values are + then sent back to the browser without proper escaping to be shown at the top right menu. +

    + + +

    Two measures can be taken to mitigate XSS risk: + +

      +
    1. In + server.js, enable the HTML Encoding using template engine's auto escape flag. +
      +swig.init({
      +    root: __dirname + "/app/views",
      +    autoescape: true //default value
      +});
      +                            
      +
    2. +
    3. + Set HTTPOnly flag for session cookie while configuring the express session +
      +// Enable session management using express middleware
      +app.use(express.session({
      +    secret: "s3Cur3",
      +    cookie: {
      +        httpOnly: true,
      +        secure: true
      +    }
      +}));
      +                            
      +
    4. +
    + There were no additional contexts that needed encoding on the demo page; otherwise, it is necessary to encode for correct + context depending on where data get placed at. + +
    +
    + +
    +
    +

    Output Encoding Context

    +
    +
    +

    + An important observation when handling output encoding to prevent XSS is the notion of context. +

    + +

    + When output encoding is performed, it must match the context in which it is being injected to. For example, if a user input + is being injected to an HTML element then it will require different encoding semantics to escape malicious + input than if it were injected to say an HTML attribute or a JavaScript context altogether (such as in + a script tag). +

    + +

    + An example for how to take advantage and exploit this mis-understanding exists on the profile page. See code references in + profile.js and profile.html +

    +
    +
    + + + + + +{% endblock %} \ No newline at end of file diff --git a/app/views/tutorial/a4.html b/app/views/tutorial/a4.html new file mode 100644 index 0000000..81292ae --- /dev/null +++ b/app/views/tutorial/a4.html @@ -0,0 +1,81 @@ +{% extends "./layout.html" %} {% block title %}A4-Insecure Direct Object References{% endblock %} {% block content %} +
    +
    +
    + Exploitability: EASY + Prevalence: COMMON + Detectability: EASY + Technical Impact: MODERATE +
    +
    +
    + +
    +
    +
    +
    +

    Description

    +
    +
    + A direct object reference occurs when a developer exposes a reference to an internal implementation object, such as a file, directory, or database key. Without an access control check or other protection, attackers can manipulate these references to access unauthorized data.
    +
    +
    +
    +

    Attack Mechanics

    +
    +
    +

    + If an applications uses the actual name or key of an object when generating web pages, and doesn't verify if the user is authorized for the target object, this can result in an insecure direct object reference flaw. An attacker can exploit such flaws by manipulating parameter values. Unless object references are unpredictable, it is easy for an attacker to access all available data of that type. +

    +

    + For example, the insure demo application uses userid as part of the url to access the allocations (/allocations/{id}). An attacker can manipulate id value and access other user's allocation information. + +

    +
    +
    + +
    +
    +

    How Do I Prevent It?

    +
    +
    +
      +
    1. + Check access: Each use of a direct object reference from an untrusted source must include an access control check to ensure the user is authorized for the requested object. +
    2. +
    3. + Use per user or session indirect object references: Instead of exposing actual database keys as part of the access links, use temporary per-user indirect reference. For example, instead of using the resource’s database key, a drop down list of six resources authorized for the current user could use the numbers 1 to 6 or unique random numbers to indicate which value the user selected. The application has to map the per-user indirect reference back to the actual database key on the server. +
    4. +
    5. Testing and code analysis: Testers can easily manipulate parameter values to detect such flaws. In addition, code analysis can quickly show whether authorization is properly verified. +
    6. +
    +
    +
    +
    +
    +

    Source Code Example

    +
    +
    +

    + In + routes/allocations.js, the insecure application takes user id from url to fetch the allocations. +

    +    var userId = req.params.userId;
    +    allocationsDAO.getByUserId(userId, function(error, allocations) {
    +
    +        if (error) return next(error);
    +
    +        return res.render("allocations", allocations);
    +    });
    +                
    +

    +

    + A safer alternative is to always retrieve allocations for logged in user (using + req.session.userId)instead of taking it from url. +

    +
    +
    + +
    +
    +{% endblock %} diff --git a/app/views/tutorial/a5.html b/app/views/tutorial/a5.html new file mode 100644 index 0000000..1bf72b5 --- /dev/null +++ b/app/views/tutorial/a5.html @@ -0,0 +1,132 @@ +{% extends "./layout.html" %} {% block title %}A5-Security Misconfiguration{% endblock %} {% block content %} +
    +
    +
    + Exploitability: EASY + Prevalence: COMMON + Detectability: EASY + Technical Impact: MODERATE +
    +
    +
    + +
    +
    +
    +
    +

    Description

    +
    +
    +

    This vulnerability allows an attacker to accesses default accounts, unused pages, unpatched flaws, unprotected files and directories, etc. to gain unauthorized access to or knowledge of the system.

    +

    Security misconfiguration can happen at any level of an application stack, including the platform, web server, application server, database, framework, and custom code.

    +

    Developers and system administrators need to work together to ensure that the entire stack is configured properly.

    +
    +
    +
    +
    +

    Attack Mechanics

    +
    +
    + + This vulnerability encompasses a broad category of attacks, but here are some ways attacker can exploit it: +
      +
    1. If application server is configured to run as root, an attacker can run malicious scripts (by exploiting eval family functions) or start new child processes on server
    2. +
    3. Read, write, delete files on file system. Create and run binary files
    4. +
    5. If the server is misconfigured to leak internal implementation details via cookie names or HTTP response headers, then attacker can use this information towards building site's risk profile and finding vulnerabilities +
    6. +
    7. If request body size is not limited, an attacker can upload large size of input payload, causing server to run out of memory, or make processor and event loop busy.
    8. +
    + +
    +
    +
    +
    +

    How Do I Prevent It?

    +
    +
    + Here are some node.js and express specific configuration measures: +
      +
    • + Use latest stable version of node.js and express (or other web framework you are using). Keep a watch on published vulnerabilities of these. The vulnerabilities for node.js and express.js can be found here and + here, respectively. +
    • +
    • + Do not run application with root privileges. It may seem necessary to run as root user to access privileged ports such as 80. However, this can achieved either by starting server as root and then downgrading the non-privileged user after listening on port 80 is established, or using a separate proxy, or using port mapping.
    • +
    • + Review default in HTTP Response headers to prevent internal implementation disclosure. +
    • +
    • + Use generic session cookie names +
    • +
    • + Limit HTTP Request Body size by setting sensible size limits on each content type specific middleware ( + urlencoded, json, multipart) instead of using aggregate + limitmiddleware. Include only required middleware. For example if application doesn't need to support file uploads, do not include multipart middleware. +
    • + If using multipart middleware, have a strategy to clean up temporary files generated by it. These files are not garbage collected by default, and an attacker can fill disk with such temporary files +
    • +
    • + Vet npm packages used by the application +
    • +
    • + Lock versions of all npm packages used, for example using shrinkwarp, to have full control over when to install a new version of the package. +
    • +
    • + Set security specific HTTP headers +
    • +
    +
    +
    +
    +
    +

    Source Code Example

    +
    +
    +
    + +
    +

    The default HTTP header x-powered-by can reveal implementation details to an attacker. It can be taken out by including this code in + server.js +

       
    +        app.disable("x-powered-by"); 
    +    
    +

    +

    The default session cookie name for express sessions can be changed by setting key attribute while creating express session. +

    +        app.use(express.session({
    +            secret: config.cookieSecret,
    +            key: "sessionId",
    +            cookie: {
    +                httpOnly: true,
    +                secure: true
    +            }
    +        }));
    +    
    +

    +

    The security related HTTP Headers can be added using helmet middleware as below +

    +        // Prevent opening page in frame or iframe to protect from clickjacking
    +        app.disable("x-powered-by");
    +
    +        // Prevent opening page in frame or iframe to protect from clickjacking
    +        app.use(helmet.xframe());
    +
    +        // Prevents browser from caching and storing page
    +        app.use(helmet.noCache());
    +
    +        // Allow loading resources only from white-listed domains
    +        app.use(helmet.csp());
    +
    +        // Allow communication only on HTTPS
    +        app.use(helmet.hsts());
    +
    +        // Forces browser to only use the Content-Type set in the response header instead of sniffing or guessing it
    +        app.use(nosniff());
    +
    +
    +

    +
    +
    +
    +
    +{% endblock %} diff --git a/app/views/tutorial/a6.html b/app/views/tutorial/a6.html new file mode 100644 index 0000000..0cf478b --- /dev/null +++ b/app/views/tutorial/a6.html @@ -0,0 +1,124 @@ +{% extends "./layout.html" %} {% block title %}A6-Sensitive Data Exposure{% endblock %} {% block content %} +
    +
    +
    + Exploitability: DIFFICULT + Prevalence: COMMON + Detectability: AVERAGE + Technical Impact: SEVERE +
    +
    +
    + +
    +
    +
    +
    +

    Description

    +
    +
    + This vulnerability allows an attacker to access sensitive data such as credit cards, tax IDs, authentication credentials, etc to conduct credit card fraud, identity theft, or other crimes. Losing such data can cause severe business impact and damage to the reputation. Sensitive data deserves extra protection such as encryption at rest or in transit, as well as special precautions when exchanged with the browser. +
    +
    + +
    +
    +

    Attack Mechanics

    +
    +
    +

    If a site doesn’t use SSL/TLS for all authenticated pages, an attacker can monitor network traffic (such as on open wireless network), and steals user's session cookie. Attacker can then replay this cookie and hijacks the user's session, accessing the user's private data.

    +

    If an attacker gets access the application database, he or she can steal the sensitive information not encrypted, or encrypted with weak encryption algorithm

    + +
    +
    +
    +
    +

    How Do I Prevent It?

    +
    +
    +
      +
    • Use Secure HTTPS network protocol
    • +
    • Encrypt all sensitive data at rest and in transit
    • +
    • Don’t store sensitive data unnecessarily. Discard it as soon as possible.
    • +
    • Ensure strong standard algorithms and strong keys are used, and proper key management is in place.
    • +
    • Disable autocomplete on forms collecting sensitive data and disable caching for pages that contain sensitive data.
    • +
    +
    +
    +
    +
    +

    Source Code Example

    +
    +
    +

    1.The insecure demo application uses HTTP connection to communicate with server. A secure HTTPS sever can be set using https module. This would need a private key and certificate. Here are source code examples from + /server.js +

    +// Load keys for establishing secure HTTPS connection
    +var fs = require("fs");
    +var https = require("https");
    +var path = require("path");
    +var httpsOptions = {
    +    key: fs.readFileSync(path.resolve(__dirname, "./app/cert/key.pem")),
    +    cert: fs.readFileSync(path.resolve(__dirname, "./app/cert/cert.pem"))
    +};
    +               
    +

    +

    2. Start secure HTTPS sever +

    +// Start secure HTTPS server
    +https.createServer(httpsOptions, app).listen(config.port, function() {
    +    console.log("Express https server listening on port " + config.port);
    +});
    +                
    +

    +

    + 3. The insecure demo application stores users personal sensitive information in plain text. To fix it, The + data/profile-dao.jscan be modified to use crypto module to encrypt and decrypt sensitive information as below: +

    +// Include crypto module
    +var crypto = require("crypto");
    +
    +//Set keys config object
    +var config = {
    +    cryptoKey: "a_secure_key_for_crypto_here",
    +    cryptoAlgo: "aes256", // or other secure encryption algo here
    +    iv: ""
    +};
    +
    +// Helper method create initialization vector
    +// By default the initialization vector is not secure enough, so we create our own
    +var createIV = function() {
    +    // create a random salt for the PBKDF2 function - 16 bytes is the minimum length according to NIST
    +    var salt = crypto.randomBytes(16);
    +    return crypto.pbkdf2Sync(config.cryptoKey, salt, 100000, 512, "sha512");
    +};
    +
    +// Helper methods to encryt / decrypt
    +var encrypt = function(toEncrypt) {
    +    config.iv = createIV();
    +    var cipher = crypto.createCipheriv(config.cryptoAlgo, config.cryptoKey, config.iv);
    +    return cipher.update(toEncrypt, "utf8", "hex") + cipher.final("hex");
    +};
    +
    +var decrypt = function(toDecrypt) {
    +    var decipher = crypto.createDecipheriv(config.cryptoAlgo, config.cryptoKey, config.iv);
    +    return decipher.update(toDecrypt, "hex", "utf8") + decipher.final("utf8");
    +};
    +
    +// Encrypt values before saving in database
    +user.ssn = encrypt(ssn);
    +user.dob = encrypt(dob);
    +
    +// Decrypt values to show on view
    +user.ssn = decrypt(user.ssn);
    +user.dob = decrypt(user.dob);
    +
    + +

    +
    +
    + + +
    +
    +{% endblock %} \ No newline at end of file diff --git a/app/views/tutorial/a7.html b/app/views/tutorial/a7.html new file mode 100644 index 0000000..124d429 --- /dev/null +++ b/app/views/tutorial/a7.html @@ -0,0 +1,93 @@ +{% extends "./layout.html" %} {% block title %}A7-Missing Function Level Access Control{% endblock %} {% block content %} +
    +
    +
    + Exploitability: EASY + Prevalence: COMMON + Detectability: AVERAGE + Technical Impact: MODERATE +
    +
    +
    + +
    +
    +
    +
    +

    Description

    +
    +
    + Most web applications verify function level access rights before making that functionality visible in the UI. However, applications need to perform the same access control checks on the server when each function is accessed. +
    +
    + +
    +
    +

    Attack Mechanics

    +
    +
    +

    If requests are not verified for access rights on server, attackers can forge requests in order to access functionality without proper authorization.

    + +

    In the insecure demo application, this vulnerability exists in benefits module, which allows changing benefit start date for employees. The link to the benefits module is visible only to the admin user (user: admin, password: Admin_123). However, an attacker can access this module simply by logging in as any non-admin user and accessing benefits url directly. + +

    +
    +
    +
    +

    How Do I Prevent It?

    +
    +
    + Most web applications don’t display links and buttons to unauthorized functions, but this “presentation layer access control” doesn't actually provide protection. You must also implement checks in the controller or business logic. +
    +
    +
    +
    +

    Source Code Examples

    +
    +
    + + In vulnerable application, there is no authorization check for benefits related routes in + routes/index.js +
    +// Benefits Page
    +app.get("/benefits", isLoggedIn, benefitsHandler.displayBenefits);
    +app.post("/benefits", isLoggedIn, benefitsHandler.updateBenefits);
    +                
    +

    This can be fixed by adding a middleware to verify user's role:

    +
    +// Benefits Page
    +app.get("/benefits", isLoggedIn, isAdmin, benefitsHandler.displayBenefits);
    +app.post("/benefits", isLoggedIn, isAdmin, benefitsHandler.updateBenefits);
    +                
    +

    To implement + isAdminmiddleware, check if isAdmin flag is set for the logged in user in database. +
    For example, here is middleware function that can be added to + routes\session.js:

    + +
    +this.isAdminUserMiddleware = function(req, res, next) {
    +    if (req.session.userId) {
    +        userDAO.getUserById(req.session.userId, function(err, user) {
    +             if(user && user.isAdmin) {
    +                 next();
    +             } else {
    +                 return res.redirect("/login");
    +             }
    +        });
    +    } else {
    +        console.log("redirecting to login");
    +        return res.redirect("/login");
    +    }
    +};
    +                
    It can be then made available in + routes/index.jsrouter as: +
    +var SessionHandler = require("./session");
    +//Middleware to check if user has admin rights
    +var isAdmin = sessionHandler.isAdminUserMiddleware;
    +                
    +
    +
    +
    +
    +{% endblock %} \ No newline at end of file diff --git a/app/views/tutorial/a8.html b/app/views/tutorial/a8.html new file mode 100644 index 0000000..ae1883b --- /dev/null +++ b/app/views/tutorial/a8.html @@ -0,0 +1,103 @@ +{% extends "./layout.html" %} {% block title %}A8-Cross-Site Request Forgery (CSRF) {% endblock %} {% block content %} +
    +
    +
    + Exploitability: AVERAGE + Prevalence: COMMON + Detectability: EASY + Technical Impact: MODERATE +
    +
    +
    + +
    +
    + +
    +
    +

    Description

    +
    +
    + A CSRF attack forces a logged-on victim’s browser to send a forged HTTP request, including the victim’s session cookie and any other automatically included authentication information, to a vulnerable web application. This allows the attacker to force the victim’s browser to generate requests that the vulnerable application processes as legitimate requests from the victim. +
    +
    + +
    +
    +

    Attack Mechanics

    +
    +
    +

    + As browsers automatically send credentials like session cookies with HTTP requests to the server where cookies were received from, attackers can create malicious web pages which generate forged requests that are indistinguishable from legitimate ones.

    +

    For example, CSRF vulnerability can be exploited on profile form on the insecure demo application.

    + +

    To exploit it: +

      +
    1. An attacker would need to host a forged form like below on a malicious sever. +
      +    <html lang="en">
      +    <head></head>
      +    	<body>
      +    		<form method="POST" action="http://TARGET_APP_URL_HERE/profile">
      +    			<h1> You are about to win a brand new iPhone!</h1>
      +    			<h2> Click on the win button to claim it...</h2>
      +    			<input type="hidden" name="bankAcc" value="9999999"/>
      +    			<input type="hidden" name="bankRouting" value="88888888"/>
      +                                <input type="submit" value="Win !!!"/>
      +    		</form>
      +    	</body>
      +    </html>
      +              
      Note: A sample app containing form for CSRF attack on NodeGoat app is available here. +
    2. +
    3. Next, attacker would need to manage opening the form on logged in victim's browser and attract user to submit it. When user submits this form, it results in victim user's browser sending a malicious request to vulnerable server, causing CSRF attack. +
    4. +
    +

    + +
    +
    +
    +
    +

    How Do I Prevent It?

    +
    +
    +

    Express csrf middleware provides a very effective way to deal with csrf attack. By default this middleware generates a token named "_csrf" which should be added to requests which mutate state (PUT, POST, DELETE), within a hidden form field, or query-string, or header fields.

    +

    If using method-override middleware, it is very important that it is used before any middleware that needs to know the method of the request, including CSRF middleware. Otherwise an attacker can use non-state mutating methods (such as GET) to bypass the CSRF middleware checks, and use method override header to convert request to desired method.

    +

    When form is submitted, the middleware checks for existence of token and validates it by matching to the generated token for the response-request pair. If tokens do not match, it rejects the request. Thus making it really hard for an attacker to exploit CSRF. +

    +
    +
    +
    +
    +

    Source Code Example

    +
    +
    + The + server.jsincludes the express CSRF middleware after session is initialized. Then creates a custom middleware to generate new token using + req.csrfToken();and exposes it to view by setting it in + res.locals +
    +        //Enable Express csrf protection
    +        app.use(express.csrf());
    +
    +        app.use(function(req, res, next) { 
    +            res.locals.csrftoken = req.csrfToken(); 
    +            next(); 
    +        }); 
    Next, this token can be included in a hidden form field in + views/profile.htmlas below. +
    +    <input type="hidden" name="_csrf" value="{{ csrftoken } }">
    +
    +
    +
    +
    +{% endblock %} diff --git a/app/views/tutorial/a9.html b/app/views/tutorial/a9.html new file mode 100644 index 0000000..ef9f86f --- /dev/null +++ b/app/views/tutorial/a9.html @@ -0,0 +1,177 @@ +{% extends "./layout.html" %} {% block title %}A9-Using Components with Known Vulnerabilities{% endblock %} {% block content %} +
    +
    +
    + Exploitability: AVERAGE + Prevalence: WIDESPREAD + Detectability: DIFFICULT + Technical Impact: MODERATE +
    +
    +
    + +
    +
    +
    +
    +

    Description

    +
    +
    +

    Components, such as libraries, frameworks, and other software modules, almost always run with full privileges. If a vulnerable component is exploited, such an attack can facilitate serious data loss or server takeover. Applications using components with known vulnerabilities may undermine application defenses and enable a range of possible attacks and impacts. +

    +

    Using insecure npm packages can lead to this vulnerability. Some projects today help test and alert on insecure dependencies: +

      +
    1. + npm audit is a vulnerability scanner built into the npm CLI (version 6 or later) +
    2. +
    3. + Dependabot security updates can automatically make GitHub pull requests to update vulnerable dependencies +
    4. +
    5. + Snyk.io is a Node.js CLI tool and Platform to scan and detect vulnerable packages +
    6. +
    +

    +

    The tools above make use of vulnerability lists, which can also be viewed directly or searched here: +

      +
    1. + NPM Security Advisories +
    2. +
    3. + GitHub Advisory Database +
    4. +
    5. + Snyk Vulnerability DB +
    6. +
    +

    +

    There are some other tools that can detect and update outdated packages: +

      +
    1. + npm outdated and yarn outdated are both command line ways to show possibly out of date dependencies +
    2. +
    3. + Dependabot version updates can automatically make GitHub pull requests to update outdated dependencies +
    4. +
    5. + David DM gets you an overview of your project dependencies, the version you use and the latest available, so you can quickly see what's drifting +
    6. +
    7. + npm-check Check for outdated, incorrect, and unused dependencies +
    8. +
    +

    +
    +
    + +
    +
    +

    Attack Mechanics

    +
    +
    + The npm packages are essential part of our node application. These packages could either accidentally or maliciously contain insecure code. Through insecure packages an attacker can: +
      +
    • Create and run scripts at different stages during installation or usage of the package.
    • +
    • Read, write, update, delete files on system
    • +
    • Write and execute binary files
    • +
    • Collect sensitive data send it remotely
    • +
    +
    +
    + +
    +
    +

    How Do I Prevent It?

    +
    +
    + These are few measures we can take to protect against malicious npm packages +
      +
    • Do not run application with root privileges
    • +
    • Prefer packages that include static code analysis. Check JSHint/JSLint the configuration to know what rules code abide by
    • +
    • Prefer packages that contain comprehensive unit tests and review tests for the functions our application uses
    • +
    • Review code for any unexpected file or database access
    • +
    • Research about how popular the package is, what other packages use it, if any other packages are written by the author, etc
    • +
    • Lock version of packages used
    • +
    • Watch Github repositories for notifications. This will inform us if any vulnerabilities are discovered in the package in future
    • +
    +
    +
    + +
    +
    +

    Insecure Dependencies Example

    +
    +
    + +
    +
    +

    Description

    +
    +
    + +

    + The demo web application is using a popular library called Marked which is a Markdown parser in JavaScript and provides an easy way to integrate markdown syntax for rich text to a website, replacing the need to build WYSIWYG editors. +

    + +

    + This library has reached almost millions of downloads a month, making it quite popular with also + 11,000 stars on GitHub at one point. +

    +
    +
    + +
    +
    +

    Attack Mechanics

    +
    +
    + +

    + In this demo project we are using an insecure version of the Marked library that is vulnerable to XSS exploits. +

    + +

    + Scenario: A form on a page allows free text user input which is later parsed using the Marked library to markdown format and compiled in a dedicated view to show the rich text version. An attacker can exploit this form to insert malicious XSS strings which the Markdown library isn't filtering very well, resulting in an XSS attack. + +

    + +

    + Try sending one of the following markdown syntax strings in the Memos section to exploit it and see which one succeeds: + + + + +

      + +
    1. + + + [Nice try](javascript:alert(1)) + + +
    2. +
    3. + + + [Hi there](javascript&#58;alert(1&#41;) + + +
    4. +
    5. + + + [I'm here!](javascript&#58this;alert(1&#41;) + + +
    6. +
    +

    +
    +
    + +
    +
    + +
    +
    +{% endblock %} diff --git a/app/views/tutorial/layout.html b/app/views/tutorial/layout.html new file mode 100644 index 0000000..8a38257 --- /dev/null +++ b/app/views/tutorial/layout.html @@ -0,0 +1,101 @@ + + + + + + + + + + Tutorial - OWASP Node Goat Project + + + + + + + + + + + + +
    + + + + +
    + +
    +
    +

    {% block title %}{% endblock %} + {% block subtitle %}{% endblock %} +

    +
    +
    + + {% block content %}{% endblock %} +
    + + +
    + + + + + + {% for script in environmentalScripts %} + {{script}} + {% endfor %} + + + + \ No newline at end of file diff --git a/app/views/tutorial/redos.html b/app/views/tutorial/redos.html new file mode 100644 index 0000000..b9f7d67 --- /dev/null +++ b/app/views/tutorial/redos.html @@ -0,0 +1,64 @@ +{% extends "./layout.html" %} {% block title %}ReDoS Regular Expressions DoS{% endblock %} {% block content %} +
    +
    +
    +
    +

    Description

    +
    +
    + The Regular expression Denial of Service (ReDoS) is a Denial of Service attack, that exploits the fact that most Regular Expression implementations may reach extreme situations that cause them to work very slowly (exponentially related to input size). An attacker can then cause a program using a Regular Expression to enter these extreme situations and then hang for a very long time. +
    +
    + +
    +
    +

    Attack Mechanics

    +
    +
    +

    + When untrusted data input is executed on a regex pattern, it may exploit vulnerable patterns into running long calculations to match for a given string. For Node.js this is extremely important due to the single-threaded event-loop architecture which means that the main Node.js process is blocked from serving any other requests. +

    +
    +
    +
    +
    +

    How Do I Prevent It?

    +
    +
    +
      +
    1. + Avoid writing your own regular expressions +
    2. +
    3. + Use Node.js's validator.js package to validate expected data format instead of writing your own regular expressions +
    4. +
    5. + As a last resort of writing your own regex patterns you can utilize Node.js's + safe-regex package which allows detecting if a regex is prone to catastrophic backtracking, and also allows to configure threshold for maximum repetitions. +
    6. +
    +
    +
    +
    +
    +
    +

    Source Code Example

    +
    +
    +

    + Even simple regex patterns are vulnerable to ReDoS. The NodeGoat project uses the following source code to validate text format from the user based on a regex pattern: + +

    +// Allow only numbers with a suffix of #, for example: 'XXXXXX#'
    +var regexPattern = /([0-9]+)+\#/;
    +var testComplyWithRequirements = regexPattern.test(bankRouting)
    +                
    If a long enough input is provided it will stall the Node.js process and render it useless (in the background the Node.js process will take 100% cpu until stopped or the regex yields a result (true or false)). Try to input the following string in the Bank Routing number in the Profile form: +
    +91762612117612121123123123123121
    +                
    + +

    +
    +
    +
    +{% endblock %} \ No newline at end of file diff --git a/app/views/tutorial/ssrf.html b/app/views/tutorial/ssrf.html new file mode 100644 index 0000000..11caba3 --- /dev/null +++ b/app/views/tutorial/ssrf.html @@ -0,0 +1,50 @@ +{% extends "./layout.html" %} {% block title %}Server-Side Request Forgery (SSRF){% endblock %} {% block content %} + +
    +
    +
    +
    +

    Description

    +
    +
    In an SSRF attack, the attacker can abuse functionality on the server to read or update internal resources. The attacker can supply or modify a URL that the code running on the server will read or submit data to, and by carefully selecting the URLs, the attacker may be able to read server configuration such as AWS metadata, connect to internal services like HTTP-enabled databases or perform HTTP POST requests towards internal services which are not intended to be exposed. +
    +
    + +
    +
    +

    Attack Mechanics

    +
    +
    +

    An attacker can use an SSRF vulnerability as a way to gather information about the server and the local network.

    + +

    For example, on the "Research" page ( + /research) in the application, a user submits a stock symbol. The stock symbol is concatenated to a Yahoo URL and the server fetches the response and displays the page. +

    + +

    Here is a code snippet from + routes/research.js, +

    +    // If a stock symbol has been submitted, concatenate the symbol to the URL and return the HTTP Response
    +    if (req.query.symbol) {
    +        var url = req.query.url+req.query.symbol; 
    +        needle.get(url, function(error, newResponse) { ... }
    +                    
    An attacker can change the + url and symbol parameters to point to an attacker-controlled website to interact with the server. +

    +
    +
    +
    +
    +

    How Do I Prevent It?

    +
    +
    +

    To prevent SSRF vulnerabilities in web applications, it is recommended to adhere to the following guidelines:

    +
      +
    1. Use a whitelist of allowed domains, resources and protocols from where the web server can fetch resources.
    2. +
    3. Any input accepted from the user should be validated and rejected if it does not match the positive specification expected.
    4. +
    5. If possible, do not accept user input in functions that control where the web server can fetch resources.
    6. +
    +
    +
    +
    +
    {% endblock %} diff --git a/artifacts/cert/server.crt b/artifacts/cert/server.crt new file mode 100644 index 0000000..e2a7308 --- /dev/null +++ b/artifacts/cert/server.crt @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICATCCAWoCCQDCKC3cHx5NUTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJB +VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0 +cyBQdHkgTHRkMB4XDTE1MDQyNTE3MjY0OVoXDTE2MDQyNDE3MjY0OVowRTELMAkG +A1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0 +IFdpZGdpdHMgUHR5IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAn5/L +j+Bbh2mgD6zJHJdXzTEDORBjE+J5zUlaGhFXYgy3Oj9JggGbVDvVtDo1qMPk8BpN +x5KqEiTgPSkTK8yuzLRCn8DYM6bB6OJvph2j4OQ1MonJ1P4X1A74xnB700I1vDuP +3IbTFZdoez/ELT4vUA3FqsZhFwi6kwegWV61ZI0CAwEAATANBgkqhkiG9w0BAQUF +AAOBgQBz4POyn861fR/IgRbd5DFZMp0Wp2mwMaCIfrAxQJim4YNoK8Lx1dzuTHd/ +z4VJx4AzdfLtY2YmJrRxwjIk8JlxvmiXTDo049VZFGiWTavk0qiDEbswCysAWr4E +plj/3gTmAYfYqI3YJ7bsDPIemwayNnIB+dgt9KJCD9O9DjxgLQ== +-----END CERTIFICATE----- diff --git a/artifacts/cert/server.key b/artifacts/cert/server.key new file mode 100644 index 0000000..d907b16 --- /dev/null +++ b/artifacts/cert/server.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQCfn8uP4FuHaaAPrMkcl1fNMQM5EGMT4nnNSVoaEVdiDLc6P0mC +AZtUO9W0OjWow+TwGk3HkqoSJOA9KRMrzK7MtEKfwNgzpsHo4m+mHaPg5DUyicnU +/hfUDvjGcHvTQjW8O4/chtMVl2h7P8QtPi9QDcWqxmEXCLqTB6BZXrVkjQIDAQAB +AoGAEfIdKKfIooi1fg2m7pf1PxRrkFbPTMUBfJrqjlO0x0k2sE29LeiQVgAEHqcM +sVSUwIm0hONwS2np6/ZaOWphnGSRt5r0FoHSt8AEakQjh5Oajkn7xw+/IxwFhzSa +fMPkG/xbAlo0zTGGLWtHa0oLhEpvZ/gQ/nk48iFVz+YZ5gECQQDNzGeWyX1FKbNF +8wUzZyBQd7e9UyDSaSCj1x9vWhK0tI6Oyl/p85Izh48gHTKlGjCKOe8ktJQtudJ3 +xq9nApZ9AkEAxo/srNkEARmu+/W9P16IvM3QQJQhkF23Mz1WC1uFIDyG4iyng+Le +nmkoqwT6jA9YArj06Mw/ylh4fcjxi4KTUQJBALWXO4CN4f95QDrkqR4mTRkzyelA +xKFlKevoElDLBd51w6SzZdalmcfmQaBwoxOT/Gi7ngyhWm7OnKwboQIgAnECQQCY +H/gxzOoWdbjsbK8a97BHBl/AujykwEf1R86+UNXDhtvIOHH2xz/LmcGAlQXnfHHv +VAi+uo08118o72Svf9ChAkEApRCZgczlNNQpvEsWTUBmNAHqj9hgmLTrJv4ywsPK +kTwqg6U9lF+NaLWVfvSIb1LY+M63juJHafAGKQvH+/di+g== +-----END RSA PRIVATE KEY----- diff --git a/artifacts/db-reset.js b/artifacts/db-reset.js new file mode 100644 index 0000000..8b79c11 --- /dev/null +++ b/artifacts/db-reset.js @@ -0,0 +1,135 @@ +#!/usr/bin/env nodejs + +"use strict"; + +// This script initializes the database. You can set the environment variable +// before running it (default: development). ie: +// NODE_ENV=production node artifacts/db-reset.js + +const { MongoClient } = require("mongodb"); +const { db } = require("../config/config"); + +const USERS_TO_INSERT = [ + { + "_id": 1, + "userName": "admin", + "firstName": "Node Goat", + "lastName": "Admin", + "password": "Admin_123", + //"password" : "$2a$10$8Zo/1e8KM8QzqOKqbDlYlONBOzukWXrM.IiyzqHRYDXqwB3gzDsba", // Admin_123 + "isAdmin": true + }, { + "_id": 2, + "userName": "user1", + "firstName": "John", + "lastName": "Doe", + "benefitStartDate": "2030-01-10", + "password": "User1_123" + // "password" : "$2a$10$RNFhiNmt2TTpVO9cqZElb.LQM9e1mzDoggEHufLjAnAKImc6FNE86",// User1_123 + }, { + "_id": 3, + "userName": "user2", + "firstName": "Will", + "lastName": "Smith", + "benefitStartDate": "2025-11-30", + "password": "User2_123" + //"password" : "$2a$10$Tlx2cNv15M0Aia7wyItjsepeA8Y6PyBYaNdQqvpxkIUlcONf1ZHyq", // User2_123 + }]; + +const tryDropCollection = (db, name) => { + return new Promise((resolve, reject) => { + db.dropCollection(name, (err, data) => { + if (!err) { + console.log(`Dropped collection: ${name}`); + } + resolve(undefined); + }); + }); +}; + +const parseResponse = (err, res, comm) => { + if (err) { + console.log("ERROR:"); + console.log(comm); + console.log(JSON.stringify(err)); + process.exit(1); + } + console.log(comm); + console.log(JSON.stringify(res)); +}; + + +// Starting here +MongoClient.connect(db, (err, db) => { + if (err) { + console.log("ERROR: connect"); + console.log(JSON.stringify(err)); + process.exit(1); + } + console.log("Connected to the database"); + + const collectionNames = [ + "users", + "allocations", + "contributions", + "memos", + "counters" + ]; + + // remove existing data (if any), we don't want to look for errors here + console.log("Dropping existing collections"); + const dropPromises = collectionNames.map((name) => tryDropCollection(db, name)); + + // Wait for all drops to finish (or fail) before continuing + Promise.all(dropPromises).then(() => { + const usersCol = db.collection("users"); + const allocationsCol = db.collection("allocations"); + const countersCol = db.collection("counters"); + + // reset unique id counter + countersCol.insert({ + _id: "userId", + seq: 3 + }, (err, data) => { + parseResponse(err, data, "countersCol.insert"); + }); + + // insert admin and test users + console.log("Users to insert:"); + USERS_TO_INSERT.forEach((user) => console.log(JSON.stringify(user))); + + usersCol.insertMany(USERS_TO_INSERT, (err, data) => { + const finalAllocations = []; + + // We can't continue if error here + if (err) { + console.log("ERROR: insertMany"); + console.log(JSON.stringify(err)); + process.exit(1); + } + parseResponse(err, data, "users.insertMany"); + + data.ops.forEach((user) => { + const stocks = Math.floor((Math.random() * 40) + 1); + const funds = Math.floor((Math.random() * 40) + 1); + + finalAllocations.push({ + userId: user._id, + stocks: stocks, + funds: funds, + bonds: 100 - (stocks + funds) + }); + }); + + console.log("Allocations to insert:"); + finalAllocations.forEach(allocation => console.log(JSON.stringify(allocation))); + + allocationsCol.insertMany(finalAllocations, (err, data) => { + parseResponse(err, data, "allocations.insertMany"); + console.log("Database reset performed successfully"); + process.exit(0); + }); + + }); + }); +}); diff --git a/config/config.js b/config/config.js new file mode 100644 index 0000000..33f3bb6 --- /dev/null +++ b/config/config.js @@ -0,0 +1,15 @@ +const _ = require("underscore"); +const path = require("path"); +const util = require("util"); + +const finalEnv = process.env.NODE_ENV || "development"; + +const allConf = require(path.resolve(__dirname + "/../config/env/all.js")); +const envConf = require(path.resolve(__dirname + "/../config/env/" + finalEnv.toLowerCase() + ".js")) || {}; + +const config = { ...allConf, ...envConf }; + +console.log(`Current Config:`); +console.log(util.inspect(config, false, null)); + +module.exports = config; diff --git a/config/env/all.js b/config/env/all.js new file mode 100755 index 0000000..fa88db2 --- /dev/null +++ b/config/env/all.js @@ -0,0 +1,14 @@ +// default app configuration +const port = process.env.PORT || 4000; +let db = process.env.MONGODB_URI || "mongodb://localhost:27017/nodegoat"; + +module.exports = { + port, + db, + cookieSecret: "session_cookie_secret_key_here", + cryptoKey: "a_secure_key_for_crypto_here", + cryptoAlgo: "aes256", + hostName: "localhost", + environmentalScripts: [] +}; + diff --git a/config/env/development.js b/config/env/development.js new file mode 100755 index 0000000..90c48a7 --- /dev/null +++ b/config/env/development.js @@ -0,0 +1,14 @@ +module.exports = { + // If you want to debug regression tests, you will need the following which is also in the test config: + zapHostName: "192.168.56.20", + zapPort: "8080", + // Required from Zap 2.4.1. This key is set in Zap Options -> API _Api Key. + zapApiKey: "v9dn0balpqas1pcc281tn5ood1", + // Required if debugging security regression tests. + zapApiFeedbackSpeed: 5000, // Milliseconds. + environmentalScripts: [ + // jshint -W101 + `` + // jshint +W101 + ] +}; diff --git a/config/env/production.js b/config/env/production.js new file mode 100755 index 0000000..f053ebf --- /dev/null +++ b/config/env/production.js @@ -0,0 +1 @@ +module.exports = {}; diff --git a/config/env/test.js b/config/env/test.js new file mode 100755 index 0000000..b3a7caf --- /dev/null +++ b/config/env/test.js @@ -0,0 +1,8 @@ +module.exports = { + // If you want to debug regression tests, you will need the following. + zapHostName: "192.168.56.20", + zapPort: "8080", + // Required from Zap 2.4.1. This key is set in Zap Options -> API _Api Key. + zapApiKey: "v9dn0balpqas1pcc281tn5ood1", + zapApiFeedbackSpeed: 5000 // Milliseconds. +}; diff --git a/cypress.json b/cypress.json new file mode 100644 index 0000000..5d9ab9d --- /dev/null +++ b/cypress.json @@ -0,0 +1,10 @@ +{ + "blacklistHosts": "*:35729", + "fixturesFolder": "test/e2e/fixtures", + "integrationFolder": "test/e2e/integration", + "pluginsFile": "test/e2e/plugins/index.js", + "screenshotsFolder": "test/e2e/screenshots", + "videosFolder": "test/e2e/videos", + "supportFile": "test/e2e/support/index.js", + "video": false +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..49fb28f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.7" + +services: + web: + build: . + environment: + NODE_ENV: + MONGODB_URI: mongodb://mongo:27017/nodegoat + command: sh -c "until nc -z -w 2 mongo 27017 && echo 'mongo is ready for connections' && node artifacts/db-reset.js && npm start; do sleep 2; done" + ports: + - "4000:4000" + + mongo: + image: mongo:4.4 + user: mongodb + expose: + - 27017 diff --git a/nodemon.json b/nodemon.json new file mode 100644 index 0000000..c730355 --- /dev/null +++ b/nodemon.json @@ -0,0 +1,7 @@ +{ + "watch": ["server", "app/data/", "app/routes/", "app/assets/", "app/views/", "app/views/tutorial/"], + "ext": "js, html, css", + "ignore": ["README.md", "node_modules/**"], + "delay": "1", + "debug": "true" +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ce02079 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,27516 @@ +{ + "name": "owasp-nodejs-goat", + "version": "1.3.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "owasp-nodejs-goat", + "version": "1.3.0", + "license": "Apache 2.0", + "dependencies": { + "bcrypt-nodejs": "0.0.3", + "body-parser": "^1.15.1", + "consolidate": "^0.14.1", + "csurf": "^1.8.3", + "dont-sniff-mimetype": "^1.0.0", + "express": "^4.13.4", + "express-session": "^1.13.0", + "forever": "^2.0.0", + "helmet": "^2.0.0", + "marked": "0.3.7", + "mongodb": "^2.1.18", + "needle": "2.2.4", + "node-esapi": "0.0.1", + "serve-favicon": "^2.3.0", + "swig": "1.4.1", + "underscore": "^1.8.3" + }, + "devDependencies": { + "async": "^2.0.0-rc.4", + "cross-env": "^7.0.2", + "cypress": "^3.3.1", + "grunt": "^1.0.3", + "grunt-cli": "^1.2.0", + "grunt-concurrent": "^2.3.0", + "grunt-contrib-jshint": "^3.0.0", + "grunt-contrib-watch": "^1.0.0", + "grunt-env": "latest", + "grunt-if": "https://github.com/binarymist/grunt-if/tarball/master", + "grunt-jsbeautifier": "^0.2.12", + "grunt-mocha-test": "^0.12.7", + "grunt-npm-install": "^0.3.0", + "grunt-retire": "^0.3.12", + "jshint": "2.12.0", + "mocha": "^2.4.5", + "nodemon": "^1.19.1", + "selenium-webdriver": "^2.53.2", + "should": "^8.3.1", + "zaproxy": "^0.2.0" + } + }, + "node_modules/@cypress/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@cypress/listr-verbose-renderer/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@cypress/listr-verbose-renderer/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@cypress/listr-verbose-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dependencies": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/adm-zip": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", + "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "dependencies": { + "string-width": "^2.0.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/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==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "dependencies": { + "array-filter": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/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==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/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==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bcrypt-nodejs": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bcrypt-nodejs/-/bcrypt-nodejs-0.0.3.tgz", + "integrity": "sha1-xgkX8m3CNWYVZsaBBhwwPCsohCs=", + "deprecated": "bcrypt-nodejs is no longer actively maintained. Please use bcrypt or bcryptjs. See https://github.com/kelektiv/node.bcrypt.js/wiki/bcrypt-vs-brypt.js to learn more about these two options" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", + "integrity": "sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4=", + "dev": true, + "dependencies": { + "readable-stream": "~2.0.5" + } + }, + "node_modules/bl/node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/bl/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" + }, + "node_modules/body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "dev": true, + "dependencies": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "node_modules/body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "dependencies": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body/node_modules/bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "node_modules/body/node_modules/raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "dev": true, + "dependencies": { + "bytes": "1", + "string_decoder": "0.10" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/body/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/broadway": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", + "integrity": "sha1-fb7waLlUt5B5Jf1USWO1eKkCuno=", + "dependencies": { + "cliff": "0.1.9", + "eventemitter2": "0.4.14", + "nconf": "0.6.9", + "utile": "0.2.1", + "winston": "0.8.0" + }, + "engines": { + "node": ">= 0.6.4" + } + }, + "node_modules/broadway/node_modules/async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "node_modules/broadway/node_modules/cliff": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz", + "integrity": "sha1-ohHgnGo947oa8n0EnTASUNGIErw=", + "dependencies": { + "colors": "0.x.x", + "eyes": "0.1.x", + "winston": "0.8.x" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/broadway/node_modules/nconf": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", + "integrity": "sha1-lXDvFe1vmuays8jV5xtm0xk81mE=", + "dependencies": { + "async": "0.2.9", + "ini": "1.x.x", + "optimist": "0.6.0" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/broadway/node_modules/nconf/node_modules/async": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz", + "integrity": "sha1-32MGD789Myhqdqr21Vophtn/hhk=" + }, + "node_modules/broadway/node_modules/optimist": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/broadway/node_modules/utile": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", + "dependencies": { + "async": "~0.2.9", + "deep-equal": "*", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "0.4.x", + "rimraf": "2.x.x" + }, + "engines": { + "node": ">= 0.6.4" + } + }, + "node_modules/broadway/node_modules/winston": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz", + "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=", + "dependencies": { + "async": "0.2.x", + "colors": "0.6.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "pkginfo": "0.3.x", + "stack-trace": "0.0.x" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/bson": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", + "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==", + "deprecated": "Fixed a critical issue with BSON serialization documented in CVE-2019-2391, see https://bit.ly/2KcpXdo for more details", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cache-base/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cachedir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz", + "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.1" + } + }, + "node_modules/caller": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/caller/-/caller-0.0.1.tgz", + "integrity": "sha1-83odbqEOgp2UchrimpC7T7Uqt2c=", + "dependencies": { + "tape": "~2.3.2" + } + }, + "node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "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" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "node_modules/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==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha512-41U72MB56TfUMGndAKK8vJ78eooOD4Z5NOL4xEfjc0c23s+6EYKXlXsmACBVclLP1yOfWCgEganVzddVrSNoTg==", + "dev": true, + "dependencies": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "engines": { + "node": ">=0.2.5" + } + }, + "node_modules/cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "dependencies": { + "restore-cursor": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "dependencies": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliff": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", + "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", + "dependencies": { + "colors": "~1.0.3", + "eyes": "~0.1.8", + "winston": "0.8.x" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/cliff/node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/coffeescript": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", + "dev": true, + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "node_modules/common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/connect": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.4.1.tgz", + "integrity": "sha1-ohNh0/QJnvdhzabcSpc7seuwo00=", + "dependencies": { + "debug": "~2.2.0", + "finalhandler": "0.4.1", + "parseurl": "~1.3.1", + "utils-merge": "1.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dependencies": { + "ms": "0.7.1" + } + }, + "node_modules/connect/node_modules/finalhandler": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", + "integrity": "sha1-haF8bFmpRxfSYtYSMNSw6+PUoU0=", + "dependencies": { + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "node_modules/connect/node_modules/utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg==", + "dev": true, + "dependencies": { + "date-now": "^0.1.4" + } + }, + "node_modules/consolidate": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", + "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", + "dependencies": { + "bluebird": "^3.1.1" + } + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-security-policy-builder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-1.0.0.tgz", + "integrity": "sha1-Ef1AxcwpimxyWjX5rPcegqtdMkM=", + "dependencies": { + "dashify": "^0.2.0" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "dev": true + }, + "node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/coveralls": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", + "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==", + "dev": true, + "dependencies": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, + "bin": { + "coveralls": "bin/coveralls.js" + }, + "engines": { + "node": ">=0.8.6" + } + }, + "node_modules/coveralls/node_modules/js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/coveralls/node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "node_modules/crc": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", + "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=" + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-env/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-env/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "dependencies": { + "boom": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/csrf": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz", + "integrity": "sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=", + "dependencies": { + "rndm": "1.2.0", + "tsscmp": "1.0.5", + "uid-safe": "2.1.4" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/csurf": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.9.0.tgz", + "integrity": "sha1-SdLGkl/87Ht95VlZfBU/pTM2QTM=", + "dependencies": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "csrf": "~3.0.3", + "http-errors": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/csurf/node_modules/http-errors": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", + "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", + "dependencies": { + "inherits": "2.0.3", + "setprototypeof": "1.0.2", + "statuses": ">= 1.3.1 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/csurf/node_modules/setprototypeof": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", + "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=" + }, + "node_modules/ctype": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/cypress": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.3.1.tgz", + "integrity": "sha512-JIo47ZD9P3jAw7oaK7YKUoODzszJbNw41JmBrlMMiupHOlhmXvZz75htuo7mfRFPC9/1MDQktO4lX/V2+a6lGQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/listr-verbose-renderer": "0.4.1", + "@cypress/xvfb": "1.2.4", + "arch": "2.1.1", + "bluebird": "3.5.0", + "cachedir": "1.3.0", + "chalk": "2.4.2", + "check-more-types": "2.24.0", + "commander": "2.15.1", + "common-tags": "1.8.0", + "debug": "3.2.6", + "execa": "0.10.0", + "executable": "4.1.1", + "extract-zip": "1.6.7", + "fs-extra": "4.0.1", + "getos": "3.1.1", + "glob": "7.1.3", + "is-ci": "1.2.1", + "is-installed-globally": "0.1.0", + "lazy-ass": "1.6.0", + "listr": "0.12.0", + "lodash": "4.17.11", + "log-symbols": "2.2.0", + "minimist": "1.2.0", + "moment": "2.24.0", + "ramda": "0.24.1", + "request": "2.88.0", + "request-progress": "0.4.0", + "supports-color": "5.5.0", + "tmp": "0.1.0", + "url": "0.11.0", + "yauzl": "2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cypress/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cypress/node_modules/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=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cypress/node_modules/bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "node_modules/cypress/node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/cypress/node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", + "dev": true + }, + "node_modules/cypress/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cypress/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/cypress/node_modules/execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha1-/0Vqj1P5D47MxxqW0Rvfx/CCy1A=", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cypress/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/cypress/node_modules/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==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cypress/node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/cypress/node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "node_modules/cypress/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/cypress/node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cypress/node_modules/request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.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" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/cypress/node_modules/tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha1-7kNKTiJUMILilLpiAdzG6v76KHc=", + "dev": true, + "dependencies": { + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cypress/node_modules/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==", + "dev": true, + "dependencies": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cypress/node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dashdash/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/dashify": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dashify/-/dashify-0.2.2.tgz", + "integrity": "sha1-agdBWgHJH69KMuONnfunH2HLIP4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "node_modules/date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha512-AsElvov3LoNB7tf5k37H2jYSB+ZZPMT5sG2QjJCcdlV5chIv6htBUBUui2IKRjgtKAKtCBN7Zbwa+MtwLjSeNw==", + "dev": true + }, + "node_modules/dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + }, + "bin": { + "dateformat": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.2.tgz", + "integrity": "sha512-kX0bjV7tdMuhrhzKPEnVwqfQCuf+IEfN+4Xqv4eKd75xGRyn8yzdQ9ujPY6a221rgJKyQC4KBu1PibDTpa6m9w==", + "dependencies": { + "es-abstract": "^1.17.5", + "es-get-iterator": "^1.1.0", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.0.5", + "isarray": "^2.0.5", + "object-is": "^1.0.2", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-equal/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deeper/-/deeper-2.1.0.tgz", + "integrity": "sha1-vFZOX3MXT98gHgiwADDooU2nQ2g=", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/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==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/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==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz", + "integrity": "sha1-817qfXBekzuvE7LwOz+D2SFAOz4=" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/director": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", + "integrity": "sha1-v9N0EHX9f7GlsuE2WMX0vsd3NvM=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/dns-prefetch-control": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz", + "integrity": "sha1-YN20V3dOF48flBXwyrsOhbCzALI=" + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ==", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dont-sniff-mimetype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz", + "integrity": "sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=" + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/duplexify": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/editorconfig": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.2.tgz", + "integrity": "sha512-GWjSI19PVJAM9IZRGOS+YKI8LN+/sjkSjNyvxL5ucqP9/IqtYNXBaQ/6c/hkPNYQHyOHra2KoXZI/JVpuqwmcQ==", + "dev": true, + "dependencies": { + "@types/node": "^10.11.7", + "@types/semver": "^5.5.0", + "commander": "^2.19.0", + "lru-cache": "^4.1.3", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "bin": { + "editorconfig": "bin/editorconfig" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==", + "dev": true + }, + "node_modules/error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "dependencies": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", + "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", + "dependencies": { + "es-abstract": "^1.17.4", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-promise": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", + "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-stream": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz", + "integrity": "sha1-t3uTCfcQet3+q2PwwOr9jbC9jBw=", + "dependencies": { + "optimist": "0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/event-stream/node_modules/optimist": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz", + "integrity": "sha1-6YGrfiaLRXlIWTtVZ0wJmoFcrDE=", + "dependencies": { + "wordwrap": ">=0.0.1 <0.1.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + }, + "node_modules/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=", + "dev": true + }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/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=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "dependencies": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-session": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz", + "integrity": "sha512-r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==", + "dependencies": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "crc": "3.4.4", + "debug": "2.6.9", + "depd": "~1.1.1", + "on-headers": "~1.0.1", + "parseurl": "~1.3.2", + "uid-safe": "~2.1.5", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha1-Kz1cckDo/C5Y+Komnl7knAhXvTo=", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/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==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/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==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "dependencies": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "dependencies": { + "fd-slicer": "~1.0.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/figures/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "dependencies": { + "glob": "~5.0.0" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/findup-sync/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fined": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.1.tgz", + "integrity": "sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flatiron": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz", + "integrity": "sha1-JIz3mj2n19w3nioRySonGcu1QPY=", + "dependencies": { + "broadway": "~0.3.2", + "director": "1.2.7", + "optimist": "0.6.0", + "prompt": "0.2.14" + }, + "bin": { + "flatiron": "bin/flatiron" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/flatiron/node_modules/optimist": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "node_modules/foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "dependencies": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "node_modules/forever": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/forever/-/forever-2.0.0.tgz", + "integrity": "sha512-lPq2AJackIVZT7Zey7XmRgv6vLShadqf4GYAkdS1+BxI+yTor/xiy1CzGPMWYF98lBs5dFClIn4PJ/EtqScBcQ==", + "dependencies": { + "async": "^1.5.2", + "cliff": "^0.1.10", + "clone": "^2.1.2", + "colors": "^0.6.2", + "flatiron": "~0.4.2", + "forever-monitor": "^2.0.0", + "mkdirp": "^0.5.1", + "nconf": "^0.10.0", + "nssocket": "^0.6.0", + "object-assign": "^4.1.1", + "optimist": "^0.6.1", + "path-is-absolute": "^2.0.0", + "prettyjson": "^1.2.1", + "shush": "^1.0.0", + "utile": "~0.3.0", + "winston": "~0.8.1" + }, + "bin": { + "forever": "bin/forever" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/forever-monitor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-2.0.0.tgz", + "integrity": "sha512-5tMNrrDjeI2tkS+m+fxETWXaUIYEarY9Sy2pw9AOq9sVENA/8B7pl3xVAQTG0fND8ypet3rQhg+G4D4f+fVw2w==", + "dependencies": { + "broadway": "~0.3.6", + "chokidar": "^2.1.8", + "minimatch": "^3.0.4", + "ps-tree": "0.0.x", + "utile": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/forever-monitor/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "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" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/forever/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "node_modules/forever/node_modules/path-is-absolute": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-2.0.0.tgz", + "integrity": "sha512-ajROpjq1SLxJZsgSVCcVIt+ZebVH+PwJtPnVESjfg6JKwJGwAgHRC3zIcjvI0LnecjIHCJhtfNZ/Y/RregqyXg==", + "deprecated": "This package is no longer relevant as Node.js 0.12 is unmaintained.", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/frameguard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-2.0.0.tgz", + "integrity": "sha1-MMLBSeXjUF+eFW+bxJGkOEIOSH4=" + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", + "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "bundleDependencies": [ + "node-pre-gyp" + ], + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/fsevents/node_modules/abbrev": { + "version": "1.1.1", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/ansi-regex": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/aproba": { + "version": "1.2.0", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/are-we-there-yet": { + "version": "1.1.5", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/fsevents/node_modules/balanced-match": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/fsevents/node_modules/chownr": { + "version": "1.1.1", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/code-point-at": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/console-control-strings": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/core-util-is": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/debug": { + "version": "4.1.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/fsevents/node_modules/deep-extend": { + "version": "0.6.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fsevents/node_modules/delegates": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/detect-libc": { + "version": "1.0.3", + "inBundle": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/fsevents/node_modules/fs-minipass": { + "version": "1.2.5", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/fs.realpath": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/gauge": { + "version": "2.7.4", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "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" + } + }, + "node_modules/fsevents/node_modules/glob": { + "version": "7.1.3", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/has-unicode": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/iconv-lite": { + "version": "0.4.24", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/ignore-walk": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/fsevents/node_modules/inflight": { + "version": "1.0.6", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/inherits": { + "version": "2.0.3", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/ini": { + "version": "1.3.5", + "inBundle": true, + "license": "ISC", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/isarray": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/minimatch": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/minimist": { + "version": "0.0.8", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/minipass": { + "version": "2.3.5", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/fsevents/node_modules/minizlib": { + "version": "1.2.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/mkdirp": { + "version": "0.5.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fsevents/node_modules/ms": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/needle": { + "version": "2.3.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/fsevents/node_modules/node-pre-gyp": { + "version": "0.12.0", + "inBundle": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "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" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/fsevents/node_modules/nopt": { + "version": "4.0.1", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/fsevents/node_modules/npm-bundled": { + "version": "1.0.6", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/npm-packlist": { + "version": "1.4.1", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "node_modules/fsevents/node_modules/npmlog": { + "version": "4.1.2", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/fsevents/node_modules/number-is-nan": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/object-assign": { + "version": "4.1.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/once": { + "version": "1.4.0", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/os-homedir": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/os-tmpdir": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/osenv": { + "version": "0.1.5", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/fsevents/node_modules/path-is-absolute": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/process-nextick-args": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/rc": { + "version": "1.2.8", + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/fsevents/node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/readable-stream": { + "version": "2.3.6", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/fsevents/node_modules/rimraf": { + "version": "2.6.3", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/fsevents/node_modules/safe-buffer": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/safer-buffer": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/sax": { + "version": "1.2.4", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/semver": { + "version": "5.7.0", + "inBundle": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/fsevents/node_modules/set-blocking": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/signal-exit": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/string_decoder": { + "version": "1.1.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fsevents/node_modules/string-width": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-ansi": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-json-comments": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/tar": { + "version": "4.4.8", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/fsevents/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/wide-align": { + "version": "1.1.3", + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/fsevents/node_modules/wrappy": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/yallist": { + "version": "3.0.3", + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "dependencies": { + "is-property": "^1.0.0" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/getos": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.1.tgz", + "integrity": "sha512-oUP1rnEhAr97rkitiszGP9EgDVYnmchgFzfqRzSkgtfv7ai6tEi7Ko8GgjNXts7VLWEqrTWyhsOKLe5C5b/Zkg==", + "dev": true, + "dependencies": { + "async": "2.6.1" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/getpass/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "dependencies": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "node_modules/growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "node_modules/grunt": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz", + "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", + "dev": true, + "dependencies": { + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~2.0.0", + "grunt-legacy-util": "~1.1.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.5.2", + "minimatch": "~3.0.2", + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.6.2" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-cli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz", + "integrity": "sha1-YPEtEsG1qulK40aca1/iTpYAFOg=", + "dev": true, + "dependencies": { + "grunt-known-options": "~1.1.0", + "interpret": "~1.1.0", + "liftoff": "~2.5.0", + "nopt": "~4.0.1", + "v8flags": "~3.1.1" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-concurrent": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-2.3.1.tgz", + "integrity": "sha1-Hj2zjM71o9oRleYdYx/n4yE0TSM=", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "async": "^1.2.1", + "indent-string": "^2.0.0", + "pad-stream": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt-concurrent/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "node_modules/grunt-contrib-clean": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", + "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", + "dev": true, + "dependencies": { + "async": "^1.5.2", + "rimraf": "^2.5.1" + }, + "engines": { + "node": ">= 0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.5" + } + }, + "node_modules/grunt-contrib-clean/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "node_modules/grunt-contrib-jshint": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-3.2.0.tgz", + "integrity": "sha512-pcXWCSZWfoMSvcV4BwH21TUtLtcX0Ms8IGuOPIcLeXK3fud9KclY7iqMKY94jFx8TxZzh028YYtpR+io8DiEaQ==", + "dev": true, + "dependencies": { + "chalk": "~4.1.2", + "hooker": "^0.2.3", + "jshint": "~2.13.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/grunt-contrib-jshint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/jshint": { + "version": "2.13.6", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz", + "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==", + "dev": true, + "dependencies": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.21", + "minimatch": "~3.0.2", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/grunt-contrib-jshint/node_modules/strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-contrib-jshint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/grunt-contrib-nodeunit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-nodeunit/-/grunt-contrib-nodeunit-1.0.0.tgz", + "integrity": "sha1-b0iFVe2cDIR4hUEDxx7bH8RoXwU=", + "dev": true, + "dependencies": { + "nodeunit": "^0.9.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-watch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha1-wUPKW4JLKIoCS4VmOaU0Wu23jtQ=", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-env": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-env/-/grunt-env-1.0.1.tgz", + "integrity": "sha512-Hw4iIJ58yYA8kJaP4UUyfw807DUI1FRnow9hhRMnq366bwCnxiBWOgfZsYilcs3Jh1qsGC/i3+G+7/W18hA1TA==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "lodash": "^4.17.14" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt-env/node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "node_modules/grunt-if": { + "version": "0.2.0", + "resolved": "https://github.com/binarymist/grunt-if/tarball/master", + "integrity": "sha1-q6pNYV5CzE3rKC+iGJnStzdIPzk=", + "dev": true, + "dependencies": { + "grunt": "^1.0.1", + "grunt-contrib-clean": "^1.0.0", + "grunt-contrib-jshint": "^1.0.0", + "grunt-contrib-nodeunit": "^1.0.0", + "q": "^1.4.1 " + }, + "engines": { + "node": ">= 0.8.0" + }, + "peerDependencies": { + "grunt": "^1.0.1" + } + }, + "node_modules/grunt-if/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-if/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-if/node_modules/grunt-contrib-jshint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", + "integrity": "sha512-N8jtQ/FmvuRdJoEGphmGt+ov1oi5bJq4hPBPT/g54ed1glF34l2z5VAdHHhcgOaezBxur3kcMPChB0pfZxxcFw==", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.4" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt-if/node_modules/jshint": { + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.7.tgz", + "integrity": "sha512-Q8XN38hGsVQhdlM+4gd1Xl7OB1VieSuCJf+fEJjpo59JH99bVJhXRXAh26qQ15wfdd1VPMuDWNeSWoNl53T4YA==", + "dev": true, + "dependencies": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.10", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/grunt-if/node_modules/strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-if/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-jsbeautifier": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/grunt-jsbeautifier/-/grunt-jsbeautifier-0.2.13.tgz", + "integrity": "sha1-89QXOPy1+ZhO8pbVvuvEBIkQVkI=", + "dev": true, + "dependencies": { + "async": "^2.0.0-rc.3", + "grunt": ">=0.4.1", + "js-beautify": ">=1.4.2", + "lodash": ">=2.4.1", + "rc": ">=0.5.5", + "semver": ">=4.3.1", + "underscore.string": ">=2.3.3" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/grunt-known-options": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", + "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-legacy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", + "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", + "dev": true, + "dependencies": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/grunt-legacy-log-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", + "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", + "dev": true, + "dependencies": { + "chalk": "~2.4.1", + "lodash": "~4.17.10" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/grunt-legacy-log/node_modules/colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/grunt-legacy-util": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", + "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", + "dev": true, + "dependencies": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.10", + "underscore.string": "~3.3.4", + "which": "~1.3.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/grunt-legacy-util/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "node_modules/grunt-mocha-test": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.12.7.tgz", + "integrity": "sha1-xhzfMqZ2KVQRX+cSuYPj3Y4MlVQ=", + "dev": true, + "dependencies": { + "hooker": "~0.2.3", + "mkdirp": "^0.5.0" + }, + "engines": { + "node": ">= 0.10.4" + }, + "peerDependencies": { + "mocha": ">=1.20.0" + } + }, + "node_modules/grunt-npm-install": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/grunt-npm-install/-/grunt-npm-install-0.3.1.tgz", + "integrity": "sha1-kWFwWV43DiB44d+wQiQzHbHehDc=", + "dev": true, + "dependencies": { + "npm": "^3.7.2" + }, + "engines": { + "node": ">= 0.8.0" + }, + "peerDependencies": { + "grunt": ">=0.4.1" + } + }, + "node_modules/grunt-retire": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/grunt-retire/-/grunt-retire-0.3.12.tgz", + "integrity": "sha1-ko34nQ5lE792vQYOGVTJ0+kncKE=", + "dev": true, + "dependencies": { + "async": "~1.5.x", + "request": "~2.67.x", + "retire": "~1.1.x" + }, + "engines": { + "node": ">= 0.8.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt-retire/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "node_modules/grunt-retire/node_modules/form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "dev": true, + "dependencies": { + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/grunt-retire/node_modules/form-data/node_modules/async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/grunt-retire/node_modules/node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "deprecated": "Use uuid module instead", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/grunt-retire/node_modules/qs": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.1.tgz", + "integrity": "sha1-gB/uAw4LlFDWOFrcSKTMVbRK7fw=", + "dev": true, + "engines": ">=0.10.40" + }, + "node_modules/grunt-retire/node_modules/request": { + "version": "2.67.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", + "integrity": "sha1-ivdHgOK/EeoK6aqWXBHxGv0nJ0I=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.6.0", + "bl": "~1.0.0", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~1.0.0-rc3", + "har-validator": "~2.0.2", + "hawk": "~3.1.0", + "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", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.0", + "qs": "~5.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.2.0", + "tunnel-agent": "~0.4.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/grunt-retire/node_modules/tough-cookie": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", + "integrity": "sha1-yDoYMPTl7wuT7yo0iOck+N4Basc=", + "deprecated": "ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt/node_modules/glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/grunt/node_modules/grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "dev": true, + "dependencies": { + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt/node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + }, + "bin": { + "har-validator": "bin/har-validator" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/har-validator/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/har-validator/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/har-validator/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "deprecated": "This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dev": true, + "dependencies": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + }, + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/helmet": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-2.3.0.tgz", + "integrity": "sha1-1lXIW1Wwo79yKkwsZuSLeLQWG5E=", + "dependencies": { + "connect": "3.4.1", + "dns-prefetch-control": "0.1.0", + "dont-sniff-mimetype": "1.0.0", + "frameguard": "2.0.0", + "helmet-csp": "1.2.2", + "hide-powered-by": "1.0.0", + "hpkp": "1.2.0", + "hsts": "1.0.0", + "ienoopen": "1.0.0", + "nocache": "1.0.1", + "referrer-policy": "1.0.0", + "x-xss-protection": "1.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/helmet-csp": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-1.2.2.tgz", + "integrity": "sha1-CFwDB9V/yWzZczfxcKuL/qmeXfc=", + "dependencies": { + "camelize": "1.0.0", + "content-security-policy-builder": "1.0.0", + "lodash.reduce": "4.5.0", + "platform": "1.3.1" + } + }, + "node_modules/hide-powered-by": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.0.0.tgz", + "integrity": "sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=" + }, + "node_modules/hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "node_modules/hpkp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hpkp/-/hpkp-1.2.0.tgz", + "integrity": "sha1-g/LLOLJs/yHa8m4v9LVxJpId7GU=" + }, + "node_modules/hsts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsts/-/hsts-1.0.0.tgz", + "integrity": "sha1-mOEDnverpVQFe2sOMlhMCxFDpBQ=", + "dependencies": { + "core-util-is": "1.0.2" + } + }, + "node_modules/htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q==", + "dev": true, + "dependencies": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "node_modules/htmlparser2/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/htmlparser2/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "dependencies": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/i": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", + "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ienoopen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz", + "integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=" + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "engines": { + "node": "*" + } + }, + "node_modules/interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.0.tgz", + "integrity": "sha512-t5mGUXC/xRheCK431ylNiSkGGpBp8bHENBcENTkDT6ppwPzEVxNGZRvgvmOEfbWkFhA7D2GEuE2mmQTr78sl2g==" + }, + "node_modules/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=", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-boolean-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz", + "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/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=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", + "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "node_modules/is-my-json-valid": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz", + "integrity": "sha512-mG0f/unGX1HZ5ep4uhRaPOS8EkAY8/j6mDRMJrutq4CqhoJWYp7qAlonIPy3TV7p3ju4TK9fo/PbnoksWmsp5Q==", + "dev": true, + "dependencies": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "node_modules/is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", + "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", + "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", + "dependencies": { + "available-typed-arrays": "^1.0.0", + "es-abstract": "^1.17.4", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", + "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "deprecated": "Jade has been renamed to pug, please install the latest version of pug instead of jade", + "dev": true, + "dependencies": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "bin": { + "jade": "bin/jade" + } + }, + "node_modules/jade/node_modules/commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true, + "engines": { + "node": ">= 0.4.x" + } + }, + "node_modules/jade/node_modules/mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/js-beautify": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.8.9.tgz", + "integrity": "sha512-MwPmLywK9RSX0SPsUJjN7i+RQY9w/yC17Lbrq9ViEefpLRgqAR2BgrMN2AbifkUuhDV8tRauLhLda/9+bE0YQA==", + "dev": true, + "dependencies": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.2", + "glob": "^7.1.3", + "mkdirp": "~0.5.0", + "nopt": "~4.0.1" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + } + }, + "node_modules/js-yaml": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", + "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", + "dev": true, + "dependencies": { + "argparse": "^1.0.2", + "esprima": "^2.6.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jshint": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.12.0.tgz", + "integrity": "sha512-TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==", + "dev": true, + "dependencies": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.19", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + }, + "bin": { + "jshint": "bin/jshint" + } + }, + "node_modules/jshint/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/jshint/node_modules/strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "engines": { + "node": "*" + } + }, + "node_modules/jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jsprim/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "dependencies": { + "package-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, + "node_modules/liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets/node_modules/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=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets/node_modules/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=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/expand-brackets/node_modules/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/liftoff/node_modules/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==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/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==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftoff/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", + "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.2.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.0.0-beta.11", + "stream-to-observable": "^0.1.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", + "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-verbose-renderer/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-verbose-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/listr/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "node_modules/lodash.reduce": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.5.0.tgz", + "integrity": "sha1-r30uxiEGJEHnfVv0CKHgce+GaRw=" + }, + "node_modules/log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true, + "engines": { + "node": ">=0.8.6" + } + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "dependencies": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/lru-cache/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "0.3.7", + "resolved": "https://repo.mzavery.eu.ngrok.io/repository/npm-all/marked/-/marked-0.3.7.tgz", + "integrity": "sha512-zBEP4qO1YQp5aXHt8S5wTiOv9i2X74V/LQL0zhUNvVaklt6Ywa6lChxIvS+ibYlCGgADwKwZFhjC3+XfpsvQvQ==", + "license": "MIT", + "bin": { + "marked": "bin/marked" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "node_modules/meow/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "bin": { + "mime": "cli.js" + } + }, + "node_modules/mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "dependencies": { + "mime-db": "~1.37.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, + "node_modules/mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "deprecated": "Critical bug fixed in v2.0.1, please upgrade to the latest version.", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "node_modules/mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "dev": true, + "dependencies": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 0.8.x" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "dev": true, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "dependencies": { + "ms": "0.7.1" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "dependencies": { + "inherits": "2", + "minimatch": "0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dev": true, + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true, + "bin": { + "supports-color": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/mongodb": { + "version": "2.2.36", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz", + "integrity": "sha1-HFc2gLKEn7D0esu6PcX6Io3pdfU=", + "dependencies": { + "es6-promise": "3.2.1", + "mongodb-core": "2.1.20", + "readable-stream": "2.2.7" + }, + "engines": { + "node": ">=0.10.3" + } + }, + "node_modules/mongodb-core": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz", + "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==", + "dependencies": { + "bson": "~1.0.4", + "require_optional": "~1.0.0" + } + }, + "node_modules/mongodb/node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "node_modules/mongodb/node_modules/readable-stream": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", + "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", + "dependencies": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/mongodb/node_modules/string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nconf": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.10.0.tgz", + "integrity": "sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q==", + "dependencies": { + "async": "^1.4.0", + "ini": "^1.3.0", + "secure-keys": "^1.0.0", + "yargs": "^3.19.0" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nconf/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "node_modules/nconf/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nconf/node_modules/window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "bin": { + "window-size": "cli.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/nconf/node_modules/yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "dependencies": { + "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" + } + }, + "node_modules/ncp": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", + "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=", + "bin": { + "ncp": "bin/ncp" + } + }, + "node_modules/needle": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.4.tgz", + "integrity": "sha1-UZMb/4JTOxkot9HWngHxsA/9Kk4=", + "dependencies": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/nocache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-1.0.1.tgz", + "integrity": "sha1-aVyfc2kmp1VPc2X6JeCHlBBlvTY=", + "dependencies": { + "depd": "1.1.0" + } + }, + "node_modules/nocache/node_modules/depd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-esapi": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/node-esapi/-/node-esapi-0.0.1.tgz", + "integrity": "sha1-b0xFahTrvRNaDw0XZsMLKr8HGYw=" + }, + "node_modules/node-eta": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.1.1.tgz", + "integrity": "sha1-QGYQmzk3HHYccrfr2pqeoKXeEh8=", + "dev": true + }, + "node_modules/nodemon": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.1.tgz", + "integrity": "sha512-/DXLzd/GhiaDXXbGId5BzxP1GlsqtMGM9zTmkWrgXtSqjKmGSbLicM/oAy4FR0YWm14jCHRwnR31AHS2dYFHrg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^2.1.5", + "debug": "^3.1.0", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.6", + "semver": "^5.5.0", + "supports-color": "^5.2.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.5.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nodeunit": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/nodeunit/-/nodeunit-0.9.5.tgz", + "integrity": "sha1-C2MjaAB9lGUczwoYmZgHmC8HOGY=", + "deprecated": "you are strongly encouraged to use other testing options", + "dev": true, + "dependencies": { + "tap": "^7.0.0" + }, + "bin": { + "nodeunit": "bin/nodeunit" + } + }, + "node_modules/nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm": { + "version": "3.10.10", + "resolved": "https://registry.npmjs.org/npm/-/npm-3.10.10.tgz", + "integrity": "sha1-Wx1XfkyIadbIYDvInpzRY3MD5G4=", + "bundleDependencies": [ + "abbrev", + "ansi-regex", + "ansicolors", + "ansistyles", + "aproba", + "archy", + "asap", + "chownr", + "cmd-shim", + "columnify", + "config-chain", + "debuglog", + "dezalgo", + "editor", + "fs-vacuum", + "fs-write-stream-atomic", + "fstream", + "fstream-npm", + "glob", + "graceful-fs", + "has-unicode", + "hosted-git-info", + "iferr", + "imurmurhash", + "inflight", + "inherits", + "ini", + "init-package-json", + "lockfile", + "lodash._baseindexof", + "lodash._baseuniq", + "lodash._bindcallback", + "lodash._cacheindexof", + "lodash._createcache", + "lodash._getnative", + "lodash.clonedeep", + "lodash.restparam", + "lodash.union", + "lodash.uniq", + "lodash.without", + "mkdirp", + "node-gyp", + "nopt", + "normalize-git-url", + "normalize-package-data", + "npm-cache-filename", + "npm-install-checks", + "npm-package-arg", + "npm-registry-client", + "npm-user-validate", + "npmlog", + "once", + "opener", + "osenv", + "path-is-inside", + "read", + "read-cmd-shim", + "read-installed", + "read-package-json", + "read-package-tree", + "readable-stream", + "readdir-scoped-modules", + "realize-package-specifier", + "request", + "retry", + "rimraf", + "semver", + "sha", + "slide", + "sorted-object", + "strip-ansi", + "tar", + "text-table", + "uid-number", + "umask", + "unique-filename", + "unpipe", + "validate-npm-package-license", + "validate-npm-package-name", + "which", + "wrappy", + "write-file-atomic" + ], + "dev": true, + "dependencies": { + "abbrev": "~1.0.9", + "ansi-regex": "*", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "~1.0.4", + "archy": "~1.0.0", + "asap": "~2.0.5", + "chownr": "~1.0.1", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "~1.1.11", + "debuglog": "*", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "fs-vacuum": "~1.2.9", + "fs-write-stream-atomic": "~1.0.8", + "fstream": "~1.0.10", + "fstream-npm": "~1.2.0", + "glob": "~7.1.0", + "graceful-fs": "~4.1.9", + "has-unicode": "~2.0.1", + "hosted-git-info": "~2.1.5", + "iferr": "~0.1.5", + "imurmurhash": "*", + "inflight": "~1.0.5", + "inherits": "~2.0.3", + "ini": "~1.3.4", + "init-package-json": "~1.9.4", + "lockfile": "~1.0.2", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "mkdirp": "~0.5.1", + "node-gyp": "~3.4.0", + "nopt": "~3.0.6", + "normalize-git-url": "~3.0.2", + "normalize-package-data": "~2.3.5", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~3.0.0", + "npm-package-arg": "~4.2.0", + "npm-registry-client": "~7.2.1", + "npm-user-validate": "~0.1.5", + "npmlog": "~4.0.0", + "once": "~1.4.0", + "opener": "~1.4.2", + "osenv": "~0.1.3", + "path-is-inside": "~1.0.2", + "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", + "read-installed": "~4.0.3", + "read-package-json": "~2.0.4", + "read-package-tree": "~5.1.5", + "readable-stream": "~2.1.5", + "readdir-scoped-modules": "*", + "realize-package-specifier": "~3.0.3", + "request": "~2.75.0", + "retry": "~0.10.0", + "rimraf": "~2.5.4", + "semver": "~5.3.0", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "strip-ansi": "~3.0.1", + "tar": "~2.2.1", + "text-table": "~0.2.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "~1.1.0", + "unpipe": "~1.0.0", + "validate-npm-package-license": "*", + "validate-npm-package-name": "~2.2.2", + "which": "~1.2.11", + "wrappy": "~1.0.2", + "write-file-atomic": "~1.2.0" + }, + "bin": { + "npm": "bin/npm-cli.js" + } + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "1.0.9", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ansicolors": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ansistyles": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aproba": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/asap": { + "version": "2.0.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/chownr": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.5.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "node_modules/npm/node_modules/columnify/node_modules/wcwidth": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.0" + } + }, + "node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/config-chain": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/npm/node_modules/config-chain/node_modules/proto-list": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/dezalgo": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/editor": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-vacuum": { + "version": "1.2.9", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic": { + "version": "1.0.8", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/npm/node_modules/fstream": { + "version": "1.0.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/npm/node_modules/fstream-npm": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fstream-ignore": "^1.0.0", + "inherits": "2" + } + }, + "node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" + } + }, + "node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "0.4.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fstream-npm/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/glob": { + "version": "7.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/glob/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/glob/node_modules/minimatch": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "0.4.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/glob/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.1.9", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "2.1.5", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ini": { + "version": "1.3.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "1.9.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^6.0.0", + "npm-package-arg": "^4.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^2.0.1" + } + }, + "node_modules/npm/node_modules/init-package-json/node_modules/glob": { + "version": "6.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "0.4.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/init-package-json/node_modules/glob/node_modules/path-is-absolute": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/init-package-json/node_modules/promzard": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npm/node_modules/lockfile": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/lodash._baseindexof": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._baseuniq": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._baseuniq/node_modules/lodash._root": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._bindcallback": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._cacheindexof": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._createcache": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._getnative": "^3.0.0" + } + }, + "node_modules/npm/node_modules/lodash._getnative": { + "version": "3.9.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.clonedeep": { + "version": "4.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.restparam": { + "version": "3.6.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.union": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.without": { + "version": "4.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/npm/node_modules/mkdirp/node_modules/minimist": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "3.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3", + "osenv": "0", + "path-array": "^1.0.0", + "request": "2", + "rimraf": "2", + "semver": "2.x || 3.x || 4 || 5", + "tar": "^2.0.0", + "which": "1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "0.4.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.6.0", + "set-blocking": "~2.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge": { + "version": "2.6.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-color": "^0.1.7", + "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" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/has-color": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/object-assign": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/node_modules/number-is-nan": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/gauge/node_modules/wide-align": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/path-array": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "array-index": "^1.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^2.2.0", + "es6-symbol": "^3.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "0.7.1" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/debug/node_modules/ms": { + "version": "0.7.1", + "dev": true, + "inBundle": true + }, + "node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "d": "~0.1.1", + "es5-ext": "~0.10.11" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/d": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext": { + "version": "0.10.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-iterator": "2", + "es6-symbol": "~3.1" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "d": "^0.1.1", + "es5-ext": "^0.10.7", + "es6-symbol": "3" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/npm/node_modules/normalize-git-url": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "2.3.5", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npm-cache-filename": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^2.1.5", + "semver": "^5.1.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client": { + "version": "7.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3" + }, + "optionalDependencies": { + "npmlog": "~2.0.0 || ~3.1.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream": { + "version": "1.5.2", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/process-nextick-args": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/readable-stream/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray": { + "version": "0.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.6.0", + "set-blocking": "~2.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/are-we-there-yet": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge": { + "version": "2.6.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-color": "^0.1.7", + "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" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/has-color": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/object-assign": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/node_modules/number-is-nan": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/gauge/node_modules/wide-align": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/npmlog/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/npm/node_modules/npm-registry-client/node_modules/retry": { + "version": "0.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/npmlog": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.6.0", + "set-blocking": "~2.0.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npmlog/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge": { + "version": "2.6.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-color": "^0.1.7", + "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" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/has-color": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/node_modules/number-is-nan": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/opener": { + "version": "1.4.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "opener.js" + } + }, + "node_modules/npm/node_modules/osenv": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/npm/node_modules/osenv/node_modules/os-homedir": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/osenv/node_modules/os-tmpdir": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/path-is-inside": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npm/node_modules/read": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-installed": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-installed/node_modules/util-extend": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^6.0.0", + "json-parse-helpfulerror": "^1.0.2", + "normalize-package-data": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-package-json/node_modules/glob": { + "version": "6.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match": { + "version": "0.4.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/read-package-json/node_modules/glob/node_modules/path-is-absolute": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jju": "^1.1.0" + } + }, + "node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/node_modules/jju": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "WTFPL" + }, + "node_modules/npm/node_modules/read-package-tree": { + "version": "5.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "node_modules/npm/node_modules/read/node_modules/mute-stream": { + "version": "0.0.5", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "2.1.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer-shims": "^1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/readable-stream/node_modules/buffer-shims": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/readable-stream/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/readable-stream/node_modules/process-nextick-args": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/readable-stream/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/readable-stream/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npm/node_modules/realize-package-specifier": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "dezalgo": "^1.0.1", + "npm-package-arg": "^4.1.1" + } + }, + "node_modules/npm/node_modules/request": { + "version": "2.75.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "bl": "~1.1.2", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.0.0", + "har-validator": "~2.0.6", + "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", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.1", + "qs": "~6.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/aws-sign2": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/request/node_modules/aws4": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/bl": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.0.5" + } + }, + "node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/process-nextick-args": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/bl/node_modules/readable-stream/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/caseless": { + "version": "0.11.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/request/node_modules/combined-stream": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/extend": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/forever-agent": { + "version": "0.6.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/request/node_modules/form-data": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/npm/node_modules/request/node_modules/form-data/node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/har-validator": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + }, + "bin": { + "har-validator": "bin/har-validator" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/chalk": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/ansi-styles": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/has-ansi": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/commander": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/commander/node_modules/graceful-readlink": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid": { + "version": "2.15.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-function": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-property": "^1.0.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/jsonpointer": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/xtend": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/pinkie-promise/node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/hawk": { + "version": "3.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + }, + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/npm/node_modules/request/node_modules/hawk/node_modules/boom": { + "version": "2.10.1", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles": { + "version": "2.0.5", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "boom": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/npm/node_modules/request/node_modules/hawk/node_modules/hoek": { + "version": "2.16.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/npm/node_modules/request/node_modules/hawk/node_modules/sntp": { + "version": "1.0.9", + "dev": true, + "inBundle": true, + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf": { + "version": "1.0.2", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema": { + "version": "0.2.3", + "dev": true, + "inBundle": true + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror": { + "version": "1.3.6", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "dependencies": { + "extsprintf": "1.0.2" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk": { + "version": "1.10.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "dashdash": "^1.12.0", + "getpass": "^0.1.1" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + }, + "optionalDependencies": { + "bcrypt-pbkdf": "^1.0.0", + "ecc-jsbn": "~0.1.1", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1": { + "version": "0.2.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/assert-plus": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-4-Clause", + "optional": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash": { + "version": "1.14.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "jsbn": "~0.1.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass": { + "version": "0.1.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jodid25519": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "jsbn": "~0.1.0" + } + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.0", + "dev": true, + "inBundle": true, + "license": "BSD", + "optional": true + }, + "node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.3", + "dev": true, + "inBundle": true, + "license": "SEE LICENSE IN COPYING.txt", + "optional": true + }, + "node_modules/npm/node_modules/request/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/isstream": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/request/node_modules/mime-types": { + "version": "2.1.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "~1.24.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db": { + "version": "1.24.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/request/node_modules/node-uuid": { + "version": "1.4.7", + "dev": true, + "inBundle": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/npm/node_modules/request/node_modules/oauth-sign": { + "version": "0.8.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/request/node_modules/qs": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/npm/node_modules/request/node_modules/stringstream": { + "version": "0.0.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/request/node_modules/tough-cookie": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/request/node_modules/tunnel-agent": { + "version": "0.4.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "2.5.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/npm/node_modules/semver": { + "version": "5.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm/node_modules/sha": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT)", + "dependencies": { + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" + } + }, + "node_modules/npm/node_modules/slide": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/sorted-object": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "node_modules/npm/node_modules/tar/node_modules/block-stream": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "inherits": "~2.0.0" + }, + "engines": { + "node": "0.4 || >=0.5.8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/uid-number": { + "version": "0.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/umask": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename/node_modules/unique-slug": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/npm/node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-license-ids": "^1.0.2" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "Unlicense" + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "(MIT AND CC-BY-3.0)", + "dependencies": { + "spdx-exceptions": "^1.0.4", + "spdx-license-ids": "^1.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-exceptions": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/node_modules/spdx-license-ids": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "Unlicense" + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "0.0.7" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name/node_modules/builtins": { + "version": "0.0.7", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/which": { + "version": "1.2.11", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^1.1.1" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "node_modules/nssocket": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", + "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", + "dependencies": { + "eventemitter2": "~0.4.14", + "lazy": "~1.0.11" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-7.1.0.tgz", + "integrity": "sha1-jhSXHzoV0au+x6xhDvVMuInp/7Q=", + "bundleDependencies": [ + "arrify", + "caching-transform", + "convert-source-map", + "default-require-extensions", + "find-cache-dir", + "find-up", + "foreground-child", + "glob", + "istanbul-lib-coverage", + "istanbul-lib-hook", + "istanbul-lib-instrument", + "istanbul-lib-report", + "istanbul-lib-source-maps", + "istanbul-reports", + "md5-hex", + "micromatch", + "mkdirp", + "pkg-up", + "resolve-from", + "rimraf", + "signal-exit", + "spawn-wrap", + "test-exclude", + "yargs", + "yargs-parser" + ], + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^1.1.2", + "foreground-child": "^1.5.3", + "glob": "^7.0.3", + "istanbul-lib-coverage": "^1.0.0-alpha.4", + "istanbul-lib-hook": "^1.0.0-alpha.4", + "istanbul-lib-instrument": "^1.1.0-alpha.3", + "istanbul-lib-report": "^1.0.0-alpha.3", + "istanbul-lib-source-maps": "^1.0.0-alpha.10", + "istanbul-reports": "^1.0.0-alpha.8", + "md5-hex": "^1.2.0", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "pkg-up": "^1.0.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.0", + "spawn-wrap": "^1.2.4", + "test-exclude": "^1.1.0", + "yargs": "^4.8.1", + "yargs-parser": "^2.4.1" + }, + "bin": { + "nyc": "bin/nyc.js" + } + }, + "node_modules/nyc/node_modules/align-text": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/amdefine": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause AND MIT", + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/nyc/node_modules/ansi-regex": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/append-transform": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/arr-diff": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/arr-flatten": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/array-unique": { + "version": "0.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/arrify": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/async": { + "version": "1.5.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/babel-code-frame": { + "version": "6.11.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.0.0", + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^2.0.0" + } + }, + "node_modules/nyc/node_modules/babel-generator": { + "version": "6.11.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "babel-messages": "^6.8.0", + "babel-runtime": "^6.9.0", + "babel-types": "^6.10.2", + "detect-indent": "^3.0.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0" + } + }, + "node_modules/nyc/node_modules/babel-messages": { + "version": "6.8.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.0.0" + } + }, + "node_modules/nyc/node_modules/babel-runtime": { + "version": "6.9.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.9.5" + } + }, + "node_modules/nyc/node_modules/babel-template": { + "version": "6.9.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.9.0", + "babel-traverse": "^6.9.0", + "babel-types": "^6.9.0", + "babylon": "^6.7.0", + "lodash": "^4.2.0" + } + }, + "node_modules/nyc/node_modules/babel-traverse": { + "version": "6.11.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "babel-code-frame": "^6.8.0", + "babel-messages": "^6.8.0", + "babel-runtime": "^6.9.0", + "babel-types": "^6.9.0", + "babylon": "^6.7.0", + "debug": "^2.2.0", + "globals": "^8.3.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + } + }, + "node_modules/nyc/node_modules/babel-types": { + "version": "6.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.9.1", + "babel-traverse": "^6.9.0", + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^1.0.1" + } + }, + "node_modules/nyc/node_modules/babylon": { + "version": "6.8.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.0.0" + }, + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/nyc/node_modules/balanced-match": { + "version": "0.4.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/brace-expansion": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "node_modules/nyc/node_modules/braces": { + "version": "1.8.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/builtin-modules": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/caching-transform": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/camelcase": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/center-align": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/chalk": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/nyc/node_modules/cliui/node_modules/wordwrap": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "MIT/X11", + "optional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/nyc/node_modules/code-point-at": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/commondir": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/core-js": { + "version": "2.4.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/cross-spawn": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/nyc/node_modules/debug": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "0.7.1" + } + }, + "node_modules/nyc/node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/default-require-extensions": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/detect-indent": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" + }, + "bin": { + "detect-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/detect-indent/node_modules/minimist": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/error-ex": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/nyc/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nyc/node_modules/esutils": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/expand-brackets": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/expand-range": { + "version": "1.8.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "fill-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/extglob": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/filename-regex": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/fill-range": { + "version": "2.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/find-cache-dir": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/for-in": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/for-own": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "for-in": "^0.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/foreground-child": { + "version": "1.5.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "node_modules/nyc/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/get-caller-file": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/get-stdin": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/glob": { + "version": "7.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nyc/node_modules/glob-base": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/glob-parent": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "is-glob": "^2.0.0" + } + }, + "node_modules/nyc/node_modules/globals": { + "version": "8.18.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/graceful-fs": { + "version": "4.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/nyc/node_modules/handlebars": { + "version": "4.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^2.6" + } + }, + "node_modules/nyc/node_modules/handlebars/node_modules/source-map": { + "version": "0.4.4", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nyc/node_modules/has-ansi": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/has-flag": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/hosted-git-info": { + "version": "2.1.5", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/nyc/node_modules/inflight": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/nyc/node_modules/inherits": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/invariant": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/nyc/node_modules/invert-kv": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/is-buffer": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/nyc/node_modules/is-builtin-module": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-dotfile": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-equal-shallow": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-extendable": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-extglob": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-finite": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-glob": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-number": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-posix-bracket": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-primitive": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/isexe": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/isobject": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-coverage": { + "version": "1.0.0-alpha.4", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/nyc/node_modules/istanbul-lib-hook": { + "version": "1.0.0-alpha.4", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^0.3.0" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-instrument": { + "version": "1.1.0-alpha.4", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "babel-generator": "^6.11.3", + "babel-template": "^6.9.0", + "babel-traverse": "^6.9.0", + "babel-types": "^6.10.2", + "babylon": "^6.8.1", + "istanbul-lib-coverage": "^1.0.0-alpha.4" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-report": { + "version": "1.0.0-alpha.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "async": "^1.4.2", + "istanbul-lib-coverage": "^1.0.0-alpha", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "rimraf": "^2.4.3", + "supports-color": "^3.1.2" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-source-maps": { + "version": "1.0.0-alpha.10", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^1.0.0-alpha.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.4.4", + "source-map": "^0.5.3" + } + }, + "node_modules/nyc/node_modules/istanbul-reports": { + "version": "1.0.0-alpha.8", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "handlebars": "^4.0.3" + } + }, + "node_modules/nyc/node_modules/js-tokens": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/kind-of": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/lazy-cache": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/lcid": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/load-json-file": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/lodash": { + "version": "4.13.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/lodash.assign": { + "version": "4.0.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash.keys": "^4.0.0", + "lodash.rest": "^4.0.0" + } + }, + "node_modules/nyc/node_modules/lodash.keys": { + "version": "4.0.7", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/lodash.rest": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/longest": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/loose-envify": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^1.0.1" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/nyc/node_modules/loose-envify/node_modules/js-tokens": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/lru-cache": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "node_modules/nyc/node_modules/md5-hex": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "md5-o-matic": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/md5-o-matic": { + "version": "0.1.1", + "dev": true, + "inBundle": true + }, + "node_modules/nyc/node_modules/micromatch": { + "version": "2.3.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/minimatch": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nyc/node_modules/minimist": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/mkdirp": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/nyc/node_modules/ms": { + "version": "0.7.1", + "dev": true, + "inBundle": true + }, + "node_modules/nyc/node_modules/normalize-package-data": { + "version": "2.3.5", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/nyc/node_modules/normalize-path": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/number-is-nan": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/object.omit": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "for-own": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/once": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/nyc/node_modules/optimist": { + "version": "0.6.1", + "dev": true, + "inBundle": true, + "license": "MIT/X11", + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/nyc/node_modules/os-homedir": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/os-locale": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/parse-glob": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/parse-json": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/path-exists": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/path-is-absolute": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/path-parse": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/path-type": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/pkg-dir": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/pkg-up": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/preserve": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/pseudomap": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/randomatic": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-number": "^2.0.2", + "kind-of": "^3.0.2" + } + }, + "node_modules/nyc/node_modules/read-pkg": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/read-pkg-up": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/regenerator-runtime": { + "version": "0.9.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/regex-cache": { + "version": "0.4.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/repeat-element": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/repeat-string": { + "version": "1.5.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/nyc/node_modules/repeating": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-finite": "^1.0.0" + }, + "bin": { + "repeating": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/require-main-filename": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/right-align": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/rimraf": { + "version": "2.5.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/nyc/node_modules/semver": { + "version": "5.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nyc/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/signal-exit": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/slide": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/nyc/node_modules/source-map": { + "version": "0.5.6", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/spawn-wrap": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^1.3.3", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.3.3", + "signal-exit": "^2.0.0", + "which": "^1.2.4" + } + }, + "node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/spdx-correct": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-license-ids": "^1.0.2" + } + }, + "node_modules/nyc/node_modules/spdx-exceptions": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/nyc/node_modules/spdx-expression-parse": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "(MIT AND CC-BY-3.0)", + "dependencies": { + "spdx-exceptions": "^1.0.4", + "spdx-license-ids": "^1.0.0" + } + }, + "node_modules/nyc/node_modules/spdx-license-ids": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "Unlicense" + }, + "node_modules/nyc/node_modules/string-width": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/strip-bom": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nyc/node_modules/test-exclude": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "arrify": "^1.0.1", + "lodash.assign": "^4.0.9", + "micromatch": "^2.3.8", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "node_modules/nyc/node_modules/to-fast-properties": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/uglify-js": { + "version": "2.7.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "optional": true, + "dependencies": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nyc/node_modules/uglify-js/node_modules/async": { + "version": "0.2.10", + "dev": true, + "inBundle": true, + "optional": true + }, + "node_modules/nyc/node_modules/uglify-js/node_modules/yargs": { + "version": "3.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/nyc/node_modules/uglify-to-browserify": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/nyc/node_modules/validate-npm-package-license": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "node_modules/nyc/node_modules/which": { + "version": "1.2.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^1.1.1" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/nyc/node_modules/which-module": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/window-size": { + "version": "0.1.0", + "dev": true, + "inBundle": true, + "optional": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/nyc/node_modules/wordwrap": { + "version": "0.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/write-file-atomic": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "3.2.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/yallist": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/yargs": { + "version": "4.8.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "2.4.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" + } + }, + "node_modules/nyc/node_modules/yargs-parser/node_modules/camelcase": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/yargs/node_modules/cliui": { + "version": "3.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/nyc/node_modules/yargs/node_modules/window-size": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "window-size": "cli.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", + "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.defaults/node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.defaults/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map/node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/only-shallow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/only-shallow/-/only-shallow-1.2.0.tgz", + "integrity": "sha1-cc7O26kyS8BRiu8Q7AgNMkncJGU=", + "dev": true + }, + "node_modules/opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ora/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "dependencies": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pad-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-1.2.0.tgz", + "integrity": "sha1-Yx3Mn3mBC3BZZeid7eps/w/B38k=", + "dev": true, + "dependencies": { + "meow": "^3.0.0", + "pumpify": "^1.3.3", + "repeating": "^2.0.0", + "split2": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "pad": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/platform": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.1.tgz", + "integrity": "sha1-SSIQiSM1vTExwKCN2i2T7DVD5CM=" + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettyjson": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.1.tgz", + "integrity": "sha1-/P+rQdGcq0365eV15kJGYZsS0ok=", + "dependencies": { + "colors": "^1.1.2", + "minimist": "^1.2.0" + }, + "bin": { + "prettyjson": "bin/prettyjson" + } + }, + "node_modules/prettyjson/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/prettyjson/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "node_modules/prompt": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", + "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", + "dependencies": { + "pkginfo": "0.x.x", + "read": "1.0.x", + "revalidator": "0.1.x", + "utile": "0.2.x", + "winston": "0.8.x" + }, + "engines": { + "node": ">= 0.6.6" + } + }, + "node_modules/prompt/node_modules/async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "node_modules/prompt/node_modules/utile": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", + "dependencies": { + "async": "~0.2.9", + "deep-equal": "*", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "0.4.x", + "rimraf": "2.x.x" + }, + "engines": { + "node": ">= 0.6.4" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ps-tree": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", + "integrity": "sha1-2/jXUqf+Ivp9WGNWiUmWEOknbdw=", + "dependencies": { + "event-stream": "~0.5" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/psl": { + "version": "1.1.32", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz", + "integrity": "sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g==", + "dev": true + }, + "node_modules/pstree.remy": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", + "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", + "dev": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/ramda": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", + "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", + "dev": true + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dependencies": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-installed": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/read-package-json": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", + "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdir-scoped-modules": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", + "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/referrer-policy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.0.0.tgz", + "integrity": "sha1-9g7tyS+UKwGmEYEh7JMtZuj9fhQ=" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=" + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "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", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/request-progress": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.4.0.tgz", + "integrity": "sha1-wZVOOQhqqFJpxWYLzuAUKmpw1+c=", + "dev": true, + "dependencies": { + "node-eta": "^0.1.1", + "throttleit": "^0.0.2" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "dependencies": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + } + }, + "node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "dependencies": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "dependencies": { + "through": "~2.3.4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retire": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/retire/-/retire-1.1.6.tgz", + "integrity": "sha1-8ZQ2tc879+0soslilvETqgR5WNU=", + "dev": true, + "dependencies": { + "commander": "2.5.x", + "read-installed": "^4.0.3", + "request": "~2.x.x", + "underscore": "1.7.x - 1.8.x", + "walkdir": "0.0.7" + }, + "bin": { + "retire": "bin/retire" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/retire/node_modules/commander": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz", + "integrity": "sha1-I8Yfbke+FDzALnrUuxxH9c1aKIM=", + "dev": true, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/retire/node_modules/underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + }, + "node_modules/revalidator": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" + }, + "node_modules/rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "dependencies": { + "symbol-observable": "1.0.1" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/secure-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", + "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=" + }, + "node_modules/selenium-webdriver": { + "version": "2.53.3", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz", + "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", + "dev": true, + "dependencies": { + "adm-zip": "0.4.4", + "rimraf": "^2.2.8", + "tmp": "0.0.24", + "ws": "^1.0.1", + "xml2js": "0.4.4" + }, + "engines": { + "node": ">= 4.2.x" + } + }, + "node_modules/semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dependencies": { + "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.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "dependencies": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-favicon/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "node_modules/serve-favicon/node_modules/safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "deprecated": "Critical bug fixed in v3.0.1, please upgrade to the latest version.", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha512-Ny0KN4dyT8ZSCE0frtcbAJGoM/HTArpyPkeli1/00aYfm0sbD/Gk/4x7N2DP9QKGpBsiQH7n6rpm1L79RtviEQ==", + "dev": true, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/should": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/should/-/should-8.4.0.tgz", + "integrity": "sha1-XmCInT5kS73Tl6MM00+tKPz5C8A=", + "dev": true, + "dependencies": { + "should-equal": "0.8.0", + "should-format": "0.3.2", + "should-type": "0.2.0" + } + }, + "node_modules/should-equal": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-0.8.0.tgz", + "integrity": "sha1-o/BXMv9FusG3ukEvhAiFaBlkEpk=", + "dev": true, + "dependencies": { + "should-type": "0.2.0" + } + }, + "node_modules/should-format": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-0.3.2.tgz", + "integrity": "sha1-pZgx4Bot3uFJkRvHFIvlyAMZ4f8=", + "dev": true, + "dependencies": { + "should-type": "0.2.0" + } + }, + "node_modules/should-type": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-0.2.0.tgz", + "integrity": "sha1-ZwfvlVKdmJ3MCY/gdTqx+RNrt/Y=", + "dev": true + }, + "node_modules/shush": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shush/-/shush-1.0.0.tgz", + "integrity": "sha1-wnQVqeRY8v7TmyfPjrN8ADeCtDE=", + "dependencies": { + "caller": "~0.0.1", + "strip-json-comments": "~0.1.1" + } + }, + "node_modules/shush/node_modules/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=", + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/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==", + "dependencies": { + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/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==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/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==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "deprecated": "This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dev": true, + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/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=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", + "dev": true + }, + "node_modules/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==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", + "integrity": "sha1-Fi2bGIZfAqsvKtlYVSLbm1TEgfk=", + "dev": true, + "dependencies": { + "through2": "~2.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz", + "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "engines": { + "node": "*" + } + }, + "node_modules/stack-utils": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-0.4.0.tgz", + "integrity": "sha1-lAy4L8z6hOj/Lz/fKT/ngBa+zNE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "node_modules/stream-to-observable": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", + "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz", + "integrity": "sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz", + "integrity": "sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/swig": { + "version": "1.4.1", + "resolved": "https://repo.mzavery.eu.ngrok.io/repository/npm-all/swig/-/swig-1.4.1.tgz", + "integrity": "sha512-tS2lcdQ/RA6qWQ+/mE+6KF2YqMe2bVIyznqMxODnDPHhjq8/UzZFG83rW/VtW3sXpQQFWB/E4gs+MB4j4s+IVQ==", + "deprecated": "This package is no longer maintained", + "license": "MIT", + "dependencies": { + "optimist": "~0.6", + "uglify-js": "~2.4" + }, + "bin": { + "swig": "bin/swig.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/tap/-/tap-7.1.2.tgz", + "integrity": "sha1-36w+zxSshUe7rSW70Wzyw3Q/Zc8=", + "dev": true, + "dependencies": { + "bluebird": "^3.3.1", + "clean-yaml-object": "^0.1.0", + "color-support": "^1.1.0", + "coveralls": "^2.11.2", + "deeper": "^2.1.0", + "foreground-child": "^1.3.3", + "glob": "^7.0.0", + "isexe": "^1.0.0", + "js-yaml": "^3.3.1", + "nyc": "^7.1.0", + "only-shallow": "^1.0.2", + "opener": "^1.4.1", + "os-homedir": "1.0.1", + "readable-stream": "^2.0.2", + "signal-exit": "^3.0.0", + "stack-utils": "^0.4.0", + "tap-mocha-reporter": "^2.0.0", + "tap-parser": "^2.2.0", + "tmatch": "^2.0.1" + }, + "bin": { + "tap": "bin/run.js" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tap-mocha-reporter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-2.0.1.tgz", + "integrity": "sha1-xwMWFz1uOhbFjhupLV1s2N5YoS4=", + "dev": true, + "dependencies": { + "color-support": "^1.1.0", + "debug": "^2.1.3", + "diff": "^1.3.2", + "escape-string-regexp": "^1.0.3", + "glob": "^7.0.5", + "js-yaml": "^3.3.1", + "tap-parser": "^2.0.0", + "unicode-length": "^1.0.0" + }, + "bin": { + "tap-mocha-reporter": "index.js" + }, + "optionalDependencies": { + "readable-stream": "^2.1.5" + } + }, + "node_modules/tap-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-2.2.3.tgz", + "integrity": "sha1-rebpbje/04zg8WLaBn80A08GiwE=", + "dev": true, + "dependencies": { + "events-to-array": "^1.0.1", + "js-yaml": "^3.2.7" + }, + "bin": { + "tap-parser": "bin/cmd.js" + }, + "optionalDependencies": { + "readable-stream": "^2" + } + }, + "node_modules/tap/node_modules/isexe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", + "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=", + "dev": true + }, + "node_modules/tap/node_modules/os-homedir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", + "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tape": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz", + "integrity": "sha1-Lnzgox3wn41oUWZKcYQuDKUFevc=", + "dependencies": { + "deep-equal": "~0.1.0", + "defined": "~0.0.0", + "inherits": "~2.0.1", + "jsonify": "~0.0.0", + "resumer": "~0.0.0", + "through": "~2.3.4" + }, + "bin": { + "tape": "bin/tape" + } + }, + "node_modules/tape/node_modules/deep-equal": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz", + "integrity": "sha1-skbCuApXCkfBG+HZvRBw7IeLh84=" + }, + "node_modules/term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "dependencies": { + "execa": "^0.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "dependencies": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + } + }, + "node_modules/tiny-lr/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/tiny-lr/node_modules/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==", + "dev": true + }, + "node_modules/tiny-lr/node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tmatch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-2.0.1.tgz", + "integrity": "sha1-DFYkbzPzDaG409colauvFmYPOM8=", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", + "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", + "deprecated": "to-iso-string has been deprecated, use @segment/to-iso-string instead.", + "dev": true + }, + "node_modules/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=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/uglify-js": { + "version": "2.4.24", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", + "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", + "dependencies": { + "async": "~0.2.6", + "source-map": "0.1.34", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.5.4" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/uglify-js/node_modules/async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", + "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/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=" + }, + "node_modules/uid-safe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", + "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "dev": true, + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha1-BtzjSg5op7q8KbNluOdLiSUgOWE=" + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/unicode-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", + "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", + "dev": true, + "dependencies": { + "punycode": "^1.3.2", + "strip-ansi": "^3.0.1" + } + }, + "node_modules/union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "deprecated": "Critical bug fixed in v3.0.1, please upgrade to the latest version.", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/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=", + "dev": true, + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", + "dev": true + }, + "node_modules/utile": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz", + "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=", + "dependencies": { + "async": "~0.9.0", + "deep-equal": "~0.2.1", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "1.0.x", + "rimraf": "2.x.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/utile/node_modules/async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "node_modules/utile/node_modules/deep-equal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", + "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=" + }, + "node_modules/utile/node_modules/ncp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", + "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=", + "bin": { + "ncp": "bin/ncp" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8flags": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", + "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/walkdir": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.7.tgz", + "integrity": "sha1-BNoCcKh6d4VAFzzb8KLbSZqNnik=", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz", + "integrity": "sha512-7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ==", + "dependencies": { + "is-bigint": "^1.0.0", + "is-boolean-object": "^1.0.0", + "is-number-object": "^1.0.3", + "is-string": "^1.0.4", + "is-symbol": "^1.0.2" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.1.tgz", + "integrity": "sha512-IWlkoJZ4Zdfi4YBn2wnYB8AVox+4A2+Kmr4kHFAraffHYrQZFiTOjgjk9et8e6RSPZOV1QjZOC51PVCK9SkR/A==", + "dependencies": { + "available-typed-arrays": "^1.0.1", + "es-abstract": "^1.17.4", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/winston": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", + "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", + "dependencies": { + "async": "0.2.x", + "colors": "0.6.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "pkginfo": "0.3.x", + "stack-trace": "0.0.x" + }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/winston/node_modules/async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "dev": true, + "dependencies": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } + }, + "node_modules/x-xss-protection": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.0.0.tgz", + "integrity": "sha1-iYr7k4abJGYc+cUvnujbjtB2Tdk=" + }, + "node_modules/xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/xml2js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz", + "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "dev": true, + "dependencies": { + "sax": "0.6.x", + "xmlbuilder": ">=1.0.0" + } + }, + "node_modules/xml2js/node_modules/sax": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", + "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", + "dev": true + }, + "node_modules/xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "node_modules/yargs": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", + "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", + "dependencies": { + "camelcase": "^1.0.2", + "decamelize": "^1.0.0", + "window-size": "0.1.0", + "wordwrap": "0.0.2" + } + }, + "node_modules/yargs/node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yauzl/node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/zaproxy": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/zaproxy/-/zaproxy-0.2.0.tgz", + "integrity": "sha1-p56+/Hu4lRUPKFPqhQhvvWkSGVo=", + "dev": true, + "dependencies": { + "lodash": "~2.4.1", + "request": "~2.36.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/zaproxy/node_modules/asn1": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.4.9" + } + }, + "node_modules/zaproxy/node_modules/assert-plus": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/zaproxy/node_modules/async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true, + "optional": true + }, + "node_modules/zaproxy/node_modules/aws-sign2": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=", + "dev": true, + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/zaproxy/node_modules/boom": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", + "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "dependencies": { + "hoek": "0.9.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/zaproxy/node_modules/combined-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", + "dev": true, + "optional": true, + "dependencies": { + "delayed-stream": "0.0.5" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/zaproxy/node_modules/cryptiles": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", + "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "dependencies": { + "boom": "0.4.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/zaproxy/node_modules/delayed-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/zaproxy/node_modules/forever-agent": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", + "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/zaproxy/node_modules/form-data": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", + "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=", + "dev": true, + "optional": true, + "dependencies": { + "async": "~0.9.0", + "combined-stream": "~0.0.4", + "mime": "~1.2.11" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/zaproxy/node_modules/hawk": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", + "integrity": "sha1-uQuxaYByhUEdp//LjdJZhQLTtS0=", + "deprecated": "This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dev": true, + "optional": true, + "dependencies": { + "boom": "0.4.x", + "cryptiles": "0.2.x", + "hoek": "0.9.x", + "sntp": "0.2.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/zaproxy/node_modules/hoek": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", + "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/zaproxy/node_modules/http-signature": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", + "dev": true, + "optional": true, + "dependencies": { + "asn1": "0.1.11", + "assert-plus": "^0.1.5", + "ctype": "0.5.3" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/zaproxy/node_modules/lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true, + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/zaproxy/node_modules/mime": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=", + "dev": true + }, + "node_modules/zaproxy/node_modules/node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "deprecated": "Use uuid module instead", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/zaproxy/node_modules/oauth-sign": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz", + "integrity": "sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=", + "dev": true, + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/zaproxy/node_modules/qs": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/zaproxy/node_modules/request": { + "version": "2.36.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.36.0.tgz", + "integrity": "sha1-KMbAQmLHuf/dIbklU3RRfubZQ/U=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "dependencies": { + "forever-agent": "~0.5.0", + "json-stringify-safe": "~5.0.0", + "mime": "~1.2.9", + "node-uuid": "~1.4.0", + "qs": "~0.6.0" + }, + "optionalDependencies": { + "aws-sign2": "~0.5.0", + "form-data": "~0.1.0", + "hawk": "~1.0.0", + "http-signature": "~0.10.0", + "oauth-sign": "~0.3.0", + "tough-cookie": ">=0.12.0", + "tunnel-agent": "~0.4.0" + } + }, + "node_modules/zaproxy/node_modules/sntp": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", + "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=", + "deprecated": "This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dev": true, + "optional": true, + "dependencies": { + "hoek": "0.9.x" + }, + "engines": { + "node": ">=0.8.0" + } + } + }, + "dependencies": { + "@cypress/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "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==", + "dev": true + } + } + }, + "@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==", + "dev": true + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "adm-zip": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", + "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", + "dev": true + }, + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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=", + "dev": true, + "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=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "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": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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" + } + } + } + }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } + } + }, + "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-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" + }, + "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=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "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=", + "dev": true + }, + "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": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "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==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "requires": { + "array-filter": "^1.0.0" + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "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" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "bcrypt-nodejs": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/bcrypt-nodejs/-/bcrypt-nodejs-0.0.3.tgz", + "integrity": "sha1-xgkX8m3CNWYVZsaBBhwwPCsohCs=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "bl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", + "integrity": "sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4=", + "dev": true, + "requires": { + "readable-stream": "~2.0.5" + }, + "dependencies": { + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" + }, + "body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "dev": true, + "requires": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + }, + "dependencies": { + "bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "dev": true, + "requires": { + "bytes": "1", + "string_decoder": "0.10" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "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=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "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": "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" + } + } + } + }, + "broadway": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", + "integrity": "sha1-fb7waLlUt5B5Jf1USWO1eKkCuno=", + "requires": { + "cliff": "0.1.9", + "eventemitter2": "0.4.14", + "nconf": "0.6.9", + "utile": "0.2.1", + "winston": "0.8.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "cliff": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz", + "integrity": "sha1-ohHgnGo947oa8n0EnTASUNGIErw=", + "requires": { + "colors": "0.x.x", + "eyes": "0.1.x", + "winston": "0.8.x" + } + }, + "nconf": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", + "integrity": "sha1-lXDvFe1vmuays8jV5xtm0xk81mE=", + "requires": { + "async": "0.2.9", + "ini": "1.x.x", + "optimist": "0.6.0" + }, + "dependencies": { + "async": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz", + "integrity": "sha1-32MGD789Myhqdqr21Vophtn/hhk=" + } + } + }, + "optimist": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "utile": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", + "requires": { + "async": "~0.2.9", + "deep-equal": "*", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "0.4.x", + "rimraf": "2.x.x" + } + }, + "winston": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz", + "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=", + "requires": { + "async": "0.2.x", + "colors": "0.6.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "pkginfo": "0.3.x", + "stack-trace": "0.0.x" + } + } + } + }, + "bson": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", + "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "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==", + "dev": true + }, + "buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "cachedir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-1.3.0.tgz", + "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", + "dev": true, + "requires": { + "os-homedir": "^1.0.1" + } + }, + "caller": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/caller/-/caller-0.0.1.tgz", + "integrity": "sha1-83odbqEOgp2UchrimpC7T7Uqt2c=", + "requires": { + "tape": "~2.3.2" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "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==", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "dev": 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" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "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" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", + "dev": true + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha512-41U72MB56TfUMGndAKK8vJ78eooOD4Z5NOL4xEfjc0c23s+6EYKXlXsmACBVclLP1yOfWCgEganVzddVrSNoTg==", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "^7.1.1" + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + } + }, + "cliff": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", + "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", + "requires": { + "colors": "~1.0.3", + "eyes": "~0.1.8", + "winston": "0.8.x" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + } + } + }, + "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" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "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=" + }, + "coffeescript": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", + "dev": true + }, + "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": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "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==", + "dev": true + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=" + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "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.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "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.4.1", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.4.1.tgz", + "integrity": "sha1-ohNh0/QJnvdhzabcSpc7seuwo00=", + "requires": { + "debug": "~2.2.0", + "finalhandler": "0.4.1", + "parseurl": "~1.3.1", + "utils-merge": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "finalhandler": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", + "integrity": "sha1-haF8bFmpRxfSYtYSMNSw6+PUoU0=", + "requires": { + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "unpipe": "~1.0.0" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + } + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg==", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "consolidate": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", + "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", + "requires": { + "bluebird": "^3.1.1" + } + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-security-policy-builder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-1.0.0.tgz", + "integrity": "sha1-Ef1AxcwpimxyWjX5rPcegqtdMkM=", + "requires": { + "dashify": "^0.2.0" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "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": "2.13.3", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", + "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==", + "dev": true, + "requires": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, + "dependencies": { + "js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "crc": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", + "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=" + }, + "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=", + "dev": true, + "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==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.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=", + "dev": true + }, + "csrf": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz", + "integrity": "sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=", + "requires": { + "rndm": "1.2.0", + "tsscmp": "1.0.5", + "uid-safe": "2.1.4" + } + }, + "csurf": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.9.0.tgz", + "integrity": "sha1-SdLGkl/87Ht95VlZfBU/pTM2QTM=", + "requires": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "csrf": "~3.0.3", + "http-errors": "~1.5.0" + }, + "dependencies": { + "http-errors": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", + "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", + "requires": { + "inherits": "2.0.3", + "setprototypeof": "1.0.2", + "statuses": ">= 1.3.1 < 2" + } + }, + "setprototypeof": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", + "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=" + } + } + }, + "ctype": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=", + "dev": true, + "optional": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" + }, + "cypress": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-3.3.1.tgz", + "integrity": "sha512-JIo47ZD9P3jAw7oaK7YKUoODzszJbNw41JmBrlMMiupHOlhmXvZz75htuo7mfRFPC9/1MDQktO4lX/V2+a6lGQ==", + "dev": true, + "requires": { + "@cypress/listr-verbose-renderer": "0.4.1", + "@cypress/xvfb": "1.2.4", + "arch": "2.1.1", + "bluebird": "3.5.0", + "cachedir": "1.3.0", + "chalk": "2.4.2", + "check-more-types": "2.24.0", + "commander": "2.15.1", + "common-tags": "1.8.0", + "debug": "3.2.6", + "execa": "0.10.0", + "executable": "4.1.1", + "extract-zip": "1.6.7", + "fs-extra": "4.0.1", + "getos": "3.1.1", + "glob": "7.1.3", + "is-ci": "1.2.1", + "is-installed-globally": "0.1.0", + "lazy-ass": "1.6.0", + "listr": "0.12.0", + "lodash": "4.17.11", + "log-symbols": "2.2.0", + "minimist": "1.2.0", + "moment": "2.24.0", + "ramda": "0.24.1", + "request": "2.88.0", + "request-progress": "0.4.0", + "supports-color": "5.5.0", + "tmp": "0.1.0", + "url": "0.11.0", + "yauzl": "2.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "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=", + "dev": true + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "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": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha1-/0Vqj1P5D47MxxqW0Rvfx/CCy1A=", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "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==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "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" + } + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha1-7kNKTiJUMILilLpiAdzG6v76KHc=", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + } + }, + "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==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "dashify": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dashify/-/dashify-0.2.2.tgz", + "integrity": "sha1-agdBWgHJH69KMuONnfunH2HLIP4=" + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha512-AsElvov3LoNB7tf5k37H2jYSB+ZZPMT5sG2QjJCcdlV5chIv6htBUBUui2IKRjgtKAKtCBN7Zbwa+MtwLjSeNw==", + "dev": true + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "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" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "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-equal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.2.tgz", + "integrity": "sha512-kX0bjV7tdMuhrhzKPEnVwqfQCuf+IEfN+4Xqv4eKd75xGRyn8yzdQ9ujPY6a221rgJKyQC4KBu1PibDTpa6m9w==", + "requires": { + "es-abstract": "^1.17.5", + "es-get-iterator": "^1.1.0", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.0.5", + "isarray": "^2.0.5", + "object-is": "^1.0.2", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "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==", + "dev": true + }, + "deeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deeper/-/deeper-2.1.0.tgz", + "integrity": "sha1-vFZOX3MXT98gHgiwADDooU2nQ2g=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "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" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "defined": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz", + "integrity": "sha1-817qfXBekzuvE7LwOz+D2SFAOz4=" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": 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-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "director": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", + "integrity": "sha1-v9N0EHX9f7GlsuE2WMX0vsd3NvM=" + }, + "dns-prefetch-control": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz", + "integrity": "sha1-YN20V3dOF48flBXwyrsOhbCzALI=" + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha512-q9bUwjfp7Eif8jWxxxPSykdRZAb6GkguBGSgvvCrhI9wB71W2K/Kvv4E61CF/mcCfnVJDeDWx/Vb/uAqbDj6UQ==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dont-sniff-mimetype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz", + "integrity": "sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=" + }, + "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==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", + "dev": true, + "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=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editorconfig": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.2.tgz", + "integrity": "sha512-GWjSI19PVJAM9IZRGOS+YKI8LN+/sjkSjNyvxL5ucqP9/IqtYNXBaQ/6c/hkPNYQHyOHra2KoXZI/JVpuqwmcQ==", + "dev": true, + "requires": { + "@types/node": "^10.11.7", + "@types/semver": "^5.5.0", + "commander": "^2.19.0", + "lru-cache": "^4.1.3", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "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.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==", + "dev": true + }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "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-get-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", + "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", + "requires": { + "es-abstract": "^1.17.4", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "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" + } + }, + "es6-promise": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", + "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" + }, + "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=", + "dev": true + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-stream": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz", + "integrity": "sha1-t3uTCfcQet3+q2PwwOr9jbC9jBw=", + "requires": { + "optimist": "0.2" + }, + "dependencies": { + "optimist": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz", + "integrity": "sha1-6YGrfiaLRXlIWTtVZ0wJmoFcrDE=", + "requires": { + "wordwrap": ">=0.0.1 <0.1.0" + } + } + } + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + }, + "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=", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "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=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "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-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "express-session": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz", + "integrity": "sha512-r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==", + "requires": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "crc": "3.4.4", + "debug": "2.6.9", + "depd": "~1.1.1", + "on-headers": "~1.0.1", + "parseurl": "~1.3.2", + "uid-safe": "~2.1.5", + "utils-merge": "1.0.1" + }, + "dependencies": { + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha1-Kz1cckDo/C5Y+Komnl7knAhXvTo=", + "requires": { + "random-bytes": "~1.0.0" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "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" + } + } + } + }, + "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" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + }, + "dependencies": { + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "~1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "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=", + "dev": true + } + } + }, + "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" + } + } + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "fined": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.1.tgz", + "integrity": "sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flatiron": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz", + "integrity": "sha1-JIz3mj2n19w3nioRySonGcu1QPY=", + "requires": { + "broadway": "~0.3.2", + "director": "1.2.7", + "optimist": "0.6.0", + "prompt": "0.2.14" + }, + "dependencies": { + "optimist": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "forever": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/forever/-/forever-2.0.0.tgz", + "integrity": "sha512-lPq2AJackIVZT7Zey7XmRgv6vLShadqf4GYAkdS1+BxI+yTor/xiy1CzGPMWYF98lBs5dFClIn4PJ/EtqScBcQ==", + "requires": { + "async": "^1.5.2", + "cliff": "^0.1.10", + "clone": "^2.1.2", + "colors": "^0.6.2", + "flatiron": "~0.4.2", + "forever-monitor": "^2.0.0", + "mkdirp": "^0.5.1", + "nconf": "^0.10.0", + "nssocket": "^0.6.0", + "object-assign": "^4.1.1", + "optimist": "^0.6.1", + "path-is-absolute": "^2.0.0", + "prettyjson": "^1.2.1", + "shush": "^1.0.0", + "utile": "~0.3.0", + "winston": "~0.8.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "path-is-absolute": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-2.0.0.tgz", + "integrity": "sha512-ajROpjq1SLxJZsgSVCcVIt+ZebVH+PwJtPnVESjfg6JKwJGwAgHRC3zIcjvI0LnecjIHCJhtfNZ/Y/RregqyXg==" + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "forever-monitor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-2.0.0.tgz", + "integrity": "sha512-5tMNrrDjeI2tkS+m+fxETWXaUIYEarY9Sy2pw9AOq9sVENA/8B7pl3xVAQTG0fND8ypet3rQhg+G4D4f+fVw2w==", + "requires": { + "broadway": "~0.3.6", + "chokidar": "^2.1.8", + "minimatch": "^3.0.4", + "ps-tree": "0.0.x", + "utile": "^0.3.0" + }, + "dependencies": { + "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" + } + } + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "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" + } + }, + "frameguard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-2.0.0.tgz", + "integrity": "sha1-MMLBSeXjUF+eFW+bxJGkOEIOSH4=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", + "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "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.1", + "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": "4.1.1", + "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.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "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.3", + "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.1", + "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.3", + "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.3.5", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.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" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "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.0", + "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.6.3", + "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.0", + "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_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "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" + } + }, + "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.8", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "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.0.3", + "bundled": true, + "optional": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "getos": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.1.tgz", + "integrity": "sha512-oUP1rnEhAr97rkitiszGP9EgDVYnmchgFzfqRzSkgtfv7ai6tEi7Ko8GgjNXts7VLWEqrTWyhsOKLe5C5b/Zkg==", + "dev": true, + "requires": { + "async": "2.6.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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" + }, + "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" + } + } + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "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.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "grunt": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz", + "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", + "dev": true, + "requires": { + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~2.0.0", + "grunt-legacy-util": "~1.1.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.5.2", + "minimatch": "~3.0.2", + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.6.2" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "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" + } + }, + "grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "dev": true, + "requires": { + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "grunt-cli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz", + "integrity": "sha1-YPEtEsG1qulK40aca1/iTpYAFOg=", + "dev": true, + "requires": { + "grunt-known-options": "~1.1.0", + "interpret": "~1.1.0", + "liftoff": "~2.5.0", + "nopt": "~4.0.1", + "v8flags": "~3.1.1" + } + }, + "grunt-concurrent": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-2.3.1.tgz", + "integrity": "sha1-Hj2zjM71o9oRleYdYx/n4yE0TSM=", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "async": "^1.2.1", + "indent-string": "^2.0.0", + "pad-stream": "^1.0.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "grunt-contrib-clean": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", + "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", + "dev": true, + "requires": { + "async": "^1.5.2", + "rimraf": "^2.5.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "grunt-contrib-jshint": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-3.2.0.tgz", + "integrity": "sha512-pcXWCSZWfoMSvcV4BwH21TUtLtcX0Ms8IGuOPIcLeXK3fud9KclY7iqMKY94jFx8TxZzh028YYtpR+io8DiEaQ==", + "dev": true, + "requires": { + "chalk": "~4.1.2", + "hooker": "^0.2.3", + "jshint": "~2.13.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jshint": { + "version": "2.13.6", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.13.6.tgz", + "integrity": "sha512-IVdB4G0NTTeQZrBoM8C5JFVLjV2KtZ9APgybDA1MK73xb09qFs0jCXyQLnCOp1cSZZZbvhq/6mfXHUTaDkffuQ==", + "dev": true, + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.21", + "minimatch": "~3.0.2", + "strip-json-comments": "1.0.x" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "grunt-contrib-nodeunit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-nodeunit/-/grunt-contrib-nodeunit-1.0.0.tgz", + "integrity": "sha1-b0iFVe2cDIR4hUEDxx7bH8RoXwU=", + "dev": true, + "requires": { + "nodeunit": "^0.9.0" + } + }, + "grunt-contrib-watch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha1-wUPKW4JLKIoCS4VmOaU0Wu23jtQ=", + "dev": true, + "requires": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + } + }, + "grunt-env": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-env/-/grunt-env-1.0.1.tgz", + "integrity": "sha512-Hw4iIJ58yYA8kJaP4UUyfw807DUI1FRnow9hhRMnq366bwCnxiBWOgfZsYilcs3Jh1qsGC/i3+G+7/W18hA1TA==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "lodash": "^4.17.14" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "grunt-if": { + "version": "https://github.com/binarymist/grunt-if/tarball/master", + "integrity": "sha1-q6pNYV5CzE3rKC+iGJnStzdIPzk=", + "dev": true, + "requires": { + "grunt": "^1.0.1", + "grunt-contrib-clean": "^1.0.0", + "grunt-contrib-jshint": "^1.0.0", + "grunt-contrib-nodeunit": "^1.0.0", + "q": "^1.4.1 " + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "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" + } + }, + "grunt-contrib-jshint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", + "integrity": "sha512-N8jtQ/FmvuRdJoEGphmGt+ov1oi5bJq4hPBPT/g54ed1glF34l2z5VAdHHhcgOaezBxur3kcMPChB0pfZxxcFw==", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.4" + } + }, + "jshint": { + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.7.tgz", + "integrity": "sha512-Q8XN38hGsVQhdlM+4gd1Xl7OB1VieSuCJf+fEJjpo59JH99bVJhXRXAh26qQ15wfdd1VPMuDWNeSWoNl53T4YA==", + "dev": true, + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.10", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "grunt-jsbeautifier": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/grunt-jsbeautifier/-/grunt-jsbeautifier-0.2.13.tgz", + "integrity": "sha1-89QXOPy1+ZhO8pbVvuvEBIkQVkI=", + "dev": true, + "requires": { + "async": "^2.0.0-rc.3", + "grunt": ">=0.4.1", + "js-beautify": ">=1.4.2", + "lodash": ">=2.4.1", + "rc": ">=0.5.5", + "semver": ">=4.3.1", + "underscore.string": ">=2.3.3" + } + }, + "grunt-known-options": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", + "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "dev": true + }, + "grunt-legacy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", + "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", + "dev": true, + "requires": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" + }, + "dependencies": { + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + } + } + }, + "grunt-legacy-log-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", + "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", + "dev": true, + "requires": { + "chalk": "~2.4.1", + "lodash": "~4.17.10" + } + }, + "grunt-legacy-util": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", + "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", + "dev": true, + "requires": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.10", + "underscore.string": "~3.3.4", + "which": "~1.3.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "grunt-mocha-test": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.12.7.tgz", + "integrity": "sha1-xhzfMqZ2KVQRX+cSuYPj3Y4MlVQ=", + "dev": true, + "requires": { + "hooker": "~0.2.3", + "mkdirp": "^0.5.0" + } + }, + "grunt-npm-install": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/grunt-npm-install/-/grunt-npm-install-0.3.1.tgz", + "integrity": "sha1-kWFwWV43DiB44d+wQiQzHbHehDc=", + "dev": true, + "requires": { + "npm": "^3.7.2" + } + }, + "grunt-retire": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/grunt-retire/-/grunt-retire-0.3.12.tgz", + "integrity": "sha1-ko34nQ5lE792vQYOGVTJ0+kncKE=", + "dev": true, + "requires": { + "async": "~1.5.x", + "request": "~2.67.x", + "retire": "~1.1.x" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "dev": true, + "requires": { + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + } + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "qs": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.1.tgz", + "integrity": "sha1-gB/uAw4LlFDWOFrcSKTMVbRK7fw=", + "dev": true + }, + "request": { + "version": "2.67.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", + "integrity": "sha1-ivdHgOK/EeoK6aqWXBHxGv0nJ0I=", + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "bl": "~1.0.0", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~1.0.0-rc3", + "har-validator": "~2.0.2", + "hawk": "~3.1.0", + "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", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.0", + "qs": "~5.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.2.0", + "tunnel-agent": "~0.4.1" + } + }, + "tough-cookie": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", + "integrity": "sha1-yDoYMPTl7wuT7yo0iOck+N4Basc=", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^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=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "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=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "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" + } + } + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "helmet": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-2.3.0.tgz", + "integrity": "sha1-1lXIW1Wwo79yKkwsZuSLeLQWG5E=", + "requires": { + "connect": "3.4.1", + "dns-prefetch-control": "0.1.0", + "dont-sniff-mimetype": "1.0.0", + "frameguard": "2.0.0", + "helmet-csp": "1.2.2", + "hide-powered-by": "1.0.0", + "hpkp": "1.2.0", + "hsts": "1.0.0", + "ienoopen": "1.0.0", + "nocache": "1.0.1", + "referrer-policy": "1.0.0", + "x-xss-protection": "1.0.0" + } + }, + "helmet-csp": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-1.2.2.tgz", + "integrity": "sha1-CFwDB9V/yWzZczfxcKuL/qmeXfc=", + "requires": { + "camelize": "1.0.0", + "content-security-policy-builder": "1.0.0", + "lodash.reduce": "4.5.0", + "platform": "1.3.1" + } + }, + "hide-powered-by": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.0.0.tgz", + "integrity": "sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=" + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "hpkp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hpkp/-/hpkp-1.2.0.tgz", + "integrity": "sha1-g/LLOLJs/yHa8m4v9LVxJpId7GU=" + }, + "hsts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsts/-/hsts-1.0.0.tgz", + "integrity": "sha1-mOEDnverpVQFe2sOMlhMCxFDpBQ=", + "requires": { + "core-util-is": "1.0.2" + } + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha512-hBxEg3CYXe+rPIua8ETe7tmG3XDn9B0edOE/e9wH2nLczxzgdu0m0aNHY+5wFZiviLWLdANPJTssa92dMcXQ5Q==", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + } + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "http-parser-js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", + "dev": 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=", + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "i": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", + "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=" + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ienoopen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz", + "integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=" + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "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=" + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + }, + "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==", + "dev": true, + "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" + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.0.tgz", + "integrity": "sha512-t5mGUXC/xRheCK431ylNiSkGGpBp8bHENBcENTkDT6ppwPzEVxNGZRvgvmOEfbWkFhA7D2GEuE2mmQTr78sl2g==" + }, + "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-boolean-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz", + "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==" + }, + "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-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "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==", + "dev": true, + "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" + } + }, + "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-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.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "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=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", + "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==" + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz", + "integrity": "sha512-mG0f/unGX1HZ5ep4uhRaPOS8EkAY8/j6mDRMJrutq4CqhoJWYp7qAlonIPy3TV7p3ju4TK9fo/PbnoksWmsp5Q==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "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" + } + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-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=", + "dev": true, + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-set": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", + "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "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-typed-array": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", + "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", + "requires": { + "available-typed-arrays": "^1.0.0", + "es-abstract": "^1.17.4", + "foreach": "^2.0.5", + "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=", + "dev": true + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakset": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", + "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==" + }, + "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==" + }, + "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=", + "dev": true + }, + "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=" + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + } + } + }, + "js-beautify": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.8.9.tgz", + "integrity": "sha512-MwPmLywK9RSX0SPsUJjN7i+RQY9w/yC17Lbrq9ViEefpLRgqAR2BgrMN2AbifkUuhDV8tRauLhLda/9+bE0YQA==", + "dev": true, + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.2", + "glob": "^7.1.3", + "mkdirp": "~0.5.0", + "nopt": "~4.0.1" + } + }, + "js-yaml": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", + "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", + "dev": true, + "requires": { + "argparse": "^1.0.2", + "esprima": "^2.6.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jshint": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.12.0.tgz", + "integrity": "sha512-TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==", + "dev": true, + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.19", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + }, + "dependencies": { + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==", + "dev": true + } + } + }, + "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==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "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==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "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" + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=" + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, + "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": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": 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=", + "dev": 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=", + "dev": 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=", + "dev": 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=", + "dev": 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=", + "dev": 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=", + "dev": 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=", + "dev": 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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": 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==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": 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=", + "dev": 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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": 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=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": 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=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": 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" + } + } + } + }, + "listr": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz", + "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.2.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.0.0-beta.11", + "stream-to-observable": "^0.1.0", + "strip-ansi": "^3.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=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "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" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.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=", + "dev": true + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", + "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.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=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "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" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.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=", + "dev": true + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "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" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true + }, + "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=", + "dev": true, + "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" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "lodash.reduce": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.5.0.tgz", + "integrity": "sha1-r30uxiEGJEHnfVv0CKHgce+GaRw=" + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "requires": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + }, + "dependencies": { + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "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=", + "dev": true + } + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "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=", + "dev": true + }, + "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" + } + }, + "marked": { + "version": "0.3.7", + "resolved": "https://repo.mzavery.eu.ngrok.io/repository/npm-all/marked/-/marked-0.3.7.tgz", + "integrity": "sha512-zBEP4qO1YQp5aXHt8S5wTiOv9i2X74V/LQL0zhUNvVaklt6Ywa6lChxIvS+ibYlCGgADwKwZFhjC3+XfpsvQvQ==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "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" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "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" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "requires": { + "mime-db": "~1.37.0" + } + }, + "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": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "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=" + } + } + }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "dev": true, + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "dev": true + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2", + "minimatch": "0.3" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "dev": true + }, + "mongodb": { + "version": "2.2.36", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz", + "integrity": "sha1-HFc2gLKEn7D0esu6PcX6Io3pdfU=", + "requires": { + "es6-promise": "3.2.1", + "mongodb-core": "2.1.20", + "readable-stream": "2.2.7" + }, + "dependencies": { + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "readable-stream": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", + "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", + "requires": { + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "mongodb-core": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz", + "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==", + "requires": { + "bson": "~1.0.4", + "require_optional": "~1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "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" + }, + "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=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "nconf": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.10.0.tgz", + "integrity": "sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q==", + "requires": { + "async": "^1.4.0", + "ini": "^1.3.0", + "secure-keys": "^1.0.0", + "yargs": "^3.19.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, + "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" + } + } + } + }, + "ncp": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", + "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=" + }, + "needle": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.4.tgz", + "integrity": "sha1-UZMb/4JTOxkot9HWngHxsA/9Kk4=", + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "nocache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-1.0.1.tgz", + "integrity": "sha1-aVyfc2kmp1VPc2X6JeCHlBBlvTY=", + "requires": { + "depd": "1.1.0" + }, + "dependencies": { + "depd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=" + } + } + }, + "node-esapi": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/node-esapi/-/node-esapi-0.0.1.tgz", + "integrity": "sha1-b0xFahTrvRNaDw0XZsMLKr8HGYw=" + }, + "node-eta": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.1.1.tgz", + "integrity": "sha1-QGYQmzk3HHYccrfr2pqeoKXeEh8=", + "dev": true + }, + "nodemon": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.1.tgz", + "integrity": "sha512-/DXLzd/GhiaDXXbGId5BzxP1GlsqtMGM9zTmkWrgXtSqjKmGSbLicM/oAy4FR0YWm14jCHRwnR31AHS2dYFHrg==", + "dev": true, + "requires": { + "chokidar": "^2.1.5", + "debug": "^3.1.0", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.6", + "semver": "^5.5.0", + "supports-color": "^5.2.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.5.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "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==", + "dev": true + } + } + }, + "nodeunit": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/nodeunit/-/nodeunit-0.9.5.tgz", + "integrity": "sha1-C2MjaAB9lGUczwoYmZgHmC8HOGY=", + "dev": true, + "requires": { + "tap": "^7.0.0" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.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==" + }, + "npm": { + "version": "3.10.10", + "resolved": "https://registry.npmjs.org/npm/-/npm-3.10.10.tgz", + "integrity": "sha1-Wx1XfkyIadbIYDvInpzRY3MD5G4=", + "dev": true, + "requires": { + "abbrev": "~1.0.9", + "ansi-regex": "*", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "~1.0.4", + "archy": "~1.0.0", + "asap": "~2.0.5", + "chownr": "~1.0.1", + "cmd-shim": "~2.0.2", + "columnify": "~1.5.4", + "config-chain": "~1.1.11", + "debuglog": "*", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "fs-vacuum": "~1.2.9", + "fs-write-stream-atomic": "~1.0.8", + "fstream": "~1.0.10", + "fstream-npm": "~1.2.0", + "glob": "~7.1.0", + "graceful-fs": "~4.1.9", + "has-unicode": "~2.0.1", + "hosted-git-info": "~2.1.5", + "iferr": "~0.1.5", + "imurmurhash": "*", + "inflight": "~1.0.5", + "inherits": "~2.0.3", + "ini": "~1.3.4", + "init-package-json": "~1.9.4", + "lockfile": "~1.0.2", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "mkdirp": "~0.5.1", + "node-gyp": "~3.4.0", + "nopt": "~3.0.6", + "normalize-git-url": "~3.0.2", + "normalize-package-data": "~2.3.5", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "~3.0.0", + "npm-package-arg": "~4.2.0", + "npm-registry-client": "~7.2.1", + "npm-user-validate": "~0.1.5", + "npmlog": "~4.0.0", + "once": "~1.4.0", + "opener": "~1.4.2", + "osenv": "~0.1.3", + "path-is-inside": "~1.0.2", + "read": "~1.0.7", + "read-cmd-shim": "~1.0.1", + "read-installed": "~4.0.3", + "read-package-json": "~2.0.4", + "read-package-tree": "~5.1.5", + "readable-stream": "~2.1.5", + "readdir-scoped-modules": "*", + "realize-package-specifier": "~3.0.3", + "request": "~2.75.0", + "retry": "~0.10.0", + "rimraf": "~2.5.4", + "semver": "~5.3.0", + "sha": "~2.0.1", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "strip-ansi": "~3.0.1", + "tar": "~2.2.1", + "text-table": "~0.2.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "~1.1.0", + "unpipe": "~1.0.0", + "validate-npm-package-license": "*", + "validate-npm-package-name": "~2.2.2", + "which": "~1.2.11", + "wrappy": "~1.0.2", + "write-file-atomic": "~1.2.0" + }, + "dependencies": { + "abbrev": { + "version": "1.0.9", + "bundled": true, + "dev": true + }, + "ansi-regex": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "asap": { + "version": "2.0.5", + "bundled": true, + "dev": true + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "cmd-shim": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + }, + "dependencies": { + "wcwidth": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "defaults": "^1.0.0" + }, + "dependencies": { + "defaults": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + } + } + } + } + }, + "config-chain": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + }, + "dependencies": { + "proto-list": { + "version": "1.2.4", + "bundled": true, + "dev": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "editor": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fs-vacuum": { + "version": "1.2.9", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.8", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fstream": { + "version": "1.0.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "fstream-npm": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "fstream-ignore": "^1.0.0", + "inherits": "2" + }, + "dependencies": { + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + } + } + } + } + }, + "glob": { + "version": "7.1.0", + "bundled": true, + "dev": true, + "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" + }, + "dependencies": { + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.9", + "bundled": true, + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.1.5", + "bundled": true, + "dev": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true + }, + "init-package-json": { + "version": "1.9.4", + "bundled": true, + "dev": true, + "requires": { + "glob": "^6.0.0", + "npm-package-arg": "^4.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^2.0.1" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "bundled": true, + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "promzard": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "read": "1" + } + } + } + }, + "lockfile": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + }, + "dependencies": { + "lodash._createset": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true, + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true, + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + } + } + }, + "node-gyp": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3", + "osenv": "0", + "path-array": "^1.0.0", + "request": "2", + "rimraf": "2", + "semver": "2.x || 3.x || 4 || 5", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "minimatch": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "npmlog": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.6.0", + "set-blocking": "~2.0.0" + }, + "dependencies": { + "are-we-there-yet": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" + }, + "dependencies": { + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "gauge": { + "version": "2.6.0", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-color": "^0.1.7", + "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" + }, + "dependencies": { + "has-color": { + "version": "0.1.7", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "code-point-at": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "wide-align": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1" + } + } + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "path-array": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "array-index": "^1.0.0" + }, + "dependencies": { + "array-index": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "debug": "^2.2.0", + "es6-symbol": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "0.7.1" + }, + "dependencies": { + "ms": { + "version": "0.7.1", + "bundled": true, + "dev": true + } + } + }, + "es6-symbol": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "d": "~0.1.1", + "es5-ext": "~0.10.11" + }, + "dependencies": { + "d": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "es5-ext": "~0.10.2" + } + }, + "es5-ext": { + "version": "0.10.12", + "bundled": true, + "dev": true, + "requires": { + "es6-iterator": "2", + "es6-symbol": "~3.1" + }, + "dependencies": { + "es6-iterator": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "d": "^0.1.1", + "es5-ext": "^0.10.7", + "es6-symbol": "3" + } + } + } + } + } + } + } + } + } + } + } + }, + "nopt": { + "version": "3.0.6", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-git-url": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "normalize-package-data": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + }, + "dependencies": { + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "npm-install-checks": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "npm-package-arg": { + "version": "4.2.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.5", + "semver": "^5.1.0" + } + }, + "npm-registry-client": { + "version": "7.2.1", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.2", + "graceful-fs": "^4.1.6", + "normalize-package-data": "~1.0.1 || ^2.0.0", + "npm-package-arg": "^3.0.0 || ^4.0.0", + "npmlog": "~2.0.0 || ~3.1.0", + "once": "^1.3.3", + "request": "^2.74.0", + "retry": "^0.10.0", + "semver": "2 >=2.2.1 || 3.x || 4 || 5", + "slide": "^1.1.3" + }, + "dependencies": { + "concat-stream": { + "version": "1.5.2", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "typedarray": { + "version": "0.0.6", + "bundled": true, + "dev": true + } + } + }, + "npmlog": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.6.0", + "set-blocking": "~2.0.0" + }, + "dependencies": { + "are-we-there-yet": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" + }, + "dependencies": { + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-color": "^0.1.7", + "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" + }, + "dependencies": { + "has-color": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "code-point-at": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + } + } + }, + "wide-align": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.1" + } + } + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "retry": { + "version": "0.10.0", + "bundled": true, + "dev": true + } + } + }, + "npm-user-validate": { + "version": "0.1.5", + "bundled": true, + "dev": true + }, + "npmlog": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.6.0", + "set-blocking": "~2.0.0" + }, + "dependencies": { + "are-we-there-yet": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.0 || ^1.1.13" + }, + "dependencies": { + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "gauge": { + "version": "2.6.0", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-color": "^0.1.7", + "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" + }, + "dependencies": { + "has-color": { + "version": "0.1.7", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "code-point-at": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "wide-align": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1" + } + } + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.4.2", + "bundled": true, + "dev": true + }, + "osenv": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + }, + "dependencies": { + "os-homedir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "os-tmpdir": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "read": { + "version": "1.0.7", + "bundled": true, + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + }, + "dependencies": { + "mute-stream": { + "version": "0.0.5", + "bundled": true, + "dev": true + } + } + }, + "read-cmd-shim": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "dependencies": { + "util-extend": { + "version": "1.0.3", + "bundled": true, + "dev": true + } + } + }, + "read-package-json": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "glob": "^6.0.0", + "graceful-fs": "^4.1.2", + "json-parse-helpfulerror": "^1.0.2", + "normalize-package-data": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "bundled": true, + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "json-parse-helpfulerror": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "jju": "^1.1.0" + }, + "dependencies": { + "jju": { + "version": "1.3.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "read-package-tree": { + "version": "5.1.5", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.1.5", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "^1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "readdir-scoped-modules": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "realize-package-specifier": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "dezalgo": "^1.0.1", + "npm-package-arg": "^4.1.1" + } + }, + "request": { + "version": "2.75.0", + "bundled": true, + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "bl": "~1.1.2", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.0.0", + "har-validator": "~2.0.6", + "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", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.1", + "qs": "~6.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1" + }, + "dependencies": { + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true + }, + "aws4": { + "version": "1.4.1", + "bundled": true, + "dev": true + }, + "bl": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "~2.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "caseless": { + "version": "0.11.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + }, + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "extend": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "form-data": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" + }, + "dependencies": { + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true + } + } + }, + "har-validator": { + "version": "2.0.6", + "bundled": true, + "dev": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "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": { + "ansi-styles": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "commander": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + }, + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "is-my-json-valid": { + "version": "2.15.0", + "bundled": true, + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "generate-function": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "is-property": "^1.0.0" + }, + "dependencies": { + "is-property": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "jsonpointer": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true, + "dev": true + } + } + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "pinkie": "^2.0.0" + }, + "dependencies": { + "pinkie": { + "version": "2.0.4", + "bundled": true, + "dev": true + } + } + } + } + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + }, + "dependencies": { + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.x.x" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "jsprim": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "requires": { + "extsprintf": "1.0.2" + } + } + } + }, + "sshpk": { + "version": "1.10.1", + "bundled": true, + "dev": true, + "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", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "dashdash": { + "version": "1.14.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "getpass": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "jsbn": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "tweetnacl": { + "version": "0.14.3", + "bundled": true, + "dev": true, + "optional": true + } + } + } + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.12", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "~1.24.0" + }, + "dependencies": { + "mime-db": { + "version": "1.24.0", + "bundled": true, + "dev": true + } + } + }, + "node-uuid": { + "version": "1.4.7", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true + }, + "qs": { + "version": "6.2.1", + "bundled": true, + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true + }, + "tough-cookie": { + "version": "2.3.1", + "bundled": true, + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "bundled": true, + "dev": true + } + } + }, + "retry": { + "version": "0.10.0", + "bundled": true, + "dev": true + }, + "rimraf": { + "version": "2.5.4", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true + }, + "sha": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "readable-stream": "^2.0.2" + } + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + }, + "dependencies": { + "block-stream": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "umask": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "unique-filename": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + }, + "dependencies": { + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + } + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + }, + "dependencies": { + "spdx-correct": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "spdx-license-ids": "^1.0.2" + }, + "dependencies": { + "spdx-license-ids": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "spdx-expression-parse": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^1.0.4", + "spdx-license-ids": "^1.0.0" + }, + "dependencies": { + "spdx-exceptions": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "validate-npm-package-name": { + "version": "2.2.2", + "bundled": true, + "dev": true, + "requires": { + "builtins": "0.0.7" + }, + "dependencies": { + "builtins": { + "version": "0.0.7", + "bundled": true, + "dev": true + } + } + }, + "which": { + "version": "1.2.11", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^1.1.1" + }, + "dependencies": { + "isexe": { + "version": "1.1.2", + "bundled": true, + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + } + } + }, + "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=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nssocket": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", + "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", + "requires": { + "eventemitter2": "~0.4.14", + "lazy": "~1.0.11" + } + }, + "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=" + }, + "nyc": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-7.1.0.tgz", + "integrity": "sha1-jhSXHzoV0au+x6xhDvVMuInp/7Q=", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^1.1.2", + "foreground-child": "^1.5.3", + "glob": "^7.0.3", + "istanbul-lib-coverage": "^1.0.0-alpha.4", + "istanbul-lib-hook": "^1.0.0-alpha.4", + "istanbul-lib-instrument": "^1.1.0-alpha.3", + "istanbul-lib-report": "^1.0.0-alpha.3", + "istanbul-lib-source-maps": "^1.0.0-alpha.10", + "istanbul-reports": "^1.0.0-alpha.8", + "md5-hex": "^1.2.0", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "pkg-up": "^1.0.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.0", + "spawn-wrap": "^1.2.4", + "test-exclude": "^1.1.0", + "yargs": "^4.8.1", + "yargs-parser": "^2.4.1" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "ansi-regex": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "append-transform": { + "version": "0.3.0", + "bundled": true, + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "async": { + "version": "1.5.2", + "bundled": true, + "dev": true + }, + "babel-code-frame": { + "version": "6.11.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.0.0", + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^2.0.0" + } + }, + "babel-generator": { + "version": "6.11.4", + "bundled": true, + "dev": true, + "requires": { + "babel-messages": "^6.8.0", + "babel-runtime": "^6.9.0", + "babel-types": "^6.10.2", + "detect-indent": "^3.0.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0" + } + }, + "babel-messages": { + "version": "6.8.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.0.0" + } + }, + "babel-runtime": { + "version": "6.9.2", + "bundled": true, + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.9.5" + } + }, + "babel-template": { + "version": "6.9.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.9.0", + "babel-traverse": "^6.9.0", + "babel-types": "^6.9.0", + "babylon": "^6.7.0", + "lodash": "^4.2.0" + } + }, + "babel-traverse": { + "version": "6.11.4", + "bundled": true, + "dev": true, + "requires": { + "babel-code-frame": "^6.8.0", + "babel-messages": "^6.8.0", + "babel-runtime": "^6.9.0", + "babel-types": "^6.9.0", + "babylon": "^6.7.0", + "debug": "^2.2.0", + "globals": "^8.3.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + } + }, + "babel-types": { + "version": "6.11.1", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.9.1", + "babel-traverse": "^6.9.0", + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^1.0.1" + } + }, + "babylon": { + "version": "6.8.4", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "^6.0.0" + } + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.6", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "bundled": true, + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "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" + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "convert-source-map": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "core-js": { + "version": "2.4.1", + "bundled": true, + "dev": true + }, + "cross-spawn": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "detect-indent": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "error-ex": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "esutils": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "bundled": true, + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "bundled": true, + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "filename-regex": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "for-in": { + "version": "0.1.5", + "bundled": true, + "dev": true + }, + "for-own": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "for-in": "^0.1.5" + } + }, + "foreground-child": { + "version": "1.5.3", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "get-caller-file": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "glob": { + "version": "7.0.5", + "bundled": true, + "dev": true, + "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" + } + }, + "glob-base": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "globals": { + "version": "8.18.0", + "bundled": true, + "dev": true + }, + "graceful-fs": { + "version": "4.1.4", + "bundled": true, + "dev": true + }, + "handlebars": { + "version": "4.0.5", + "bundled": true, + "dev": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-ansi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.1.5", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "invariant": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-buffer": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-dotfile": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-finite": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.0.0-alpha.4", + "bundled": true, + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.0.0-alpha.4", + "bundled": true, + "dev": true, + "requires": { + "append-transform": "^0.3.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.1.0-alpha.4", + "bundled": true, + "dev": true, + "requires": { + "babel-generator": "^6.11.3", + "babel-template": "^6.9.0", + "babel-traverse": "^6.9.0", + "babel-types": "^6.10.2", + "babylon": "^6.8.1", + "istanbul-lib-coverage": "^1.0.0-alpha.4" + } + }, + "istanbul-lib-report": { + "version": "1.0.0-alpha.3", + "bundled": true, + "dev": true, + "requires": { + "async": "^1.4.2", + "istanbul-lib-coverage": "^1.0.0-alpha", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "rimraf": "^2.4.3", + "supports-color": "^3.1.2" + }, + "dependencies": { + "supports-color": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.0.0-alpha.10", + "bundled": true, + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.0.0-alpha.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.4.4", + "source-map": "^0.5.3" + } + }, + "istanbul-reports": { + "version": "1.0.0-alpha.8", + "bundled": true, + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "js-tokens": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "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" + } + }, + "lodash": { + "version": "4.13.1", + "bundled": true, + "dev": true + }, + "lodash.assign": { + "version": "4.0.9", + "bundled": true, + "dev": true, + "requires": { + "lodash.keys": "^4.0.0", + "lodash.rest": "^4.0.0" + } + }, + "lodash.keys": { + "version": "4.0.7", + "bundled": true, + "dev": true + }, + "lodash.rest": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "longest": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "loose-envify": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "js-tokens": "^1.0.1" + }, + "dependencies": { + "js-tokens": { + "version": "1.0.3", + "bundled": true, + "dev": true + } + } + }, + "lru-cache": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "bundled": true, + "dev": 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" + } + }, + "minimatch": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "0.7.1", + "bundled": true, + "dev": true + }, + "normalize-package-data": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "number-is-nan": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "object.omit": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "for-own": "^0.1.3", + "is-extendable": "^0.1.1" + } + }, + "once": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "pkg-up": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "preserve": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "randomatic": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^2.0.2", + "kind-of": "^3.0.2" + } + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "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", + "bundled": true, + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.9.5", + "bundled": true, + "dev": true + }, + "regex-cache": { + "version": "0.4.3", + "bundled": true, + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "repeat-string": { + "version": "1.5.4", + "bundled": true, + "dev": true + }, + "repeating": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.5.4", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "source-map": { + "version": "0.5.6", + "bundled": true, + "dev": true + }, + "spawn-wrap": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "requires": { + "foreground-child": "^1.3.3", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.3.3", + "signal-exit": "^2.0.0", + "which": "^1.2.4" + }, + "dependencies": { + "signal-exit": { + "version": "2.1.2", + "bundled": true, + "dev": true + } + } + }, + "spdx-correct": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "spdx-license-ids": "^1.0.2" + } + }, + "spdx-exceptions": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^1.0.4", + "spdx-license-ids": "^1.0.0" + } + }, + "spdx-license-ids": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "supports-color": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "test-exclude": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "arrify": "^1.0.1", + "lodash.assign": "^4.0.9", + "micromatch": "^2.3.8", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "to-fast-properties": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uglify-js": { + "version": "2.7.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "bundled": true, + "dev": true, + "optional": true + }, + "yargs": { + "version": "3.10.0", + "bundled": true, + "dev": true, + "optional": true, + "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", + "bundled": true, + "dev": true, + "optional": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "which": { + "version": "1.2.10", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^1.1.1" + } + }, + "which-module": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true, + "dev": true + }, + "wrap-ansi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "4.8.1", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "window-size": { + "version": "0.2.0", + "bundled": true, + "dev": true + } + } + }, + "yargs-parser": { + "version": "2.4.1", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "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" + } + } + } + }, + "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-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", + "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==" + }, + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "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.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "only-shallow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/only-shallow/-/only-shallow-1.2.0.tgz", + "integrity": "sha1-cc7O26kyS8BRiu8Q7AgNMkncJGU=", + "dev": true + }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true + }, + "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" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true + }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.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=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "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=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "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-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^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=", + "dev": true + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pad-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-1.2.0.tgz", + "integrity": "sha1-Yx3Mn3mBC3BZZeid7eps/w/B38k=", + "dev": true, + "requires": { + "meow": "^3.0.0", + "pumpify": "^1.3.3", + "repeating": "^2.0.0", + "split2": "^1.0.0", + "through2": "^2.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "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=", + "dev": true, + "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=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=" + }, + "platform": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.1.tgz", + "integrity": "sha1-SSIQiSM1vTExwKCN2i2T7DVD5CM=" + }, + "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=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "prettyjson": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.1.tgz", + "integrity": "sha1-/P+rQdGcq0365eV15kJGYZsS0ok=", + "requires": { + "colors": "^1.1.2", + "minimist": "^1.2.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + } + } + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "prompt": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", + "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", + "requires": { + "pkginfo": "0.x.x", + "read": "1.0.x", + "revalidator": "0.1.x", + "utile": "0.2.x", + "winston": "0.8.x" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "utile": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", + "requires": { + "async": "~0.2.9", + "deep-equal": "*", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "0.4.x", + "rimraf": "2.x.x" + } + } + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "ps-tree": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", + "integrity": "sha1-2/jXUqf+Ivp9WGNWiUmWEOknbdw=", + "requires": { + "event-stream": "~0.5" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.32", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz", + "integrity": "sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g==", + "dev": true + }, + "pstree.remy": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", + "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", + "dev": true + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "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==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "ramda": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", + "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", + "dev": true + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": 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", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-installed": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + } + }, + "read-package-json": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", + "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "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=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "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" + } + }, + "readdir-scoped-modules": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", + "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "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" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "referrer-policy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.0.0.tgz", + "integrity": "sha1-9g7tyS+UKwGmEYEh7JMtZuj9fhQ=" + }, + "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" + } + }, + "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==", + "dev": true, + "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=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "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": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "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", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + }, + "dependencies": { + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + } + } + }, + "request-progress": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.4.0.tgz", + "integrity": "sha1-wZVOOQhqqFJpxWYLzuAUKmpw1+c=", + "dev": true, + "requires": { + "node-eta": "^0.1.1", + "throttleit": "^0.0.2" + } + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "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": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retire": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/retire/-/retire-1.1.6.tgz", + "integrity": "sha1-8ZQ2tc879+0soslilvETqgR5WNU=", + "dev": true, + "requires": { + "commander": "2.5.x", + "read-installed": "^4.0.3", + "request": "~2.x.x", + "underscore": "1.7.x - 1.8.x", + "walkdir": "0.0.7" + }, + "dependencies": { + "commander": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz", + "integrity": "sha1-I8Yfbke+FDzALnrUuxxH9c1aKIM=", + "dev": true + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + } + } + }, + "revalidator": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" + }, + "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" + } + }, + "rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "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-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": 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": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "secure-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", + "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=" + }, + "selenium-webdriver": { + "version": "2.53.3", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz", + "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", + "dev": true, + "requires": { + "adm-zip": "0.4.4", + "rimraf": "^2.2.8", + "tmp": "0.0.24", + "ws": "^1.0.1", + "xml2js": "0.4.4" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "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.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "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.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "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=", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha512-Ny0KN4dyT8ZSCE0frtcbAJGoM/HTArpyPkeli1/00aYfm0sbD/Gk/4x7N2DP9QKGpBsiQH7n6rpm1L79RtviEQ==", + "dev": true + }, + "should": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/should/-/should-8.4.0.tgz", + "integrity": "sha1-XmCInT5kS73Tl6MM00+tKPz5C8A=", + "dev": true, + "requires": { + "should-equal": "0.8.0", + "should-format": "0.3.2", + "should-type": "0.2.0" + } + }, + "should-equal": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-0.8.0.tgz", + "integrity": "sha1-o/BXMv9FusG3ukEvhAiFaBlkEpk=", + "dev": true, + "requires": { + "should-type": "0.2.0" + } + }, + "should-format": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-0.3.2.tgz", + "integrity": "sha1-pZgx4Bot3uFJkRvHFIvlyAMZ4f8=", + "dev": true, + "requires": { + "should-type": "0.2.0" + } + }, + "should-type": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-0.2.0.tgz", + "integrity": "sha1-ZwfvlVKdmJ3MCY/gdTqx+RNrt/Y=", + "dev": true + }, + "shush": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shush/-/shush-1.0.0.tgz", + "integrity": "sha1-wnQVqeRY8v7TmyfPjrN8ADeCtDE=", + "requires": { + "caller": "~0.0.1", + "strip-json-comments": "~0.1.1" + }, + "dependencies": { + "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=" + } + } + }, + "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" + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "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" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "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" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.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.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "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=" + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", + "dev": true + }, + "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" + } + }, + "split2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", + "integrity": "sha1-Fi2bGIZfAqsvKtlYVSLbm1TEgfk=", + "dev": true, + "requires": { + "through2": "~2.0.0" + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "sshpk": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz", + "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==", + "dev": true, + "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" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, + "stack-utils": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-0.4.0.tgz", + "integrity": "sha1-lAy4L8z6hOj/Lz/fKT/ngBa+zNE=", + "dev": true + }, + "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=" + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "stream-to-observable": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", + "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "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" + } + }, + "string.prototype.trimend": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz", + "integrity": "sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", + "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + } + }, + "string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz", + "integrity": "sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "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" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "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=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "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=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "swig": { + "version": "1.4.1", + "resolved": "https://repo.mzavery.eu.ngrok.io/repository/npm-all/swig/-/swig-1.4.1.tgz", + "integrity": "sha512-tS2lcdQ/RA6qWQ+/mE+6KF2YqMe2bVIyznqMxODnDPHhjq8/UzZFG83rW/VtW3sXpQQFWB/E4gs+MB4j4s+IVQ==", + "requires": { + "optimist": "~0.6", + "uglify-js": "~2.4" + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "tap": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/tap/-/tap-7.1.2.tgz", + "integrity": "sha1-36w+zxSshUe7rSW70Wzyw3Q/Zc8=", + "dev": true, + "requires": { + "bluebird": "^3.3.1", + "clean-yaml-object": "^0.1.0", + "color-support": "^1.1.0", + "coveralls": "^2.11.2", + "deeper": "^2.1.0", + "foreground-child": "^1.3.3", + "glob": "^7.0.0", + "isexe": "^1.0.0", + "js-yaml": "^3.3.1", + "nyc": "^7.1.0", + "only-shallow": "^1.0.2", + "opener": "^1.4.1", + "os-homedir": "1.0.1", + "readable-stream": "^2.0.2", + "signal-exit": "^3.0.0", + "stack-utils": "^0.4.0", + "tap-mocha-reporter": "^2.0.0", + "tap-parser": "^2.2.0", + "tmatch": "^2.0.1" + }, + "dependencies": { + "isexe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", + "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=", + "dev": true + }, + "os-homedir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", + "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=", + "dev": true + } + } + }, + "tap-mocha-reporter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-2.0.1.tgz", + "integrity": "sha1-xwMWFz1uOhbFjhupLV1s2N5YoS4=", + "dev": true, + "requires": { + "color-support": "^1.1.0", + "debug": "^2.1.3", + "diff": "^1.3.2", + "escape-string-regexp": "^1.0.3", + "glob": "^7.0.5", + "js-yaml": "^3.3.1", + "readable-stream": "^2.1.5", + "tap-parser": "^2.0.0", + "unicode-length": "^1.0.0" + } + }, + "tap-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-2.2.3.tgz", + "integrity": "sha1-rebpbje/04zg8WLaBn80A08GiwE=", + "dev": true, + "requires": { + "events-to-array": "^1.0.1", + "js-yaml": "^3.2.7", + "readable-stream": "^2" + } + }, + "tape": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz", + "integrity": "sha1-Lnzgox3wn41oUWZKcYQuDKUFevc=", + "requires": { + "deep-equal": "~0.1.0", + "defined": "~0.0.0", + "inherits": "~2.0.1", + "jsonify": "~0.0.0", + "resumer": "~0.0.0", + "through": "~2.3.4" + }, + "dependencies": { + "deep-equal": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz", + "integrity": "sha1-skbCuApXCkfBG+HZvRBw7IeLh84=" + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "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=", + "dev": true + }, + "tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "requires": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "tmatch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-2.0.1.tgz", + "integrity": "sha1-DFYkbzPzDaG409colauvFmYPOM8=", + "dev": true + }, + "tmp": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", + "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", + "dev": true + }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", + "dev": true + }, + "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" + } + }, + "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": "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" + }, + "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" + } + } + } + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=" + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "2.4.24", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", + "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", + "requires": { + "async": "~0.2.6", + "source-map": "0.1.34", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.5.4" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "source-map": { + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", + "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "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=" + }, + "uid-safe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", + "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", + "requires": { + "random-bytes": "~1.0.0" + } + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "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=", + "dev": true + }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "dev": true, + "requires": { + "debug": "^2.2.0" + } + }, + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha1-BtzjSg5op7q8KbNluOdLiSUgOWE=" + }, + "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==", + "dev": true, + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, + "unicode-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", + "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", + "dev": true, + "requires": { + "punycode": "^1.3.2", + "strip-ansi": "^3.0.1" + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "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" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "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=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "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=", + "dev": true, + "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==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", + "dev": true + }, + "utile": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz", + "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=", + "requires": { + "async": "~0.9.0", + "deep-equal": "~0.2.1", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "1.0.x", + "rimraf": "2.x.x" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "deep-equal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", + "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=" + }, + "ncp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", + "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=" + } + } + }, + "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.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "v8flags": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", + "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.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==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "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=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "walkdir": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.7.tgz", + "integrity": "sha1-BNoCcKh6d4VAFzzb8KLbSZqNnik=", + "dev": true + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz", + "integrity": "sha512-7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ==", + "requires": { + "is-bigint": "^1.0.0", + "is-boolean-object": "^1.0.0", + "is-number-object": "^1.0.3", + "is-string": "^1.0.4", + "is-symbol": "^1.0.2" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.1.tgz", + "integrity": "sha512-IWlkoJZ4Zdfi4YBn2wnYB8AVox+4A2+Kmr4kHFAraffHYrQZFiTOjgjk9et8e6RSPZOV1QjZOC51PVCK9SkR/A==", + "requires": { + "available-typed-arrays": "^1.0.1", + "es-abstract": "^1.17.4", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + } + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "winston": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", + "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", + "requires": { + "async": "0.2.x", + "colors": "0.6.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "pkginfo": "0.3.x", + "stack-trace": "0.0.x" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + } + } + }, + "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" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "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==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", + "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "dev": true, + "requires": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } + }, + "x-xss-protection": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.0.0.tgz", + "integrity": "sha1-iYr7k4abJGYc+cUvnujbjtB2Tdk=" + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "xml2js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz", + "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "dev": true, + "requires": { + "sax": "0.6.x", + "xmlbuilder": ">=1.0.0" + }, + "dependencies": { + "sax": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", + "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", + "dev": true + } + } + }, + "xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yargs": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", + "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", + "requires": { + "camelcase": "^1.0.2", + "decamelize": "^1.0.0", + "window-size": "0.1.0", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + }, + "dependencies": { + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + } + } + }, + "zaproxy": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/zaproxy/-/zaproxy-0.2.0.tgz", + "integrity": "sha1-p56+/Hu4lRUPKFPqhQhvvWkSGVo=", + "dev": true, + "requires": { + "lodash": "~2.4.1", + "request": "~2.36.0" + }, + "dependencies": { + "asn1": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=", + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=", + "dev": true, + "optional": true + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=", + "dev": true, + "optional": true + }, + "boom": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", + "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=", + "dev": true, + "optional": true, + "requires": { + "hoek": "0.9.x" + } + }, + "combined-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", + "dev": true, + "optional": true, + "requires": { + "delayed-stream": "0.0.5" + } + }, + "cryptiles": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", + "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=", + "dev": true, + "optional": true, + "requires": { + "boom": "0.4.x" + } + }, + "delayed-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=", + "dev": true, + "optional": true + }, + "forever-agent": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", + "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=", + "dev": true + }, + "form-data": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", + "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=", + "dev": true, + "optional": true, + "requires": { + "async": "~0.9.0", + "combined-stream": "~0.0.4", + "mime": "~1.2.11" + } + }, + "hawk": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", + "integrity": "sha1-uQuxaYByhUEdp//LjdJZhQLTtS0=", + "dev": true, + "optional": true, + "requires": { + "boom": "0.4.x", + "cryptiles": "0.2.x", + "hoek": "0.9.x", + "sntp": "0.2.x" + } + }, + "hoek": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", + "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=", + "dev": true, + "optional": true + }, + "http-signature": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", + "dev": true, + "optional": true, + "requires": { + "asn1": "0.1.11", + "assert-plus": "^0.1.5", + "ctype": "0.5.3" + } + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "mime": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=", + "dev": true + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "oauth-sign": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz", + "integrity": "sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=", + "dev": true, + "optional": true + }, + "qs": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=", + "dev": true + }, + "request": { + "version": "2.36.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.36.0.tgz", + "integrity": "sha1-KMbAQmLHuf/dIbklU3RRfubZQ/U=", + "dev": true, + "requires": { + "aws-sign2": "~0.5.0", + "forever-agent": "~0.5.0", + "form-data": "~0.1.0", + "hawk": "~1.0.0", + "http-signature": "~0.10.0", + "json-stringify-safe": "~5.0.0", + "mime": "~1.2.9", + "node-uuid": "~1.4.0", + "oauth-sign": "~0.3.0", + "qs": "~0.6.0", + "tough-cookie": ">=0.12.0", + "tunnel-agent": "~0.4.0" + } + }, + "sntp": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", + "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=", + "dev": true, + "optional": true, + "requires": { + "hoek": "0.9.x" + } + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b2eb65a --- /dev/null +++ b/package.json @@ -0,0 +1,65 @@ +{ + "name": "owasp-nodejs-goat", + "private": true, + "version": "1.3.0", + "description": "A tool to learn OWASP Top 10 for node.js developers", + "main": "server.js", + "dependencies": { + "bcrypt-nodejs": "0.0.3", + "body-parser": "^1.15.1", + "consolidate": "^0.14.1", + "csurf": "^1.8.3", + "dont-sniff-mimetype": "^1.0.0", + "express": "^4.13.4", + "express-session": "^1.13.0", + "forever": "^2.0.0", + "helmet": "^2.0.0", + "marked": "0.3.5", + "mongodb": "^2.1.18", + "needle": "2.2.4", + "node-esapi": "0.0.1", + "serve-favicon": "^2.3.0", + "swig": "^1.4.2", + "underscore": "^1.8.3" + }, + "comments": { + "//": "a9 insecure components" + }, + "scripts": { + "start": "node server.js", + "dev": "cross-env PORT=5000 nodemon", + "test:e2e": "cross-env NODE_ENV=test cypress open", + "test:ci": "cross-env NODE_ENV=test cypress run", + "test": "node node_modules/grunt-cli/bin/grunt test", + "db:seed": "cross-env NODE_ENV=test grunt db-reset", + "precommit": "grunt precommit", + "docker-mongo": "docker run -p 27017:27017 --name mongo mongo:latest", + "start-infra": "docker-compose up", + "stop-infra": "docker-compose down", + "cy:verify": "cypress verify" + }, + "devDependencies": { + "async": "^2.0.0-rc.4", + "cross-env": "^7.0.2", + "cypress": "^3.3.1", + "grunt": "^1.0.3", + "grunt-cli": "^1.2.0", + "grunt-concurrent": "^2.3.0", + "grunt-contrib-jshint": "^3.0.0", + "grunt-contrib-watch": "^1.0.0", + "grunt-env": "latest", + "grunt-if": "https://github.com/binarymist/grunt-if/tarball/master", + "grunt-jsbeautifier": "^0.2.12", + "grunt-mocha-test": "^0.12.7", + "grunt-npm-install": "^0.3.0", + "grunt-retire": "^0.3.12", + "jshint": "2.12.0", + "mocha": "^2.4.5", + "nodemon": "^1.19.1", + "selenium-webdriver": "^2.53.2", + "should": "^8.3.1", + "zaproxy": "^0.2.0" + }, + "repository": "https://github.com/OWASP/NodejsGoat", + "license": "Apache 2.0" +} diff --git a/server.js b/server.js new file mode 100644 index 0000000..d6bb500 --- /dev/null +++ b/server.js @@ -0,0 +1,157 @@ +"use strict"; + +const express = require("express"); +const favicon = require("serve-favicon"); +const bodyParser = require("body-parser"); +const session = require("express-session"); +// const csrf = require('csurf'); +const consolidate = require("consolidate"); // Templating library adapter for Express +const swig = require("swig"); +// const helmet = require("helmet"); +const MongoClient = require("mongodb").MongoClient; // Driver for connecting to MongoDB +const http = require("http"); +const marked = require("marked"); +//const nosniff = require('dont-sniff-mimetype'); +const app = express(); // Web framework to handle routing requests +const routes = require("./app/routes"); +const { port, db, cookieSecret } = require("./config/config"); // Application config properties +/* +// Fix for A6-Sensitive Data Exposure +// Load keys for establishing secure HTTPS connection +const fs = require("fs"); +const https = require("https"); +const path = require("path"); +const httpsOptions = { + key: fs.readFileSync(path.resolve(__dirname, "./artifacts/cert/server.key")), + cert: fs.readFileSync(path.resolve(__dirname, "./artifacts/cert/server.crt")) +}; +*/ + +MongoClient.connect(db, (err, db) => { + if (err) { + console.log("Error: DB: connect"); + console.log(err); + process.exit(1); + } + console.log(`Connected to the database`); + + /* + // Fix for A5 - Security MisConfig + // TODO: Review the rest of helmet options, like "xssFilter" + // Remove default x-powered-by response header + app.disable("x-powered-by"); + + // Prevent opening page in frame or iframe to protect from clickjacking + app.use(helmet.frameguard()); //xframe deprecated + + // Prevents browser from caching and storing page + app.use(helmet.noCache()); + + // Allow loading resources only from white-listed domains + app.use(helmet.contentSecurityPolicy()); //csp deprecated + + // Allow communication only on HTTPS + app.use(helmet.hsts()); + + // TODO: Add another vuln: https://github.com/helmetjs/helmet/issues/26 + // Enable XSS filter in IE (On by default) + // app.use(helmet.iexss()); + // Now it should be used in hit way, but the README alerts that could be + // dangerous, like specified in the issue. + // app.use(helmet.xssFilter({ setOnOldIE: true })); + + // Forces browser to only use the Content-Type set in the response header instead of sniffing or guessing it + app.use(nosniff()); + */ + + // Adding/ remove HTTP Headers for security + app.use(favicon(__dirname + "/app/assets/favicon.ico")); + + // Express middleware to populate "req.body" so we can access POST variables + app.use(bodyParser.json()); + app.use(bodyParser.urlencoded({ + // Mandatory in Express v4 + extended: false + })); + + // Enable session management using express middleware + app.use(session({ + // genid: (req) => { + // return genuuid() // use UUIDs for session IDs + //}, + secret: cookieSecret, + // Both mandatory in Express v4 + saveUninitialized: true, + resave: true + /* + // Fix for A5 - Security MisConfig + // Use generic cookie name + key: "sessionId", + */ + + /* + // Fix for A3 - XSS + // TODO: Add "maxAge" + cookie: { + httpOnly: true + // Remember to start an HTTPS server to get this working + // secure: true + } + */ + + })); + + /* + // Fix for A8 - CSRF + // Enable Express csrf protection + app.use(csrf()); + // Make csrf token available in templates + app.use((req, res, next) => { + res.locals.csrftoken = req.csrfToken(); + next(); + }); + */ + + // Register templating engine + app.engine(".html", consolidate.swig); + app.set("view engine", "html"); + app.set("views", `${__dirname}/app/views`); + // Fix for A5 - Security MisConfig + // TODO: make sure assets are declared before app.use(session()) + app.use(express.static(`${__dirname}/app/assets`)); + + + // Initializing marked library + // Fix for A9 - Insecure Dependencies + marked.setOptions({ + sanitize: true + }); + app.locals.marked = marked; + + // Application routes + routes(app, db); + + // Template system setup + swig.setDefaults({ + // Autoescape disabled + autoescape: false + /* + // Fix for A3 - XSS, enable auto escaping + autoescape: true // default value + */ + }); + + // Insecure HTTP connection + http.createServer(app).listen(port, () => { + console.log(`Express http server listening on port ${port}`); + }); + + /* + // Fix for A6-Sensitive Data Exposure + // Use secure HTTPS protocol + https.createServer(httpsOptions, app).listen(port, () => { + console.log(`Express http server listening on port ${port}`); + }); + */ + +}); diff --git a/set-up-cloud.groovy b/set-up-cloud.groovy deleted file mode 100644 index 07dcd16..0000000 --- a/set-up-cloud.groovy +++ /dev/null @@ -1,308 +0,0 @@ -import com.nirima.jenkins.plugins.docker.DockerCloud -import com.nirima.jenkins.plugins.docker.DockerTemplate -import com.nirima.jenkins.plugins.docker.DockerTemplateBase -import com.nirima.jenkins.plugins.docker.launcher.AttachedDockerComputerLauncher -import io.jenkins.docker.connector.DockerComputerAttachConnector -import io.jenkins.docker.connector.DockerComputerJNLPConnector; -import hudson.EnvVars; -import hudson.slaves.EnvironmentVariablesNodeProperty; -import hudson.slaves.NodeProperty; -import hudson.slaves.NodePropertyDescriptor; -import hudson.util.DescribableList; -import jenkins.model.Jenkins - -def dockerCloudParameters = [ - connectTimeout: 3, - containerCapStr: '2', - credentialsId: '', - dockerHostname: '', - name: 'Demo system auto added', - readTimeout: 60, - serverUrl: 'unix:///var/run/docker.sock', - version: '' -] - -def dockerTemplateBaseParametersMaven = [ - image: 'adamjwsuch/jenkins-node-maven:latest' -] - -def DockerTemplateParametersMaven = [ - instanceCapStr: '1', - labelString: 'maven-node', - remoteFs: '' -] - -def dockerTemplateBaseParametersMaven11 = [ - image: 'adamjwsuch/jenkins-node-maven:latest-java-11' -] - -def DockerTemplateParametersMaven11 = [ - instanceCapStr: '1', - labelString: 'maven-node-java-11', - remoteFs: '' -] - -def dockerTemplateBaseParametersGradle = [ - image: 'adamjwsuch/jenkins-node-gradle:latest' -] - -def DockerTemplateParametersGradle = [ - instanceCapStr: '1', - labelString: 'gradle-node', - remoteFs: '' -] - -def dockerTemplateBaseParametersNPM = [ - image: 'adamjwsuch/jenkins-node-npm:latest' -] - -def DockerTemplateParametersNPM = [ - instanceCapStr: '1', - labelString: 'npm-node', - remoteFs: '' -] - -def dockerTemplateBaseParametersCompose = [ - image: 'adamjwsuch/jenkins-node-compose:latest' -] - -def DockerTemplateParametersCompose = [ - instanceCapStr: '1', - labelString: 'compose-node', - remoteFs: '' -] - -def dockerTemplateBaseParametersPip = [ - image: 'adamjwsuch/jenkins-node-pip:latest' -] - -def DockerTemplateParametersPip = [ - instanceCapStr: '1', - labelString: 'pip-node', - remoteFs: '' -] - -def dockerTemplateBaseParametersJake = [ - image: 'adamjwsuch/jenkins-node-jake:latest' -] - -def DockerTemplateParametersJake = [ - instanceCapStr: '1', - labelString: 'jake-node', - remoteFs: '' -] - -def dockerTemplateBaseParametersCmake = [ - image: 'adamjwsuch/jenkins-node-cmake:latest' -] - -def DockerTemplateParametersCmake = [ - instanceCapStr: '1', - labelString: 'cmake-node', - remoteFs: '' -] - -def dockerTemplateBaseParametersAuditjs = [ - image: 'adamjwsuch/jenkins-node-auditjs:latest' -] - -def DockerTemplateParametersAuditjs = [ - instanceCapStr: '1', - labelString: 'auditjs-node', - remoteFs: '' -] - -DockerTemplateBase dockerTemplateBaseMaven = new DockerTemplateBase( - dockerTemplateBaseParametersMaven.image -) - -DockerTemplate dockerTemplateMaven = new DockerTemplate( - dockerTemplateBaseMaven, - new DockerComputerAttachConnector(), - DockerTemplateParametersMaven.labelString, - DockerTemplateParametersMaven.remoteFs, - DockerTemplateParametersMaven.instanceCapStr -) - -DockerTemplateBase dockerTemplateBaseMaven11 = new DockerTemplateBase( - dockerTemplateBaseParametersMaven11.image -) - -DockerTemplate dockerTemplateMaven11 = new DockerTemplate( - dockerTemplateBaseMaven11, - new DockerComputerAttachConnector(), - DockerTemplateParametersMaven11.labelString, - DockerTemplateParametersMaven11.remoteFs, - DockerTemplateParametersMaven11.instanceCapStr -) - -DockerTemplateBase dockerTemplateBaseGradle = new DockerTemplateBase( - dockerTemplateBaseParametersGradle.image -) - -DockerTemplate dockerTemplateGradle = new DockerTemplate( - dockerTemplateBaseGradle, - new DockerComputerAttachConnector(), - DockerTemplateParametersGradle.labelString, - DockerTemplateParametersGradle.remoteFs, - DockerTemplateParametersGradle.instanceCapStr -) - -DockerTemplateBase dockerTemplateBaseNPM = new DockerTemplateBase( - dockerTemplateBaseParametersNPM.image -) - -DockerTemplate dockerTemplateNPM = new DockerTemplate( - dockerTemplateBaseNPM, - new DockerComputerAttachConnector(), - DockerTemplateParametersNPM.labelString, - DockerTemplateParametersNPM.remoteFs, - DockerTemplateParametersNPM.instanceCapStr -) - -DockerTemplateBase dockerTemplateBaseCompose = new DockerTemplateBase( - dockerTemplateBaseParametersCompose.image -) - -DockerTemplate dockerTemplateCompose = new DockerTemplate( - dockerTemplateBaseCompose, - new DockerComputerAttachConnector(), - DockerTemplateParametersCompose.labelString, - DockerTemplateParametersCompose.remoteFs, - DockerTemplateParametersCompose.instanceCapStr -) - -DockerTemplateBase dockerTemplateBasePip = new DockerTemplateBase( - dockerTemplateBaseParametersPip.image -) - -DockerTemplate dockerTemplatePip = new DockerTemplate( - dockerTemplateBasePip, - new DockerComputerAttachConnector(), - DockerTemplateParametersPip.labelString, - DockerTemplateParametersPip.remoteFs, - DockerTemplateParametersPip.instanceCapStr -) - -DockerTemplateBase dockerTemplateBaseJake = new DockerTemplateBase( - dockerTemplateBaseParametersJake.image -) - -DockerTemplate dockerTemplateJake = new DockerTemplate( - dockerTemplateBaseJake, - new DockerComputerAttachConnector(), - DockerTemplateParametersJake.labelString, - DockerTemplateParametersJake.remoteFs, - DockerTemplateParametersJake.instanceCapStr -) - -DockerTemplateBase dockerTemplateBaseCmake = new DockerTemplateBase( - dockerTemplateBaseParametersCmake.image -) - -DockerTemplate dockerTemplateCmake = new DockerTemplate( - dockerTemplateBaseCmake, - new DockerComputerAttachConnector(), - DockerTemplateParametersCmake.labelString, - DockerTemplateParametersCmake.remoteFs, - DockerTemplateParametersCmake.instanceCapStr -) - -DockerTemplateBase dockerTemplateBaseAuditjs = new DockerTemplateBase( - dockerTemplateBaseParametersAuditjs.image -) - -DockerTemplate dockerTemplateAuditjs = new DockerTemplate( - dockerTemplateBaseAuditjs, - new DockerComputerAttachConnector(), - DockerTemplateParametersAuditjs.labelString, - DockerTemplateParametersAuditjs.remoteFs, - DockerTemplateParametersAuditjs.instanceCapStr -) - -DockerCloud dockerCloud = new DockerCloud( - dockerCloudParameters.name, - [ - dockerTemplateMaven, - dockerTemplateMaven11, - dockerTemplateGradle, - dockerTemplateNPM, - dockerTemplateCompose, - dockerTemplatePip, - dockerTemplateJake, - dockerTemplateCmake, - dockerTemplateAuditjs - ], - dockerCloudParameters.serverUrl, - dockerCloudParameters.containerCapStr, - dockerCloudParameters.connectTimeout, - dockerCloudParameters.readTimeout, - dockerCloudParameters.credentialsId, - dockerCloudParameters.version, - dockerCloudParameters.dockerHostname -) - -// get Jenkins instance -Jenkins jenkins = Jenkins.getInstance() - -// add cloud configuration to Jenkins -jenkins.clouds.add(dockerCloud) -dockerTemplateMaven.setMode(Node.Mode.EXCLUSIVE) -dockerTemplateMaven.setRemoteFs("/home/jenkins") -dockerTemplateMaven.connector.setUser("jenkins") -dockerTemplateMaven11.setMode(Node.Mode.EXCLUSIVE) -dockerTemplateMaven11.setRemoteFs("/home/jenkins") -dockerTemplateMaven11.connector.setUser("jenkins") -dockerTemplateGradle.setMode(Node.Mode.EXCLUSIVE) -dockerTemplateGradle.setRemoteFs("/home/jenkins") -dockerTemplateGradle.connector.setUser("jenkins") -dockerTemplateNPM.setMode(Node.Mode.EXCLUSIVE) -dockerTemplateNPM.setRemoteFs("/home/jenkins") -dockerTemplateNPM.connector.setUser("jenkins") -dockerTemplateCompose.setMode(Node.Mode.EXCLUSIVE) -dockerTemplateCompose.setRemoteFs("/home/jenkins") -dockerTemplateCompose.connector.setUser("jenkins") -dockerTemplatePip.setMode(Node.Mode.EXCLUSIVE) -dockerTemplatePip.setRemoteFs("/home/jenkins") -dockerTemplatePip.connector.setUser("jenkins") -dockerTemplateJake.setMode(Node.Mode.EXCLUSIVE) -dockerTemplateJake.setRemoteFs("/home/jenkins") -dockerTemplateJake.connector.setUser("jenkins") -dockerTemplateCmake.setMode(Node.Mode.EXCLUSIVE) -dockerTemplateCmake.setRemoteFs("/home/jenkins") -dockerTemplateCmake.connector.setUser("jenkins") -dockerTemplateAuditjs.setMode(Node.Mode.EXCLUSIVE) -dockerTemplateAuditjs.setRemoteFs("/home/jenkins") -dockerTemplateAuditjs.connector.setUser("jenkins") - -println "Configured docker cloud" - -//Create global environmental variable for IQ URL -public createGlobalEnvironmentVariables(String key, String value){ - - Jenkins instance = Jenkins.getInstance(); - - DescribableList, NodePropertyDescriptor> globalNodeProperties = instance.getGlobalNodeProperties(); - List envVarsNodePropertyList = globalNodeProperties.getAll(EnvironmentVariablesNodeProperty.class); - - EnvironmentVariablesNodeProperty newEnvVarsNodeProperty = null; - EnvVars envVars = null; - - if ( envVarsNodePropertyList == null || envVarsNodePropertyList.size() == 0 ) { - newEnvVarsNodeProperty = new hudson.slaves.EnvironmentVariablesNodeProperty(); - globalNodeProperties.add(newEnvVarsNodeProperty); - envVars = newEnvVarsNodeProperty.getEnvVars(); - } else { - envVars = envVarsNodePropertyList.get(0).getEnvVars(); - } - envVars.put(key, value) - instance.save() -} -// *** Please edit the IQ URL to match you environment *** -createGlobalEnvironmentVariables('IQserver','http://iq:8080') -createGlobalEnvironmentVariables('IQusername','admin') -createGlobalEnvironmentVariables('IQpassword','admin123') -println "Configured Environmental Variable for IQ server URL, please chack it matches your configuration" - -// save current Jenkins state to disk -jenkins.save() diff --git a/test/e2e/fixtures/users/admin.json b/test/e2e/fixtures/users/admin.json new file mode 100644 index 0000000..44b179d --- /dev/null +++ b/test/e2e/fixtures/users/admin.json @@ -0,0 +1,4 @@ +{ + "user": "admin", + "pass": "Admin_123" +} \ No newline at end of file diff --git a/test/e2e/fixtures/users/new_user.json b/test/e2e/fixtures/users/new_user.json new file mode 100644 index 0000000..215eea4 --- /dev/null +++ b/test/e2e/fixtures/users/new_user.json @@ -0,0 +1,6 @@ +{ + "user": "newGoat", + "firstName": "Joe", + "lastName": "Doe", + "pass": "123456" +} \ No newline at end of file diff --git a/test/e2e/fixtures/users/user.json b/test/e2e/fixtures/users/user.json new file mode 100644 index 0000000..f9bbbcf --- /dev/null +++ b/test/e2e/fixtures/users/user.json @@ -0,0 +1,4 @@ +{ + "user": "user1", + "pass": "User1_123" +} \ No newline at end of file diff --git a/test/e2e/integration/allocations_spec.js b/test/e2e/integration/allocations_spec.js new file mode 100644 index 0000000..664c4c7 --- /dev/null +++ b/test/e2e/integration/allocations_spec.js @@ -0,0 +1,48 @@ +/// + +describe("/allocations behaviour", () => { + "use strict"; + + before(() => { + cy.dbReset(); + }); + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/allocations/1"); + cy.url().should("include", "login"); + }); + + it("Should be accesible for a logged user", () => { + cy.userSignIn(); + cy.visitPage("/allocations/1"); + cy.url().should("include", "allocations"); + }); + + it("Should be an input", () => { + cy.userSignIn(); + cy.visitPage("/allocations/1"); + cy.get("input[name='threshold']"); + }); + + it("Should redirect the user", () => { + const threshold = 2; + cy.userSignIn(); + cy.visitPage("/allocations/1"); + + cy.get("input[name='threshold']") + .clear() + .type(threshold); + + cy.get("button[type='submit']") + .click(); + + cy.location().should((loc) => { + expect(loc.search).to.eq(`?threshold=${threshold}`); + expect(loc.pathname).to.eq("/allocations/1"); + }); + }); +}); diff --git a/test/e2e/integration/benefits_spec.js b/test/e2e/integration/benefits_spec.js new file mode 100644 index 0000000..8733200 --- /dev/null +++ b/test/e2e/integration/benefits_spec.js @@ -0,0 +1,54 @@ +/// + +describe("/login behaviour", () => { + "use strict"; + + before(() => { + cy.dbReset(); + }); + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/benefits"); + cy.url().should("include", "login"); + }); + + it("Should be accesible by default if the user is an admin", () => { + cy.adminSignIn(); + cy.visitPage("/benefits"); + cy.url().should("include", "benefits"); + }); + + it("Should be accesible if the user is not an admin", () => { + cy.userSignIn(); + cy.visitPage("/benefits"); + cy.url().should("include", "benefits"); + }); + + it("Should be a table with rows", () => { + cy.adminSignIn(); + cy.visitPage("/benefits"); + cy.get("table tr"); + }); + + it("Should data in the table be modified", () => { + cy.adminSignIn(); + cy.visitPage("/benefits"); + cy.get("input[name='benefitStartDate'") + .first() + .type("2099-01-10"); + + cy.get("button[type='submit']") + .first() + .click(); + + cy.url().should("include", "benefits"); + cy.get("input[name='benefitStartDate'") + .first() + .invoke("val") + .should("eq", "2099-01-10"); + }); +}); diff --git a/test/e2e/integration/contributions_spec.js b/test/e2e/integration/contributions_spec.js new file mode 100644 index 0000000..36e8fc2 --- /dev/null +++ b/test/e2e/integration/contributions_spec.js @@ -0,0 +1,55 @@ +/// + +describe("/contributions behaviour", () => { + "use strict"; + + before(() => { + cy.dbReset(); + }); + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/contributions"); + cy.url().should("include", "login"); + }); + + it("Should be accesible for a logged user", () => { + cy.userSignIn(); + cy.visitPage("/contributions"); + cy.url().should("include", "contributions"); + }); + + it("Should be a table with several inputs", () => { + cy.userSignIn(); + cy.visitPage("/contributions"); + cy.get("table") + .find("input") + .should("have.length", 3); + }); + + it("Should input be modified", () => { + const value = "12"; + cy.userSignIn(); + cy.visitPage("/contributions"); + cy.get("table") + .find("input") + .first() + .clear() + .type(value); + + cy.get("button[type='submit']") + .click(); + + cy.get("tbody > tr > td") + .eq(1) + .contains(`${value} %`); + + cy.get(".alert-success") + .should("be.visible"); + + cy.url().should("include", "contributions"); + }); +}); diff --git a/test/e2e/integration/dashboard_spec.js b/test/e2e/integration/dashboard_spec.js new file mode 100644 index 0000000..cf4f34a --- /dev/null +++ b/test/e2e/integration/dashboard_spec.js @@ -0,0 +1,38 @@ +/// + +describe("/dashboard behaviour", () => { + "use strict"; + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/dashboard"); + cy.url().should("include", "login"); + }); + + it("Should be accesible for a logged user", () => { + cy.userSignIn(); + cy.visitPage("/dashboard"); + cy.url().should("include", "dashboard"); + }); + + it("Should display information", () => { + cy.userSignIn(); + cy.visitPage("/dashboard"); + cy.url().should("include", "dashboard"); + cy.get(".panel") + .should("be.visible") + .should("have.length", 5); + }); + + it("Should have a link to /contributions", () => { + cy.userSignIn(); + cy.visitPage("/dashboard"); + cy.url().should("include", "dashboard"); + cy.get(".panel a") + .first() + .should("have.attr", "href", "/contributions"); + }); +}); diff --git a/test/e2e/integration/general_spec.js b/test/e2e/integration/general_spec.js new file mode 100644 index 0000000..c0346f9 --- /dev/null +++ b/test/e2e/integration/general_spec.js @@ -0,0 +1,77 @@ +/// + +describe("General behaviour", () => { + "use strict"; + + beforeEach(() => { + cy.adminSignIn(); + cy.visitPage("/"); + }); + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("should have all the links in the side menu", () => { + cy.get("#dashboard-menu-link") + .should("be.visible") + .should("have.attr", "href", "/"); + + cy.get("#contributions-menu-link") + .should("be.visible") + .should("have.attr", "href", "/contributions"); + + cy.get("#allocations-menu-link") + .should("be.visible") + .should("have.attr", "href", "/allocations/1"); + + cy.get("#memos-menu-link") + .should("be.visible") + .should("have.attr", "href", "/memos"); + + cy.get("#profile-menu-link") + .should("be.visible") + .should("have.attr", "href", "/profile"); + + const learnUrl = "https://www.khanacademy.org/" + + "economics-finance-domain/core-finance/investment-vehicles-tutorial/ira-401ks/v/traditional-iras"; + cy.get("#learn-menu-link") + .should("be.visible") + .should("have.attr", "target", "_blank") + .should("have.attr", "href", "/learn?url=" + learnUrl); + + cy.get("#research-menu-link") + .should("be.visible") + .should("have.attr", "href", "/research"); + + cy.get("#logout-menu-link") + .should("be.visible") + .should("have.attr", "href", "/logout"); + }); + + it("should have a profile menu", () => { + cy.get(".user-dropdown a") + .eq(0) + .invoke("text") + .should("eq", " Node Goat Admin "); + + cy.get(".user-dropdown a") + .eq(1) + .should("have.attr", "href", "/profile") + .invoke("text") + .should("eq", " Profile"); + + cy.get(".user-dropdown a") + .eq(2) + .should("have.attr", "href", "/logout") + .invoke("text") + .should("eq", " Log Out"); + }); + + it("should manage 404", () => { + cy.visitPage("/invented", { failOnStatusCode: false }); + cy.get("body") + .invoke("text") + .should("eq", "\nCannot GET /invented\n\n\n"); + }); +}); diff --git a/test/e2e/integration/learn_spec.js b/test/e2e/integration/learn_spec.js new file mode 100644 index 0000000..de0bd60 --- /dev/null +++ b/test/e2e/integration/learn_spec.js @@ -0,0 +1,20 @@ +/// + +describe("/learn behaviour", () => { + "use strict"; + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/learn?url=/dashboard"); + cy.url().should("include", "login"); + }); + + it("Should be accesible for a logged user", () => { + cy.userSignIn(); + cy.visitPage("/learn?url=/dashboard"); + cy.url().should("include", "dashboard"); + }); +}); diff --git a/test/e2e/integration/login_spec.js b/test/e2e/integration/login_spec.js new file mode 100644 index 0000000..ac4c9c4 --- /dev/null +++ b/test/e2e/integration/login_spec.js @@ -0,0 +1,92 @@ +/// + +describe("/login behaviour", () => { + "use strict"; + + before(() => { + cy.dbReset(); + }); + + afterEach(() => { + cy.visitPage("/logout"); + }); + + beforeEach(() => { + cy.visitPage("/login"); + }); + + it("should have tutorial Guide link", () => { + cy.get("a[href='/tutorial']") + .should("have.attr", "target", "_blank") + .and("be.visible"); + }); + + it("Should open the tutorial in another tab", () => { + cy.get("a[href='/tutorial']").then(function ($a) { + const href = + $a.prop("href"); + cy.visit(href); + cy.url().should("include", "tutorial"); + }); + }); + + it("should have admin user able to login", () => { + cy.fixture("users/admin.json").as("admin"); + cy.get("@admin").then(admin => { + cy.get("#userName").type(admin.user); + cy.get("#password").type(admin.pass); + cy.get("[type='submit']").click(); + cy.url().should("include", "benefits"); + }); + }); + + it("should have non-admin user able to login", () => { + cy.fixture("users/user.json").as("user"); + cy.get("@user").then(user => { + cy.get("#userName").type(user.user); + cy.get("#password").type(user.pass); + cy.get("[type='submit']").click(); + cy.url().should("include", "dashboard"); + }); + }); + + it("should reject wrong password", () => { + cy.fixture("users/user.json").as("user"); + cy.get("@user").then(user => { + cy.get("#userName").type(user.user); + cy.get("#password").type("TO BE REJECTED"); + cy.get("[type='submit']").click(); + + cy.url().should("include", "login"); + + cy.get(".alert-danger") + .contains("Invalid password") + .and("be.visible"); + }); + }); + + it("should reject wrong username", () => { + cy.fixture("users/user.json").as("user"); + cy.get("@user").then(user => { + cy.get("#userName").type("INVENTED"); + cy.get("#password").type(user.pass); + cy.get("[type='submit']").click(); + + cy.url().should("include", "login"); + + cy.get(".alert-danger") + .contains("Invalid username") + .and("be.visible"); + }); + }); + + it("should have new user/ sign up link", () => { + cy.get("a[href='/signup']") + .and("be.visible"); + }); + + it("Should redirect to the signup", () => { + cy.get("a[href='/signup']").click(); + cy.url().should("include", "signup"); + }); +}); diff --git a/test/e2e/integration/logout_spec.js b/test/e2e/integration/logout_spec.js new file mode 100644 index 0000000..7e44662 --- /dev/null +++ b/test/e2e/integration/logout_spec.js @@ -0,0 +1,30 @@ +/// + +describe("/logout behaviour", () => { + "use strict"; + + before(() => { + cy.dbReset(); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/logout"); + cy.url().should("include", "login"); + }); + + it("Should be working if the user is an admin", () => { + cy.adminSignIn(); + cy.visitPage("/logout"); + cy.url().should("include", "login"); + cy.visitPage("/dashboard"); + cy.url().should("include", "login"); + }); + + it("Should be working if the user is not an admin", () => { + cy.userSignIn(); + cy.visitPage("/logout"); + cy.url().should("include", "login"); + cy.visitPage("/dashboard"); + cy.url().should("include", "login"); + }); +}); diff --git a/test/e2e/integration/memos_spec.js b/test/e2e/integration/memos_spec.js new file mode 100644 index 0000000..78e3766 --- /dev/null +++ b/test/e2e/integration/memos_spec.js @@ -0,0 +1,49 @@ +/// + +describe("/memos behaviour", () => { + "use strict"; + + before(() => { + cy.dbReset(); + }); + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/memos"); + cy.url().should("include", "login"); + }); + + it("Should be accesible for a logged user", () => { + cy.userSignIn(); + cy.visitPage("/memos"); + cy.url().should("include", "memos"); + }); + + it("Should exists a textarea", () => { + cy.userSignIn(); + cy.visitPage("/memos"); + cy.get("textarea[name='memo']"); + }); + + it("Should memo be generated", () => { + const text = "Hello World!"; + + cy.userSignIn(); + cy.visitPage("/memos"); + cy.get("textarea[name='memo']") + .clear() + .type(text); + + cy.get("button[type='submit']") + .click(); + + cy.url().should("include", "memos"); + + cy.get(".panel-body > p") + .should("be.visible") + .contains(text); + }); +}); diff --git a/test/e2e/integration/profile_spec.js b/test/e2e/integration/profile_spec.js new file mode 100644 index 0000000..9d093eb --- /dev/null +++ b/test/e2e/integration/profile_spec.js @@ -0,0 +1,70 @@ +/// + +describe("/profile behaviour", () => { + "use strict"; + + before(() => { + cy.dbReset(); + }); + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/profile"); + cy.url().should("include", "login"); + }); + + it("Should be accesible for logged user", () => { + cy.userSignIn(); + cy.visitPage("/profile"); + cy.url().should("include", "profile"); + }); + + it("Should be a form with inputs", () => { + cy.userSignIn(); + cy.visitPage("/profile"); + cy.get("form[role='form']") + .find("input") + .should("have.length", 9); + }); + + it("Should first name be modified", () => { + const newName = "My new name!"; + const bankRouting = "0198212#"; + cy.userSignIn(); + cy.visitPage("/profile"); + cy.get("#firstName") + .clear() + .type(newName); + + cy.get("#bankRouting") + .clear() + .type(bankRouting); + + cy.get("button[type='submit']") + .first() + .click(); + + cy.url().should("include", "profile"); + + cy.get(".alert-success") + .should("be.visible"); + // @TODO: Just commented for CI, this MUST be improved + /* + cy.get("#firstName") + .invoke("val") + .should("eq", newName); + */ + }); + + it("Google search this profile by name", () => { + cy.userSignIn(); + cy.visitPage("/profile"); + + cy.get("form[role='form'] a") + .should("be.visible") + .should("have.attr", "href"); + }); +}); diff --git a/test/e2e/integration/research_spec.js b/test/e2e/integration/research_spec.js new file mode 100644 index 0000000..943c8f1 --- /dev/null +++ b/test/e2e/integration/research_spec.js @@ -0,0 +1,46 @@ +/// + +describe("/research behaviour", () => { + "use strict"; + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should redirect if the user has not logged in", () => { + cy.visitPage("/research"); + cy.url().should("include", "login"); + }); + + it("Should be accesible for a logged user", () => { + cy.userSignIn(); + cy.visitPage("/research"); + cy.url().should("include", "research"); + }); + + it("Should be a form with an input", () => { + cy.userSignIn(); + cy.visitPage("/research"); + cy.get("form[role='search']") + .find("input"); + }); + + it("Should have an input text as a valid stock symbol", () => { + const stockSymbol = "AAPL"; + cy.userSignIn(); + cy.visitPage("/research"); + cy.get(".form-control") + .clear() + .type(stockSymbol); + + cy.get("form") + .should("have.attr", "action", "/research") + .invoke("attr", "action", "/skip"); + + cy.get("button[type='submit']") + .first() + .click(); + + cy.url().should("include", "https%3A%2F%2Ffinance.yahoo.com%2Fquote%2F&symbol=AAPL"); + }); +}); diff --git a/test/e2e/integration/signup_spec.js b/test/e2e/integration/signup_spec.js new file mode 100644 index 0000000..27918c1 --- /dev/null +++ b/test/e2e/integration/signup_spec.js @@ -0,0 +1,76 @@ +/// + +describe("/signup behaviour", () => { + "use strict"; + + before(() => { + cy.dbReset(); + }); + + afterEach(() => { + cy.visitPage("/logout"); + }); + + it("Should not redirect if the user has not logged in", () => { + cy.visitPage("/signup"); + cy.url().should("include", "signup"); + }); + + it("Should not redirect if the user has logged in", () => { + cy.visitPage("/signup"); + cy.url().should("include", "signup"); + }); + + it("Should be a form with inputs", () => { + cy.visitPage("/signup"); + cy.get("form[role='form']") + .find("input") + .should("have.length", 7); + }); + + it("Should new user be added to the system", () => { + cy.fixture("users/new_user.json").as("newUser"); + cy.get("@newUser").then(newUser => { + cy.visitPage("/signup"); + + cy.get("#userName") + .clear() + .type(newUser.user); + + cy.get("#firstName") + .clear() + .type(newUser.firstName); + + cy.get("#lastName") + .clear() + .type(newUser.lastName); + + cy.get("#password") + .clear() + .type(newUser.pass); + + cy.get("#verify") + .clear() + .type(newUser.pass); + + cy.get("button[type='submit']") + .first() + .click(); + + cy.get(".alert-danger").should("not.be.visible"); + + cy.get(".breadcrumb > li") + .invoke("text") + .should("eq", " Dashboard"); + }); + }); + + it("Should new user be able to login in the system", () => { + cy.fixture("users/new_user.json").as("newUser"); + cy.get("@newUser").then(newUser => { + cy.signIn(newUser.user, newUser.pass); + cy.visitPage("/dashboard"); + cy.url().should("include", "dashboard"); + }); + }); +}); diff --git a/test/e2e/integration/tutorial_spec.js b/test/e2e/integration/tutorial_spec.js new file mode 100644 index 0000000..81932f1 --- /dev/null +++ b/test/e2e/integration/tutorial_spec.js @@ -0,0 +1,73 @@ +/// + +describe("/tutorial behaviour", () => { + "use strict"; + + it("Should have all the links in the side nav", () => { + cy.visitPage("/tutorial"); + cy.url().should("include", "tutorial"); + cy.get(".side-nav") + .should("be.visible") + .find("a") + .should("have.length", 12); + }); + + it("Should exists /tutorial/a1", () => { + cy.visitPage("/tutorial/a1"); + cy.url().should("include", "a1"); + }); + + it("Should exists /tutorial/a2", () => { + cy.visitPage("/tutorial/a2"); + cy.url().should("include", "a2"); + }); + + it("Should exists /tutorial/a3", () => { + cy.visitPage("/tutorial/a3"); + cy.url().should("include", "a3"); + }); + it("Should exists /tutorial/a4", () => { + cy.visitPage("/tutorial/a4"); + cy.url().should("include", "a4"); + }); + + it("Should exists /tutorial/a5", () => { + cy.visitPage("/tutorial/a5"); + cy.url().should("include", "a5"); + }); + + it("Should exists /tutorial/a6", () => { + cy.visitPage("/tutorial/a6"); + cy.url().should("include", "a6"); + }); + + it("Should exists /tutorial/a7", () => { + cy.visitPage("/tutorial/a7"); + cy.url().should("include", "a7"); + }); + + it("Should exists /tutorial/a8", () => { + cy.visitPage("/tutorial/a8"); + cy.url().should("include", "a8"); + }); + + it("Should exists /tutorial/a9", () => { + cy.visitPage("/tutorial/a9"); + cy.url().should("include", "a9"); + }); + + it("Should exists /tutorial/a10", () => { + cy.visitPage("/tutorial/a10"); + cy.url().should("include", "a10"); + }); + + it("Should exists /tutorial/redos", () => { + cy.visitPage("/tutorial/redos"); + cy.url().should("include", "redos"); + }); + + it("Should exists /tutorial/ssrf", () => { + cy.visitPage("/tutorial/ssrf"); + cy.url().should("include", "ssrf"); + }); +}); diff --git a/test/e2e/plugins/index.js b/test/e2e/plugins/index.js new file mode 100644 index 0000000..5ad229d --- /dev/null +++ b/test/e2e/plugins/index.js @@ -0,0 +1,23 @@ +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** + +const { port, hostName } = require("../../../config/env/all"); + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) +// `on` is used to hook into various events Cypress emits +// `config` is the resolved Cypress config +module.exports = (on, config) => { + "use strict"; + + config.baseUrl = `http://${hostName}:${port}`; + + return config; +}; diff --git a/test/e2e/support/commands.js b/test/e2e/support/commands.js new file mode 100644 index 0000000..0ac5e1b --- /dev/null +++ b/test/e2e/support/commands.js @@ -0,0 +1,36 @@ +(function() { + "use strict"; + + Cypress.Commands.add("signIn", (usr, pw) => { + cy.visitPage("/login"); + cy.get("#userName").type(usr); + cy.get("#password").type(pw); + cy.get("[type='submit']").click(); + }); + + Cypress.Commands.add("adminSignIn", () => { + cy.fixture("users/admin.json").as("admin"); + cy.get("@admin").then(admin => { + cy.signIn(admin.user, admin.pass); + }); + }); + + Cypress.Commands.add("userSignIn", () => { + cy.fixture("users/user.json").as("user"); + cy.get("@user").then(user => { + cy.signIn(user.user, user.pass); + }); + }); + + Cypress.Commands.add("visitPage", (path = "/", config = {}) => { + cy.visit(path, config); + }); + + Cypress.Commands.add("dbReset", () => { + cy.exec("npm run db:seed", { + timeout: 6000, + failOnNonZeroExit: false + }); + }); + +}()); diff --git a/test/e2e/support/index.js b/test/e2e/support/index.js new file mode 100644 index 0000000..e71113a --- /dev/null +++ b/test/e2e/support/index.js @@ -0,0 +1,2 @@ + +require("./commands.js"); diff --git a/test/e2e/tsconfig.json b/test/e2e/tsconfig.json new file mode 100644 index 0000000..756a92b --- /dev/null +++ b/test/e2e/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "allowJs": true, + "baseUrl": "../node_modules", + "types": [ + "cypress" + ] + }, + "include": [ + "**/*.*" + ] + } \ No newline at end of file diff --git a/test/security/profile-test.js b/test/security/profile-test.js new file mode 100644 index 0000000..414aa27 --- /dev/null +++ b/test/security/profile-test.js @@ -0,0 +1,290 @@ +var config = require("../../config/config"); +var assert = require("assert"); +var should = require("should"); +var async = require("async"); +var By = require("selenium-webdriver").By; +var chromeDriver = require("chromedriver"); + +// Documentation for the selenium JS webdriver: https://code.google.com/p/selenium/wiki/WebDriverJs +var seleniumWebdriver = require("selenium-webdriver"); +var webDriver; +var chrome = require("selenium-webdriver/chrome"); +var test = require("selenium-webdriver/testing"); +var proxy = require("selenium-webdriver/proxy"); +var path = chromeDriver.path; +var service = new chrome.ServiceBuilder(path).build(); + +// SUT is an acronym for System Under Test. +var sutProtocol = "http://"; +var zapTargetApp = sutProtocol + config.hostName + ":" + config.port + "/"; +var zapOptions = { + proxy: (sutProtocol + config.zapHostName + ":" + config.zapPort + "/"), + targetApp: zapTargetApp +}; +var ZapClient = require("zaproxy"); +var zaproxy = new ZapClient(zapOptions); +var zapTargetAppRoute = "profile"; +var zapTargetAppAndRoute = zapTargetApp + zapTargetAppRoute; +var zapApiKey = config.zapApiKey; +var fs = require("fs"); + +var state = { + description: "", + error: null +}; + +var sutUserName = "user1"; +var sutUserPassword = "User1_123"; + +chrome.setDefaultService(service); + +// Easiest way to understand how this works and go through the steps is to +// setup authentication for a user using Zap manually first +// using the following link: https://github.com/zaproxy/zaproxy/wiki/FAQformauth +// Then browse the Zap API viewing the existing manual setup through the views. Use that to formulate your code. +// Another link I found useful: // http://stackoverflow.com/questions/27596775/zap-authentication-using-api-calls + +test.before(function() { + "use strict"; + this.timeout(20000); + webDriver = new seleniumWebdriver.Builder() + .withCapabilities(seleniumWebdriver.Capabilities.chrome()) + // http://code.tutsplus.com/tutorials/an-introduction-to-webdriver-using-the-javascript-bindings--cms-21855 + // Proxy all requests through Zap before using Zap to find vulnerabilities, + // otherwise Zap will say: "URL not found in the scan tree". + .setProxy(proxy.manual({ + http: config.zapHostName + ":" + config.zapPort + })) + .build(); + webDriver.getWindowHandle(); + webDriver.get(zapTargetApp); + webDriver.sleep(1000); + webDriver.findElement(By.name("userName")).sendKeys(sutUserName); + webDriver.findElement(By.name("password")).sendKeys(sutUserPassword); + webDriver.sleep(1000); + webDriver.findElement({ + tagName: "button", + type: "submit" + }).click(); + webDriver.sleep(1000); + webDriver.get(zapTargetAppAndRoute); + webDriver.sleep(1000); + webDriver.findElement(By.name("firstName")).sendKeys("seleniumJohn"); + webDriver.findElement(By.name("lastName")).sendKeys("seleniumDoe"); + webDriver.findElement(By.name("ssn")).sendKeys("seleniumSSN"); + webDriver.findElement(By.name("dob")).sendKeys("12/23/5678"); + webDriver.findElement(By.name("bankAcc")).sendKeys("seleniumBankAcc"); + webDriver.findElement(By.name("bankRouting")).sendKeys("0198212#"); + webDriver.findElement(By.name("address")).sendKeys("seleniumAddress"); + webDriver.findElement(By.name("submit")).click(); + webDriver.sleep(1000); +}); +test.after(function() { + "use strict"; + var overWrite = true; + this.timeout(10000); + webDriver.quit(); + zaproxy.core.newSession("new NodeGoat session", overWrite, zapApiKey, function() {}); + //zaproxy.core.shutdown(zapApiKey, function () {}); +}); + + +test.describe(zapTargetAppRoute + " regression test suite", function() { + "use strict"; + this.timeout(0); + + // Links that were useful for getting up and running: + // http://simpleprogrammer.com/2014/02/03/selenium-with-node-js/ + // http://www.vapidspace.com/coding/2014/02/08/automating-selenium-tests-with-grunt-and-mocha/ + // http://bites.goodeggs.com/posts/selenium-webdriver-nodejs-tutorial/ + test.it("Should not exceed the decided threshold of vulnerabilities known to Zap", function(done) { + var contextId = 1; + var userId; + var maxChildren = 1; + var alertThreshold = 3; + var numberOfAlerts; + var scanId; + var zapInProgressIntervalId; + // Todo: Let's do something with resultsFromAllAsyncSeriesFunctions. + var onCompletion = function(error, resultsFromAllAsyncSeriesFunctions) { + if (!error) + console.log( + resultsFromAllAsyncSeriesFunctions[resultsFromAllAsyncSeriesFunctions.length - 1].description + ); + else throw error; + if (numberOfAlerts > alertThreshold) { + console.log( + "Search the generated report for \"/" + + zapTargetAppRoute + + "\" to see the " + + (numberOfAlerts - alertThreshold) + + " vulnerabilities that exceed the user defined threshold of: " + + alertThreshold + ); + } + numberOfAlerts.should.be.lessThanOrEqual(alertThreshold); + done(); + }; + + async.series([ + + function spider(spiderDone) { + zaproxy.spider.scan(zapTargetApp, maxChildren, zapApiKey, function(err, resp) { + spiderDone(state.error, state); + }); + }, + function includeInZapContext(includeInZapContextDone) { + // Inform Zap how to authenticate itself. + zaproxy.context.includeInContext("Default Context", "\\Q" + zapTargetApp + "\E.*", zapApiKey, + function(err, resp) { + includeInZapContextDone(state.error); + } + ); + }, + function setAuthenticationMethod(setAuthenticationMethodDone) { + zaproxy.authentication.setAuthenticationMethod( + contextId, + "formBasedAuthentication", + // Only the 'userName' onwards must be URL encoded. URL encoding entire line doesn't work. + "loginUrl=" + + zapTargetApp + + "login&loginRequestData=" + + "userName%3D%7B%25username%25%7D%26password%3D%7B%25password%25%7D%26_csrf%3D", + zapApiKey, + function(err, resp) { + setAuthenticationMethodDone(state.error); + + } + ); + }, + function setLoggedInIndicator(setLoggedInIndicatorDone) { + // contextId, loggedInIndicatorRegex + zaproxy.authentication.setLoggedInIndicator( + contextId, + "\Q

    Moved Temporarily. Redirecting to /dashboard

    \E", + zapApiKey, + function(err, resp) { + setLoggedInIndicatorDone(state.error); + } + ); + }, + function setForcedUserModeEnabled(setForcedUserModeEnabledDone) { + var enabled = true; + zaproxy.forcedUser.setForcedUserModeEnabled(enabled, zapApiKey, function(err, resp) { + setForcedUserModeEnabledDone(state.error); + }); + }, + function newUser(newUserDone) { + zaproxy.users.newUser(contextId, sutUserName, zapApiKey, function(err, resp) { + userId = resp.userId; + newUserDone(state.error); + }); + }, + function setForcedUser(setForcedUserDone) { + zaproxy.forcedUser.setForcedUser(contextId, userId, zapApiKey, function(err, resp) { + setForcedUserDone(state.error); + }); + }, + function setAuthenticationCredentials(setAuthenticationCredentialsDone) { + zaproxy.users.setAuthenticationCredentials( + contextId, + userId, + "username=" + sutUserName + "&" + "password=" + sutUserPassword, + zapApiKey, + function(err, resp) { + setAuthenticationCredentialsDone(state.error); + } + ); + }, + function setUserEnabled(setUserEnabledDone) { // User should already be enabled? + var enabled = true; + zaproxy.users.setUserEnabled(contextId, userId, enabled, zapApiKey, function(err, resp) { + setUserEnabledDone(state.error); + }); + }, + function spiderAsUserForRoot(spiderAsUserForDone) { + zaproxy.spider.scanAsUser(zapTargetApp, contextId, userId, maxChildren, zapApiKey, function(err, resp) { + spiderAsUserForDone(state.error); + }); + }, + function activeScan(activeScanDone) { + zaproxy.ascan.scan( + zapTargetAppAndRoute, + true, + false, + "", + "POST", + "firstName=JohnseleniumJohn&lastName=DoeseleniumDoe&ssn=seleniumSSN&dob=12/23/5678&" + + "bankAcc=seleniumBankAcc&bankRouting=0198212#&address=seleniumAddress&_csrf=&submit=", + zapApiKey, + function(err, resp) { + var statusValue; + var zapError; + + scanId = resp.scan; + + function status() { + zaproxy.ascan.status(scanId, function(err, resp) { + if (resp) statusValue = resp.status; + if (err) zapError = (err.code === "ECONNREFUSED") ? err : ""; + zaproxy.core.numberOfAlerts(zapTargetAppAndRoute, function(err, resp) { + if (resp) numberOfAlerts = resp.numberOfAlerts; + //else console.log(err); + console.log( + "Scan " + + scanId + + " is " + + statusValue + + "% complete with " + + numberOfAlerts + + " alerts." + ); + }); + }); + } + zapInProgressIntervalId = setInterval(function() { + status(); + if (zapError && statusValue !== String(100)) { + console.log("Canceling test. Zap API is unreachible."); + clearInterval(zapInProgressIntervalId); + activeScanDone(zapError); + } else if (statusValue === String(100)) { + console.log( + "We are finishing scan " + + scanId + + ". Please see the report for further details." + ); + clearInterval(zapInProgressIntervalId); + status(); + console.log("About to write report."); + zaproxy.core.htmlreport(zapApiKey, function(err, resp) { + var date = new Date(); + var reportPath = __dirname + + "/report_" + + date.getFullYear() + + "-" + + (date.getMonth() + 1) + + "-" + + date.getDate() + + "-" + + date.getHours() + + "-" + + date.getMinutes() + + ".html"; + console.log("Writing report to " + reportPath); + fs.writeFile(reportPath, resp, function(err) { + if (err) console.log(err); + activeScanDone(state.error, state); + }); + }); + + } + }, config.zapApiFeedbackSpeed); + + }); + } + ], onCompletion); + + }); + +});