add build env for was grunt build 77/146977/3
authornke94 <nke94@samsung.com>
Thu, 31 Aug 2017 10:08:43 +0000 (19:08 +0900)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Sun, 3 Sep 2017 03:58:30 +0000 (12:58 +0900)
Change-Id: I4bb5cd3f9d6575863b707d5c25f5414e148a92f3
Signed-off-by: nke94 <nke94@samsung.com>
16 files changed:
wrt/build/.babelrc [new file with mode: 0644]
wrt/build/.eslintrc [new file with mode: 0644]
wrt/build/Gruntfile.coffee [new file with mode: 0644]
wrt/build/lib/uses-babel.coffee [new file with mode: 0644]
wrt/build/package-lock.json [new file with mode: 0644]
wrt/build/package.json [new file with mode: 0644]
wrt/build/tasks/build-task.coffee [new file with mode: 0644]
wrt/build/tasks/generate-asar-task.coffee [new file with mode: 0644]
wrt/build/tasks/task-helpers.coffee [new file with mode: 0644]
wrt/build/tasks/was-runtime-test.coffee [new file with mode: 0644]
wrt/build/test/installer/js/unittest.database.js [new file with mode: 0644]
wrt/build/test/installer/js/unittest.installer.js [new file with mode: 0644]
wrt/build/test/runtime/js/main-process/unittest.runtime.main.js [new file with mode: 0644]
wrt/build/test/runtime/js/main-process/unittest.runtime.runtime.js [new file with mode: 0644]
wrt/build/test/runtime/js/main-process/unittest.runtime.web_application.js [new file with mode: 0644]
wrt/build/test/runtime/js/renderer-process/unittest.runtime.web_application.js [new file with mode: 0644]

diff --git a/wrt/build/.babelrc b/wrt/build/.babelrc
new file mode 100644 (file)
index 0000000..c13c5f6
--- /dev/null
@@ -0,0 +1,3 @@
+{
+  "presets": ["es2015"]
+}
diff --git a/wrt/build/.eslintrc b/wrt/build/.eslintrc
new file mode 100644 (file)
index 0000000..4a19d78
--- /dev/null
@@ -0,0 +1,40 @@
+{
+  "globals":{
+    "describe": true,
+    "assert": true,
+    "before":true,
+    "after":true,
+    "it": true
+  },
+  "rules": {
+    "indent": [
+      2,
+      4,{
+        "SwitchCase":1
+      }
+    ],
+    "quotes": [
+      2,
+      "single"
+    ],
+    "linebreak-style": [
+      2,
+      "unix"
+    ],
+    "semi": [
+      2,
+      "always"
+    ],
+    "no-unused-vars": [
+      1,
+      {"args":"all"}
+    ],
+    "strict": [0, "global"]
+  },
+  "env": {
+    "es6": true,
+    "node": true,
+    "browser": true
+  },
+  "extends": "eslint:recommended"
+}
\ No newline at end of file
diff --git a/wrt/build/Gruntfile.coffee b/wrt/build/Gruntfile.coffee
new file mode 100644 (file)
index 0000000..5dbea96
--- /dev/null
@@ -0,0 +1,189 @@
+fs = require 'fs'
+path = require 'path'
+os = require 'os'
+glob = require 'glob'
+usesBabel = require './lib/uses-babel'
+electronBinaryPath = path.resolve(__dirname, '../','electron_binary', 'electron-v0.31.0-linux-x64');
+process.env.ELECTRON_PATH = electronBinaryPath;
+# # Add support for obselete APIs of vm module so we can make some third-party
+# # modules work under node v0.11.x.
+# require 'vm-compatibility-layer'
+
+_ = require 'underscore-plus'
+
+packageJson = require '../package.json'
+
+module.exports = (grunt) ->
+
+  grunt.loadNpmTasks('grunt-coffeelint')
+  grunt.loadNpmTasks('grunt-lesslint')
+  grunt.loadNpmTasks('grunt-standard')
+  grunt.loadNpmTasks('grunt-cson')
+  grunt.loadNpmTasks('grunt-contrib-csslint')
+  grunt.loadNpmTasks('grunt-contrib-coffee')
+  grunt.loadNpmTasks('grunt-contrib-clean')
+  # grunt.loadNpmTasks('grunt-contrib-less')
+  # grunt.loadNpmTasks('grunt-shell')
+  grunt.loadNpmTasks('grunt-babel')
+  grunt.loadNpmTasks('grunt-eslint')
+  # grunt.loadNpmTasks('grunt-electron-installer')
+  grunt.loadTasks('tasks')
+  # grunt.loadNpmTasks('grunt-peg')
+  # grunt.loadNpmTasks('grunt-download-atom-shell')
+
+  grunt.loadNpmTasks('grunt-mocha-cli')
+
+  # This allows all subsequent paths to the relative to the root of the repo
+  grunt.file.setBase(path.resolve('..'))
+
+  if not grunt.option('verbose')
+    grunt.log.writeln = (args...) -> grunt.log
+    grunt.log.write = (args...) -> grunt.log
+
+  [major, minor, patch] = packageJson.version.split('.')
+  # tmpDir = os.tmpdir()
+  runtimeName = 'wrt'
+  wrtDir = path.join(path.resolve(), runtimeName)
+  babelCompiledDir = path.join(path.resolve(), 'babel_compiled')
+  asarPacagePath = path.join(path.resolve(), 'out','R','resources','app.asar')
+  appName = if process.platform is 'darwin' then 'was.app' else 'was'
+  buildDir = path.join( path.resolve(), 'out', 'R' )
+  buildDir = path.resolve(buildDir)
+  installDir = grunt.option('install-dir')
+
+  home = if process.platform is 'win32' then process.env.USERPROFILE else process.env.HOME
+  atomShellDownloadDir = path.join(home, '.atom', 'atom-shell')
+
+  symbolsDir = path.join(buildDir, 'Atom.breakpad.syms')
+  # shellAppDir = path.join(buildDir, appName)
+  shellAppDir = buildDir
+  if process.platform is 'win32'
+    contentsDir = shellAppDir
+    appDir = path.join(shellAppDir, 'resources', 'app')
+    installDir ?= path.join(process.env.ProgramFiles, appName)
+    killCommand = 'taskkill /F /IM atom.exe'
+  else if process.platform is 'darwin'
+    contentsDir = path.join(shellAppDir, 'Contents')
+    appDir = path.join(contentsDir, 'Resources', 'app')
+    installDir ?= path.join('/Applications', appName)
+    killCommand = 'pkill -9 Atom'
+  else
+    contentsDir = shellAppDir
+    appDir = path.join(shellAppDir, 'resources', 'app')
+    installDir ?= process.env.INSTALL_PREFIX ? '/usr/local'
+    killCommand ='pkill -9 atom'
+
+  console.log('wrtDir : ' +wrtDir)
+  coffeeConfig =
+    glob_to_multiple:
+      expand: true
+      src: [
+        '**/*.coffee'
+      ]
+      dest: path.resolve()
+      ext: '.js'
+  babelConfig =
+    options:
+      sourceMap: true
+      presets: ['es2015']
+    dist:
+      files: []
+  for jsFile in glob.sync('src/**/*.js')
+    if usesBabel(jsFile)
+      console.log 'use babel : #{jsFile}'
+      babelConfig.dist.files.push({
+        src: [jsFile]
+        dest: path.join(babelCompiledDir, jsFile)
+      })
+  eslintConfig =
+    options:
+      configFile: 'build/.eslintrc'
+    target: ['src/**/*.js','build/test/**/*.js']
+
+  grunt.initConfig
+    pkg: grunt.file.readJSON('package.json')
+
+    was: {appDir, appName, symbolsDir, buildDir, contentsDir, installDir, shellAppDir, wrtDir, babelCompiledDir}
+    clean:
+      babel: [babelCompiledDir]
+      asar: [asarPacagePath]
+    coffee: coffeeConfig
+    babel: babelConfig
+    coffeelint:
+      options:
+        configFile: 'coffeelint.json'
+      src: [
+        '**/*.coffee'
+      ]
+      build: [
+        'build/tasks/**/*.coffee'
+        'build/Gruntfile.coffee'
+      ]
+    eslint: eslintConfig
+      # test: [
+      #   'spec/*.coffee'
+      # ]
+
+    # standard:
+    #   src: [
+    #     'src/**/*.js'
+    #     'static/*.js'
+    #   ]
+
+    mochacli:
+      options:
+        reporter: 'spec'
+      installer: ['build/test/installer/*.js']
+#      all: ['build/test/**/*.js', 'build/test/**/**/*.js', 'build/test/**/**/**/**/*.js']
+
+
+    # 'download-atom-shell':
+    #   version: packageJson.atomShellVersion
+    #   outputDir: 'atom-shell'
+    #   downloadDir: atomShellDownloadDir
+    #   rebuild: true  # rebuild native modules after atom-shell is updated
+    #   token: process.env.ATOM_ACCESS_TOKEN
+
+    # 'create-windows-installer':
+    #   installer:
+    #     appDirectory: shellAppDir
+    #     outputDirectory: path.join(buildDir, 'installer')
+    #     authors: 'GitHub Inc.'
+    #     loadingGif: path.resolve(__dirname, '..', 'resources', 'win', 'loading.gif')
+    #     iconUrl: 'https://raw.githubusercontent.com/atom/atom/master/resources/win/atom.ico'
+    #     setupIcon: path.resolve(__dirname, '..', 'resources', 'win', 'atom.ico')
+    #     remoteReleases: 'https://atom.io/api/updates'
+
+    # shell:
+    #   'kill-atom':
+    #     command: killCommand
+    #     options:
+    #       stdout: false
+    #       stderr: false
+    #       failOnError: false
+
+  grunt.registerTask('compile', ['coffee', 'babel'])
+  grunt.registerTask('lint', ['eslint'])
+  # grunt.registerTask('test', ['shell:kill-atom', 'run-specs'])
+
+  # ciTasks = ['output-disk-space', 'download-atom-shell', 'download-atom-shell-chromedriver', 'build']
+  # ciTasks.push('dump-symbols') if process.platform isnt 'win32'
+  # ciTasks.push('set-version', 'check-licenses', 'lint', 'generate-asar')
+  # ciTasks.push('mkdeb') if process.platform is 'linux'
+  # ciTasks.push('codesign:exe') if process.platform is 'win32' and not process.env.TRAVIS
+  # ciTasks.push('create-windows-installer:installer') if process.platform is 'win32'
+  # ciTasks.push('test') if process.platform is 'darwin'
+  # ciTasks.push('codesign:installer') if process.platform is 'win32' and not process.env.TRAVIS
+  # ciTasks.push('codesign:app') if process.platform is 'darwin' and not process.env.TRAVIS
+  # ciTasks.push('publish-build') unless process.env.TRAVIS
+  # grunt.registerTask('ci', ciTasks)
+
+  # defaultTasks = ['download-atom-shell', 'download-atom-shell-chromedriver', 'build', 'set-version', 'generate-asar']
+  defaultTasks = ['clean', 'lint', 'compile', 'build', 'generate-asar']
+#  defaultTasks = ['clean', 'lint', 'compile', 'build', 'generate-asar']
+  # defaultTasks = ['lint', 'compile']
+  # defaultTasks.push 'install' unless process.platform is 'linux'
+  # defaultTasks.push 'lint'
+  # defaultTasks.push 'compile'
+  grunt.registerTask('default', defaultTasks)
+  grunt.registerTask('test', ['clean', 'mochacli', 'runtime-main-process-test'])
diff --git a/wrt/build/lib/uses-babel.coffee b/wrt/build/lib/uses-babel.coffee
new file mode 100644 (file)
index 0000000..dcd480d
--- /dev/null
@@ -0,0 +1,18 @@
+fs = require 'fs'
+
+BABEL_PREFIXES = [
+  "'use babel'"
+  '"use babel"'
+  '/** @babel */'
+]
+
+PREFIX_LENGTH = Math.max(BABEL_PREFIXES.map((prefix) -> prefix.length)...)
+
+buffer = Buffer(PREFIX_LENGTH)
+
+module.exports = (filename) ->
+  file = fs.openSync(filename, 'r')
+  fs.readSync(file, buffer, 0, PREFIX_LENGTH)
+  fs.closeSync(file)
+  BABEL_PREFIXES.some (prefix) ->
+    prefix is buffer.toString('utf8', 0, prefix.length)
diff --git a/wrt/build/package-lock.json b/wrt/build/package-lock.json
new file mode 100644 (file)
index 0000000..b889d84
--- /dev/null
@@ -0,0 +1,6774 @@
+{
+  "name": "jsr",
+  "version": "0.1.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "abbrev": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
+      "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
+      "dev": true
+    },
+    "ajv": {
+      "version": "4.11.8",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+      "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "co": "4.6.0",
+        "json-stable-stringify": "1.0.1"
+      }
+    },
+    "align-text": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+      "dev": true,
+      "requires": {
+        "kind-of": "3.2.2",
+        "longest": "1.0.1",
+        "repeat-string": "1.6.1"
+      }
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+      "dev": true
+    },
+    "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=",
+      "dev": true
+    },
+    "ansi-styles": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+      "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+      "dev": true
+    },
+    "argparse": {
+      "version": "0.1.16",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+      "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+      "dev": true,
+      "requires": {
+        "underscore": "1.7.0",
+        "underscore.string": "2.4.0"
+      },
+      "dependencies": {
+        "underscore": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+          "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
+          "dev": true
+        },
+        "underscore.string": {
+          "version": "2.4.0",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+          "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
+          "dev": true
+        }
+      }
+    },
+    "array-union": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+      "dev": true,
+      "requires": {
+        "array-uniq": "1.0.3"
+      }
+    },
+    "array-uniq": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+      "dev": true
+    },
+    "arrify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+      "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+      "dev": true
+    },
+    "asn1": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+      "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+      "dev": true,
+      "optional": true
+    },
+    "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,
+      "optional": true
+    },
+    "async": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+      "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+      "dev": true
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+      "dev": true,
+      "optional": true
+    },
+    "aws-sign": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.3.0.tgz",
+      "integrity": "sha1-PYHKabR0seFlGHKLUcJP8Lvtxuk=",
+      "dev": true
+    },
+    "aws-sign2": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+      "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+      "dev": true,
+      "optional": true
+    },
+    "aws4": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+      "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+      "dev": true,
+      "optional": true
+    },
+    "babel-code-frame": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+      "dev": true,
+      "requires": {
+        "chalk": "1.1.3",
+        "esutils": "2.0.2",
+        "js-tokens": "3.0.2"
+      }
+    },
+    "babel-core": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
+      "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "6.26.0",
+        "babel-generator": "6.26.0",
+        "babel-helpers": "6.24.1",
+        "babel-messages": "6.23.0",
+        "babel-register": "6.26.0",
+        "babel-runtime": "6.26.0",
+        "babel-template": "6.26.0",
+        "babel-traverse": "6.26.0",
+        "babel-types": "6.26.0",
+        "babylon": "6.18.0",
+        "convert-source-map": "1.5.0",
+        "debug": "2.6.8",
+        "json5": "0.5.1",
+        "lodash": "4.17.4",
+        "minimatch": "3.0.4",
+        "path-is-absolute": "1.0.1",
+        "private": "0.1.7",
+        "slash": "1.0.0",
+        "source-map": "0.5.7"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.8",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+          "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+          "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+          "dev": true
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+          "dev": true,
+          "requires": {
+            "brace-expansion": "1.1.8"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "babel-generator": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
+      "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
+      "dev": true,
+      "requires": {
+        "babel-messages": "6.23.0",
+        "babel-runtime": "6.26.0",
+        "babel-types": "6.26.0",
+        "detect-indent": "4.0.0",
+        "jsesc": "1.3.0",
+        "lodash": "4.17.4",
+        "source-map": "0.5.7",
+        "trim-right": "1.0.1"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.4",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+          "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+          "dev": true
+        }
+      }
+    },
+    "babel-helpers": {
+      "version": "6.24.1",
+      "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+      "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "babel-template": "6.26.0"
+      }
+    },
+    "babel-messages": {
+      "version": "6.23.0",
+      "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "6.26.0"
+      }
+    },
+    "babel-register": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+      "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+      "dev": true,
+      "requires": {
+        "babel-core": "6.26.0",
+        "babel-runtime": "6.26.0",
+        "core-js": "2.5.0",
+        "home-or-tmp": "2.0.0",
+        "lodash": "4.17.4",
+        "mkdirp": "0.5.1",
+        "source-map-support": "0.4.16"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.4",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+          "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+          "dev": true
+        }
+      }
+    },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+      "dev": true,
+      "requires": {
+        "core-js": "2.5.0",
+        "regenerator-runtime": "0.11.0"
+      }
+    },
+    "babel-template": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+      "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "babel-traverse": "6.26.0",
+        "babel-types": "6.26.0",
+        "babylon": "6.18.0",
+        "lodash": "4.17.4"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.4",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+          "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+          "dev": true
+        }
+      }
+    },
+    "babel-traverse": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "6.26.0",
+        "babel-messages": "6.23.0",
+        "babel-runtime": "6.26.0",
+        "babel-types": "6.26.0",
+        "babylon": "6.18.0",
+        "debug": "2.6.8",
+        "globals": "9.18.0",
+        "invariant": "2.2.2",
+        "lodash": "4.17.4"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.8",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+          "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.4",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+          "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "babel-types": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "esutils": "2.0.2",
+        "lodash": "4.17.4",
+        "to-fast-properties": "1.0.3"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.4",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+          "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+          "dev": true
+        }
+      }
+    },
+    "babylon": {
+      "version": "6.18.0",
+      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+      "dev": true
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+      "dev": true
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+      "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "tweetnacl": "0.14.5"
+      }
+    },
+    "binary": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
+      "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
+      "dev": true,
+      "requires": {
+        "buffers": "0.1.1",
+        "chainsaw": "0.1.0"
+      }
+    },
+    "bl": {
+      "version": "0.9.5",
+      "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz",
+      "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=",
+      "dev": true,
+      "requires": {
+        "readable-stream": "1.0.34"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "1.0.34",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+          "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+          "dev": true,
+          "requires": {
+            "core-util-is": "1.0.2",
+            "inherits": "2.0.3",
+            "isarray": "0.0.1",
+            "string_decoder": "0.10.31"
+          }
+        }
+      }
+    },
+    "bluebird": {
+      "version": "2.11.0",
+      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
+      "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=",
+      "dev": true
+    },
+    "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.16.3"
+      }
+    },
+    "brace-expansion": {
+      "version": "1.1.8",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+      "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+      "dev": true,
+      "requires": {
+        "balanced-match": "1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "buffers": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
+      "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
+      "dev": true
+    },
+    "cache-swap": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/cache-swap/-/cache-swap-0.0.6.tgz",
+      "integrity": "sha1-F834NebDAf0VgJCwPRzDb0Z7FpU=",
+      "dev": true,
+      "requires": {
+        "async": "0.2.10",
+        "lodash": "1.1.1",
+        "rimraf": "2.1.4"
+      },
+      "dependencies": {
+        "async": {
+          "version": "0.2.10",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+          "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+          "dev": true
+        },
+        "graceful-fs": {
+          "version": "1.2.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+          "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+          "dev": true,
+          "optional": true
+        },
+        "lodash": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.1.1.tgz",
+          "integrity": "sha1-QaKy6aAOZNbRmZ8UP/awdV9ruyQ=",
+          "dev": true
+        },
+        "rimraf": {
+          "version": "2.1.4",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz",
+          "integrity": "sha1-Wm62Lu2gaPUe3lDymz5c0i89m7I=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "1.2.3"
+          }
+        }
+      }
+    },
+    "camelcase": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+      "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+      "dev": true,
+      "optional": true
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+      "dev": true,
+      "optional": true
+    },
+    "center-align": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+      "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "align-text": "0.1.4",
+        "lazy-cache": "1.0.4"
+      }
+    },
+    "chainsaw": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
+      "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
+      "dev": true,
+      "requires": {
+        "traverse": "0.3.9"
+      }
+    },
+    "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.1",
+        "supports-color": "2.0.0"
+      },
+      "dependencies": {
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "chromium-pickle-js": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.1.0.tgz",
+      "integrity": "sha1-HUixB9ghJqLz4hHC6iX4A7pVGyE=",
+      "dev": true
+    },
+    "circular-json": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
+      "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
+      "dev": true
+    },
+    "clean-css": {
+      "version": "2.0.8",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-2.0.8.tgz",
+      "integrity": "sha1-6TfN/cxXgaAIF67EB56Fs+wVeiA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "commander": "2.0.0"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz",
+          "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=",
+          "dev": true,
+          "optional": 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-width": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz",
+      "integrity": "sha1-pNKT72frt7iNSk1CwMzwDE0eNm0=",
+      "dev": true
+    },
+    "cliui": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+      "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "center-align": "0.1.3",
+        "right-align": "0.1.3",
+        "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=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "co": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+      "dev": true,
+      "optional": true
+    },
+    "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=",
+      "dev": true
+    },
+    "coffee-script": {
+      "version": "1.12.7",
+      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
+      "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==",
+      "dev": true
+    },
+    "coffeelint": {
+      "version": "1.16.0",
+      "resolved": "https://registry.npmjs.org/coffeelint/-/coffeelint-1.16.0.tgz",
+      "integrity": "sha1-g9jtHa/eOmd95E57ihi+YHdh5tg=",
+      "dev": true,
+      "requires": {
+        "coffee-script": "1.11.1",
+        "glob": "7.1.2",
+        "ignore": "3.3.5",
+        "optimist": "0.6.1",
+        "resolve": "0.6.3",
+        "strip-json-comments": "1.0.4"
+      },
+      "dependencies": {
+        "coffee-script": {
+          "version": "1.11.1",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.11.1.tgz",
+          "integrity": "sha1-vxxHrWREOg2V0S3ysUfMCk2q1uk=",
+          "dev": true
+        },
+        "glob": {
+          "version": "7.1.2",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+          "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "1.0.0",
+            "inflight": "1.0.6",
+            "inherits": "2.0.3",
+            "minimatch": "3.0.4",
+            "once": "1.4.0",
+            "path-is-absolute": "1.0.1"
+          }
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+          "dev": true,
+          "requires": {
+            "brace-expansion": "1.1.8"
+          }
+        },
+        "optimist": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+          "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+          "dev": true,
+          "requires": {
+            "minimist": "0.0.8",
+            "wordwrap": "0.0.3"
+          }
+        },
+        "resolve": {
+          "version": "0.6.3",
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz",
+          "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=",
+          "dev": true
+        }
+      }
+    },
+    "coffeelint-stylish": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/coffeelint-stylish/-/coffeelint-stylish-0.1.2.tgz",
+      "integrity": "sha1-q1AaZENeIxcG2hOidSeraVcAq8k=",
+      "dev": true,
+      "requires": {
+        "chalk": "1.1.3",
+        "text-table": "0.2.0"
+      }
+    },
+    "colors": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+      "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+      "dev": true
+    },
+    "combined-stream": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+      "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+      "dev": true,
+      "requires": {
+        "delayed-stream": "1.0.0"
+      }
+    },
+    "commander": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz",
+      "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=",
+      "dev": true
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "dev": true
+    },
+    "concat-stream": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+      "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+      "dev": true,
+      "requires": {
+        "inherits": "2.0.3",
+        "readable-stream": "2.3.3",
+        "typedarray": "0.0.6"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "2.3.3",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+          "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+          "dev": true,
+          "requires": {
+            "core-util-is": "1.0.2",
+            "inherits": "2.0.3",
+            "isarray": "1.0.0",
+            "process-nextick-args": "1.0.7",
+            "safe-buffer": "5.1.1",
+            "string_decoder": "1.0.3",
+            "util-deprecate": "1.0.2"
+          }
+        },
+        "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==",
+          "dev": true,
+          "requires": {
+            "safe-buffer": "5.1.1"
+          }
+        }
+      }
+    },
+    "convert-source-map": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
+      "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
+      "dev": true
+    },
+    "cookie-jar": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.3.0.tgz",
+      "integrity": "sha1-vJon1OK5fhhs1XyeIGPLmfpozMw=",
+      "dev": true
+    },
+    "core-js": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz",
+      "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY=",
+      "dev": true
+    },
+    "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=",
+      "dev": true
+    },
+    "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.10.1"
+      }
+    },
+    "cson-safe": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/cson-safe/-/cson-safe-1.0.5.tgz",
+      "integrity": "sha1-P+uD2TSdOnseTS+nOsqv3+Qj7+M=",
+      "dev": true,
+      "requires": {
+        "coffee-script": "1.12.7"
+      },
+      "dependencies": {
+        "coffee-script": {
+          "version": "1.12.7",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
+          "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==",
+          "dev": true
+        }
+      }
+    },
+    "csslint": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/csslint/-/csslint-0.10.0.tgz",
+      "integrity": "sha1-OmoE51Zcjp0ZvrSXZ8fslug2WAU=",
+      "dev": true,
+      "requires": {
+        "parserlib": "0.2.5"
+      }
+    },
+    "ctype": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
+      "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=",
+      "dev": true
+    },
+    "cuint": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.1.5.tgz",
+      "integrity": "sha1-uEixhGbz8YD5bR624HzLfs8Sai4=",
+      "dev": true
+    },
+    "d": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+      "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+      "dev": true,
+      "requires": {
+        "es5-ext": "0.10.30"
+      }
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "dev": true,
+      "optional": 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,
+          "optional": true
+        }
+      }
+    },
+    "dateformat": {
+      "version": "1.0.2-1.2.3",
+      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
+      "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
+      "dev": true
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+      "dev": true,
+      "optional": true
+    },
+    "decompress-zip": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.0.4.tgz",
+      "integrity": "sha1-xWJDH3aviXCvr1AibkLhxHpXsIY=",
+      "dev": true,
+      "requires": {
+        "binary": "0.3.0",
+        "mkpath": "0.1.0",
+        "nopt": "2.1.2",
+        "q": "0.9.7",
+        "readable-stream": "1.1.14",
+        "touch": "0.0.2"
+      },
+      "dependencies": {
+        "nopt": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz",
+          "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=",
+          "dev": true,
+          "requires": {
+            "abbrev": "1.1.0"
+          }
+        }
+      }
+    },
+    "deep-is": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+      "dev": true
+    },
+    "del": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+      "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+      "dev": true,
+      "requires": {
+        "globby": "5.0.0",
+        "is-path-cwd": "1.0.0",
+        "is-path-in-cwd": "1.0.0",
+        "object-assign": "4.1.1",
+        "pify": "2.3.0",
+        "pinkie-promise": "2.0.1",
+        "rimraf": "2.6.1"
+      },
+      "dependencies": {
+        "object-assign": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+          "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+          "dev": true
+        }
+      }
+    },
+    "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
+    },
+    "detect-indent": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+      "dev": true,
+      "requires": {
+        "repeating": "2.0.1"
+      }
+    },
+    "diff": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+      "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
+      "dev": true
+    },
+    "doctrine": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz",
+      "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=",
+      "dev": true,
+      "requires": {
+        "esutils": "1.1.6",
+        "isarray": "0.0.1"
+      },
+      "dependencies": {
+        "esutils": {
+          "version": "1.1.6",
+          "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz",
+          "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=",
+          "dev": true
+        }
+      }
+    },
+    "ecc-jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+      "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "jsbn": "0.1.1"
+      }
+    },
+    "es5-ext": {
+      "version": "0.10.30",
+      "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz",
+      "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=",
+      "dev": true,
+      "requires": {
+        "es6-iterator": "2.0.1",
+        "es6-symbol": "3.1.1"
+      }
+    },
+    "es6-iterator": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+      "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.30",
+        "es6-symbol": "3.1.1"
+      }
+    },
+    "es6-map": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+      "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.30",
+        "es6-iterator": "2.0.1",
+        "es6-set": "0.1.5",
+        "es6-symbol": "3.1.1",
+        "event-emitter": "0.3.5"
+      }
+    },
+    "es6-set": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+      "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.30",
+        "es6-iterator": "2.0.1",
+        "es6-symbol": "3.1.1",
+        "event-emitter": "0.3.5"
+      }
+    },
+    "es6-symbol": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+      "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.30"
+      }
+    },
+    "es6-weak-map": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+      "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.30",
+        "es6-iterator": "2.0.1",
+        "es6-symbol": "3.1.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
+    },
+    "escope": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+      "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+      "dev": true,
+      "requires": {
+        "es6-map": "0.1.5",
+        "es6-weak-map": "2.0.2",
+        "esrecurse": "4.2.0",
+        "estraverse": "4.2.0"
+      }
+    },
+    "eslint": {
+      "version": "1.10.3",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-1.10.3.tgz",
+      "integrity": "sha1-+xmpGxPBWAgrvKKUsX2Xm8g1Ogo=",
+      "dev": true,
+      "requires": {
+        "chalk": "1.1.3",
+        "concat-stream": "1.6.0",
+        "debug": "2.6.8",
+        "doctrine": "0.7.2",
+        "escape-string-regexp": "1.0.2",
+        "escope": "3.6.0",
+        "espree": "2.2.5",
+        "estraverse": "4.2.0",
+        "estraverse-fb": "1.3.2",
+        "esutils": "2.0.2",
+        "file-entry-cache": "1.3.1",
+        "glob": "5.0.15",
+        "globals": "8.18.0",
+        "handlebars": "4.0.10",
+        "inquirer": "0.11.4",
+        "is-my-json-valid": "2.16.1",
+        "is-resolvable": "1.0.0",
+        "js-yaml": "3.4.5",
+        "json-stable-stringify": "1.0.1",
+        "lodash.clonedeep": "3.0.2",
+        "lodash.merge": "3.3.2",
+        "lodash.omit": "3.1.0",
+        "minimatch": "3.0.4",
+        "mkdirp": "0.5.1",
+        "object-assign": "4.1.1",
+        "optionator": "0.6.0",
+        "path-is-absolute": "1.0.1",
+        "path-is-inside": "1.0.2",
+        "shelljs": "0.5.3",
+        "strip-json-comments": "1.0.4",
+        "text-table": "0.2.0",
+        "user-home": "2.0.0",
+        "xml-escape": "1.0.0"
+      },
+      "dependencies": {
+        "argparse": {
+          "version": "1.0.9",
+          "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+          "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+          "dev": true,
+          "requires": {
+            "sprintf-js": "1.0.3"
+          }
+        },
+        "debug": {
+          "version": "2.6.8",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+          "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "espree": {
+          "version": "2.2.5",
+          "resolved": "https://registry.npmjs.org/espree/-/espree-2.2.5.tgz",
+          "integrity": "sha1-32kbkxCIlAKuspzAZnCMVmkLhUs=",
+          "dev": true
+        },
+        "globals": {
+          "version": "8.18.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-8.18.0.tgz",
+          "integrity": "sha1-k9SmK9ysOM+vr8R9awNHaMsP/LQ=",
+          "dev": true
+        },
+        "js-yaml": {
+          "version": "3.4.5",
+          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.5.tgz",
+          "integrity": "sha1-w0A3l98SuRhmV08t4jZG/oyvtE0=",
+          "dev": true,
+          "requires": {
+            "argparse": "1.0.9",
+            "esprima": "2.7.3"
+          },
+          "dependencies": {
+            "esprima": {
+              "version": "2.7.3",
+              "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+              "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+              "dev": true
+            }
+          }
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+          "dev": true,
+          "requires": {
+            "brace-expansion": "1.1.8"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "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
+        }
+      }
+    },
+    "esprima": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+      "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
+      "dev": true
+    },
+    "esrecurse": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+      "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+      "dev": true,
+      "requires": {
+        "estraverse": "4.2.0",
+        "object-assign": "4.1.1"
+      },
+      "dependencies": {
+        "object-assign": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+          "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+          "dev": true
+        }
+      }
+    },
+    "estraverse": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+      "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+      "dev": true
+    },
+    "estraverse-fb": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.2.tgz",
+      "integrity": "sha1-0yOky15awzHOoDNBOpJT4WQ+B8Q=",
+      "dev": true
+    },
+    "esutils": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+      "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+      "dev": true
+    },
+    "event-emitter": {
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+      "dev": true,
+      "requires": {
+        "d": "1.0.0",
+        "es5-ext": "0.10.30"
+      }
+    },
+    "eventemitter2": {
+      "version": "0.4.14",
+      "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+      "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
+      "dev": true
+    },
+    "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
+    },
+    "extend": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+      "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+      "dev": true,
+      "optional": true
+    },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+      "dev": true
+    },
+    "fast-levenshtein": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz",
+      "integrity": "sha1-AXjc3uAjuSkFGTrwlZ6KdjnP3Lk=",
+      "dev": true
+    },
+    "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.1"
+      },
+      "dependencies": {
+        "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
+        },
+        "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
+        }
+      }
+    },
+    "file-entry-cache": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz",
+      "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=",
+      "dev": true,
+      "requires": {
+        "flat-cache": "1.2.2",
+        "object-assign": "4.1.1"
+      },
+      "dependencies": {
+        "object-assign": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+          "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+          "dev": true
+        }
+      }
+    },
+    "findup-sync": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
+      "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
+      "dev": true,
+      "requires": {
+        "glob": "3.2.11",
+        "lodash": "2.4.2"
+      },
+      "dependencies": {
+        "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.0.3",
+            "minimatch": "0.3.0"
+          }
+        },
+        "lodash": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+          "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.7.3",
+            "sigmund": "1.0.1"
+          }
+        }
+      }
+    },
+    "flat-cache": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
+      "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
+      "dev": true,
+      "requires": {
+        "circular-json": "0.3.3",
+        "del": "2.2.2",
+        "graceful-fs": "4.1.11",
+        "write": "0.2.1"
+      }
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+      "dev": true
+    },
+    "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,
+      "optional": true,
+      "requires": {
+        "asynckit": "0.4.0",
+        "combined-stream": "1.0.5",
+        "mime-types": "2.1.16"
+      }
+    },
+    "fs-plus": {
+      "version": "2.10.1",
+      "resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-2.10.1.tgz",
+      "integrity": "sha1-MgR4HXhAYR5jZOe2+wWMljJ8WqU=",
+      "dev": true,
+      "requires": {
+        "async": "1.5.2",
+        "mkdirp": "0.5.1",
+        "rimraf": "2.6.1",
+        "underscore-plus": "1.6.6"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+      "dev": true
+    },
+    "generate-function": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+      "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+      "dev": true
+    },
+    "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.2"
+      }
+    },
+    "getobject": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+      "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+      "dev": true
+    },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+      "dev": true,
+      "optional": 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,
+          "optional": true
+        }
+      }
+    },
+    "github-releases": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/github-releases/-/github-releases-0.2.1.tgz",
+      "integrity": "sha1-kcrjzHQA0LYUSkNxzK3d3xwC21g=",
+      "dev": true,
+      "requires": {
+        "grunt": "0.4.5",
+        "minimatch": "0.2.12",
+        "optimist": "0.4.0",
+        "prettyjson": "0.8.1",
+        "request": "2.27.0"
+      },
+      "dependencies": {
+        "asn1": {
+          "version": "0.1.11",
+          "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+          "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=",
+          "dev": 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
+        },
+        "async": {
+          "version": "0.9.2",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+          "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+          "dev": true
+        },
+        "boom": {
+          "version": "0.4.2",
+          "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
+          "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=",
+          "dev": true,
+          "requires": {
+            "hoek": "0.9.1"
+          }
+        },
+        "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,
+          "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,
+          "requires": {
+            "boom": "0.4.2"
+          }
+        },
+        "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
+        },
+        "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,
+          "requires": {
+            "async": "0.9.2",
+            "combined-stream": "0.0.7",
+            "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,
+          "requires": {
+            "boom": "0.4.2",
+            "cryptiles": "0.2.2",
+            "hoek": "0.9.1",
+            "sntp": "0.2.4"
+          }
+        },
+        "hoek": {
+          "version": "0.9.1",
+          "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
+          "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=",
+          "dev": 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,
+          "requires": {
+            "asn1": "0.1.11",
+            "assert-plus": "0.1.5",
+            "ctype": "0.5.3"
+          }
+        },
+        "minimatch": {
+          "version": "0.2.12",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.12.tgz",
+          "integrity": "sha1-6oKgEqxmLH3fqhRPHBR+aUb12vs=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "2.7.3",
+            "sigmund": "1.0.1"
+          }
+        },
+        "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
+        },
+        "qs": {
+          "version": "0.6.6",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
+          "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=",
+          "dev": true
+        },
+        "request": {
+          "version": "2.27.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.27.0.tgz",
+          "integrity": "sha1-37GiJN06Wput5DNwElA9cQ5Thmg=",
+          "dev": true,
+          "requires": {
+            "aws-sign": "0.3.0",
+            "cookie-jar": "0.3.0",
+            "forever-agent": "0.5.2",
+            "form-data": "0.1.4",
+            "hawk": "1.0.0",
+            "http-signature": "0.10.1",
+            "json-stringify-safe": "5.0.1",
+            "mime": "1.2.11",
+            "node-uuid": "1.4.8",
+            "oauth-sign": "0.3.0",
+            "qs": "0.6.6",
+            "tunnel-agent": "0.3.0"
+          }
+        },
+        "sntp": {
+          "version": "0.2.4",
+          "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz",
+          "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=",
+          "dev": true,
+          "requires": {
+            "hoek": "0.9.1"
+          }
+        },
+        "tunnel-agent": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz",
+          "integrity": "sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4=",
+          "dev": true
+        }
+      }
+    },
+    "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.6",
+        "inherits": "2.0.3",
+        "minimatch": "2.0.4",
+        "once": "1.4.0",
+        "path-is-absolute": "1.0.1"
+      }
+    },
+    "globals": {
+      "version": "9.18.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+      "dev": true
+    },
+    "globby": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+      "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+      "dev": true,
+      "requires": {
+        "array-union": "1.0.2",
+        "arrify": "1.0.1",
+        "glob": "7.1.2",
+        "object-assign": "4.1.1",
+        "pify": "2.3.0",
+        "pinkie-promise": "2.0.1"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "7.1.2",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+          "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "1.0.0",
+            "inflight": "1.0.6",
+            "inherits": "2.0.3",
+            "minimatch": "3.0.4",
+            "once": "1.4.0",
+            "path-is-absolute": "1.0.1"
+          }
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+          "dev": true,
+          "requires": {
+            "brace-expansion": "1.1.8"
+          }
+        },
+        "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
+        }
+      }
+    },
+    "graceful-fs": {
+      "version": "4.1.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+      "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+      "dev": true
+    },
+    "growl": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz",
+      "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg=",
+      "dev": true
+    },
+    "grunt": {
+      "version": "0.4.5",
+      "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
+      "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
+      "dev": true,
+      "requires": {
+        "async": "0.1.22",
+        "coffee-script": "1.3.3",
+        "colors": "0.6.2",
+        "dateformat": "1.0.2-1.2.3",
+        "eventemitter2": "0.4.14",
+        "exit": "0.1.2",
+        "findup-sync": "0.1.3",
+        "getobject": "0.1.0",
+        "glob": "3.1.21",
+        "grunt-legacy-log": "0.1.3",
+        "grunt-legacy-util": "0.2.0",
+        "hooker": "0.2.3",
+        "iconv-lite": "0.2.11",
+        "js-yaml": "2.0.5",
+        "lodash": "0.9.2",
+        "minimatch": "0.2.14",
+        "nopt": "1.0.10",
+        "rimraf": "2.2.8",
+        "underscore.string": "2.2.1",
+        "which": "1.0.9"
+      },
+      "dependencies": {
+        "async": {
+          "version": "0.1.22",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+          "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+          "dev": true
+        },
+        "coffee-script": {
+          "version": "1.3.3",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
+          "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
+          "dev": true
+        },
+        "glob": {
+          "version": "3.1.21",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+          "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "1.2.3",
+            "inherits": "1.0.2",
+            "minimatch": "0.2.14"
+          }
+        },
+        "graceful-fs": {
+          "version": "1.2.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+          "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
+          "dev": true
+        },
+        "inherits": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
+          "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
+          "dev": true
+        },
+        "minimatch": {
+          "version": "0.2.14",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+          "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "2.7.3",
+            "sigmund": "1.0.1"
+          }
+        },
+        "rimraf": {
+          "version": "2.2.8",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+          "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+          "dev": true
+        },
+        "which": {
+          "version": "1.0.9",
+          "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+          "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-babel": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/grunt-babel/-/grunt-babel-6.0.0.tgz",
+      "integrity": "sha1-N4GJtIfeEWjExKn8iN1gBbNd+WA=",
+      "dev": true,
+      "requires": {
+        "babel-core": "6.26.0"
+      }
+    },
+    "grunt-cli": {
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-0.1.13.tgz",
+      "integrity": "sha1-6evEBHYx9QEtkidww5N4EzytEPQ=",
+      "dev": true,
+      "requires": {
+        "findup-sync": "0.1.3",
+        "nopt": "1.0.10",
+        "resolve": "0.3.1"
+      }
+    },
+    "grunt-coffeelint": {
+      "version": "0.0.13",
+      "resolved": "https://registry.npmjs.org/grunt-coffeelint/-/grunt-coffeelint-0.0.13.tgz",
+      "integrity": "sha1-RROMp1e7qFQb4fHZvDpIrNq/MKk=",
+      "dev": true,
+      "requires": {
+        "coffeelint-stylish": "0.1.2"
+      }
+    },
+    "grunt-contrib-clean": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.6.0.tgz",
+      "integrity": "sha1-9TLbpLghJnTHwBPhRr2mY4uQSPY=",
+      "dev": true,
+      "requires": {
+        "rimraf": "2.2.8"
+      },
+      "dependencies": {
+        "rimraf": {
+          "version": "2.2.8",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+          "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-contrib-coffee": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.12.0.tgz",
+      "integrity": "sha1-l/hAtlaT2y3aF2+O1njvFDXIRqI=",
+      "dev": true,
+      "requires": {
+        "chalk": "0.5.1",
+        "coffee-script": "1.8.0",
+        "lodash": "2.4.2",
+        "uri-path": "0.0.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
+          "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
+          "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
+          "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "1.1.0",
+            "escape-string-regexp": "1.0.2",
+            "has-ansi": "0.1.0",
+            "strip-ansi": "0.3.0",
+            "supports-color": "0.2.0"
+          }
+        },
+        "coffee-script": {
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.8.0.tgz",
+          "integrity": "sha1-nJ8dK0pSoADe0Vtll5FwNkgmPB0=",
+          "dev": true,
+          "requires": {
+            "mkdirp": "0.3.5"
+          }
+        },
+        "has-ansi": {
+          "version": "0.1.0",
+          "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
+          "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "0.2.1"
+          }
+        },
+        "lodash": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+          "dev": true
+        },
+        "mkdirp": {
+          "version": "0.3.5",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+          "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
+          "dev": true
+        },
+        "strip-ansi": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
+          "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "0.2.1"
+          }
+        },
+        "supports-color": {
+          "version": "0.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
+          "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-contrib-csslint": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/grunt-contrib-csslint/-/grunt-contrib-csslint-0.2.0.tgz",
+      "integrity": "sha1-4LfVA16b/1eI6/YElBmdcdg5PV4=",
+      "dev": true,
+      "requires": {
+        "csslint": "0.10.0"
+      }
+    },
+    "grunt-contrib-less": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-0.8.3.tgz",
+      "integrity": "sha1-ig6Rg1dzOa0Icp9XqaSt7/bEFBA=",
+      "dev": true,
+      "requires": {
+        "grunt-lib-contrib": "0.6.1",
+        "less": "1.5.1"
+      }
+    },
+    "grunt-cson": {
+      "version": "0.14.0",
+      "resolved": "https://registry.npmjs.org/grunt-cson/-/grunt-cson-0.14.0.tgz",
+      "integrity": "sha1-XaPl59+gWqkBrmXatld3CZ9ymQg=",
+      "dev": true,
+      "requires": {
+        "cson-safe": "1.0.5",
+        "underscore-plus": "1.6.6"
+      }
+    },
+    "grunt-download-atom-shell": {
+      "version": "0.15.1",
+      "resolved": "https://registry.npmjs.org/grunt-download-atom-shell/-/grunt-download-atom-shell-0.15.1.tgz",
+      "integrity": "sha1-izct/RLa5LTFZRpaYkSzWKQCvIk=",
+      "dev": true,
+      "requires": {
+        "decompress-zip": "0.0.4",
+        "github-releases": "0.2.1",
+        "grunt": "0.4.5",
+        "progress": "1.1.2",
+        "wrench": "1.5.4"
+      }
+    },
+    "grunt-electron-installer": {
+      "version": "0.37.0",
+      "resolved": "https://registry.npmjs.org/grunt-electron-installer/-/grunt-electron-installer-0.37.0.tgz",
+      "integrity": "sha1-aZa5igfrZYNs4VihvPI3Cq4/PVY=",
+      "dev": true,
+      "requires": {
+        "asar": "0.7.2",
+        "temp": "0.8.3",
+        "underscore": "1.8.3"
+      },
+      "dependencies": {
+        "asar": {
+          "version": "0.7.2",
+          "resolved": "https://registry.npmjs.org/asar/-/asar-0.7.2.tgz",
+          "integrity": "sha1-JK5srLGZxgbbZSYlfsG+H17SUQw=",
+          "dev": true,
+          "requires": {
+            "chromium-pickle-js": "0.1.0",
+            "commander": "2.3.0",
+            "cuint": "0.1.5",
+            "glob": "5.0.15",
+            "minimatch": "2.0.4",
+            "mkdirp": "0.5.1",
+            "mksnapshot": "0.1.0"
+          }
+        },
+        "underscore": {
+          "version": "1.8.3",
+          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+          "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-eslint": {
+      "version": "17.3.2",
+      "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-17.3.2.tgz",
+      "integrity": "sha1-NqizvmzN6IyLWPkJdF112xnl1LA=",
+      "dev": true,
+      "requires": {
+        "chalk": "1.1.3",
+        "eslint": "1.10.3"
+      }
+    },
+    "grunt-legacy-log": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
+      "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
+      "dev": true,
+      "requires": {
+        "colors": "0.6.2",
+        "grunt-legacy-log-utils": "0.1.1",
+        "hooker": "0.2.3",
+        "lodash": "2.4.2",
+        "underscore.string": "2.3.3"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+          "dev": true
+        },
+        "underscore.string": {
+          "version": "2.3.3",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+          "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-legacy-log-utils": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
+      "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
+      "dev": true,
+      "requires": {
+        "colors": "0.6.2",
+        "lodash": "2.4.2",
+        "underscore.string": "2.3.3"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
+          "dev": true
+        },
+        "underscore.string": {
+          "version": "2.3.3",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+          "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-legacy-util": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
+      "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
+      "dev": true,
+      "requires": {
+        "async": "0.1.22",
+        "exit": "0.1.2",
+        "getobject": "0.1.0",
+        "hooker": "0.2.3",
+        "lodash": "0.9.2",
+        "underscore.string": "2.2.1",
+        "which": "1.0.9"
+      },
+      "dependencies": {
+        "async": {
+          "version": "0.1.22",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+          "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+          "dev": true
+        },
+        "which": {
+          "version": "1.0.9",
+          "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+          "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-lesslint": {
+      "version": "0.17.0",
+      "resolved": "https://registry.npmjs.org/grunt-lesslint/-/grunt-lesslint-0.17.0.tgz",
+      "integrity": "sha1-MnAfLA26+2grHryrKfdnrn4a8RE=",
+      "dev": true,
+      "requires": {
+        "async": "0.2.10",
+        "cache-swap": "0.0.6",
+        "csslint": "0.10.0",
+        "grunt-lib-contrib": "0.6.1",
+        "less": "1.6.3",
+        "underscore": "1.5.2"
+      },
+      "dependencies": {
+        "async": {
+          "version": "0.2.10",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+          "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+          "dev": true
+        },
+        "less": {
+          "version": "1.6.3",
+          "resolved": "https://registry.npmjs.org/less/-/less-1.6.3.tgz",
+          "integrity": "sha1-cc6J7DC3dLNWfyVMZ5WPLywZO94=",
+          "dev": true,
+          "requires": {
+            "clean-css": "2.0.8",
+            "mime": "1.2.11",
+            "mkdirp": "0.3.5",
+            "request": "2.81.0",
+            "source-map": "0.1.43"
+          }
+        },
+        "mkdirp": {
+          "version": "0.3.5",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+          "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
+          "dev": true,
+          "optional": true
+        },
+        "source-map": {
+          "version": "0.1.43",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "amdefine": "1.0.1"
+          }
+        },
+        "underscore": {
+          "version": "1.5.2",
+          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz",
+          "integrity": "sha1-EzXF5PXm0zu7SwBrqMhqAPVW3gg=",
+          "dev": true
+        }
+      }
+    },
+    "grunt-lib-contrib": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.6.1.tgz",
+      "integrity": "sha1-P1att9oG6BR5XuJBWw6+X7iQPrs=",
+      "dev": true,
+      "requires": {
+        "zlib-browserify": "0.0.1"
+      }
+    },
+    "grunt-mocha-cli": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/grunt-mocha-cli/-/grunt-mocha-cli-2.0.0.tgz",
+      "integrity": "sha1-3m+vEqRiAlHRGJyHCv/S+ed2v5A=",
+      "dev": true,
+      "requires": {
+        "mocha": "2.3.4"
+      },
+      "dependencies": {
+        "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"
+          }
+        },
+        "glob": {
+          "version": "3.2.3",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz",
+          "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "2.0.3",
+            "inherits": "2.0.3",
+            "minimatch": "0.2.14"
+          }
+        },
+        "graceful-fs": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz",
+          "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=",
+          "dev": true
+        },
+        "minimatch": {
+          "version": "0.2.14",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+          "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "2.7.3",
+            "sigmund": "1.0.1"
+          }
+        },
+        "mkdirp": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+          "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
+          "dev": true,
+          "requires": {
+            "minimist": "0.0.8"
+          }
+        },
+        "mocha": {
+          "version": "2.3.4",
+          "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.3.4.tgz",
+          "integrity": "sha1-himm+wRPLSJapLgaKuLQAWmesmY=",
+          "dev": true,
+          "requires": {
+            "commander": "2.3.0",
+            "debug": "2.2.0",
+            "diff": "1.4.0",
+            "escape-string-regexp": "1.0.2",
+            "glob": "3.2.3",
+            "growl": "1.8.1",
+            "jade": "0.26.3",
+            "mkdirp": "0.5.0",
+            "supports-color": "1.2.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
+        }
+      }
+    },
+    "grunt-peg": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/grunt-peg/-/grunt-peg-1.1.0.tgz",
+      "integrity": "sha1-mXIenObicnRzkHfbh281otBc8qY=",
+      "dev": true,
+      "requires": {
+        "pegjs": "0.8.0"
+      }
+    },
+    "grunt-shell": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/grunt-shell/-/grunt-shell-0.3.1.tgz",
+      "integrity": "sha1-PLkjzLlq9dPkmAiZhRpDIc/32O4=",
+      "dev": true,
+      "requires": {
+        "stripcolorcodes": "0.1.0"
+      }
+    },
+    "grunt-standard": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/grunt-standard/-/grunt-standard-1.0.2.tgz",
+      "integrity": "sha1-ScGEkeUO872KgIUPW6jI+099SQQ=",
+      "dev": true,
+      "requires": {
+        "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz",
+        "promise": "https://registry.npmjs.org/promise/-/promise-7.0.0.tgz",
+        "standard": "https://registry.npmjs.org/standard/-/standard-3.7.0.tgz",
+        "standard-format": "https://registry.npmjs.org/standard-format/-/standard-format-1.3.6.tgz",
+        "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+      },
+      "dependencies": {
+        "chalk": {
+          "version": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz",
+          "integrity": "sha1-s89O0P9Tl8mcdbj2edsvUoMfltw=",
+          "requires": {
+            "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz",
+            "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz",
+            "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz",
+            "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz",
+            "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz"
+          },
+          "dependencies": {
+            "ansi-styles": {
+              "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz",
+              "integrity": "sha1-sDP1f5Pi0oreuLwRE4+hPaD9IKM="
+            },
+            "escape-string-regexp": {
+              "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz",
+              "integrity": "sha1-ni2LJbwlVcMzZyN1DgPwmcJzW7U="
+            },
+            "has-ansi": {
+              "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz",
+              "integrity": "sha1-wLWxYV2eOCsP9nFp2We0JeSMpTg=",
+              "requires": {
+                "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz",
+                "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
+              },
+              "dependencies": {
+                "ansi-regex": {
+                  "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz",
+                  "integrity": "sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0="
+                },
+                "get-stdin": {
+                  "version": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+                  "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+                }
+              }
+            },
+            "strip-ansi": {
+              "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz",
+              "integrity": "sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4=",
+              "requires": {
+                "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
+              },
+              "dependencies": {
+                "ansi-regex": {
+                  "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz",
+                  "integrity": "sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0="
+                }
+              }
+            },
+            "supports-color": {
+              "version": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz",
+              "integrity": "sha1-FXWN8J2P87SswwdTn6vicJXhBC0="
+            }
+          }
+        },
+        "grunt": {
+          "version": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
+          "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
+          "requires": {
+            "async": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+            "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
+            "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+            "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
+            "eventemitter2": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+            "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+            "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
+            "getobject": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+            "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+            "grunt-legacy-log": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.1.tgz",
+            "grunt-legacy-util": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
+            "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+            "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
+            "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
+            "lodash": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+            "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+            "nopt": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+            "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+            "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
+            "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
+          },
+          "dependencies": {
+            "async": {
+              "version": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+              "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE="
+            },
+            "coffee-script": {
+              "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
+              "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ="
+            },
+            "colors": {
+              "version": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+              "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w="
+            },
+            "dateformat": {
+              "version": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
+              "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk="
+            },
+            "eventemitter2": {
+              "version": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+              "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas="
+            },
+            "exit": {
+              "version": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+              "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw="
+            },
+            "findup-sync": {
+              "version": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
+              "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
+              "requires": {
+                "glob": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+                "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz"
+              },
+              "dependencies": {
+                "glob": {
+                  "version": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+                  "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+                  "requires": {
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                    "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"
+                  },
+                  "dependencies": {
+                    "inherits": {
+                      "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                      "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+                    },
+                    "minimatch": {
+                      "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+                      "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+                      "requires": {
+                        "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.1.tgz",
+                        "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz"
+                      },
+                      "dependencies": {
+                        "lru-cache": {
+                          "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.1.tgz",
+                          "integrity": "sha1-mTPv8VRT+uHScJY2UUPHJOhcbL0="
+                        },
+                        "sigmund": {
+                          "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz",
+                          "integrity": "sha1-ZqKzp0mui1+4nv1PzAHclPvgIpY="
+                        }
+                      }
+                    }
+                  }
+                },
+                "lodash": {
+                  "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz",
+                  "integrity": "sha1-W3cjA03aTSYuWkb7LFjXzCL3FCA="
+                }
+              }
+            },
+            "getobject": {
+              "version": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+              "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw="
+            },
+            "glob": {
+              "version": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
+              "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
+              "requires": {
+                "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+                "inherits": "https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz",
+                "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
+              },
+              "dependencies": {
+                "graceful-fs": {
+                  "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
+                  "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
+                },
+                "inherits": {
+                  "version": "https://registry.npmjs.org/inherits/-/inherits-1.0.0.tgz",
+                  "integrity": "sha1-OOGXUoW/H3upyE2hArsSdxMirEg="
+                }
+              }
+            },
+            "grunt-legacy-log": {
+              "version": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.1.tgz",
+              "integrity": "sha1-1B8aarybCxJWorX/AvTDKY381Xo=",
+              "requires": {
+                "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+                "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+                "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz",
+                "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
+              },
+              "dependencies": {
+                "lodash": {
+                  "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz",
+                  "integrity": "sha1-W3cjA03aTSYuWkb7LFjXzCL3FCA="
+                },
+                "underscore.string": {
+                  "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
+                  "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0="
+                }
+              }
+            },
+            "grunt-legacy-util": {
+              "version": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
+              "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
+              "requires": {
+                "async": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+                "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+                "getobject": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+                "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+                "lodash": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+                "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
+                "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
+              }
+            },
+            "hooker": {
+              "version": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+              "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk="
+            },
+            "iconv-lite": {
+              "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
+              "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg="
+            },
+            "js-yaml": {
+              "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
+              "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
+              "requires": {
+                "argparse": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+                "esprima": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz"
+              },
+              "dependencies": {
+                "argparse": {
+                  "version": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+                  "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+                  "requires": {
+                    "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+                    "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz"
+                  },
+                  "dependencies": {
+                    "underscore": {
+                      "version": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
+                      "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk="
+                    },
+                    "underscore.string": {
+                      "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+                      "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs="
+                    }
+                  }
+                },
+                "esprima": {
+                  "version": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+                  "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0="
+                }
+              }
+            },
+            "lodash": {
+              "version": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+              "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw="
+            },
+            "minimatch": {
+              "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
+              "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
+              "requires": {
+                "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.1.tgz",
+                "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz"
+              },
+              "dependencies": {
+                "lru-cache": {
+                  "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.1.tgz",
+                  "integrity": "sha1-mTPv8VRT+uHScJY2UUPHJOhcbL0="
+                },
+                "sigmund": {
+                  "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz",
+                  "integrity": "sha1-ZqKzp0mui1+4nv1PzAHclPvgIpY="
+                }
+              }
+            },
+            "nopt": {
+              "version": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+              "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+              "requires": {
+                "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz"
+              },
+              "dependencies": {
+                "abbrev": {
+                  "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz",
+                  "integrity": "sha1-XYJXvZ6+Q15piy+kMa/eT+exCwM="
+                }
+              }
+            },
+            "rimraf": {
+              "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+              "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="
+            },
+            "underscore.string": {
+              "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
+              "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk="
+            },
+            "which": {
+              "version": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+              "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8="
+            }
+          }
+        },
+        "grunt-nsp-shrinkwrap": {
+          "version": "https://registry.npmjs.org/grunt-nsp-shrinkwrap/-/grunt-nsp-shrinkwrap-0.0.3.tgz",
+          "integrity": "sha1-BGBdzH2MW79C1bHTeiUr3Osa+P8=",
+          "requires": {
+            "cli-color": "https://registry.npmjs.org/cli-color/-/cli-color-0.2.3.tgz",
+            "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+            "grunt": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
+            "request": "https://registry.npmjs.org/request/-/request-2.55.0.tgz",
+            "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+          },
+          "dependencies": {
+            "cli-color": {
+              "version": "https://registry.npmjs.org/cli-color/-/cli-color-0.2.3.tgz",
+              "integrity": "sha1-CiXOrlpqFgK+f3fShWPDZwAnTog=",
+              "requires": {
+                "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.9.2.tgz",
+                "memoizee": "https://registry.npmjs.org/memoizee/-/memoizee-0.2.6.tgz"
+              },
+              "dependencies": {
+                "es5-ext": {
+                  "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.9.2.tgz",
+                  "integrity": "sha1-0uMJ0fIjsHGGSINaz1uII6gGH4o="
+                },
+                "memoizee": {
+                  "version": "https://registry.npmjs.org/memoizee/-/memoizee-0.2.6.tgz",
+                  "integrity": "sha1-u0WnrQJTAILxYSZx2rNSGc0uB0E=",
+                  "requires": {
+                    "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.9.2.tgz",
+                    "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.2.2.tgz",
+                    "next-tick": "https://registry.npmjs.org/next-tick/-/next-tick-0.1.0.tgz"
+                  },
+                  "dependencies": {
+                    "event-emitter": {
+                      "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.2.2.tgz",
+                      "integrity": "sha1-yB43JOtVQHxaDV7jKZQR9wD1QpE=",
+                      "requires": {
+                        "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.9.2.tgz"
+                      }
+                    },
+                    "next-tick": {
+                      "version": "https://registry.npmjs.org/next-tick/-/next-tick-0.1.0.tgz",
+                      "integrity": "sha1-GRLM6OubaX1kD7upT48A3sO5Qlk="
+                    }
+                  }
+                }
+              }
+            },
+            "colors": {
+              "version": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+              "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w="
+            },
+            "request": {
+              "version": "https://registry.npmjs.org/request/-/request-2.55.0.tgz",
+              "integrity": "sha1-11wc32eddrsQD5v/4f5VG1wk6T0=",
+              "requires": {
+                "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
+                "bl": "https://registry.npmjs.org/bl/-/bl-0.9.4.tgz",
+                "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz",
+                "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
+                "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+                "form-data": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
+                "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-1.6.1.tgz",
+                "hawk": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz",
+                "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
+                "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+                "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz",
+                "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
+                "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz",
+                "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz",
+                "qs": "https://registry.npmjs.org/qs/-/qs-2.4.1.tgz",
+                "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz",
+                "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz",
+                "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz"
+              },
+              "dependencies": {
+                "aws-sign2": {
+                  "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
+                  "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM="
+                },
+                "bl": {
+                  "version": "https://registry.npmjs.org/bl/-/bl-0.9.4.tgz",
+                  "integrity": "sha1-RwLd9y++Ds2CeHwAwROuoZNa0Oc=",
+                  "requires": {
+                    "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
+                      "integrity": "sha1-OjYN1mwbHX/UcFOJhg7aHQ9hEmw=",
+                      "requires": {
+                        "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz",
+                        "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                        "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                        "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+                      },
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz",
+                          "integrity": "sha1-awcIWu+aPMrG7lO/nT3wwVIaVTg="
+                        },
+                        "inherits": {
+                          "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+                        },
+                        "isarray": {
+                          "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+                        },
+                        "string_decoder": {
+                          "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+                        }
+                      }
+                    }
+                  }
+                },
+                "caseless": {
+                  "version": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz",
+                  "integrity": "sha1-t7Zc5r8UE4hlOc/VM/CzDv+pz4g="
+                },
+                "combined-stream": {
+                  "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
+                  "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=",
+                  "requires": {
+                    "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz"
+                  },
+                  "dependencies": {
+                    "delayed-stream": {
+                      "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
+                      "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8="
+                    }
+                  }
+                },
+                "forever-agent": {
+                  "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+                  "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+                },
+                "form-data": {
+                  "version": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
+                  "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=",
+                  "requires": {
+                    "async": "https://registry.npmjs.org/async/-/async-0.9.0.tgz",
+                    "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
+                    "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz"
+                  },
+                  "dependencies": {
+                    "async": {
+                      "version": "https://registry.npmjs.org/async/-/async-0.9.0.tgz",
+                      "integrity": "sha1-rDYTsdqb7RtHUQu0ZRuJMeRxRsc="
+                    }
+                  }
+                },
+                "har-validator": {
+                  "version": "https://registry.npmjs.org/har-validator/-/har-validator-1.6.1.tgz",
+                  "integrity": "sha1-uu9FLN5kXv99JlYujnSdf9AAt/0=",
+                  "requires": {
+                    "bluebird": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.24.tgz",
+                    "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz",
+                    "commander": "https://registry.npmjs.org/commander/-/commander-2.8.0.tgz",
+                    "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.10.1.tgz"
+                  },
+                  "dependencies": {
+                    "bluebird": {
+                      "version": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.24.tgz",
+                      "integrity": "sha1-FKLnXwVIMj3DWqRA2SAHyhVOlnw="
+                    },
+                    "commander": {
+                      "version": "https://registry.npmjs.org/commander/-/commander-2.8.0.tgz",
+                      "integrity": "sha1-EXxCZZpyM44zZId98ghSNECV3BE=",
+                      "requires": {
+                        "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
+                      },
+                      "dependencies": {
+                        "graceful-readlink": {
+                          "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+                          "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
+                        }
+                      }
+                    },
+                    "is-my-json-valid": {
+                      "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.10.1.tgz",
+                      "integrity": "sha1-vyDKfnERYwL4ZgrIEmWfceIuotA=",
+                      "requires": {
+                        "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+                        "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.1.1.tgz",
+                        "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-1.1.0.tgz",
+                        "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz"
+                      },
+                      "dependencies": {
+                        "generate-function": {
+                          "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+                          "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
+                        },
+                        "generate-object-property": {
+                          "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.1.1.tgz",
+                          "integrity": "sha1-j9prTLabNKGJps6+58TCaK9HzJM=",
+                          "requires": {
+                            "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
+                          },
+                          "dependencies": {
+                            "is-property": {
+                              "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+                              "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
+                            }
+                          }
+                        },
+                        "jsonpointer": {
+                          "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-1.1.0.tgz",
+                          "integrity": "sha1-w8cu+u07lxVBY9wB3TSeHP4PgPw="
+                        },
+                        "xtend": {
+                          "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz",
+                          "integrity": "sha1-i8Nv+Hrtvnzp6vC8o2sjVKdDhA8="
+                        }
+                      }
+                    }
+                  }
+                },
+                "hawk": {
+                  "version": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz",
+                  "integrity": "sha1-HnMc45RH+h0PbXB/e87r7A/R7B8=",
+                  "requires": {
+                    "boom": "https://registry.npmjs.org/boom/-/boom-2.7.1.tgz",
+                    "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.4.tgz",
+                    "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.12.0.tgz",
+                    "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+                  },
+                  "dependencies": {
+                    "boom": {
+                      "version": "https://registry.npmjs.org/boom/-/boom-2.7.1.tgz",
+                      "integrity": "sha1-+xZcNI0zeXfGHUNjwh6eGr9SZwU=",
+                      "requires": {
+                        "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.12.0.tgz"
+                      }
+                    },
+                    "cryptiles": {
+                      "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.4.tgz",
+                      "integrity": "sha1-CeoXdbnhx95+YKmdQqtvCM4aEoU=",
+                      "requires": {
+                        "boom": "https://registry.npmjs.org/boom/-/boom-2.7.1.tgz"
+                      }
+                    },
+                    "hoek": {
+                      "version": "https://registry.npmjs.org/hoek/-/hoek-2.12.0.tgz",
+                      "integrity": "sha1-XRGW4L8gxc7JV+iScQEWTv/a8ck="
+                    },
+                    "sntp": {
+                      "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+                      "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+                      "requires": {
+                        "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.12.0.tgz"
+                      }
+                    }
+                  }
+                },
+                "http-signature": {
+                  "version": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
+                  "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=",
+                  "requires": {
+                    "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+                    "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
+                    "ctype": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz"
+                  },
+                  "dependencies": {
+                    "asn1": {
+                      "version": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+                      "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc="
+                    },
+                    "assert-plus": {
+                      "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
+                      "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA="
+                    },
+                    "ctype": {
+                      "version": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
+                      "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8="
+                    }
+                  }
+                },
+                "isstream": {
+                  "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+                  "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+                },
+                "json-stringify-safe": {
+                  "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz",
+                  "integrity": "sha1-TB8ii1BQg366nSH1DC5uMgYkVm4="
+                },
+                "mime-types": {
+                  "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
+                  "integrity": "sha1-6s2Bu3PKsqd0R1SaB41PIBjGe00=",
+                  "requires": {
+                    "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"
+                  },
+                  "dependencies": {
+                    "mime-db": {
+                      "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz",
+                      "integrity": "sha1-gqmzhfIrD1lU3sTURfq6ByLErSU="
+                    }
+                  }
+                },
+                "node-uuid": {
+                  "version": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz",
+                  "integrity": "sha1-MZu3pW58tj8AtcDNeFHNS03fHfk="
+                },
+                "oauth-sign": {
+                  "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz",
+                  "integrity": "sha1-fb6uRPbKRU4fFoRR1jB0ZzWBPOM="
+                },
+                "qs": {
+                  "version": "https://registry.npmjs.org/qs/-/qs-2.4.1.tgz",
+                  "integrity": "sha1-aMuuqXEBNCaoDBQE+taxprEXUkU="
+                },
+                "stringstream": {
+                  "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz",
+                  "integrity": "sha1-Dw40I/lClgtWkqwySlfdCTvEGpI="
+                },
+                "tough-cookie": {
+                  "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz",
+                  "integrity": "sha1-giDH4hq9WxPZaAQlS9WoHr8sfWI=",
+                  "requires": {
+                    "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"
+                  },
+                  "dependencies": {
+                    "punycode": {
+                      "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+                      "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+                    }
+                  }
+                },
+                "tunnel-agent": {
+                  "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz",
+                  "integrity": "sha1-sRhOMS/7z3CztMeOjCGd5+uxxVA="
+                }
+              }
+            }
+          }
+        },
+        "npm-shrinkwrap": {
+          "version": "https://registry.npmjs.org/npm-shrinkwrap/-/npm-shrinkwrap-5.3.0.tgz",
+          "integrity": "sha1-qkD838b7D/4hwYpJGNeXKct/jyI=",
+          "requires": {
+            "array-find": "https://registry.npmjs.org/array-find/-/array-find-0.1.1.tgz",
+            "error": "https://registry.npmjs.org/error/-/error-4.4.0.tgz",
+            "json-diff": "https://registry.npmjs.org/json-diff/-/json-diff-0.3.1.tgz",
+            "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz",
+            "msee": "https://registry.npmjs.org/msee/-/msee-0.1.1.tgz",
+            "npm": "https://registry.npmjs.org/npm/-/npm-1.4.21.tgz",
+            "read-json": "https://registry.npmjs.org/read-json/-/read-json-0.1.0.tgz",
+            "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.3.2.tgz",
+            "run-parallel": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.0.tgz",
+            "run-series": "https://registry.npmjs.org/run-series/-/run-series-1.1.0.tgz",
+            "safe-json-parse": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-2.0.0.tgz",
+            "semver": "https://registry.npmjs.org/semver/-/semver-4.3.3.tgz",
+            "sorted-object": "https://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz",
+            "string-template": "https://registry.npmjs.org/string-template/-/string-template-0.2.0.tgz"
+          },
+          "dependencies": {
+            "array-find": {
+              "version": "https://registry.npmjs.org/array-find/-/array-find-0.1.1.tgz",
+              "integrity": "sha1-3IE4Ra1amvw1y5K3hsh42Btbgs4="
+            },
+            "error": {
+              "version": "https://registry.npmjs.org/error/-/error-4.4.0.tgz",
+              "integrity": "sha1-v2n/JR+0onnBmtzNqmth6Q2b8So=",
+              "requires": {
+                "camelize": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz",
+                "string-template": "https://registry.npmjs.org/string-template/-/string-template-0.2.0.tgz",
+                "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz"
+              },
+              "dependencies": {
+                "camelize": {
+                  "version": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz",
+                  "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs="
+                },
+                "xtend": {
+                  "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz",
+                  "integrity": "sha1-i8Nv+Hrtvnzp6vC8o2sjVKdDhA8="
+                }
+              }
+            },
+            "json-diff": {
+              "version": "https://registry.npmjs.org/json-diff/-/json-diff-0.3.1.tgz",
+              "integrity": "sha1-bbw64tJeB1p/1xvNmHRFhmb7aBs=",
+              "requires": {
+                "cli-color": "https://registry.npmjs.org/cli-color/-/cli-color-0.1.7.tgz",
+                "difflib": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz",
+                "dreamopt": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.6.0.tgz"
+              },
+              "dependencies": {
+                "cli-color": {
+                  "version": "https://registry.npmjs.org/cli-color/-/cli-color-0.1.7.tgz",
+                  "integrity": "sha1-rcMgD6RxzCEbDaf1ZrcemLnWc0c=",
+                  "requires": {
+                    "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.8.2.tgz"
+                  },
+                  "dependencies": {
+                    "es5-ext": {
+                      "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.8.2.tgz",
+                      "integrity": "sha1-q6jZ4ZQ6iVrJaDemKjmz9V7NlKs="
+                    }
+                  }
+                },
+                "difflib": {
+                  "version": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz",
+                  "integrity": "sha1-teMDYabbAjF21WKJLbhZQKcY9H4=",
+                  "requires": {
+                    "heap": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz"
+                  },
+                  "dependencies": {
+                    "heap": {
+                      "version": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz",
+                      "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw="
+                    }
+                  }
+                },
+                "dreamopt": {
+                  "version": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.6.0.tgz",
+                  "integrity": "sha1-2BPM2sjTnYrVJndVFKE92mZNa0s=",
+                  "requires": {
+                    "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+                  },
+                  "dependencies": {
+                    "wordwrap": {
+                      "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+                      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
+                    }
+                  }
+                }
+              }
+            },
+            "minimist": {
+              "version": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz",
+              "integrity": "sha1-G8K8cWWM3KVxJHVoQ2NhWwtPaVs="
+            },
+            "msee": {
+              "version": "https://registry.npmjs.org/msee/-/msee-0.1.1.tgz",
+              "integrity": "sha1-u0WMai4SOr30KOj0vOUhqMSsFI8=",
+              "requires": {
+                "cardinal": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz",
+                "chalk": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
+                "marked": "https://registry.npmjs.org/marked/-/marked-0.3.3.tgz",
+                "nopt": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz",
+                "xtend": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz"
+              },
+              "dependencies": {
+                "cardinal": {
+                  "version": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz",
+                  "integrity": "sha1-ylu2iltRG5D+k7ms6km97lwyv+I=",
+                  "requires": {
+                    "ansicolors": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz",
+                    "redeyed": "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz"
+                  },
+                  "dependencies": {
+                    "ansicolors": {
+                      "version": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz",
+                      "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8="
+                    },
+                    "redeyed": {
+                      "version": "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz",
+                      "integrity": "sha1-N+mQpvKyGyoRwuakj9QTVpjLqX8=",
+                      "requires": {
+                        "esprima": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz"
+                      },
+                      "dependencies": {
+                        "esprima": {
+                          "version": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+                          "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0="
+                        }
+                      }
+                    }
+                  }
+                },
+                "chalk": {
+                  "version": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
+                  "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
+                  "requires": {
+                    "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
+                    "has-color": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
+                    "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz"
+                  },
+                  "dependencies": {
+                    "ansi-styles": {
+                      "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
+                      "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg="
+                    },
+                    "has-color": {
+                      "version": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
+                      "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8="
+                    },
+                    "strip-ansi": {
+                      "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
+                      "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE="
+                    }
+                  }
+                },
+                "marked": {
+                  "version": "https://registry.npmjs.org/marked/-/marked-0.3.3.tgz",
+                  "integrity": "sha1-CLrZysE3NvbM7dwgI0TxsL8lU5A="
+                },
+                "nopt": {
+                  "version": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz",
+                  "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=",
+                  "requires": {
+                    "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz"
+                  },
+                  "dependencies": {
+                    "abbrev": {
+                      "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz",
+                      "integrity": "sha1-XYJXvZ6+Q15piy+kMa/eT+exCwM="
+                    }
+                  }
+                },
+                "xtend": {
+                  "version": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+                  "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
+                  "requires": {
+                    "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz"
+                  },
+                  "dependencies": {
+                    "object-keys": {
+                      "version": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+                      "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY="
+                    }
+                  }
+                }
+              }
+            },
+            "npm": {
+              "version": "https://registry.npmjs.org/npm/-/npm-1.4.21.tgz",
+              "integrity": "sha1-UIGvUX7CxMvPgoEbCHMZWz0QV/k=",
+              "requires": {
+                "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz",
+                "ansi": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz",
+                "ansicolors": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
+                "ansistyles": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz",
+                "archy": "https://registry.npmjs.org/archy/-/archy-0.0.2.tgz",
+                "block-stream": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz",
+                "char-spinner": "https://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz",
+                "child-process-close": "https://registry.npmjs.org/child-process-close/-/child-process-close-0.1.1.tgz",
+                "chmodr": "https://registry.npmjs.org/chmodr/-/chmodr-0.1.0.tgz",
+                "chownr": "https://registry.npmjs.org/chownr/-/chownr-0.0.1.tgz",
+                "cmd-shim": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-1.1.1.tgz",
+                "columnify": "https://registry.npmjs.org/columnify/-/columnify-1.1.0.tgz",
+                "editor": "https://registry.npmjs.org/editor/-/editor-0.1.0.tgz",
+                "fstream": "https://registry.npmjs.org/fstream/-/fstream-0.1.28.tgz",
+                "fstream-npm": "https://registry.npmjs.org/fstream-npm/-/fstream-npm-0.1.7.tgz",
+                "github-url-from-git": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.1.1.tgz",
+                "github-url-from-username-repo": "https://registry.npmjs.org/github-url-from-username-repo/-/github-url-from-username-repo-0.2.0.tgz",
+                "glob": "https://registry.npmjs.org/glob/-/glob-4.0.3.tgz",
+                "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.1.tgz",
+                "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                "ini": "https://registry.npmjs.org/ini/-/ini-1.2.1.tgz",
+                "init-package-json": "https://registry.npmjs.org/init-package-json/-/init-package-json-0.1.0.tgz",
+                "lockfile": "https://registry.npmjs.org/lockfile/-/lockfile-0.4.2.tgz",
+                "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz",
+                "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+                "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+                "node-gyp": "https://registry.npmjs.org/node-gyp/-/node-gyp-0.13.1.tgz",
+                "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz",
+                "npm-cache-filename": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.1.tgz",
+                "npm-install-checks": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-1.0.2.tgz",
+                "npm-registry-client": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-2.0.3.tgz",
+                "npm-user-validate": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.0.tgz",
+                "npmconf": "https://registry.npmjs.org/npmconf/-/npmconf-1.1.4.tgz",
+                "npmlog": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz",
+                "once": "https://registry.npmjs.org/once/-/once-1.3.0.tgz",
+                "opener": "https://registry.npmjs.org/opener/-/opener-1.3.0.tgz",
+                "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz",
+                "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz",
+                "read": "https://registry.npmjs.org/read/-/read-1.0.5.tgz",
+                "read-installed": "https://registry.npmjs.org/read-installed/-/read-installed-2.0.5.tgz",
+                "read-package-json": "https://registry.npmjs.org/read-package-json/-/read-package-json-1.2.2.tgz",
+                "request": "https://registry.npmjs.org/request/-/request-2.30.0.tgz",
+                "retry": "https://registry.npmjs.org/retry/-/retry-0.6.0.tgz",
+                "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+                "semver": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz",
+                "sha": "https://registry.npmjs.org/sha/-/sha-1.2.4.tgz",
+                "slide": "https://registry.npmjs.org/slide/-/slide-1.1.5.tgz",
+                "sorted-object": "https://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz",
+                "tar": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz",
+                "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+                "uid-number": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz",
+                "which": "https://registry.npmjs.org/which/-/which-1.0.5.tgz"
+              },
+              "dependencies": {
+                "abbrev": {
+                  "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz",
+                  "integrity": "sha1-XYJXvZ6+Q15piy+kMa/eT+exCwM="
+                },
+                "ansi": {
+                  "version": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz",
+                  "integrity": "sha1-dLLx8YfIVTx/lQFby3YAn7Q9OOA="
+                },
+                "ansicolors": {
+                  "version": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
+                  "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk="
+                },
+                "ansistyles": {
+                  "version": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz",
+                  "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk="
+                },
+                "archy": {
+                  "version": "https://registry.npmjs.org/archy/-/archy-0.0.2.tgz",
+                  "integrity": "sha1-kQ9Dv2YUH8M1VkWXq8GJ30Sz014="
+                },
+                "block-stream": {
+                  "version": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz",
+                  "integrity": "sha1-kIirWuHoYfTYGxdrSoBGCAcD3u0=",
+                  "requires": {
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+                  }
+                },
+                "char-spinner": {
+                  "version": "https://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz",
+                  "integrity": "sha1-5upnvSR+EHESmDt6sEee02KAAIE="
+                },
+                "child-process-close": {
+                  "version": "https://registry.npmjs.org/child-process-close/-/child-process-close-0.1.1.tgz",
+                  "integrity": "sha1-wVPt56XrZaxp54o4lzsaKGN3918="
+                },
+                "chmodr": {
+                  "version": "https://registry.npmjs.org/chmodr/-/chmodr-0.1.0.tgz",
+                  "integrity": "sha1-4JIVodUVQtsqJXaWl2W89hJVg+s="
+                },
+                "chownr": {
+                  "version": "https://registry.npmjs.org/chownr/-/chownr-0.0.1.tgz",
+                  "integrity": "sha1-UdGBidkJLV+K/WI/Moi/0ca/GmI="
+                },
+                "cmd-shim": {
+                  "version": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-1.1.1.tgz",
+                  "integrity": "sha1-NIspLbMu10yCg/z2xIVJuExmWKc=",
+                  "requires": {
+                    "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                    "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
+                  }
+                },
+                "columnify": {
+                  "version": "https://registry.npmjs.org/columnify/-/columnify-1.1.0.tgz",
+                  "integrity": "sha1-C5CObU8cgBlDWKGTOq+dxJJxxnk=",
+                  "requires": {
+                    "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.2.2.tgz",
+                    "wcwidth.js": "https://registry.npmjs.org/wcwidth.js/-/wcwidth.js-0.0.4.tgz"
+                  },
+                  "dependencies": {
+                    "strip-ansi": {
+                      "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.2.2.tgz",
+                      "integrity": "sha1-hU0pDJgVJfyMOXqRCwJa4tVP/Ag=",
+                      "requires": {
+                        "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.1.0.tgz"
+                      },
+                      "dependencies": {
+                        "ansi-regex": {
+                          "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.1.0.tgz",
+                          "integrity": "sha1-Vcpg22kAhXxCOukpeYACb5Qe2QM="
+                        }
+                      }
+                    },
+                    "wcwidth.js": {
+                      "version": "https://registry.npmjs.org/wcwidth.js/-/wcwidth.js-0.0.4.tgz",
+                      "integrity": "sha1-RCmKfImcF1AZkP2t3Xbva9CBvnU=",
+                      "requires": {
+                        "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"
+                      },
+                      "dependencies": {
+                        "underscore": {
+                          "version": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+                          "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag="
+                        }
+                      }
+                    }
+                  }
+                },
+                "editor": {
+                  "version": "https://registry.npmjs.org/editor/-/editor-0.1.0.tgz",
+                  "integrity": "sha1-VC9GYsaoyI6GL8EZReIE5RmBuaE="
+                },
+                "fstream": {
+                  "version": "https://registry.npmjs.org/fstream/-/fstream-0.1.28.tgz",
+                  "integrity": "sha1-K5KG86ZG4wB179A1Ryk2HEt2Kik=",
+                  "requires": {
+                    "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                    "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+                    "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+                  }
+                },
+                "fstream-npm": {
+                  "version": "https://registry.npmjs.org/fstream-npm/-/fstream-npm-0.1.7.tgz",
+                  "integrity": "sha1-Qj3F0dH8t9h4UB9Dx+EaMykr1V8=",
+                  "requires": {
+                    "fstream-ignore": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.8.tgz",
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "fstream-ignore": {
+                      "version": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.8.tgz",
+                      "integrity": "sha1-zEgw+5ljF4vl2es3VppKB4XPnlM=",
+                      "requires": {
+                        "fstream": "https://registry.npmjs.org/fstream/-/fstream-0.1.28.tgz",
+                        "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                        "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"
+                      }
+                    }
+                  }
+                },
+                "github-url-from-git": {
+                  "version": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.1.1.tgz",
+                  "integrity": "sha1-H4liNFMSPvliOVbiZMYL9MPPXM8="
+                },
+                "github-url-from-username-repo": {
+                  "version": "https://registry.npmjs.org/github-url-from-username-repo/-/github-url-from-username-repo-0.2.0.tgz",
+                  "integrity": "sha1-dZC0+mBbemy7fgb/zZ0lMhD52+E="
+                },
+                "glob": {
+                  "version": "https://registry.npmjs.org/glob/-/glob-4.0.3.tgz",
+                  "integrity": "sha1-yzDIYDWYAct9VkNpdoiPxKCaNds=",
+                  "requires": {
+                    "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                    "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+                    "once": "https://registry.npmjs.org/once/-/once-1.3.0.tgz"
+                  }
+                },
+                "graceful-fs": {
+                  "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                  "integrity": "sha1-LLW/f3Qr6orUfHVMru4DK35xpXc="
+                },
+                "inflight": {
+                  "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.1.tgz",
+                  "integrity": "sha1-AfaRGCFTUkPHkKwPmY9U6QI/+28=",
+                  "requires": {
+                    "once": "https://registry.npmjs.org/once/-/once-1.3.0.tgz"
+                  }
+                },
+                "inherits": {
+                  "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                  "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+                },
+                "ini": {
+                  "version": "https://registry.npmjs.org/ini/-/ini-1.2.1.tgz",
+                  "integrity": "sha1-f3dOLyJ1LNHay/nGMyPfKhZOvKM="
+                },
+                "init-package-json": {
+                  "version": "https://registry.npmjs.org/init-package-json/-/init-package-json-0.1.0.tgz",
+                  "integrity": "sha1-JJyYJ1mhAlVvKU8lksFKLa2FX1I=",
+                  "requires": {
+                    "glob": "https://registry.npmjs.org/glob/-/glob-4.0.3.tgz",
+                    "promzard": "https://registry.npmjs.org/promzard/-/promzard-0.2.2.tgz",
+                    "read": "https://registry.npmjs.org/read/-/read-1.0.5.tgz",
+                    "read-package-json": "https://registry.npmjs.org/read-package-json/-/read-package-json-1.2.2.tgz",
+                    "semver": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz"
+                  },
+                  "dependencies": {
+                    "promzard": {
+                      "version": "https://registry.npmjs.org/promzard/-/promzard-0.2.2.tgz",
+                      "integrity": "sha1-kYufKylFjLABeBqIVlAuSnmwFuA=",
+                      "requires": {
+                        "read": "https://registry.npmjs.org/read/-/read-1.0.5.tgz"
+                      }
+                    }
+                  }
+                },
+                "lockfile": {
+                  "version": "https://registry.npmjs.org/lockfile/-/lockfile-0.4.2.tgz",
+                  "integrity": "sha1-q5H103RbwAWuT6NNB4kQ0fK5YS0="
+                },
+                "lru-cache": {
+                  "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz",
+                  "integrity": "sha1-2COIrpyWC+y+oMc7uet5tsbOmus="
+                },
+                "minimatch": {
+                  "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+                  "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+                  "requires": {
+                    "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz",
+                    "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz"
+                  },
+                  "dependencies": {
+                    "sigmund": {
+                      "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz",
+                      "integrity": "sha1-ZqKzp0mui1+4nv1PzAHclPvgIpY="
+                    }
+                  }
+                },
+                "mkdirp": {
+                  "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+                  "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc="
+                },
+                "node-gyp": {
+                  "version": "https://registry.npmjs.org/node-gyp/-/node-gyp-0.13.1.tgz",
+                  "integrity": "sha1-WkhN0twT1biUqP54GiUMB+rnv/o=",
+                  "requires": {
+                    "fstream": "https://registry.npmjs.org/fstream/-/fstream-0.1.28.tgz",
+                    "glob": "https://registry.npmjs.org/glob/-/glob-4.0.3.tgz",
+                    "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                    "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+                    "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+                    "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz",
+                    "npmlog": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz",
+                    "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz",
+                    "request": "https://registry.npmjs.org/request/-/request-2.30.0.tgz",
+                    "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+                    "semver": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz",
+                    "tar": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz",
+                    "which": "https://registry.npmjs.org/which/-/which-1.0.5.tgz"
+                  }
+                },
+                "nopt": {
+                  "version": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz",
+                  "integrity": "sha1-vOXEJEajKR9HYio3CrvxWPu6y/0=",
+                  "requires": {
+                    "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz"
+                  }
+                },
+                "npm-cache-filename": {
+                  "version": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.1.tgz",
+                  "integrity": "sha1-m2QPDBpboRRWWWhTcqn/cfcMQyM="
+                },
+                "npm-install-checks": {
+                  "version": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-1.0.2.tgz",
+                  "integrity": "sha1-67p2l1P8hVEwgzPvQRkgdDpoCfY=",
+                  "requires": {
+                    "npmlog": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz",
+                    "semver": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz"
+                  }
+                },
+                "npm-registry-client": {
+                  "version": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-2.0.3.tgz",
+                  "integrity": "sha1-k9rT2aFiyZQEuttxc5xiLA87mnI=",
+                  "requires": {
+                    "chownr": "https://registry.npmjs.org/chownr/-/chownr-0.0.1.tgz",
+                    "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                    "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+                    "npm-cache-filename": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.1.tgz",
+                    "npmlog": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz",
+                    "request": "https://registry.npmjs.org/request/-/request-2.30.0.tgz",
+                    "retry": "https://registry.npmjs.org/retry/-/retry-0.6.0.tgz",
+                    "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+                    "semver": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz",
+                    "slide": "https://registry.npmjs.org/slide/-/slide-1.1.5.tgz"
+                  }
+                },
+                "npm-user-validate": {
+                  "version": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.0.tgz",
+                  "integrity": "sha1-NYpbUUjtP3l3HZgDiMbjTEph9jg="
+                },
+                "npmconf": {
+                  "version": "https://registry.npmjs.org/npmconf/-/npmconf-1.1.4.tgz",
+                  "integrity": "sha1-KsXQgCBtS/uavAG9NPCD+TrhYDw=",
+                  "requires": {
+                    "config-chain": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.8.tgz",
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                    "ini": "https://registry.npmjs.org/ini/-/ini-1.2.1.tgz",
+                    "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+                    "nopt": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz",
+                    "once": "https://registry.npmjs.org/once/-/once-1.3.0.tgz",
+                    "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz",
+                    "semver": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz",
+                    "uid-number": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz"
+                  },
+                  "dependencies": {
+                    "config-chain": {
+                      "version": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.8.tgz",
+                      "integrity": "sha1-CUPQtyJyE6INTq/0Q09KHAoFLK0=",
+                      "requires": {
+                        "ini": "https://registry.npmjs.org/ini/-/ini-1.2.1.tgz",
+                        "proto-list": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.3.tgz"
+                      },
+                      "dependencies": {
+                        "proto-list": {
+                          "version": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.3.tgz",
+                          "integrity": "sha1-YjVVShvKHw0V48oSynMp1d70K9k="
+                        }
+                      }
+                    }
+                  }
+                },
+                "npmlog": {
+                  "version": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz",
+                  "integrity": "sha1-i5ueRAXX7EjDHCNGllqtx6uuyqU=",
+                  "requires": {
+                    "ansi": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz"
+                  }
+                },
+                "once": {
+                  "version": "https://registry.npmjs.org/once/-/once-1.3.0.tgz",
+                  "integrity": "sha1-FRr4a/wfCMS58H0GqyUP/L61ZYE="
+                },
+                "opener": {
+                  "version": "https://registry.npmjs.org/opener/-/opener-1.3.0.tgz",
+                  "integrity": "sha1-EwumYiE/qELttM0DYdMaFTAaQ+I="
+                },
+                "osenv": {
+                  "version": "https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz",
+                  "integrity": "sha1-YWaBIe7FhJVQMLn0cLHSMJUEv8s="
+                },
+                "path-is-inside": {
+                  "version": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz",
+                  "integrity": "sha1-mNjx0DC/BL167uShulSF1AMY/Yk="
+                },
+                "read": {
+                  "version": "https://registry.npmjs.org/read/-/read-1.0.5.tgz",
+                  "integrity": "sha1-AHo9FpR4qnEKSRcn5FPv+5LnYgM=",
+                  "requires": {
+                    "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz"
+                  },
+                  "dependencies": {
+                    "mute-stream": {
+                      "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz",
+                      "integrity": "sha1-qSGZYKbV1dBGWXruUSUsZlX3F34="
+                    }
+                  }
+                },
+                "read-installed": {
+                  "version": "https://registry.npmjs.org/read-installed/-/read-installed-2.0.5.tgz",
+                  "integrity": "sha1-dh7aH9LcMi+Od4RKi/Hd7bz8dUs=",
+                  "requires": {
+                    "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                    "read-package-json": "https://registry.npmjs.org/read-package-json/-/read-package-json-1.2.2.tgz",
+                    "semver": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz",
+                    "slide": "https://registry.npmjs.org/slide/-/slide-1.1.5.tgz",
+                    "util-extend": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "util-extend": {
+                      "version": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz",
+                      "integrity": "sha1-u3A7eUgCk93Nz7PGqf6iD0g0Fbw="
+                    }
+                  }
+                },
+                "read-package-json": {
+                  "version": "https://registry.npmjs.org/read-package-json/-/read-package-json-1.2.2.tgz",
+                  "integrity": "sha1-VF/JBE0TW/X+CmfG6rNowxhsuv4=",
+                  "requires": {
+                    "glob": "https://registry.npmjs.org/glob/-/glob-4.0.3.tgz",
+                    "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                    "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz",
+                    "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-0.3.0.tgz"
+                  },
+                  "dependencies": {
+                    "normalize-package-data": {
+                      "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-0.3.0.tgz",
+                      "integrity": "sha1-cOqeW2yvafqp2D5C9xSJZCNy2BU=",
+                      "requires": {
+                        "github-url-from-git": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.1.1.tgz",
+                        "github-url-from-username-repo": "https://registry.npmjs.org/github-url-from-username-repo/-/github-url-from-username-repo-0.2.0.tgz",
+                        "semver": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz"
+                      }
+                    }
+                  }
+                },
+                "request": {
+                  "version": "https://registry.npmjs.org/request/-/request-2.30.0.tgz",
+                  "integrity": "sha1-jg028IBuiRFSSwcrZMXuU1oJ2GE=",
+                  "requires": {
+                    "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
+                    "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.0.tgz",
+                    "form-data": "https://registry.npmjs.org/form-data/-/form-data-0.1.2.tgz",
+                    "hawk": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz",
+                    "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz",
+                    "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz",
+                    "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
+                    "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz",
+                    "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz",
+                    "qs": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
+                    "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.9.15.tgz",
+                    "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz"
+                  },
+                  "dependencies": {
+                    "aws-sign2": {
+                      "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
+                      "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=",
+                      "optional": true
+                    },
+                    "forever-agent": {
+                      "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.0.tgz",
+                      "integrity": "sha1-DBZHp0868S12oHqZSQrefHJJyPA="
+                    },
+                    "form-data": {
+                      "version": "https://registry.npmjs.org/form-data/-/form-data-0.1.2.tgz",
+                      "integrity": "sha1-EUPCE1eRGnjdeROxibS6tdXVdEU=",
+                      "optional": true,
+                      "requires": {
+                        "async": "https://registry.npmjs.org/async/-/async-0.2.9.tgz",
+                        "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.4.tgz",
+                        "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"
+                      },
+                      "dependencies": {
+                        "async": {
+                          "version": "https://registry.npmjs.org/async/-/async-0.2.9.tgz",
+                          "integrity": "sha1-32MGD789Myhqdqr21Vophtn/hhk=",
+                          "optional": true
+                        },
+                        "combined-stream": {
+                          "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.4.tgz",
+                          "integrity": "sha1-LRpDNH2+lRWkonlnMuW4hHOECyI=",
+                          "optional": true,
+                          "requires": {
+                            "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz"
+                          },
+                          "dependencies": {
+                            "delayed-stream": {
+                              "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
+                              "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=",
+                              "optional": true
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "hawk": {
+                      "version": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz",
+                      "integrity": "sha1-uQuxaYByhUEdp//LjdJZhQLTtS0=",
+                      "optional": true,
+                      "requires": {
+                        "boom": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
+                        "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
+                        "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
+                        "sntp": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz"
+                      },
+                      "dependencies": {
+                        "boom": {
+                          "version": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
+                          "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=",
+                          "requires": {
+                            "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz"
+                          }
+                        },
+                        "cryptiles": {
+                          "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
+                          "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=",
+                          "optional": true,
+                          "requires": {
+                            "boom": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz"
+                          }
+                        },
+                        "hoek": {
+                          "version": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
+                          "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU="
+                        },
+                        "sntp": {
+                          "version": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz",
+                          "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=",
+                          "optional": true,
+                          "requires": {
+                            "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz"
+                          }
+                        }
+                      }
+                    },
+                    "http-signature": {
+                      "version": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz",
+                      "integrity": "sha1-FJTk9QAKg8DxG8wS1gB8Uwy5lYI=",
+                      "optional": true,
+                      "requires": {
+                        "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+                        "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz",
+                        "ctype": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz"
+                      },
+                      "dependencies": {
+                        "asn1": {
+                          "version": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+                          "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=",
+                          "optional": true
+                        },
+                        "assert-plus": {
+                          "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz",
+                          "integrity": "sha1-2T/9u2esVQd3m+MWp9ZRRkF77vg=",
+                          "optional": true
+                        },
+                        "ctype": {
+                          "version": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz",
+                          "integrity": "sha1-/oCR1Gijc6Cwyf+Lv7NCXACXOh0=",
+                          "optional": true
+                        }
+                      }
+                    },
+                    "json-stringify-safe": {
+                      "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz",
+                      "integrity": "sha1-TB8ii1BQg366nSH1DC5uMgYkVm4="
+                    },
+                    "mime": {
+                      "version": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
+                      "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
+                    },
+                    "node-uuid": {
+                      "version": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz",
+                      "integrity": "sha1-Oa71EOWImj3KnIlbUGxzquG6wEg="
+                    },
+                    "oauth-sign": {
+                      "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz",
+                      "integrity": "sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=",
+                      "optional": true
+                    },
+                    "qs": {
+                      "version": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
+                      "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc="
+                    },
+                    "tough-cookie": {
+                      "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.9.15.tgz",
+                      "integrity": "sha1-dWF6w0fjZZBSsDUBMYhYKWdzmfY=",
+                      "optional": true,
+                      "requires": {
+                        "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.2.3.tgz"
+                      },
+                      "dependencies": {
+                        "punycode": {
+                          "version": "https://registry.npmjs.org/punycode/-/punycode-1.2.3.tgz",
+                          "integrity": "sha1-tOMERxCC14PHOzuvq/L9m2pIYmY=",
+                          "optional": true
+                        }
+                      }
+                    },
+                    "tunnel-agent": {
+                      "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz",
+                      "integrity": "sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4=",
+                      "optional": true
+                    }
+                  }
+                },
+                "retry": {
+                  "version": "https://registry.npmjs.org/retry/-/retry-0.6.0.tgz",
+                  "integrity": "sha1-HAEHEyeab9Ho3vKK8MP/GHHKpTc="
+                },
+                "rimraf": {
+                  "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+                  "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="
+                },
+                "semver": {
+                  "version": "https://registry.npmjs.org/semver/-/semver-2.3.0.tgz",
+                  "integrity": "sha1-0xspA+vioYBsBbjnY5FqcYMQihU="
+                },
+                "sha": {
+                  "version": "https://registry.npmjs.org/sha/-/sha-1.2.4.tgz",
+                  "integrity": "sha1-H5o3fye2/e5Am5uFjkPacCvkik0=",
+                  "requires": {
+                    "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz",
+                    "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz"
+                  },
+                  "dependencies": {
+                    "readable-stream": {
+                      "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz",
+                      "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=",
+                      "optional": true,
+                      "requires": {
+                        "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz",
+                        "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                        "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                        "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25-1.tgz"
+                      },
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz",
+                          "integrity": "sha1-awcIWu+aPMrG7lO/nT3wwVIaVTg=",
+                          "optional": true
+                        },
+                        "isarray": {
+                          "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                          "optional": true
+                        },
+                        "string_decoder": {
+                          "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25-1.tgz",
+                          "integrity": "sha1-84e6vZXSOiu3Ox+/LLPvq294uqs=",
+                          "optional": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "slide": {
+                  "version": "https://registry.npmjs.org/slide/-/slide-1.1.5.tgz",
+                  "integrity": "sha1-MXMq3q548dLWCim2O69qAy33wl0="
+                },
+                "sorted-object": {
+                  "version": "https://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz",
+                  "integrity": "sha1-XR9PnB+yzUiWWWcwTiEutEz7bQU="
+                },
+                "tar": {
+                  "version": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz",
+                  "integrity": "sha1-QpQLrltfIsdEg2mRJvnz8nRJyxM=",
+                  "requires": {
+                    "block-stream": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz",
+                    "fstream": "https://registry.npmjs.org/fstream/-/fstream-0.1.28.tgz",
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+                  }
+                },
+                "text-table": {
+                  "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+                  "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+                },
+                "uid-number": {
+                  "version": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz",
+                  "integrity": "sha1-Wj2yPvXb1VuB/ODsmirG/M3ruB4="
+                },
+                "which": {
+                  "version": "https://registry.npmjs.org/which/-/which-1.0.5.tgz",
+                  "integrity": "sha1-VjDWgZ3aaS8UZEYueVbLQsCEJzk="
+                }
+              }
+            },
+            "read-json": {
+              "version": "https://registry.npmjs.org/read-json/-/read-json-0.1.0.tgz",
+              "integrity": "sha1-m8VcqPF3YtToi/Hmz75TKSTTWa4="
+            },
+            "rimraf": {
+              "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.3.2.tgz",
+              "integrity": "sha1-cwS9knXEAbiRA7EGs1McHvDAL+k=",
+              "requires": {
+                "glob": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz"
+              },
+              "dependencies": {
+                "glob": {
+                  "version": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+                  "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
+                  "requires": {
+                    "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                    "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+                    "once": "https://registry.npmjs.org/once/-/once-1.3.1.tgz"
+                  },
+                  "dependencies": {
+                    "inflight": {
+                      "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+                      "integrity": "sha1-bLtFIevVHODsCpNr/XZX736bFyo=",
+                      "requires": {
+                        "once": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
+                        "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+                      },
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                          "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
+                        }
+                      }
+                    },
+                    "inherits": {
+                      "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                      "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+                    },
+                    "minimatch": {
+                      "version": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+                      "integrity": "sha1-g76hFYA+egl6eAIkJyh+23Yvr+0=",
+                      "requires": {
+                        "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz"
+                      },
+                      "dependencies": {
+                        "brace-expansion": {
+                          "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
+                          "integrity": "sha1-ybfQPAPze8cEvhAOUitA249s/Nk=",
+                          "requires": {
+                            "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+                            "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+                          },
+                          "dependencies": {
+                            "balanced-match": {
+                              "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+                              "integrity": "sha1-OPZzDAOqttXtu1K9k0iF51bXFnQ="
+                            },
+                            "concat-map": {
+                              "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+                              "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+                            }
+                          }
+                        }
+                      }
+                    },
+                    "once": {
+                      "version": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
+                      "integrity": "sha1-8/Pk2lt9J7XHMpae4+Z+cpRXsx8=",
+                      "requires": {
+                        "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+                      },
+                      "dependencies": {
+                        "wrappy": {
+                          "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                          "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            },
+            "run-parallel": {
+              "version": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.0.tgz",
+              "integrity": "sha1-bFHDt+BkAKOfOONKoedkY6AV5n8=",
+              "requires": {
+                "dezalgo": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.1.tgz"
+              },
+              "dependencies": {
+                "dezalgo": {
+                  "version": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.1.tgz",
+                  "integrity": "sha1-Er3hNQYIB5ANWnrrtgfCq7fHaTc=",
+                  "requires": {
+                    "asap": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
+                    "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "asap": {
+                      "version": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
+                      "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0="
+                    },
+                    "wrappy": {
+                      "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                      "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
+                    }
+                  }
+                }
+              }
+            },
+            "run-series": {
+              "version": "https://registry.npmjs.org/run-series/-/run-series-1.1.0.tgz",
+              "integrity": "sha1-8sOmCtkQeCINHAa8y1EkzB8CdIs=",
+              "requires": {
+                "dezalgo": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.1.tgz"
+              },
+              "dependencies": {
+                "dezalgo": {
+                  "version": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.1.tgz",
+                  "integrity": "sha1-Er3hNQYIB5ANWnrrtgfCq7fHaTc=",
+                  "requires": {
+                    "asap": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
+                    "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "asap": {
+                      "version": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
+                      "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0="
+                    },
+                    "wrappy": {
+                      "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                      "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk="
+                    }
+                  }
+                }
+              }
+            },
+            "safe-json-parse": {
+              "version": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-2.0.0.tgz",
+              "integrity": "sha1-baQ/LkqGQzV3Ox0t8NssGWKgvuw="
+            },
+            "semver": {
+              "version": "https://registry.npmjs.org/semver/-/semver-4.3.3.tgz",
+              "integrity": "sha1-FUZrYSILw3HNjw5map94Uynqgig="
+            },
+            "sorted-object": {
+              "version": "https://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz",
+              "integrity": "sha1-XR9PnB+yzUiWWWcwTiEutEz7bQU="
+            },
+            "string-template": {
+              "version": "https://registry.npmjs.org/string-template/-/string-template-0.2.0.tgz",
+              "integrity": "sha1-f9c+ZDFmZlUoCK9FCJVph63cX1s=",
+              "requires": {
+                "js-string-escape": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.0.tgz"
+              },
+              "dependencies": {
+                "js-string-escape": {
+                  "version": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.0.tgz",
+                  "integrity": "sha1-0tI2X9Lms5SLg3SsdiisDoTQAAI="
+                }
+              }
+            }
+          }
+        },
+        "promise": {
+          "version": "https://registry.npmjs.org/promise/-/promise-7.0.0.tgz",
+          "integrity": "sha1-mK5LV5h1UhbErqLB9iOAUXq4dns=",
+          "dev": true,
+          "requires": {
+            "asap": "https://registry.npmjs.org/asap/-/asap-2.0.2.tgz"
+          },
+          "dependencies": {
+            "asap": {
+              "version": "https://registry.npmjs.org/asap/-/asap-2.0.2.tgz",
+              "integrity": "sha1-SgKLdGwaByAVHCZQwWbBfKAyou8=",
+              "dev": true
+            }
+          }
+        },
+        "standard": {
+          "version": "https://registry.npmjs.org/standard/-/standard-3.7.0.tgz",
+          "integrity": "sha1-cDqmfuQyfqd8hYCDWIJqUwxlV+U=",
+          "dev": true,
+          "requires": {
+            "dezalgo": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.1.tgz",
+            "eslint": "https://registry.npmjs.org/eslint/-/eslint-0.18.0.tgz",
+            "eslint-plugin-react": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-2.1.1.tgz",
+            "find-root": "https://registry.npmjs.org/find-root/-/find-root-0.1.1.tgz",
+            "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+            "glob": "https://registry.npmjs.org/glob/-/glob-5.0.5.tgz",
+            "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz",
+            "run-parallel": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.0.tgz",
+            "standard-format": "https://registry.npmjs.org/standard-format/-/standard-format-1.3.6.tgz",
+            "uniq": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz"
+          },
+          "dependencies": {
+            "dezalgo": {
+              "version": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.1.tgz",
+              "integrity": "sha1-Er3hNQYIB5ANWnrrtgfCq7fHaTc=",
+              "dev": true,
+              "requires": {
+                "asap": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
+                "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+              },
+              "dependencies": {
+                "asap": {
+                  "version": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
+                  "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=",
+                  "dev": true
+                },
+                "wrappy": {
+                  "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                  "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=",
+                  "dev": true
+                }
+              }
+            },
+            "eslint": {
+              "version": "https://registry.npmjs.org/eslint/-/eslint-0.18.0.tgz",
+              "integrity": "sha1-4RF8zYavF0sDEv/oJQkBnVtQdZs=",
+              "dev": true,
+              "requires": {
+                "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz",
+                "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.8.tgz",
+                "debug": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+                "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-0.6.4.tgz",
+                "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz",
+                "escope": "https://registry.npmjs.org/escope/-/escope-2.0.6.tgz",
+                "espree": "https://registry.npmjs.org/espree/-/espree-1.12.3.tgz",
+                "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-2.0.0.tgz",
+                "estraverse-fb": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.1.tgz",
+                "globals": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz",
+                "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.2.7.tgz",
+                "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+                "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+                "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz",
+                "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz",
+                "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.2.tgz",
+                "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+                "user-home": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+                "xml-escape": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz"
+              },
+              "dependencies": {
+                "concat-stream": {
+                  "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.8.tgz",
+                  "integrity": "sha1-6DJbuJ5VAA5StibZdGb94aKM/l0=",
+                  "dev": true,
+                  "requires": {
+                    "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                    "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
+                    "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+                  },
+                  "dependencies": {
+                    "inherits": {
+                      "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                      "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+                      "dev": true
+                    },
+                    "readable-stream": {
+                      "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
+                      "integrity": "sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=",
+                      "dev": true,
+                      "requires": {
+                        "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz",
+                        "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                        "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                        "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+                      },
+                      "dependencies": {
+                        "core-util-is": {
+                          "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz",
+                          "integrity": "sha1-awcIWu+aPMrG7lO/nT3wwVIaVTg=",
+                          "dev": true
+                        },
+                        "isarray": {
+                          "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                          "dev": true
+                        },
+                        "string_decoder": {
+                          "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+                          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "typedarray": {
+                      "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+                      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+                      "dev": true
+                    }
+                  }
+                },
+                "debug": {
+                  "version": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+                  "integrity": "sha1-zoqxte6PvuK/o7Yzyrk9NmtjQY4=",
+                  "dev": true,
+                  "requires": {
+                    "ms": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz"
+                  },
+                  "dependencies": {
+                    "ms": {
+                      "version": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz",
+                      "integrity": "sha1-hlvpTC5zl62KV9pqYzpuLzB5i4M=",
+                      "dev": true
+                    }
+                  }
+                },
+                "doctrine": {
+                  "version": "https://registry.npmjs.org/doctrine/-/doctrine-0.6.4.tgz",
+                  "integrity": "sha1-gUKEkalC7xiwSSBW7aOADu5X1h0=",
+                  "dev": true,
+                  "requires": {
+                    "esutils": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz",
+                    "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "esutils": {
+                      "version": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz",
+                      "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=",
+                      "dev": true
+                    },
+                    "isarray": {
+                      "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+                      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+                      "dev": true
+                    }
+                  }
+                },
+                "escape-string-regexp": {
+                  "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz",
+                  "integrity": "sha1-ni2LJbwlVcMzZyN1DgPwmcJzW7U=",
+                  "dev": true
+                },
+                "escope": {
+                  "version": "https://registry.npmjs.org/escope/-/escope-2.0.6.tgz",
+                  "integrity": "sha1-wbrCSHBgW7OEugc9zgQXyTBe3es=",
+                  "dev": true,
+                  "requires": {
+                    "es6-map": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.1.tgz",
+                    "es6-weak-map": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz",
+                    "esrecurse": "https://registry.npmjs.org/esrecurse/-/esrecurse-1.2.0.tgz",
+                    "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-2.0.0.tgz",
+                    "util-extend": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "es6-map": {
+                      "version": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.1.tgz",
+                      "integrity": "sha1-uHkjnteBngsIxAum4Z+gR8p8jR0=",
+                      "dev": true,
+                      "requires": {
+                        "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                        "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz",
+                        "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+                        "es6-set": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.1.tgz",
+                        "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-0.1.1.tgz",
+                        "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.3.tgz"
+                      },
+                      "dependencies": {
+                        "d": {
+                          "version": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                          "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=",
+                          "dev": true,
+                          "requires": {
+                            "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz"
+                          }
+                        },
+                        "es5-ext": {
+                          "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz",
+                          "integrity": "sha1-4n1XUEAaEcCCWeO5tdO90ygd8Ao=",
+                          "dev": true,
+                          "requires": {
+                            "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+                            "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
+                          },
+                          "dependencies": {
+                            "es6-symbol": {
+                              "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz",
+                              "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=",
+                              "dev": true,
+                              "requires": {
+                                "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                                "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz"
+                              }
+                            }
+                          }
+                        },
+                        "es6-iterator": {
+                          "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+                          "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=",
+                          "dev": true,
+                          "requires": {
+                            "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                            "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz",
+                            "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
+                          },
+                          "dependencies": {
+                            "es6-symbol": {
+                              "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz",
+                              "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=",
+                              "dev": true,
+                              "requires": {
+                                "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                                "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz"
+                              }
+                            }
+                          }
+                        },
+                        "es6-set": {
+                          "version": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.1.tgz",
+                          "integrity": "sha1-SXzSNcmiaR9Mqg4z3XPvhr3nOKw=",
+                          "dev": true,
+                          "requires": {
+                            "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                            "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz",
+                            "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+                            "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-0.1.1.tgz",
+                            "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.3.tgz"
+                          }
+                        },
+                        "es6-symbol": {
+                          "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-0.1.1.tgz",
+                          "integrity": "sha1-nPf6su2v8bHaj+jmi/4/Wspsohg=",
+                          "dev": true,
+                          "requires": {
+                            "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                            "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz"
+                          }
+                        },
+                        "event-emitter": {
+                          "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.3.tgz",
+                          "integrity": "sha1-346AZUHGirj/IKeaGEG5GrqhvuQ=",
+                          "dev": true,
+                          "requires": {
+                            "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                            "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz"
+                          }
+                        }
+                      }
+                    },
+                    "es6-weak-map": {
+                      "version": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz",
+                      "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=",
+                      "dev": true,
+                      "requires": {
+                        "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                        "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz",
+                        "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+                        "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
+                      },
+                      "dependencies": {
+                        "d": {
+                          "version": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                          "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=",
+                          "dev": true,
+                          "requires": {
+                            "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz"
+                          }
+                        },
+                        "es5-ext": {
+                          "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz",
+                          "integrity": "sha1-4n1XUEAaEcCCWeO5tdO90ygd8Ao=",
+                          "dev": true,
+                          "requires": {
+                            "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+                            "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
+                          }
+                        },
+                        "es6-iterator": {
+                          "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz",
+                          "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=",
+                          "dev": true,
+                          "requires": {
+                            "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                            "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz",
+                            "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz"
+                          }
+                        },
+                        "es6-symbol": {
+                          "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz",
+                          "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=",
+                          "dev": true,
+                          "requires": {
+                            "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+                            "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.6.tgz"
+                          }
+                        }
+                      }
+                    },
+                    "esrecurse": {
+                      "version": "https://registry.npmjs.org/esrecurse/-/esrecurse-1.2.0.tgz",
+                      "integrity": "sha1-JeOzq3atih2i046Tk/12uEVqcG8=",
+                      "dev": true,
+                      "requires": {
+                        "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-2.0.0.tgz"
+                      }
+                    },
+                    "util-extend": {
+                      "version": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz",
+                      "integrity": "sha1-u3A7eUgCk93Nz7PGqf6iD0g0Fbw=",
+                      "dev": true
+                    }
+                  }
+                },
+                "espree": {
+                  "version": "https://registry.npmjs.org/espree/-/espree-1.12.3.tgz",
+                  "integrity": "sha1-BM7q2pG9oHejjAQMEluhhrE7s8w=",
+                  "dev": true
+                },
+                "estraverse": {
+                  "version": "https://registry.npmjs.org/estraverse/-/estraverse-2.0.0.tgz",
+                  "integrity": "sha1-WuRpYyQ2ACBmdMyySgnhZnT83KE=",
+                  "dev": true
+                },
+                "estraverse-fb": {
+                  "version": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.1.tgz",
+                  "integrity": "sha1-Fg51qA5gWwjOiUvM4v4+Qpq/kr8=",
+                  "dev": true
+                },
+                "globals": {
+                  "version": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz",
+                  "integrity": "sha1-hJgDKzttHMge68X3lpDY/in6v08=",
+                  "dev": true
+                },
+                "js-yaml": {
+                  "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.2.7.tgz",
+                  "integrity": "sha1-ECeQ8mXZhv6VpNDyp5Lnp72Ibuw=",
+                  "dev": true,
+                  "requires": {
+                    "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.2.tgz",
+                    "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.0.0.tgz"
+                  },
+                  "dependencies": {
+                    "argparse": {
+                      "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.2.tgz",
+                      "integrity": "sha1-vPrjkFllbRlz0LnmoadBVLWpoTY=",
+                      "dev": true,
+                      "requires": {
+                        "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz",
+                        "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.2.tgz"
+                      },
+                      "dependencies": {
+                        "lodash": {
+                          "version": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz",
+                          "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=",
+                          "dev": true
+                        },
+                        "sprintf-js": {
+                          "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.2.tgz",
+                          "integrity": "sha1-EeTYT/MhRONbC/Omb4WH842PmXg=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "esprima": {
+                      "version": "https://registry.npmjs.org/esprima/-/esprima-2.0.0.tgz",
+                      "integrity": "sha1-YJrFwmZ+rlQztB657OziMxtBSY8=",
+                      "dev": true
+                    }
+                  }
+                },
+                "minimatch": {
+                  "version": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+                  "integrity": "sha1-g76hFYA+egl6eAIkJyh+23Yvr+0=",
+                  "dev": true,
+                  "requires": {
+                    "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz"
+                  },
+                  "dependencies": {
+                    "brace-expansion": {
+                      "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
+                      "integrity": "sha1-ybfQPAPze8cEvhAOUitA249s/Nk=",
+                      "dev": true,
+                      "requires": {
+                        "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+                        "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+                      },
+                      "dependencies": {
+                        "balanced-match": {
+                          "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+                          "integrity": "sha1-OPZzDAOqttXtu1K9k0iF51bXFnQ=",
+                          "dev": true
+                        },
+                        "concat-map": {
+                          "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+                          "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "mkdirp": {
+                  "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+                  "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
+                  "dev": true,
+                  "requires": {
+                    "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+                  },
+                  "dependencies": {
+                    "minimist": {
+                      "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+                      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+                      "dev": true
+                    }
+                  }
+                },
+                "object-assign": {
+                  "version": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz",
+                  "integrity": "sha1-+DCbCQg7ASYezj73Nz8rV7jdcEI=",
+                  "dev": true
+                },
+                "optionator": {
+                  "version": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz",
+                  "integrity": "sha1-t1qJlaLUF98ltuTjhi9QqohlE2g=",
+                  "dev": true,
+                  "requires": {
+                    "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+                    "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.6.tgz",
+                    "levn": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz",
+                    "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.1.tgz",
+                    "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.1.tgz",
+                    "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+                  },
+                  "dependencies": {
+                    "deep-is": {
+                      "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+                      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+                      "dev": true
+                    },
+                    "fast-levenshtein": {
+                      "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.6.tgz",
+                      "integrity": "sha1-O+2xhOOflcsNiJKGiOax7jJzRGo=",
+                      "dev": true
+                    },
+                    "levn": {
+                      "version": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz",
+                      "integrity": "sha1-uo0znQykphDjo/FFucr0iAcVUFQ=",
+                      "dev": true,
+                      "requires": {
+                        "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.1.tgz",
+                        "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.1.tgz"
+                      }
+                    },
+                    "prelude-ls": {
+                      "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.1.tgz",
+                      "integrity": "sha1-wLhsH/0VGtPMdefj/jjXob8zcoo=",
+                      "dev": true
+                    },
+                    "type-check": {
+                      "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.1.tgz",
+                      "integrity": "sha1-kjOSPE2hdNCsVIDs/W74TDSetY0=",
+                      "dev": true,
+                      "requires": {
+                        "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.1.tgz"
+                      }
+                    },
+                    "wordwrap": {
+                      "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+                      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+                      "dev": true
+                    }
+                  }
+                },
+                "strip-json-comments": {
+                  "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.2.tgz",
+                  "integrity": "sha1-WkirlgI9usG3uND/q/b2PxZ3vp8=",
+                  "dev": true
+                },
+                "user-home": {
+                  "version": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+                  "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
+                  "dev": true
+                },
+                "xml-escape": {
+                  "version": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz",
+                  "integrity": "sha1-AJY9aXsq3wwYXE4E5zF0upsojrI=",
+                  "dev": true
+                }
+              }
+            },
+            "eslint-plugin-react": {
+              "version": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-2.1.1.tgz",
+              "integrity": "sha1-2QLHLLdZ9vWLm6Jzn9ojdA+8CO8=",
+              "dev": true
+            },
+            "find-root": {
+              "version": "https://registry.npmjs.org/find-root/-/find-root-0.1.1.tgz",
+              "integrity": "sha1-9jbUbz518IXzKJ63x3keUDmjd8o=",
+              "dev": true
+            },
+            "get-stdin": {
+              "version": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+              "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+              "dev": true
+            },
+            "glob": {
+              "version": "https://registry.npmjs.org/glob/-/glob-5.0.5.tgz",
+              "integrity": "sha1-eEQx5OKakArg1H+6aqHH8WqOffc=",
+              "dev": true,
+              "requires": {
+                "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+                "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+                "once": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
+                "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
+              },
+              "dependencies": {
+                "inflight": {
+                  "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+                  "integrity": "sha1-bLtFIevVHODsCpNr/XZX736bFyo=",
+                  "dev": true,
+                  "requires": {
+                    "once": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
+                    "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "wrappy": {
+                      "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                      "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=",
+                      "dev": true
+                    }
+                  }
+                },
+                "inherits": {
+                  "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                  "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+                  "dev": true
+                },
+                "minimatch": {
+                  "version": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+                  "integrity": "sha1-g76hFYA+egl6eAIkJyh+23Yvr+0=",
+                  "dev": true,
+                  "requires": {
+                    "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz"
+                  },
+                  "dependencies": {
+                    "brace-expansion": {
+                      "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
+                      "integrity": "sha1-ybfQPAPze8cEvhAOUitA249s/Nk=",
+                      "dev": true,
+                      "requires": {
+                        "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+                        "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+                      },
+                      "dependencies": {
+                        "balanced-match": {
+                          "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+                          "integrity": "sha1-OPZzDAOqttXtu1K9k0iF51bXFnQ=",
+                          "dev": true
+                        },
+                        "concat-map": {
+                          "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+                          "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "once": {
+                  "version": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
+                  "integrity": "sha1-8/Pk2lt9J7XHMpae4+Z+cpRXsx8=",
+                  "dev": true,
+                  "requires": {
+                    "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "wrappy": {
+                      "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                      "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=",
+                      "dev": true
+                    }
+                  }
+                },
+                "path-is-absolute": {
+                  "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz",
+                  "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI=",
+                  "dev": true
+                }
+              }
+            },
+            "minimist": {
+              "version": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz",
+              "integrity": "sha1-G8K8cWWM3KVxJHVoQ2NhWwtPaVs=",
+              "dev": true
+            },
+            "run-parallel": {
+              "version": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.0.tgz",
+              "integrity": "sha1-bFHDt+BkAKOfOONKoedkY6AV5n8=",
+              "dev": true,
+              "requires": {
+                "dezalgo": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.1.tgz"
+              }
+            },
+            "uniq": {
+              "version": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+              "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+              "dev": true
+            }
+          }
+        },
+        "standard-format": {
+          "version": "https://registry.npmjs.org/standard-format/-/standard-format-1.3.6.tgz",
+          "integrity": "sha1-d78pCHzxWgN8hMucUZctn5dOhjk=",
+          "dev": true,
+          "requires": {
+            "esformatter": "https://registry.npmjs.org/esformatter/-/esformatter-0.6.1.tgz",
+            "esformatter-eol-last": "https://registry.npmjs.org/esformatter-eol-last/-/esformatter-eol-last-1.0.0.tgz",
+            "esformatter-literal-notation": "https://registry.npmjs.org/esformatter-literal-notation/-/esformatter-literal-notation-1.0.0.tgz",
+            "esformatter-quotes": "https://registry.npmjs.org/esformatter-quotes/-/esformatter-quotes-1.0.1.tgz",
+            "esformatter-spaced-lined-comment": "https://registry.npmjs.org/esformatter-spaced-lined-comment/-/esformatter-spaced-lined-comment-2.0.1.tgz",
+            "find-root": "https://registry.npmjs.org/find-root/-/find-root-0.1.1.tgz",
+            "glob": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+            "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+            "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz",
+            "stdin": "https://registry.npmjs.org/stdin/-/stdin-0.0.1.tgz"
+          },
+          "dependencies": {
+            "esformatter": {
+              "version": "https://registry.npmjs.org/esformatter/-/esformatter-0.6.1.tgz",
+              "integrity": "sha1-sLrJsb3jeTvAz/LFkPlAzIatS8Q=",
+              "dev": true,
+              "requires": {
+                "debug": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
+                "mout": "https://registry.npmjs.org/mout/-/mout-0.11.0.tgz",
+                "npm-run": "https://registry.npmjs.org/npm-run/-/npm-run-1.1.1.tgz",
+                "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+                "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz",
+                "rocambole": "https://registry.npmjs.org/rocambole/-/rocambole-0.6.0.tgz",
+                "rocambole-indent": "https://registry.npmjs.org/rocambole-indent/-/rocambole-indent-2.0.3.tgz",
+                "rocambole-linebreak": "https://registry.npmjs.org/rocambole-linebreak/-/rocambole-linebreak-1.0.1.tgz",
+                "rocambole-node": "https://registry.npmjs.org/rocambole-node/-/rocambole-node-1.0.0.tgz",
+                "rocambole-token": "https://registry.npmjs.org/rocambole-token/-/rocambole-token-1.2.1.tgz",
+                "rocambole-whitespace": "https://registry.npmjs.org/rocambole-whitespace/-/rocambole-whitespace-1.0.0.tgz",
+                "semver": "https://registry.npmjs.org/semver/-/semver-2.2.1.tgz",
+                "stdin": "https://registry.npmjs.org/stdin/-/stdin-0.0.1.tgz",
+                "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz"
+              },
+              "dependencies": {
+                "debug": {
+                  "version": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
+                  "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=",
+                  "dev": true
+                },
+                "mout": {
+                  "version": "https://registry.npmjs.org/mout/-/mout-0.11.0.tgz",
+                  "integrity": "sha1-k83weRrIokhzzutCpbAWt8hnq+4=",
+                  "dev": true
+                },
+                "npm-run": {
+                  "version": "https://registry.npmjs.org/npm-run/-/npm-run-1.1.1.tgz",
+                  "integrity": "sha1-xDEkUfOCt67npIWOYCg6vz26yOw=",
+                  "dev": true,
+                  "requires": {
+                    "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz",
+                    "npm-path": "https://registry.npmjs.org/npm-path/-/npm-path-1.0.1.tgz",
+                    "serializerr": "https://registry.npmjs.org/serializerr/-/serializerr-1.0.1.tgz",
+                    "sync-exec": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.5.0.tgz"
+                  },
+                  "dependencies": {
+                    "npm-path": {
+                      "version": "https://registry.npmjs.org/npm-path/-/npm-path-1.0.1.tgz",
+                      "integrity": "sha1-FddQ78nYgIGUxyFIHfohD73kFcU=",
+                      "dev": true,
+                      "requires": {
+                        "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
+                      },
+                      "dependencies": {
+                        "which": {
+                          "version": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+                          "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "serializerr": {
+                      "version": "https://registry.npmjs.org/serializerr/-/serializerr-1.0.1.tgz",
+                      "integrity": "sha1-c1FhX8BqbxdWpgcLtOjSfEFJpT8=",
+                      "dev": true,
+                      "requires": {
+                        "protochain": "https://registry.npmjs.org/protochain/-/protochain-1.0.2.tgz"
+                      },
+                      "dependencies": {
+                        "protochain": {
+                          "version": "https://registry.npmjs.org/protochain/-/protochain-1.0.2.tgz",
+                          "integrity": "sha1-khFVgci8A4KnrQ0MeKNVFzYz3lA=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "sync-exec": {
+                      "version": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.5.0.tgz",
+                      "integrity": "sha1-P3JY5KW6FyRTgZCfpqb2z1BuFmE=",
+                      "dev": true
+                    }
+                  }
+                },
+                "optimist": {
+                  "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+                  "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+                  "dev": true,
+                  "requires": {
+                    "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+                    "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+                  },
+                  "dependencies": {
+                    "minimist": {
+                      "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+                      "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
+                      "dev": true
+                    },
+                    "wordwrap": {
+                      "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+                      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+                      "dev": true
+                    }
+                  }
+                },
+                "resolve": {
+                  "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz",
+                  "integrity": "sha1-00kq0FTKgA9b76YS5hvqwe7Jj48=",
+                  "dev": true
+                },
+                "rocambole": {
+                  "version": "https://registry.npmjs.org/rocambole/-/rocambole-0.6.0.tgz",
+                  "integrity": "sha1-U08jWih8wX+bBXuVvRHQ8Nw1RSw=",
+                  "dev": true,
+                  "requires": {
+                    "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.2.0.tgz"
+                  },
+                  "dependencies": {
+                    "esprima": {
+                      "version": "https://registry.npmjs.org/esprima/-/esprima-2.2.0.tgz",
+                      "integrity": "sha1-QpLB1o5Bc9gV+iKQ3Hr8ltgfzYM=",
+                      "dev": true
+                    }
+                  }
+                },
+                "rocambole-indent": {
+                  "version": "https://registry.npmjs.org/rocambole-indent/-/rocambole-indent-2.0.3.tgz",
+                  "integrity": "sha1-+y0lfQGg9uvQResP0+QsT3ysVM4=",
+                  "dev": true,
+                  "requires": {
+                    "debug": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+                    "mout": "https://registry.npmjs.org/mout/-/mout-0.11.0.tgz",
+                    "rocambole-token": "https://registry.npmjs.org/rocambole-token/-/rocambole-token-1.2.1.tgz"
+                  },
+                  "dependencies": {
+                    "debug": {
+                      "version": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+                      "integrity": "sha1-zoqxte6PvuK/o7Yzyrk9NmtjQY4=",
+                      "dev": true,
+                      "requires": {
+                        "ms": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz"
+                      },
+                      "dependencies": {
+                        "ms": {
+                          "version": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz",
+                          "integrity": "sha1-hlvpTC5zl62KV9pqYzpuLzB5i4M=",
+                          "dev": true
+                        }
+                      }
+                    }
+                  }
+                },
+                "rocambole-linebreak": {
+                  "version": "https://registry.npmjs.org/rocambole-linebreak/-/rocambole-linebreak-1.0.1.tgz",
+                  "integrity": "sha1-Y/YrEQwRCOcYRGD50rrDG5TFw8A=",
+                  "dev": true,
+                  "requires": {
+                    "debug": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+                    "rocambole-token": "https://registry.npmjs.org/rocambole-token/-/rocambole-token-1.2.1.tgz",
+                    "semver": "https://registry.npmjs.org/semver/-/semver-4.3.3.tgz"
+                  },
+                  "dependencies": {
+                    "debug": {
+                      "version": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+                      "integrity": "sha1-zoqxte6PvuK/o7Yzyrk9NmtjQY4=",
+                      "dev": true,
+                      "requires": {
+                        "ms": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz"
+                      },
+                      "dependencies": {
+                        "ms": {
+                          "version": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz",
+                          "integrity": "sha1-hlvpTC5zl62KV9pqYzpuLzB5i4M=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "semver": {
+                      "version": "https://registry.npmjs.org/semver/-/semver-4.3.3.tgz",
+                      "integrity": "sha1-FUZrYSILw3HNjw5map94Uynqgig=",
+                      "dev": true
+                    }
+                  }
+                },
+                "rocambole-node": {
+                  "version": "https://registry.npmjs.org/rocambole-node/-/rocambole-node-1.0.0.tgz",
+                  "integrity": "sha1-21tJ3nQHsAgN1RSHLyjjk9D3/z8=",
+                  "dev": true
+                },
+                "rocambole-token": {
+                  "version": "https://registry.npmjs.org/rocambole-token/-/rocambole-token-1.2.1.tgz",
+                  "integrity": "sha1-x4XfdCjcPLJ614lwR71SOMwHDTU=",
+                  "dev": true
+                },
+                "rocambole-whitespace": {
+                  "version": "https://registry.npmjs.org/rocambole-whitespace/-/rocambole-whitespace-1.0.0.tgz",
+                  "integrity": "sha1-YzMJSSVrKZQfWbGQRZ+ZnGsdO/k=",
+                  "dev": true,
+                  "requires": {
+                    "debug": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+                    "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz",
+                    "rocambole-token": "https://registry.npmjs.org/rocambole-token/-/rocambole-token-1.2.1.tgz"
+                  },
+                  "dependencies": {
+                    "debug": {
+                      "version": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
+                      "integrity": "sha1-zoqxte6PvuK/o7Yzyrk9NmtjQY4=",
+                      "dev": true,
+                      "requires": {
+                        "ms": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz"
+                      },
+                      "dependencies": {
+                        "ms": {
+                          "version": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz",
+                          "integrity": "sha1-hlvpTC5zl62KV9pqYzpuLzB5i4M=",
+                          "dev": true
+                        }
+                      }
+                    },
+                    "repeat-string": {
+                      "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz",
+                      "integrity": "sha1-IQZfcHJ60FOg3V6VesngDHVg2Qo=",
+                      "dev": true
+                    }
+                  }
+                },
+                "semver": {
+                  "version": "https://registry.npmjs.org/semver/-/semver-2.2.1.tgz",
+                  "integrity": "sha1-eUEYKz/8xYC/8cF5QqzfeVHA0hM=",
+                  "dev": true
+                },
+                "strip-json-comments": {
+                  "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz",
+                  "integrity": "sha1-Fkxk43Coo8wAyeAbU55WmCPw7lQ=",
+                  "dev": true
+                }
+              }
+            },
+            "esformatter-eol-last": {
+              "version": "https://registry.npmjs.org/esformatter-eol-last/-/esformatter-eol-last-1.0.0.tgz",
+              "integrity": "sha1-RaeP9GIrHUnkT1a0mQV2amMpDAc=",
+              "dev": true,
+              "requires": {
+                "string.prototype.endswith": "https://registry.npmjs.org/string.prototype.endswith/-/string.prototype.endswith-0.2.0.tgz"
+              },
+              "dependencies": {
+                "string.prototype.endswith": {
+                  "version": "https://registry.npmjs.org/string.prototype.endswith/-/string.prototype.endswith-0.2.0.tgz",
+                  "integrity": "sha1-oZwg3uUamHd+mkfhDwm+OTubunU=",
+                  "dev": true
+                }
+              }
+            },
+            "esformatter-literal-notation": {
+              "version": "https://registry.npmjs.org/esformatter-literal-notation/-/esformatter-literal-notation-1.0.0.tgz",
+              "integrity": "sha1-0CAdBAaZMESqrzjTJUhCXKy1OOU=",
+              "dev": true,
+              "requires": {
+                "rocambole": "https://registry.npmjs.org/rocambole/-/rocambole-0.3.6.tgz",
+                "rocambole-token": "https://registry.npmjs.org/rocambole-token/-/rocambole-token-1.2.1.tgz"
+              },
+              "dependencies": {
+                "rocambole": {
+                  "version": "https://registry.npmjs.org/rocambole/-/rocambole-0.3.6.tgz",
+                  "integrity": "sha1-Teu/WUMUS8e2AG2Vvo+swLdDUqc=",
+                  "dev": true,
+                  "requires": {
+                    "esprima": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz"
+                  },
+                  "dependencies": {
+                    "esprima": {
+                      "version": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+                      "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
+                      "dev": true
+                    }
+                  }
+                },
+                "rocambole-token": {
+                  "version": "https://registry.npmjs.org/rocambole-token/-/rocambole-token-1.2.1.tgz",
+                  "integrity": "sha1-x4XfdCjcPLJ614lwR71SOMwHDTU=",
+                  "dev": true
+                }
+              }
+            },
+            "esformatter-quotes": {
+              "version": "https://registry.npmjs.org/esformatter-quotes/-/esformatter-quotes-1.0.1.tgz",
+              "integrity": "sha1-7L9L3eRnJ5L2HnvqYueLJytUMVw=",
+              "dev": true
+            },
+            "esformatter-spaced-lined-comment": {
+              "version": "https://registry.npmjs.org/esformatter-spaced-lined-comment/-/esformatter-spaced-lined-comment-2.0.1.tgz",
+              "integrity": "sha1-3F80B/k8KV4eVkRr00RWDaXm3Kw=",
+              "dev": true
+            },
+            "find-root": {
+              "version": "https://registry.npmjs.org/find-root/-/find-root-0.1.1.tgz",
+              "integrity": "sha1-9jbUbz518IXzKJ63x3keUDmjd8o=",
+              "dev": true
+            },
+            "glob": {
+              "version": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+              "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
+              "dev": true,
+              "requires": {
+                "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+                "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+                "once": "https://registry.npmjs.org/once/-/once-1.3.1.tgz"
+              },
+              "dependencies": {
+                "inflight": {
+                  "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+                  "integrity": "sha1-bLtFIevVHODsCpNr/XZX736bFyo=",
+                  "dev": true,
+                  "requires": {
+                    "once": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
+                    "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "wrappy": {
+                      "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                      "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=",
+                      "dev": true
+                    }
+                  }
+                },
+                "inherits": {
+                  "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                  "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+                  "dev": true
+                },
+                "once": {
+                  "version": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
+                  "integrity": "sha1-8/Pk2lt9J7XHMpae4+Z+cpRXsx8=",
+                  "dev": true,
+                  "requires": {
+                    "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "wrappy": {
+                      "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz",
+                      "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "minimatch": {
+              "version": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+              "integrity": "sha1-g76hFYA+egl6eAIkJyh+23Yvr+0=",
+              "dev": true,
+              "requires": {
+                "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz"
+              },
+              "dependencies": {
+                "brace-expansion": {
+                  "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
+                  "integrity": "sha1-ybfQPAPze8cEvhAOUitA249s/Nk=",
+                  "dev": true,
+                  "requires": {
+                    "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+                    "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+                  },
+                  "dependencies": {
+                    "balanced-match": {
+                      "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz",
+                      "integrity": "sha1-OPZzDAOqttXtu1K9k0iF51bXFnQ=",
+                      "dev": true
+                    },
+                    "concat-map": {
+                      "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+                      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+                      "dev": true
+                    }
+                  }
+                }
+              }
+            },
+            "minimist": {
+              "version": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz",
+              "integrity": "sha1-G8K8cWWM3KVxJHVoQ2NhWwtPaVs=",
+              "dev": true
+            },
+            "stdin": {
+              "version": "https://registry.npmjs.org/stdin/-/stdin-0.0.1.tgz",
+              "integrity": "sha1-0wQZgarsPf28d6GzjWNy449ftx4=",
+              "dev": true
+            }
+          }
+        },
+        "text-table": {
+          "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+          "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+        }
+      }
+    },
+    "handlebars": {
+      "version": "4.0.10",
+      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz",
+      "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=",
+      "dev": true,
+      "requires": {
+        "async": "1.5.2",
+        "optimist": "0.6.1",
+        "source-map": "0.4.4",
+        "uglify-js": "2.8.29"
+      },
+      "dependencies": {
+        "optimist": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+          "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+          "dev": true,
+          "requires": {
+            "minimist": "0.0.8",
+            "wordwrap": "0.0.3"
+          }
+        },
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "requires": {
+            "amdefine": "1.0.1"
+          }
+        }
+      }
+    },
+    "har-schema": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
+      "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
+      "dev": true,
+      "optional": true
+    },
+    "har-validator": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
+      "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "ajv": "4.11.8",
+        "har-schema": "1.0.5"
+      }
+    },
+    "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.1.1"
+      }
+    },
+    "hawk": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+      "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "boom": "2.10.1",
+        "cryptiles": "2.0.5",
+        "hoek": "2.16.3",
+        "sntp": "1.0.9"
+      }
+    },
+    "hoek": {
+      "version": "2.16.3",
+      "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+      "dev": true
+    },
+    "home-or-tmp": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+      "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+      "dev": true,
+      "requires": {
+        "os-homedir": "1.0.2",
+        "os-tmpdir": "1.0.2"
+      }
+    },
+    "hooker": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+      "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+      "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,
+      "optional": true,
+      "requires": {
+        "assert-plus": "0.2.0",
+        "jsprim": "1.4.1",
+        "sshpk": "1.13.1"
+      }
+    },
+    "iconv-lite": {
+      "version": "0.2.11",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
+      "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
+      "dev": true
+    },
+    "ignore": {
+      "version": "3.3.5",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz",
+      "integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==",
+      "dev": true
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "dev": true,
+      "requires": {
+        "once": "1.4.0",
+        "wrappy": "1.0.2"
+      }
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+      "dev": true
+    },
+    "inquirer": {
+      "version": "0.11.4",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz",
+      "integrity": "sha1-geM3ToNhvq/y2XAWIG01nQsy+k0=",
+      "dev": true,
+      "requires": {
+        "ansi-escapes": "1.4.0",
+        "ansi-regex": "2.1.1",
+        "chalk": "1.1.3",
+        "cli-cursor": "1.0.2",
+        "cli-width": "1.1.1",
+        "figures": "1.7.0",
+        "lodash": "3.10.1",
+        "readline2": "1.0.1",
+        "run-async": "0.1.0",
+        "rx-lite": "3.1.2",
+        "string-width": "1.0.2",
+        "strip-ansi": "3.0.1",
+        "through": "2.3.8"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "3.10.1",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+          "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
+          "dev": true
+        }
+      }
+    },
+    "invariant": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+      "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+      "dev": true,
+      "requires": {
+        "loose-envify": "1.3.1"
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
+      "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
+      "dev": true
+    },
+    "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.1"
+      }
+    },
+    "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=",
+      "dev": true,
+      "requires": {
+        "number-is-nan": "1.0.1"
+      }
+    },
+    "is-my-json-valid": {
+      "version": "2.16.1",
+      "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz",
+      "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==",
+      "dev": true,
+      "requires": {
+        "generate-function": "2.0.0",
+        "generate-object-property": "1.2.0",
+        "jsonpointer": "4.0.1",
+        "xtend": "4.0.1"
+      }
+    },
+    "is-path-cwd": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+      "dev": true
+    },
+    "is-path-in-cwd": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+      "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
+      "dev": true,
+      "requires": {
+        "is-path-inside": "1.0.0"
+      }
+    },
+    "is-path-inside": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
+      "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
+      "dev": true,
+      "requires": {
+        "path-is-inside": "1.0.2"
+      }
+    },
+    "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-resolvable": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
+      "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
+      "dev": true,
+      "requires": {
+        "tryit": "1.0.3"
+      }
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+      "dev": true,
+      "optional": true
+    },
+    "isarray": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+      "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+      "dev": true
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+      "dev": true
+    },
+    "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-tokens": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+      "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+      "dev": true
+    },
+    "js-yaml": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
+      "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
+      "dev": true,
+      "requires": {
+        "argparse": "0.1.16",
+        "esprima": "1.0.4"
+      }
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+      "dev": true,
+      "optional": true
+    },
+    "jsesc": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+      "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+      "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,
+      "optional": true
+    },
+    "json-stable-stringify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+      "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+      "dev": true,
+      "requires": {
+        "jsonify": "0.0.0"
+      }
+    },
+    "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
+    },
+    "json5": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+      "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+      "dev": true
+    },
+    "jsonfile": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+      "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "4.1.11"
+      }
+    },
+    "jsonify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+      "dev": true
+    },
+    "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,
+      "optional": 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,
+          "optional": true
+        }
+      }
+    },
+    "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"
+      }
+    },
+    "lazy-cache": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+      "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+      "dev": true,
+      "optional": true
+    },
+    "less": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/less/-/less-1.5.1.tgz",
+      "integrity": "sha1-YzMTEw79EqO3jFaqeZ2rPu////Q=",
+      "dev": true,
+      "requires": {
+        "clean-css": "2.0.8",
+        "mime": "1.2.11",
+        "mkdirp": "0.3.5",
+        "request": "2.81.0",
+        "source-map": "0.1.43"
+      },
+      "dependencies": {
+        "mkdirp": {
+          "version": "0.3.5",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
+          "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
+          "dev": true,
+          "optional": true
+        },
+        "source-map": {
+          "version": "0.1.43",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "amdefine": "1.0.1"
+          }
+        }
+      }
+    },
+    "levn": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz",
+      "integrity": "sha1-uo0znQykphDjo/FFucr0iAcVUFQ=",
+      "dev": true,
+      "requires": {
+        "prelude-ls": "1.1.2",
+        "type-check": "0.3.2"
+      }
+    },
+    "lodash": {
+      "version": "0.9.2",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+      "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
+      "dev": true
+    },
+    "lodash._arraycopy": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
+      "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE=",
+      "dev": true
+    },
+    "lodash._arrayeach": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
+      "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754=",
+      "dev": true
+    },
+    "lodash._arraymap": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz",
+      "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=",
+      "dev": true
+    },
+    "lodash._baseassign": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
+      "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
+      "dev": true,
+      "requires": {
+        "lodash._basecopy": "3.0.1",
+        "lodash.keys": "3.1.2"
+      }
+    },
+    "lodash._baseclone": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz",
+      "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=",
+      "dev": true,
+      "requires": {
+        "lodash._arraycopy": "3.0.0",
+        "lodash._arrayeach": "3.0.0",
+        "lodash._baseassign": "3.2.0",
+        "lodash._basefor": "3.0.3",
+        "lodash.isarray": "3.0.4",
+        "lodash.keys": "3.1.2"
+      }
+    },
+    "lodash._basecopy": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+      "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+      "dev": true
+    },
+    "lodash._basedifference": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz",
+      "integrity": "sha1-8sIEKWwqeOArOJCBtu3KyTPPYpw=",
+      "dev": true,
+      "requires": {
+        "lodash._baseindexof": "3.1.0",
+        "lodash._cacheindexof": "3.0.2",
+        "lodash._createcache": "3.1.2"
+      }
+    },
+    "lodash._baseflatten": {
+      "version": "3.1.4",
+      "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz",
+      "integrity": "sha1-B3D/gBMa9uNPO1EXlqe6UhTmX/c=",
+      "dev": true,
+      "requires": {
+        "lodash.isarguments": "3.1.0",
+        "lodash.isarray": "3.0.4"
+      }
+    },
+    "lodash._basefor": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz",
+      "integrity": "sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=",
+      "dev": true
+    },
+    "lodash._baseindexof": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz",
+      "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=",
+      "dev": true
+    },
+    "lodash._bindcallback": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
+      "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=",
+      "dev": true
+    },
+    "lodash._cacheindexof": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz",
+      "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=",
+      "dev": true
+    },
+    "lodash._createassigner": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz",
+      "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=",
+      "dev": true,
+      "requires": {
+        "lodash._bindcallback": "3.0.1",
+        "lodash._isiterateecall": "3.0.9",
+        "lodash.restparam": "3.6.1"
+      }
+    },
+    "lodash._createcache": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz",
+      "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=",
+      "dev": true,
+      "requires": {
+        "lodash._getnative": "3.9.1"
+      }
+    },
+    "lodash._getnative": {
+      "version": "3.9.1",
+      "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+      "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+      "dev": true
+    },
+    "lodash._isiterateecall": {
+      "version": "3.0.9",
+      "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+      "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+      "dev": true
+    },
+    "lodash._pickbyarray": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz",
+      "integrity": "sha1-H4mNlgfrVgsOFnOEt3x8bRCKpMU=",
+      "dev": true
+    },
+    "lodash._pickbycallback": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz",
+      "integrity": "sha1-/2G5oBens699MObFPeKK+hm4dQo=",
+      "dev": true,
+      "requires": {
+        "lodash._basefor": "3.0.3",
+        "lodash.keysin": "3.0.8"
+      }
+    },
+    "lodash.clonedeep": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz",
+      "integrity": "sha1-oKHkDYKl6on/WxR7hETtY9koJ9s=",
+      "dev": true,
+      "requires": {
+        "lodash._baseclone": "3.3.0",
+        "lodash._bindcallback": "3.0.1"
+      }
+    },
+    "lodash.isarguments": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+      "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+      "dev": true
+    },
+    "lodash.isarray": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+      "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+      "dev": true
+    },
+    "lodash.isplainobject": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz",
+      "integrity": "sha1-moI4rhayAEMpYM1zRlEtASP79MU=",
+      "dev": true,
+      "requires": {
+        "lodash._basefor": "3.0.3",
+        "lodash.isarguments": "3.1.0",
+        "lodash.keysin": "3.0.8"
+      }
+    },
+    "lodash.istypedarray": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz",
+      "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=",
+      "dev": true
+    },
+    "lodash.keys": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+      "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+      "dev": true,
+      "requires": {
+        "lodash._getnative": "3.9.1",
+        "lodash.isarguments": "3.1.0",
+        "lodash.isarray": "3.0.4"
+      }
+    },
+    "lodash.keysin": {
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz",
+      "integrity": "sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8=",
+      "dev": true,
+      "requires": {
+        "lodash.isarguments": "3.1.0",
+        "lodash.isarray": "3.0.4"
+      }
+    },
+    "lodash.merge": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-3.3.2.tgz",
+      "integrity": "sha1-DZDZPtY3sYeEN7s+IWASYNev6ZQ=",
+      "dev": true,
+      "requires": {
+        "lodash._arraycopy": "3.0.0",
+        "lodash._arrayeach": "3.0.0",
+        "lodash._createassigner": "3.1.1",
+        "lodash._getnative": "3.9.1",
+        "lodash.isarguments": "3.1.0",
+        "lodash.isarray": "3.0.4",
+        "lodash.isplainobject": "3.2.0",
+        "lodash.istypedarray": "3.0.6",
+        "lodash.keys": "3.1.2",
+        "lodash.keysin": "3.0.8",
+        "lodash.toplainobject": "3.0.0"
+      }
+    },
+    "lodash.omit": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-3.1.0.tgz",
+      "integrity": "sha1-iX/jguZBPZrJfGH3jtHgV6AK+fM=",
+      "dev": true,
+      "requires": {
+        "lodash._arraymap": "3.0.0",
+        "lodash._basedifference": "3.0.3",
+        "lodash._baseflatten": "3.1.4",
+        "lodash._bindcallback": "3.0.1",
+        "lodash._pickbyarray": "3.0.2",
+        "lodash._pickbycallback": "3.0.0",
+        "lodash.keysin": "3.0.8",
+        "lodash.restparam": "3.6.1"
+      }
+    },
+    "lodash.restparam": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+      "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
+      "dev": true
+    },
+    "lodash.toplainobject": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz",
+      "integrity": "sha1-KHkK2ULSk9eKpmOgfs9/UsoEGY0=",
+      "dev": true,
+      "requires": {
+        "lodash._basecopy": "3.0.1",
+        "lodash.keysin": "3.0.8"
+      }
+    },
+    "longest": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+      "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+      "dev": true
+    },
+    "loose-envify": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+      "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+      "dev": true,
+      "requires": {
+        "js-tokens": "3.0.2"
+      }
+    },
+    "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
+    },
+    "mime": {
+      "version": "1.2.11",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
+      "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=",
+      "dev": true
+    },
+    "mime-db": {
+      "version": "1.29.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz",
+      "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=",
+      "dev": true
+    },
+    "mime-types": {
+      "version": "2.1.16",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
+      "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=",
+      "dev": true,
+      "requires": {
+        "mime-db": "1.29.0"
+      }
+    },
+    "minimatch": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
+      "integrity": "sha1-g76hFYA+egl6eAIkJyh+23Yvr+0=",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "1.1.8"
+      }
+    },
+    "minimist": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+      "dev": true
+    },
+    "mkdirp": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+      "dev": true,
+      "requires": {
+        "minimist": "0.0.8"
+      }
+    },
+    "mkpath": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz",
+      "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=",
+      "dev": true
+    },
+    "mksnapshot": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.1.0.tgz",
+      "integrity": "sha1-99CavKgGrYw3gNpwG7GHeNfOaaw=",
+      "dev": true,
+      "requires": {
+        "decompress-zip": "0.1.0",
+        "fs-extra": "0.18.2",
+        "request": "2.55.0"
+      },
+      "dependencies": {
+        "asn1": {
+          "version": "0.1.11",
+          "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+          "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=",
+          "dev": 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
+        },
+        "async": {
+          "version": "0.9.2",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+          "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+          "dev": 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
+        },
+        "caseless": {
+          "version": "0.9.0",
+          "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz",
+          "integrity": "sha1-t7Zc5r8UE4hlOc/VM/CzDv+pz4g=",
+          "dev": true
+        },
+        "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,
+          "requires": {
+            "delayed-stream": "0.0.5"
+          }
+        },
+        "commander": {
+          "version": "2.11.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+          "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+          "dev": true
+        },
+        "decompress-zip": {
+          "version": "0.1.0",
+          "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.1.0.tgz",
+          "integrity": "sha1-vOYMEWZPLWYPykvPY0r23l1sFMc=",
+          "dev": true,
+          "requires": {
+            "binary": "0.3.0",
+            "graceful-fs": "3.0.11",
+            "mkpath": "0.1.0",
+            "nopt": "3.0.6",
+            "q": "1.5.0",
+            "readable-stream": "1.1.14",
+            "touch": "0.0.3"
+          }
+        },
+        "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
+        },
+        "form-data": {
+          "version": "0.2.0",
+          "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
+          "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=",
+          "dev": true,
+          "requires": {
+            "async": "0.9.2",
+            "combined-stream": "0.0.7",
+            "mime-types": "2.0.14"
+          }
+        },
+        "fs-extra": {
+          "version": "0.18.2",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.18.2.tgz",
+          "integrity": "sha1-rwXKcCsLbfp96AOh96tHnsXCFSU=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "3.0.11",
+            "jsonfile": "2.4.0",
+            "rimraf": "2.6.1"
+          }
+        },
+        "graceful-fs": {
+          "version": "3.0.11",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
+          "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+          "dev": true,
+          "requires": {
+            "natives": "1.1.0"
+          }
+        },
+        "har-validator": {
+          "version": "1.8.0",
+          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz",
+          "integrity": "sha1-2DhCsOtMQ1lgrrEIoGejqpTA7rI=",
+          "dev": true,
+          "requires": {
+            "bluebird": "2.11.0",
+            "chalk": "1.1.3",
+            "commander": "2.11.0",
+            "is-my-json-valid": "2.16.1"
+          }
+        },
+        "hawk": {
+          "version": "2.3.1",
+          "resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz",
+          "integrity": "sha1-HnMc45RH+h0PbXB/e87r7A/R7B8=",
+          "dev": true,
+          "requires": {
+            "boom": "2.10.1",
+            "cryptiles": "2.0.5",
+            "hoek": "2.16.3",
+            "sntp": "1.0.9"
+          }
+        },
+        "http-signature": {
+          "version": "0.10.1",
+          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
+          "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=",
+          "dev": true,
+          "requires": {
+            "asn1": "0.1.11",
+            "assert-plus": "0.1.5",
+            "ctype": "0.5.3"
+          }
+        },
+        "mime-db": {
+          "version": "1.12.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz",
+          "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc=",
+          "dev": true
+        },
+        "mime-types": {
+          "version": "2.0.14",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
+          "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=",
+          "dev": true,
+          "requires": {
+            "mime-db": "1.12.0"
+          }
+        },
+        "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
+        },
+        "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.1.0"
+          }
+        },
+        "oauth-sign": {
+          "version": "0.6.0",
+          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz",
+          "integrity": "sha1-fb6uRPbKRU4fFoRR1jB0ZzWBPOM=",
+          "dev": true
+        },
+        "q": {
+          "version": "1.5.0",
+          "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
+          "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
+          "dev": true
+        },
+        "qs": {
+          "version": "2.4.2",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.2.tgz",
+          "integrity": "sha1-9854jld33wtQENp/fE5zujJHD1o=",
+          "dev": true
+        },
+        "request": {
+          "version": "2.55.0",
+          "resolved": "https://registry.npmjs.org/request/-/request-2.55.0.tgz",
+          "integrity": "sha1-11wc32eddrsQD5v/4f5VG1wk6T0=",
+          "dev": true,
+          "requires": {
+            "aws-sign2": "0.5.0",
+            "bl": "0.9.5",
+            "caseless": "0.9.0",
+            "combined-stream": "0.0.7",
+            "forever-agent": "0.6.1",
+            "form-data": "0.2.0",
+            "har-validator": "1.8.0",
+            "hawk": "2.3.1",
+            "http-signature": "0.10.1",
+            "isstream": "0.1.2",
+            "json-stringify-safe": "5.0.1",
+            "mime-types": "2.0.14",
+            "node-uuid": "1.4.8",
+            "oauth-sign": "0.6.0",
+            "qs": "2.4.2",
+            "stringstream": "0.0.5",
+            "tough-cookie": "2.3.2",
+            "tunnel-agent": "0.4.3"
+          }
+        },
+        "touch": {
+          "version": "0.0.3",
+          "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz",
+          "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=",
+          "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.1.0"
+              }
+            }
+          }
+        },
+        "tunnel-agent": {
+          "version": "0.4.3",
+          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+          "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+          "dev": true
+        }
+      }
+    },
+    "mute-stream": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+      "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+      "dev": true
+    },
+    "natives": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
+      "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=",
+      "dev": true
+    },
+    "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.1.0"
+      }
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+      "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,
+      "optional": true
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "dev": true,
+      "requires": {
+        "wrappy": "1.0.2"
+      }
+    },
+    "onetime": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+      "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+      "dev": true
+    },
+    "optimist": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.4.0.tgz",
+      "integrity": "sha1-y47Dfy/jqphky2eidSUOfhliCiU=",
+      "dev": true,
+      "requires": {
+        "wordwrap": "0.0.3"
+      }
+    },
+    "optionator": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.6.0.tgz",
+      "integrity": "sha1-tj7Lvw4xX61LyYJ7Rdx7pFKE/LY=",
+      "dev": true,
+      "requires": {
+        "deep-is": "0.1.3",
+        "fast-levenshtein": "1.0.7",
+        "levn": "0.2.5",
+        "prelude-ls": "1.1.2",
+        "type-check": "0.3.2",
+        "wordwrap": "0.0.3"
+      }
+    },
+    "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-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
+    },
+    "parserlib": {
+      "version": "0.2.5",
+      "resolved": "https://registry.npmjs.org/parserlib/-/parserlib-0.2.5.tgz",
+      "integrity": "sha1-hZB92GBaoGq7PdKV1QuyuPpN0Rc=",
+      "dev": true
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+      "dev": true
+    },
+    "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
+    },
+    "pegjs": {
+      "version": "0.8.0",
+      "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.8.0.tgz",
+      "integrity": "sha1-l28GfaE+XFsVAcAXklZoolOBFWE=",
+      "dev": true
+    },
+    "performance-now": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
+      "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
+      "dev": true,
+      "optional": 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.4"
+      }
+    },
+    "prelude-ls": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+      "dev": true
+    },
+    "prettyjson": {
+      "version": "0.8.1",
+      "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-0.8.1.tgz",
+      "integrity": "sha1-RtZ3PMsDhZAohMpcweUi+s64wsw=",
+      "dev": true,
+      "requires": {
+        "colors": "0.6.0-1"
+      },
+      "dependencies": {
+        "colors": {
+          "version": "0.6.0-1",
+          "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.0-1.tgz",
+          "integrity": "sha1-bbtozri8YPKzE9zFzhWZ8G0Z5no=",
+          "dev": true
+        }
+      }
+    },
+    "private": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
+      "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=",
+      "dev": true
+    },
+    "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
+    },
+    "progress": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.2.tgz",
+      "integrity": "sha1-h/28fHanhAIIl7XpZlVUsF/FjNE=",
+      "dev": true
+    },
+    "punycode": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+      "dev": true
+    },
+    "q": {
+      "version": "0.9.7",
+      "resolved": "https://registry.npmjs.org/q/-/q-0.9.7.tgz",
+      "integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=",
+      "dev": true
+    },
+    "qs": {
+      "version": "6.4.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
+      "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
+      "dev": true,
+      "optional": true
+    },
+    "readable-stream": {
+      "version": "1.1.14",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+      "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+      "dev": true,
+      "requires": {
+        "core-util-is": "1.0.2",
+        "inherits": "2.0.3",
+        "isarray": "0.0.1",
+        "string_decoder": "0.10.31"
+      }
+    },
+    "readline2": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+      "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+      "dev": true,
+      "requires": {
+        "code-point-at": "1.1.0",
+        "is-fullwidth-code-point": "1.0.0",
+        "mute-stream": "0.0.5"
+      }
+    },
+    "regenerator-runtime": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
+      "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
+      "dev": true
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+      "dev": true
+    },
+    "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.2"
+      }
+    },
+    "request": {
+      "version": "2.81.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
+      "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "aws-sign2": "0.6.0",
+        "aws4": "1.6.0",
+        "caseless": "0.12.0",
+        "combined-stream": "1.0.5",
+        "extend": "3.0.1",
+        "forever-agent": "0.6.1",
+        "form-data": "2.1.4",
+        "har-validator": "4.2.1",
+        "hawk": "3.1.3",
+        "http-signature": "1.1.1",
+        "is-typedarray": "1.0.0",
+        "isstream": "0.1.2",
+        "json-stringify-safe": "5.0.1",
+        "mime-types": "2.1.16",
+        "oauth-sign": "0.8.2",
+        "performance-now": "0.2.0",
+        "qs": "6.4.0",
+        "safe-buffer": "5.1.1",
+        "stringstream": "0.0.5",
+        "tough-cookie": "2.3.2",
+        "tunnel-agent": "0.6.0",
+        "uuid": "3.1.0"
+      }
+    },
+    "resolve": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.3.1.tgz",
+      "integrity": "sha1-NMY0R8ZkxwWY0cmxJvxDsqJDEKQ=",
+      "dev": true
+    },
+    "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.1.1",
+        "onetime": "1.1.0"
+      }
+    },
+    "right-align": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+      "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "align-text": "0.1.4"
+      }
+    },
+    "rimraf": {
+      "version": "2.6.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
+      "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
+      "dev": true,
+      "requires": {
+        "glob": "7.1.2"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "7.1.2",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+          "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "1.0.0",
+            "inflight": "1.0.6",
+            "inherits": "2.0.3",
+            "minimatch": "3.0.4",
+            "once": "1.4.0",
+            "path-is-absolute": "1.0.1"
+          }
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+          "dev": true,
+          "requires": {
+            "brace-expansion": "1.1.8"
+          }
+        }
+      }
+    },
+    "run-async": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+      "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+      "dev": true,
+      "requires": {
+        "once": "1.4.0"
+      }
+    },
+    "rx-lite": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+      "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
+      "dev": true
+    },
+    "safe-buffer": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+      "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+      "dev": true
+    },
+    "shelljs": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
+      "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM=",
+      "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
+    },
+    "sigmund": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+      "dev": true
+    },
+    "slash": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+      "dev": true
+    },
+    "sntp": {
+      "version": "1.0.9",
+      "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+      "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+      "dev": true,
+      "requires": {
+        "hoek": "2.16.3"
+      }
+    },
+    "source-map": {
+      "version": "0.5.7",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+      "dev": true
+    },
+    "source-map-support": {
+      "version": "0.4.16",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.16.tgz",
+      "integrity": "sha512-A6vlydY7H/ljr4L2UOhDSajQdZQ6dMD7cLH0pzwcmwLyc9u8PNI4WGtnfDDzX7uzGL6c/T+ORL97Zlh+S4iOrg==",
+      "dev": true,
+      "requires": {
+        "source-map": "0.5.7"
+      }
+    },
+    "sprintf-js": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+      "dev": true
+    },
+    "sshpk": {
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
+      "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "asn1": "0.2.3",
+        "assert-plus": "1.0.0",
+        "bcrypt-pbkdf": "1.0.1",
+        "dashdash": "1.14.1",
+        "ecc-jsbn": "0.1.1",
+        "getpass": "0.1.7",
+        "jsbn": "0.1.1",
+        "tweetnacl": "0.14.5"
+      },
+      "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,
+          "optional": true
+        }
+      }
+    },
+    "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
+    },
+    "string-width": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+      "dev": true,
+      "requires": {
+        "code-point-at": "1.1.0",
+        "is-fullwidth-code-point": "1.0.0",
+        "strip-ansi": "3.0.1"
+      }
+    },
+    "stringstream": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+      "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+      "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=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "2.1.1"
+      }
+    },
+    "strip-json-comments": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+      "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+      "dev": true
+    },
+    "stripcolorcodes": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/stripcolorcodes/-/stripcolorcodes-0.1.0.tgz",
+      "integrity": "sha1-Hkuhuf74zC8PcFvaK9mds7ylXIA=",
+      "dev": true
+    },
+    "temp": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz",
+      "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=",
+      "dev": true,
+      "requires": {
+        "os-tmpdir": "1.0.2",
+        "rimraf": "2.2.8"
+      },
+      "dependencies": {
+        "rimraf": {
+          "version": "2.2.8",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+          "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+          "dev": true
+        }
+      }
+    },
+    "text-table": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+      "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+      "dev": true
+    },
+    "through": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+      "dev": true
+    },
+    "to-fast-properties": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+      "dev": true
+    },
+    "touch": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.2.tgz",
+      "integrity": "sha1-plp3d5Xly74SmUmb3EIoH/shtfQ=",
+      "dev": true,
+      "requires": {
+        "nopt": "1.0.10"
+      }
+    },
+    "tough-cookie": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+      "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+      "dev": true,
+      "requires": {
+        "punycode": "1.4.1"
+      }
+    },
+    "traverse": {
+      "version": "0.3.9",
+      "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
+      "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
+      "dev": true
+    },
+    "trim-right": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+      "dev": true
+    },
+    "tryit": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
+      "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
+      "dev": true
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "safe-buffer": "5.1.1"
+      }
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+      "dev": true,
+      "optional": true
+    },
+    "type-check": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+      "dev": true,
+      "requires": {
+        "prelude-ls": "1.1.2"
+      }
+    },
+    "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.8.29",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+      "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "source-map": "0.5.7",
+        "uglify-to-browserify": "1.0.2",
+        "yargs": "3.10.0"
+      }
+    },
+    "uglify-to-browserify": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+      "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+      "dev": true,
+      "optional": true
+    },
+    "underscore": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+      "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=",
+      "dev": true
+    },
+    "underscore-plus": {
+      "version": "1.6.6",
+      "resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.6.tgz",
+      "integrity": "sha1-ZezeG9xEGjXYnmUP1w3PE65Dmn0=",
+      "dev": true,
+      "requires": {
+        "underscore": "1.6.0"
+      }
+    },
+    "underscore.string": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
+      "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
+      "dev": true
+    },
+    "uri-path": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-0.0.2.tgz",
+      "integrity": "sha1-gD6wHy/rF5J9zOD2GH5yt19T9VQ=",
+      "dev": true
+    },
+    "user-home": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+      "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+      "dev": true,
+      "requires": {
+        "os-homedir": "1.0.2"
+      }
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+      "dev": true
+    },
+    "uuid": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+      "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+      "dev": true,
+      "optional": true
+    },
+    "verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "assert-plus": "1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "1.3.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,
+          "optional": true
+        }
+      }
+    },
+    "window-size": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+      "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+      "dev": true,
+      "optional": true
+    },
+    "wordwrap": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+      "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+      "dev": true
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+      "dev": true
+    },
+    "wrench": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmjs.org/wrench/-/wrench-1.5.4.tgz",
+      "integrity": "sha1-Lo2dPbNWjMHAAaTI3OyncuXSFkM=",
+      "dev": true
+    },
+    "write": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+      "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+      "dev": true,
+      "requires": {
+        "mkdirp": "0.5.1"
+      }
+    },
+    "xml-escape": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz",
+      "integrity": "sha1-AJY9aXsq3wwYXE4E5zF0upsojrI=",
+      "dev": true
+    },
+    "xtend": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+      "dev": true
+    },
+    "yargs": {
+      "version": "3.10.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+      "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "1.2.1",
+        "cliui": "2.1.0",
+        "decamelize": "1.2.0",
+        "window-size": "0.1.0"
+      }
+    },
+    "zlib-browserify": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.tgz",
+      "integrity": "sha1-T6akXQDbwV8xikr6HZr8Aljhdsw=",
+      "dev": true
+    }
+  }
+}
diff --git a/wrt/build/package.json b/wrt/build/package.json
new file mode 100644 (file)
index 0000000..8748a30
--- /dev/null
@@ -0,0 +1,39 @@
+{
+  "name": "jsr",
+  "version": "0.1.0",
+  "description": "js runtime grunt build",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "author": "nke94@samsung.com",
+  "license": "ISC",
+  "keywords": [
+    "jsr"
+  ],
+  "devDependencies": {
+    "async": "^1.4.2",
+    "coffee-script": "^1.9.2",
+    "coffeelint": "^1.9.4",
+    "fs-plus": "^2.8.1",
+    "glob": "^5.0.14",
+    "grunt": "^0.4.5",
+    "grunt-babel": "^6.0.0",
+    "grunt-cli": "^0.1.13",
+    "grunt-coffeelint": "^0.0.13",
+    "grunt-contrib-clean": "^0.6.0",
+    "grunt-contrib-coffee": "^0.12.0",
+    "grunt-contrib-csslint": "^0.2.0",
+    "grunt-contrib-less": "^0.8.0",
+    "grunt-cson": "^0.14.0",
+    "grunt-download-atom-shell": "^0.15.1",
+    "grunt-electron-installer": "^0.37.0",
+    "grunt-eslint": "^17.3.1",
+    "grunt-lesslint": "^0.17.0",
+    "grunt-mocha-cli": "^2.0.0",
+    "grunt-peg": "^1.1.0",
+    "grunt-shell": "^0.3.1",
+    "grunt-standard": "^1.0.2",
+    "should": "^8.0.2"
+  }
+}
diff --git a/wrt/build/tasks/build-task.coffee b/wrt/build/tasks/build-task.coffee
new file mode 100644 (file)
index 0000000..286fb4b
--- /dev/null
@@ -0,0 +1,212 @@
+fs = require 'fs'
+path = require 'path'
+_ = require 'underscore-plus'
+
+module.exports = (grunt) ->
+  {cp, isAtomPackage, mkdir, rm} = require('./task-helpers')(grunt)
+
+  grunt.registerTask 'build', 'Build the application', ->
+    shellAppDir = grunt.config.get('was.shellAppDir')
+    buildDir = grunt.config.get('was.buildDir')
+    appDir = grunt.config.get('was.appDir')
+    wrtDir = grunt.config.get('was.wrtDir')
+    babelCompiledDir = grunt.config.get('was.babelCompiledDir')
+    babelCompiledSrcDir = path.join(babelCompiledDir, 'wrt', 'src')
+    wrtSrcDir = path.join(wrtDir, 'src')
+    wrt_node_modules = 'node_modules'
+
+    console.log "shellAppDir #{shellAppDir}"
+    console.log "buildDir #{buildDir}"
+    console.log "appDir #{appDir}"
+    console.log "wrt_node_modules #{wrt_node_modules}"
+
+    rm appDir
+    rm path.join(buildDir, 'installer')
+
+    #it had maded when electron build
+    # mkdir path.dirname(buildDir)
+
+    #we use default electron build path "out/R"
+    # if process.platform is 'darwin'
+    #   cp 'atom-shell/Atom.app', shellAppDir, filter: /default_app/
+    # else
+    #   cp 'atom-shell', shellAppDir, filter: /default_app/
+
+    # mkdir appDir
+
+    # if process.platform isnt 'win32'
+      # cp 'atom.sh', path.resolve(appDir, '..', 'new-app', 'atom.sh')
+
+    console.log path.resolve('wrt')
+    console.log "now : " + path.resolve()
+    packageJson = 'package.json'
+    console.log "packageJson : " + packageJson
+    cp path.join(wrtDir, packageJson), path.join(appDir, 'package.json')
+
+    packageNames = []
+    packageDirectories = []
+    nonPackageDirectories = [
+      # 'benchmark'
+      # 'dot-atom'
+      # 'vendor'
+      # 'resources'
+    ]
+
+    {devDependencies} = grunt.file.readJSON(packageJson)
+    for child in fs.readdirSync(wrt_node_modules) when child isnt '.bin'
+      directory = path.join(wrt_node_modules, child)
+      console.log "directory: #{directory}"
+      if isAtomPackage(directory)
+        packageDirectories.push(directory)
+        packageNames.push(child)
+      else
+        nonPackageDirectories.push(directory)
+
+    # Put any paths here that shouldn't end up in the built Atom.app
+    # so that it doesn't becomes larger than it needs to be.
+    ignoredPaths = [
+      path.join('git-utils', 'deps')
+      path.join('oniguruma', 'deps')
+      path.join('less', 'dist')
+      path.join('bootstrap', 'docs')
+      path.join('bootstrap', 'dist')
+      path.join('bootstrap', 'fonts')
+      path.join('bootstrap', '_config.yml')
+      path.join('bootstrap', '_includes')
+      path.join('bootstrap', '_layouts')
+      path.join('npm', 'doc')
+      path.join('npm', 'html')
+      path.join('npm', 'man')
+      path.join('npm', 'node_modules', '.bin', 'beep')
+      path.join('npm', 'node_modules', '.bin', 'clear')
+      path.join('npm', 'node_modules', '.bin', 'starwars')
+      path.join('pegjs', 'examples')
+      path.join('get-parameter-names', 'node_modules', 'testla')
+      path.join('get-parameter-names', 'node_modules', '.bin', 'testla')
+      path.join('jasmine-reporters', 'ext')
+      path.join('jasmine-node', 'node_modules', 'gaze')
+      path.join('jasmine-node', 'spec')
+      path.join('node_modules', 'nan')
+      path.join('node_modules', 'native-mate')
+      path.join('build', 'binding.Makefile')
+      path.join('build', 'config.gypi')
+      path.join('build', 'gyp-mac-tool')
+      path.join('build', 'Makefile')
+      path.join('build', 'Release', 'obj.target')
+      path.join('build', 'Release', 'obj')
+      path.join('build', 'Release', '.deps')
+      path.join('vendor', 'apm')
+      path.join('resources', 'linux')
+      path.join('resources', 'mac')
+      path.join('resources', 'win')
+
+      # These are only require in dev mode when the grammar isn't precompiled
+      path.join('snippets', 'node_modules', 'loophole')
+      path.join('snippets', 'node_modules', 'pegjs')
+      path.join('snippets', 'node_modules', '.bin', 'pegjs')
+
+      # These aren't needed since WeakMap is built-in
+      path.join('emissary', 'node_modules', 'es6-weak-map')
+      path.join('property-accessors', 'node_modules', 'es6-weak-map')
+
+      '.DS_Store'
+      '.jshintrc'
+      '.npmignore'
+      '.pairs'
+      '.travis.yml'
+      'appveyor.yml'
+      '.idea'
+      '.editorconfig'
+      '.lint'
+      '.lintignore'
+      '.eslintrc'
+      '.jshintignore'
+      'coffeelint.json'
+      '.coffeelintignore'
+      '.gitattributes'
+      '.gitkeep'
+    ]
+
+    packageNames.forEach (packageName) -> ignoredPaths.push(path.join(packageName, 'spec'))
+
+    ignoredPaths = ignoredPaths.map (ignoredPath) -> _.escapeRegExp(ignoredPath)
+
+    # Add .* to avoid matching hunspell_dictionaries.
+    ignoredPaths.push "#{_.escapeRegExp(path.join('spellchecker', 'vendor', 'hunspell') + path.sep)}.*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('build', 'Release') + path.sep)}.*\\.pdb"
+
+    # Ignore *.cc and *.h files from native modules
+    ignoredPaths.push "#{_.escapeRegExp(path.join('ctags', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('git-utils', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('keytar', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('nslog', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('oniguruma', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('pathwatcher', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('runas', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('scrollbar-style', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('spellchecker', 'src') + path.sep)}.*\\.(cc|h)*"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('keyboard-layout', 'src') + path.sep)}.*\\.(cc|h|mm)*"
+
+    # Ignore build files
+    ignoredPaths.push "#{_.escapeRegExp(path.sep)}binding\\.gyp$"
+    ignoredPaths.push "#{_.escapeRegExp(path.sep)}.+\\.target.mk$"
+    ignoredPaths.push "#{_.escapeRegExp(path.sep)}linker\\.lock$"
+    ignoredPaths.push "#{_.escapeRegExp(path.join('build', 'Release') + path.sep)}.+\\.node\\.dSYM"
+
+    # Hunspell dictionaries are only not needed on OS X.
+    if process.platform is 'darwin'
+      ignoredPaths.push path.join('spellchecker', 'vendor', 'hunspell_dictionaries')
+    ignoredPaths = ignoredPaths.map (ignoredPath) -> "(#{ignoredPath})"
+
+    testFolderPattern = new RegExp("#{_.escapeRegExp(path.sep)}_*te?sts?_*#{_.escapeRegExp(path.sep)}")
+    exampleFolderPattern = new RegExp("#{_.escapeRegExp(path.sep)}examples?#{_.escapeRegExp(path.sep)}")
+    benchmarkFolderPattern = new RegExp("#{_.escapeRegExp(path.sep)}benchmarks?#{_.escapeRegExp(path.sep)}")
+
+    nodeModulesFilter = new RegExp(ignoredPaths.join('|'))
+    filterNodeModule = (pathToCopy) ->
+      return true if benchmarkFolderPattern.test(pathToCopy)
+
+      pathToCopy = path.resolve(pathToCopy)
+      nodeModulesFilter.test(pathToCopy) or testFolderPattern.test(pathToCopy) or exampleFolderPattern.test(pathToCopy)
+
+    packageFilter = new RegExp("(#{ignoredPaths.join('|')})|(.+\\.(cson|coffee)$)")
+    filterPackage = (pathToCopy) ->
+      return true if benchmarkFolderPattern.test(pathToCopy)
+
+      pathToCopy = path.resolve(pathToCopy)
+      packageFilter.test(pathToCopy) or testFolderPattern.test(pathToCopy) or exampleFolderPattern.test(pathToCopy)
+
+    for directory in nonPackageDirectories when directory isnt '.bin'
+      cp directory, path.join(appDir, 'src', directory), filter: filterNodeModule
+
+    for directory in packageDirectories when directory isnt '.bin'
+      cp directory, path.join(appDir, directory), filter: filterPackage
+
+    cp wrtSrcDir, path.join(appDir, 'src'), filter: /.+\.(cson|coffee)$/
+    if grunt.file.exists babelCompiledSrcDir
+      cp babelCompiledSrcDir, path.join(appDir, 'src'), filter: /.+\.(cson|coffee)$/
+    # cp 'static', path.join(appDir, 'static')
+
+    # cp path.join('apm', 'node_modules', 'atom-package-manager'), path.resolve(appDir, '..', 'new-app', 'apm'), filter: filterNodeModule
+    # if process.platform isnt 'win32'
+    #   fs.symlinkSync(path.join('..', '..', 'bin', 'apm'), path.resolve(appDir, '..', 'new-app', 'apm', 'node_modules', '.bin', 'apm'))
+
+    if process.platform is 'darwin'
+      grunt.file.recurse path.join('resources', 'mac'), (sourcePath, rootDirectory, subDirectory='', filename) ->
+        unless /.+\.plist/.test(sourcePath)
+          grunt.file.copy(sourcePath, path.resolve(appDir, '..', subDirectory, filename))
+
+    if process.platform is 'win32'
+      cp path.join('resources', 'win', 'atom.cmd'), path.join(shellAppDir, 'resources', 'cli', 'atom.cmd')
+      cp path.join('resources', 'win', 'atom.sh'), path.join(shellAppDir, 'resources', 'cli', 'atom.sh')
+      cp path.join('resources', 'win', 'atom.js'), path.join(shellAppDir, 'resources', 'cli', 'atom.js')
+      cp path.join('resources', 'win', 'apm.sh'), path.join(shellAppDir, 'resources', 'cli', 'apm.sh')
+
+    # if process.platform is 'linux'
+    #   cp path.join('resources', 'linux', 'icons'), path.join(buildDir, 'icons')
+
+    # dependencies = ['compile', 'generate-license:save', 'generate-module-cache', 'compile-packages-slug']
+    # dependencies = ['compile']
+    dependencies.push('copy-info-plist') if process.platform is 'darwin'
+    dependencies.push('set-exe-icon') if process.platform is 'win32'
+    # grunt.task.run(dependencies...)
diff --git a/wrt/build/tasks/generate-asar-task.coffee b/wrt/build/tasks/generate-asar-task.coffee
new file mode 100644 (file)
index 0000000..b6510e9
--- /dev/null
@@ -0,0 +1,39 @@
+asar = require 'asar'
+fs = require 'fs'
+path = require 'path'
+
+module.exports = (grunt) ->
+  {cp, rm} = require('./task-helpers')(grunt)
+
+  grunt.registerTask 'generate-asar', 'Generate asar archive for the app', ->
+    done = @async()
+
+    unpack = [
+      '*.node'
+      'ctags-config'
+      'ctags-darwin'
+      'ctags-linux'
+      'ctags-win32.exe'
+      '**/node_modules/spellchecker/**'
+      '**/resources/atom.png'
+    ]
+    unpack = "{#{unpack.join(',')}}"
+
+    appDir = grunt.config.get('was.appDir')
+
+    console.log(appDir)
+    unless fs.existsSync(appDir)
+      grunt.log.error 'The app has to be built before generating asar archive.'
+      return done(false)
+
+    asar.createPackageWithOptions appDir, path.resolve(appDir, '..', 'app.asar'), {unpack}, (err) ->
+      return done(err) if err?
+
+      rm appDir
+      # fs.renameSync path.resolve(appDir, '..', 'new-app'), appDir
+
+      ctagsFolder = path.join("#{appDir}.asar.unpacked", 'node_modules', 'symbols-view', 'vendor')
+      # for ctagsFile in fs.readdirSync(ctagsFolder)
+      #   fs.chmodSync(path.join(ctagsFolder, ctagsFile), "755")
+
+      done()
diff --git a/wrt/build/tasks/task-helpers.coffee b/wrt/build/tasks/task-helpers.coffee
new file mode 100644 (file)
index 0000000..2819c95
--- /dev/null
@@ -0,0 +1,68 @@
+fs = require 'fs-plus'
+path = require 'path'
+
+module.exports = (grunt) ->
+  cp: (source, destination, {filter}={}) ->
+    unless grunt.file.exists(source)
+      grunt.fatal("Cannot copy non-existent #{source.cyan} to #{destination.cyan}")
+
+    copyFile = (sourcePath, destinationPath) ->
+      return if filter?(sourcePath) or filter?.test?(sourcePath)
+
+      stats = fs.lstatSync(sourcePath)
+      if stats.isSymbolicLink()
+        grunt.file.mkdir(path.dirname(destinationPath))
+        fs.symlinkSync(fs.readlinkSync(sourcePath), destinationPath)
+      else if stats.isFile()
+        grunt.file.copy(sourcePath, destinationPath)
+
+      if grunt.file.exists(destinationPath)
+        fs.chmodSync(destinationPath, fs.statSync(sourcePath).mode)
+
+    if grunt.file.isFile(source)
+      copyFile(source, destination)
+    else
+      try
+        onFile = (sourcePath) ->
+          destinationPath = path.join(destination, path.relative(source, sourcePath))
+          copyFile(sourcePath, destinationPath)
+        onDirectory = (sourcePath) ->
+          if fs.isSymbolicLinkSync(sourcePath)
+            destinationPath = path.join(destination, path.relative(source, sourcePath))
+            copyFile(sourcePath, destinationPath)
+            false
+          else
+            true
+        fs.traverseTreeSync source, onFile, onDirectory
+      catch error
+        grunt.fatal(error)
+
+    grunt.verbose.writeln("Copied #{source.cyan} to #{destination.cyan}.")
+
+  mkdir: (args...) ->
+    grunt.file.mkdir(args...)
+
+  rm: (args...) ->
+    grunt.file.delete(args..., force: true) if grunt.file.exists(args...)
+
+  spawn: (options, callback) ->
+    childProcess = require 'child_process'
+    stdout = []
+    stderr = []
+    error = null
+    proc = childProcess.spawn(options.cmd, options.args, options.opts)
+    proc.stdout.on 'data', (data) -> stdout.push(data.toString())
+    proc.stderr.on 'data', (data) -> stderr.push(data.toString())
+    proc.on 'error', (processError) -> error ?= processError
+    proc.on 'close', (exitCode, signal) ->
+      error ?= new Error(signal) if exitCode isnt 0
+      results = {stderr: stderr.join(''), stdout: stdout.join(''), code: exitCode}
+      grunt.log.error results.stderr if exitCode isnt 0
+      callback(error, results, exitCode)
+
+  isAtomPackage: (packagePath) ->
+    try
+      {engines} = grunt.file.readJSON(path.join(packagePath, 'package.json'))
+      engines?.atom?
+    catch error
+      false
diff --git a/wrt/build/tasks/was-runtime-test.coffee b/wrt/build/tasks/was-runtime-test.coffee
new file mode 100644 (file)
index 0000000..7bc796a
--- /dev/null
@@ -0,0 +1,65 @@
+fs = require 'fs'
+path = require 'path'
+grunt = require 'grunt'
+spawn = grunt.util.spawn
+
+#electronBinaryPath = path.resolve(__dirname, '../../','electron_binary', 'electron-v0.31.0-linux-x64','electron');
+electronBinaryPath = path.resolve(__dirname, '../../','out', 'R','electron');
+electronMocah = path.resolve(__dirname, '../','node_modules','electron-mocha', 'bin','electron-mocha');
+mainProcesstestFile =  path.resolve(__dirname, '../','test','runtime', 'js','main-process','*.js');
+rendererProcesstestFile =  path.resolve(__dirname, '../','test','runtime', 'js','renderer-process','*.js');
+wasHome =  path.resolve(__dirname,'../../');
+installerPath = path.resolve(__dirname,'../../','installer');
+wasAppsRepo = path.resolve(__dirname,'../../','apps_repo');
+
+process.env.DEBUG = 'WEBAPPLICATION,RUNTIME,TRY';
+process.env.ELECTRON_PATH = electronBinaryPath;
+process.env.WAS_HOME = wasHome;
+process.env.WAS_INSTALLER_PATH = installerPath;
+process.env.WAS_APPS_REPO = wasAppsRepo;
+module.exports = (grunt) ->
+  grunt.registerTask('runtime-main-process-test', 'async-test', ()->
+    grunt.task.run ['clean']
+    done = @async()
+
+    console.log "electronBinaryPath : " , electronBinaryPath
+    console.log "electronMocah : " , electronMocah
+    console.log "testFile : " , mainProcesstestFile
+    options =  '--inline-diffs'
+    args = [electronMocah, " ", mainProcesstestFile].join("")
+    console.log "args : " , args
+
+    child = spawn
+      cmd: electronMocah
+      args: [options, mainProcesstestFile],
+      (error, result, code) ->
+        if(error)
+          grunt.log.error error
+        else
+          grunt.log.ok 'jest passed'
+        done code == 0
+    child.stdout.pipe(process.stdout);
+    child.stderr.pipe(process.stderr);
+  )
+  grunt.registerTask('runtime-renderer-process-test', 'async-test', ()->
+    done = @async()
+
+    console.log "electronBinaryPath : " , electronBinaryPath
+    console.log "electronMocah : " , electronMocah
+    console.log "testFile : " , rendererProcesstestFile
+    options =  '--renderer'
+    args = [electronMocah, " ", rendererProcesstestFile].join("")
+    console.log "args : " , args
+
+    child = spawn
+      cmd: electronMocah
+      args: [options, rendererProcesstestFile],
+      (error, result, code) ->
+        if(error)
+          grunt.log.error error
+        else
+          grunt.log.ok 'jest passed'
+        done code == 0
+    child.stdout.pipe(process.stdout);
+    child.stderr.pipe(process.stderr);
+  )
\ No newline at end of file
diff --git a/wrt/build/test/installer/js/unittest.database.js b/wrt/build/test/installer/js/unittest.database.js
new file mode 100644 (file)
index 0000000..1fb2db6
--- /dev/null
@@ -0,0 +1,59 @@
+var assert  = require('assert'),
+    os = require('os'),
+    path = require('path'),
+    fs = require('fs'),
+    database = require('../../../../installer/js/database.js');
+
+describe('database', function() {
+    var tempPath = path.join(os.tmpdir(), 'test_database'),
+        tempFile = path.join(tempPath, 'database.json'),
+        testData = {
+            name: 'unittest',
+            module: 'database'
+        },
+        tempFolder = path.join(tempPath, testData.name);
+
+    before(function () {
+        fs.mkdirSync(tempPath);
+        fs.mkdirSync(tempFolder);
+    });
+
+    after(function () {
+        fs.stat(tempFile, function (err) {
+            if (!err) {
+                fs.unlinkSync(tempFile);
+                fs.rmdirSync(tempFolder);
+                fs.rmdirSync(tempPath);
+            }
+        });
+    });
+
+    describe('update', function() {
+        it('create database.json', function(done) {
+            fs.readFile(tempFile, function(err) {
+                if (err) {
+                    database.update(tempPath, testData);
+                    fs.readFile(tempFile, function(err) {
+                        if (!err) {
+                            done();
+                        }
+                    });
+                }
+            });
+        });
+    });
+
+    describe('getList', function() {
+        it('get list of name in database.json', function() {
+            var list = database.getList(tempPath);
+            assert.equal(list[0], testData.name);
+        });
+    });
+
+    describe('getData', function() {
+        it('get data in database.json by specific key', function() {
+            var data = database.getData(tempPath, 'unittest');
+            assert.equal(data.name, testData.name);
+        });
+    });
+});
\ No newline at end of file
diff --git a/wrt/build/test/installer/js/unittest.installer.js b/wrt/build/test/installer/js/unittest.installer.js
new file mode 100644 (file)
index 0000000..16afcf9
--- /dev/null
@@ -0,0 +1,58 @@
+var assert  = require('assert'),
+    fs = require('fs'),
+    os = require('os'),
+    path = require('path'),
+    installer = require('../../../../installer/js/installer.js');
+
+describe('installer', function() {
+    var tempSrcPath = path.join(os.tmpdir(), 'tempSrc'),
+        tempDestPath = path.join(os.tmpdir(), 'tempDest'),
+        tempSrcAppPath = path.join(tempSrcPath, 'test_installer'),
+        tempDestAppPath = path.join(tempDestPath, 'test_installer');
+
+    before(function () {
+        fs.mkdirSync(tempSrcPath);
+        fs.mkdirSync(tempSrcAppPath);
+    });
+
+    after(function () {
+        fs.rmdirSync(tempSrcPath);
+        fs.rmdirSync(tempDestAppPath);
+        fs.rmdirSync(tempDestPath);
+    });
+
+    describe('install', function() {
+        it('move app folder to specific path', function(done) {
+            installer.install(tempSrcAppPath, tempDestAppPath, function (error) {
+                fs.statSync(tempDestAppPath);
+                cb();
+            });
+
+            function cb () {
+                done();
+            }
+        });
+    });
+
+    describe('install', function() {
+        it('check that app folder is already installed', function (done) {
+            fs.stat(tempDestAppPath, function (err) {
+                fs.mkdirSync(tempSrcAppPath);
+                if (!err) {
+                    done();
+                }
+            });
+        });
+
+        it('move app folder to specific path in case folder is already exist', function(done) {
+            installer.install(tempSrcAppPath, tempDestAppPath, function (error) {
+                fs.statSync(tempDestAppPath);
+                cb();
+            });
+
+            function cb () {
+                done();
+            }
+        });
+    });
+});
\ No newline at end of file
diff --git a/wrt/build/test/runtime/js/main-process/unittest.runtime.main.js b/wrt/build/test/runtime/js/main-process/unittest.runtime.main.js
new file mode 100644 (file)
index 0000000..2332b7e
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+ * Created by hosoup on 15. 12. 21.
+ */
+
+describe('main', function () {
+    var path = require('path'),
+        assert = require('assert'),
+        should = require('should'),
+        main = require('../../../../../src/main'),
+        fs = require('fs'),
+        parseCommandLIne = main.parseCommandLine,
+        makeArguments = main.makeArguments,
+        parsedObject;
+
+    describe('parseCommandLine', function () {
+        it('parseCommandLine output test', function (done) {
+            parsedObject = parseCommandLIne();
+            assert.equal(19, Object.keys(parsedObject).length);
+            done();
+        });
+        it('parseCommandLine version test', function (done) {
+            parsedObject = parseCommandLIne();
+            assert.equal('0.31.0', parsedObject.version);
+            done();
+        });
+        it('parseCommandLine packageName test', function (done) {
+            process.argv = ['was', ' ', '-p', 'test'];
+            parsedObject = parseCommandLIne();
+            assert.equal('test', parsedObject.packageName);
+
+            done();
+        });
+        it('parseCommandLine runtype test', function (done) {
+            process.argv = ['was'];
+            parsedObject = parseCommandLIne();
+            assert.equal(1, parsedObject.runType);
+            process.argv = ['was', '-p', 'test'];
+            parsedObject = parseCommandLIne();
+            assert.equal(2, parsedObject.runType);
+            process.argv = ['was', '-p', 'test', '-u', './sample/test/'];
+            parsedObject = parseCommandLIne();
+            assert.equal(2, parsedObject.runType);
+            process.argv = ['was', '-u', './sample/test/'];
+            parsedObject = parseCommandLIne();
+            assert.equal(4, parsedObject.runType);
+            done();
+        });
+    });
+    describe('makeArguments', function () {
+        var testPath = './sample/test1234',
+            args,
+            packagePathPrefix = 'file://',
+            packageIndexSuffix = '/index.html',
+            wasHome = process.env.WAS_HOME,
+            wasAppsRepo = path.resolve(__dirname, '../../../../../', 'apps_repo'),
+            samplePath = path.resolve(process.env.WAS_HOME, testPath);
+
+        before(function () {
+            fs.mkdirSync(samplePath);
+        });
+
+        after(function () {
+            fs.rmdirSync(samplePath);
+        });
+
+        it('makeArguments output test', function (done) {
+
+            process.argv = ['was', '-u', testPath];
+            args = makeArguments();
+
+            assert.equal(packagePathPrefix, args.packagePathPrefix);
+            assert.equal(packageIndexSuffix, args.packageIndexSuffix);
+            assert.equal(wasAppsRepo, args.installPath);
+            assert.equal(testPath, args.unPackageAppPath);
+            assert.equal(packagePathPrefix + path.resolve(wasHome, testPath) + packageIndexSuffix, args.packageRealPath);
+
+            done();
+        });
+
+
+    });
+});
diff --git a/wrt/build/test/runtime/js/main-process/unittest.runtime.runtime.js b/wrt/build/test/runtime/js/main-process/unittest.runtime.runtime.js
new file mode 100644 (file)
index 0000000..bbb6627
--- /dev/null
@@ -0,0 +1,44 @@
+/**
+ * Created by hosoup on 15. 12. 21.
+ */
+
+describe('runtime', function () {
+    const path = require('path');
+    const assert = require('assert');
+    const should = require('should');
+    const main = require('../../../../../src/main.js');
+    const makeArguments = main.makeArguments;
+    const Runtime = require('../../../../../src/runtime.js');
+    const commonModuleManager = require('../../../../../src/manager.js');
+    const ipc = commonModuleManager.ipc;
+    const WAS_EVENT = require('../../../../../src/event_define.js');
+
+    describe('Runtime Class', function () {
+        var args;
+        before(function(){
+            process.argv = ['was', ' ', '-p', 'test'];
+            args = makeArguments();
+        });
+        it('create test', function (done) {
+            var runtime_instance = new Runtime();
+            assert.equal('object', typeof runtime_instance);
+            assert.equal('function', typeof runtime_instance.handleWasEvents);
+            assert.equal('function', typeof runtime_instance.handleIpcMessages);
+            assert.equal('function', typeof runtime_instance.Exec);
+            assert.equal('function', typeof runtime_instance.onCreate);
+            assert.equal('function', typeof runtime_instance.onPause);
+            assert.equal('function', typeof runtime_instance.onResume);
+            done();
+        });
+        it('handleWasEvents test', function (done) {
+            var runtime_instance = new Runtime(),
+                web_window_id;
+            runtime_instance.onCreate(args);
+            web_window_id = runtime_instance.onResume(1);
+            assert.equal(1, web_window_id);
+            web_window_id = runtime_instance.onPause(1);
+            assert.equal(1, web_window_id);
+            done();
+        });
+    });
+});
diff --git a/wrt/build/test/runtime/js/main-process/unittest.runtime.web_application.js b/wrt/build/test/runtime/js/main-process/unittest.runtime.web_application.js
new file mode 100644 (file)
index 0000000..fe44b87
--- /dev/null
@@ -0,0 +1,59 @@
+/**
+ * Created by hosoup on 15. 12. 21.
+ */
+
+describe('runtime', function () {
+    const path = require('path');
+    const assert = require('assert');
+    const should = require('should');
+    const main = require('../../../../../src/main.js');
+    const makeArguments = main.makeArguments;
+    const webApplication = require('../../../../../src/web_application');
+    const commonModuleManager = require('../../../../../src/manager');
+    const ipc = commonModuleManager.ipc;
+    const IPC_MESSAGE = require('../../../../../src/ipc_message');
+    const WAS_EVENT = require('../../../../../src/event_define');
+    const DEFAULT = require('../../../../../src/default_value');
+
+    describe('webApplication Class', function () {
+        var args,
+            dummyWebWindow;
+        before(function(){
+            process.argv = ['was', ' ', '-p', 'test'];
+            args = makeArguments();
+            if(DEFAULT.RULE.WEB_WINDOW_TAG){
+                dummyWebWindow = require('../../../../../src/web_window_tag');
+            }else{
+                dummyWebWindow = require('../../../../../src/web_window');
+            }
+        });
+        it('create test', function (done) {
+            var webApplicationInstance = new webApplication(args);
+            assert.equal('object', typeof webApplicationInstance);
+            assert.equal('function', typeof webApplicationInstance.constructor);
+            assert.equal('function', typeof webApplicationInstance.resume);
+            assert.equal('function', typeof webApplicationInstance.suspend);
+            assert.equal('function', typeof webApplicationInstance.addWebWindow);
+            assert.equal('function', typeof webApplicationInstance.removeWebWindow);
+            assert.equal('function', typeof webApplicationInstance.exit);
+            assert.equal('function', typeof webApplicationInstance.updateLauncer);
+            done();
+        });
+        it('public API test', function(done){
+            var webApplicationInstance = new webApplication(args);
+            assert.equal(1,webApplicationInstance.resume(1));
+            assert.equal(1,webApplicationInstance.suspend(1));
+
+            var lengthBackup = webApplicationInstance.webwindows.length;
+            webApplicationInstance.addWebWindow(dummyWebWindow);
+            assert.equal(lengthBackup + 1, webApplicationInstance.webwindows.length );
+            webApplicationInstance.removeWebWindow(dummyWebWindow);
+            assert.equal(lengthBackup, webApplicationInstance.webwindows.length );
+            //webApplicationInstance.exit(1);
+            assert.equal(null ,webApplicationInstance.launch(1));
+            assert.equal(null ,webApplicationInstance.launched(1));
+            done();
+        });
+
+    });
+});
diff --git a/wrt/build/test/runtime/js/renderer-process/unittest.runtime.web_application.js b/wrt/build/test/runtime/js/renderer-process/unittest.runtime.web_application.js
new file mode 100644 (file)
index 0000000..0d46520
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ * Created by hosoup on 15. 12. 21.
+ */
+
+describe('runtime', function () {
+    const remote = require('remote');
+    const assert = require('assert');
+    const should = require('should');
+    const ipc = require('ipc');
+    const require_main = remote.require;
+
+    const main = require_main('../../../../../src/main.js');
+    //const makeArguments = main.makeArguments;
+    //const webApplication = require_main('../../../../../../../src/web_application');
+    //const commonModuleManager = require_main('../../../../../../../src/manager');
+    //const IPC_MESSAGE = require_main('../../../../../../../src/ipc_message');
+    //const WAS_EVENT = require_main('../../../../../../../src/event_define');
+    //const DEFAULT = require_main('../../../../../../../src/default_value');
+
+    describe('webApplication Class', function () {
+        var args,
+            dummyWebWindow;
+        before(function(){
+            //process.argv = ['was', ' ', '-p', 'test'];
+            //args = makeArguments();
+            //if(DEFAULT.RULE.WEB_WINDOW_TAG){
+            //    dummyWebWindow = require_main('../../../../../src/web_window_tag');
+            //}else{
+            //    dummyWebWindow = require_main('../../../../../src/web_window');
+            //}
+        });
+
+        //it('callback test', function(done){
+        //    var app = require_main('app');
+            //var webApplicationInstance = new webApplication(args);
+            //var webContents = webApplicationInstance.webwindows[0].mainWindow.webContents;
+            //assert.equal('object', typeof webContents);
+            //assert.equal(1, webApplicationInstance.webwindows.length);
+            //console.log(webContents);
+            //webApplicationInstance.updateLauncer();
+        //})
+    });
+});