You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bh...@apache.org on 2014/04/13 03:07:43 UTC

[01/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Repository: cordova-blackberry
Updated Branches:
  refs/heads/master 411ead992 -> 942b81e70


http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/package.json b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/package.json
deleted file mode 100644
index b207887..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "name": "pegjs",
-  "version": "0.6.2",
-  "description": "Parser generator for JavaScript",
-  "homepage": "http://pegjs.majda.cz/",
-  "author": {
-    "name": "David Majda",
-    "email": "david@majda.cz",
-    "url": "http://majda.cz/"
-  },
-  "main": "lib/peg",
-  "bin": {
-    "pegjs": "bin/pegjs"
-  },
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/dmajda/pegjs.git"
-  },
-  "devDependencies": {
-    "jake": ">= 0.1.10",
-    "uglify-js": ">= 0.0.5"
-  },
-  "engines": {
-    "node": ">= 0.4.4"
-  },
-  "readme": "PEG.js\n======\n\nPEG.js is a simple parser generator for JavaScript that produces fast parsers with excellent error reporting. You can use it to process complex data or computer languages and build transformers, interpreters, compilers and other tools easily.\n\nFeatures\n--------\n\n  * Simple and expressive grammar syntax\n  * Integrates both lexical and syntactical analysis\n  * Parsers have excellent error reporting out of the box\n  * Based on [parsing expression grammar](http://en.wikipedia.org/wiki/Parsing_expression_grammar) formalism — more powerful than traditional LL(*k*) and LR(*k*) parsers\n  * Usable [from your browser](http://pegjs.majda.cz/online), from the command line, or via JavaScript API\n\nGetting Started\n---------------\n\n[Online version](http://pegjs.majda.cz/online) is the easiest way to generate a parser. Just enter your grammar, try parsing few inputs, and download generated parser code.\n\nInstallation\n------------\n\n### Command Line /
  Server-side\n\nTo use command-line version, install [Node.js](http://nodejs.org/) and [npm](http://npmjs.org/) first. You can then install PEG.js:\n\n    $ npm install pegjs\n\nOnce installed, you can use the `pegjs` command to generate your parser from a grammar and use the JavaScript API from Node.js.\n\n### Browser\n\n[Download](http://pegjs.majda.cz/#download) the PEG.js library (regular or minified version) and include it in your web page or application using the `<script>` tag.\n\nGenerating a Parser\n-------------------\n\nPEG.js generates parser from a grammar that describes expected input and can specify what the parser returns (using semantic actions on matched parts of the input). Generated parser itself is a JavaScript object with a simple API.\n\n### Command Line\n\nTo generate a parser from your grammar, use the `pegjs` command:\n\n    $ pegjs arithmetics.pegjs\n\nThis writes parser source code into a file with the same name as the grammar file but with “.js” exte
 nsion. You can also specify the output file explicitly:\n\n    $ pegjs arithmetics.pegjs arithmetics-parser.js\n\nIf you omit both input and ouptut file, standard input and output are used.\n\nBy default, the parser object is assigned to `module.exports`, which makes the output a Node.js module. You can assign it to another variable by passing a variable name using the `-e`/`--export-var` option. This may be helpful if you want to use the parser in browser environment.\n\n### JavaScript API\n\nIn Node.js, require the PEG.js parser generator module:\n\n    var PEG = require(\"pegjs\");\n\nIn browser, include the PEG.js library in your web page or application using the `<script>` tag. The API will be available through the `PEG` global object.\n\nTo generate a parser, call the `PEG.buildParser` method and pass your grammar as a parameter:\n\n    var parser = PEG.buildParser(\"start = ('a' / 'b')+\");\n\nThe method will return generated parser object or throw an exception if the grammar
  is invalid. The exception will contain `message` property with more details about the error.\n\nTo get parser’s source code, call the `toSource` method on the parser.\n\nUsing the Parser\n----------------\n\nUsing the generated parser is simple — just call its `parse` method and pass an input string as a parameter. The method will return a parse result (the exact value depends on the grammar used to build the parser) or throw an exception if the input is invalid. The exception will contain `line`, `column` and `message` properties with more details about the error.\n\n    parser.parse(\"abba\"); // returns [\"a\", \"b\", \"b\", \"a\"]\n\n    parser.parse(\"abcd\"); // throws an exception\n\nYou can also start parsing from a specific rule in the grammar. Just pass the rule name to the `parse` method as a second parameter.\n\nGrammar Syntax and Semantics\n----------------------------\n\nThe grammar syntax is similar to JavaScript in that it is not line-oriented and ignores whites
 pace between tokens. You can also use JavaScript-style comments (`// ...` and `/* ... */`).\n\nLet's look at example grammar that recognizes simple arithmetic expressions like `2*(3+4)`. A parser generated from this grammar computes their values.\n\n    start\n      = additive\n\n    additive\n      = left:multiplicative \"+\" right:additive { return left + right; }\n      / multiplicative\n\n    multiplicative\n      = left:primary \"*\" right:multiplicative { return left * right; }\n      / primary\n\n    primary\n      = integer\n      / \"(\" additive:additive \")\" { return additive; }\n\n    integer \"integer\"\n      = digits:[0-9]+ { return parseInt(digits.join(\"\"), 10); }\n\nOn the top level, the grammar consists of *rules* (in our example, there are five of them). Each rule has a *name* (e.g. `integer`) that identifies the rule, and a *parsing expression* (e.g. `digits:[0-9]+ { return parseInt(digits.join(\"\"), 10); }`) that defines a pattern to match against the input 
 text and possibly contains some JavaScript code that determines what happens when the pattern matches successfully. A rule can also contain *human-readable name* that is used in error messages (in our example, only the `integer` rule has a human-readable name). The parsing starts at the first rule, which is also called the *start rule*.\n\nA rule name must be a JavaScript identifier. It is followed by an equality sign (“=”) and a parsing expression. If the rule has a human-readable name, it is written as a JavaScript string between the name and separating equality sign. Rules need to be separated only by whitespace (their beginning is easily recognizable), but a semicolon (“;”) after the parsing expression is allowed.\n\nRules can be preceded by an *initializer* — a piece of JavaScript code in curly braces (“{” and “}”). This code is executed before the generated parser starts parsing. All variables and functions defined in the initializer are accessible in rule ac
 tions and semantic predicates. Curly braces in the initializer code must be balanced.\n\nThe parsing expressions of the rules are used to match the input text to the grammar. There are various types of expressions — matching characters or character classes, indicating optional parts and repetition, etc. Expressions can also contain references to other rules. See detailed description below.\n\nIf an expression successfully matches a part of the text when running the generated parser, it produces a *match result*, which is a JavaScript value. For example:\n\n  * An expression matching a literal string produces a JavaScript string containing matched part of the input.\n  * An expression matching repeated occurrence of some subexpression produces a JavaScript array with all the matches.\n\nThe match results propagate through the rules when the rule names are used in expressions, up to the start rule. The generated parser returns start rule's match result when parsing is successful.\n\
 nOne special case of parser expression is a *parser action* — a piece of JavaScript code inside curly braces (“{” and “}”) that takes match results of some of the the preceding expressions and returns a JavaScript value. This value is considered match result of the preceding expression (in other words, the parser action is a match result transformer).\n\nIn our arithmetics example, there are many parser actions. Consider the action in expression `digits:[0-9]+ { return parseInt(digits.join(\"\"), 10); }`. It takes the match result of the expression [0-9]+, which is an array of strings containing digits, as its parameter. It joins the digits together to form a number and converts it to a JavaScript `number` object.\n\n### Parsing Expression Types\n\nThere are several types of parsing expressions, some of them containing subexpressions and thus forming a recursive structure:\n\n#### \"*literal*\"<br>'*literal*'\n\nMatch exact literal string and return it. The string syntax i
 s the same as in JavaScript.\n\n#### .\n\nMatch exactly one character and return it as a string.\n\n#### [*characters*]\n\nMatch one character from a set and return it as a string. The characters in the list can be escaped in exactly the same way as in JavaScript string. The list of characters can also contain ranges (e.g. `[a-z]` means “all lowercase letters”). Preceding the characters with `^` inverts the matched set (e.g. `[^a-z]` means “all character but lowercase letters”).\n\n#### *rule*\n\nMatch a parsing expression of a rule recursively and return its match result.\n\n#### ( *expression* )\n\nMatch a subexpression and return its match result.\n\n#### *expression* \\*\n\nMatch zero or more repetitions of the expression and return their match results in an array. The matching is greedy, i.e. the parser tries to match the expression as many times as possible.\n\n#### *expression* +\n\nMatch one or more repetitions of the expression and return their match results in an a
 rray. The matching is greedy, i.e. the parser tries to match the expression as many times as possible.\n\n#### *expression* ?\n\nTry to match the expression. If the match succeeds, return its match result, otherwise return an empty string.\n\n#### & *expression*\n\nTry to match the expression. If the match succeeds, just return an empty string and do not advance the parser position, otherwise consider the match failed.\n\n#### ! *expression*\n\nTry to match the expression and. If the match does not succeed, just return an empty string and do not advance the parser position, otherwise consider the match failed.\n\n#### & { *predicate* }\n\nThe predicate is a piece of JavaScript code that is executed as if it was inside a function. It should return some JavaScript value using the `return` statement. If the returned value evaluates to `true` in boolean context, just return an empty string and do not advance the parser position; otherwise consider the match failed.\n\nThe code inside th
 e predicate has access to all variables and functions defined in the initializer at the beginning of the grammar. Curly braces in the predicate code must be balanced.\n\n#### ! { *predicate* }\n\nThe predicate is a piece of JavaScript code that is executed as if it was inside a function. It should return some JavaScript value using the `return` statement. If the returned value evaluates to `false` in boolean context, just return an empty string and do not advance the parser position; otherwise consider the match failed.\n\nThe code inside the predicate has access to all variables and functions defined in the initializer at the beginning of the grammar. Curly braces in the predicate code must be balanced.\n\n#### *label* : *expression*\n\nMatch the expression and remember its match result under given lablel. The label must be a JavaScript identifier.\n\nLabeled expressions are useful together with actions, where saved match results can be accessed by action's JavaScript code.\n\n####
  *expression<sub>1</sub>* *expression<sub>2</sub>* ... *expression<sub>n</sub>*\n\nMatch a sequence of expressions and return their match results in an array.\n\n#### *expression* { *action* }\n\nMatch the expression. If the match is successful, run the action, otherwise consider the match failed.\n\nThe action is a piece of JavaScript code that is executed as if it was inside a function. It gets the match results of labeled expressions in preceding expression as its arguments. The action should return some JavaScript value using the `return` statement. This value is considered match result of the preceding expression. The action can return `null` to indicate a match failure.\n\nThe code inside the action has access to all variables and functions defined in the initializer at the beginning of the grammar. Curly braces in the action code must be balanced.\n\n#### *expression<sub>1</sub>* / *expression<sub>2</sub>* / ... / *expression<sub>n</sub>*\n\nTry to match the first expression,
  if it does not succeed, try the second one, etc. Return the match result of the first successfully matched expression. If no expression matches, consider the match failed.\n\nCompatibility\n-------------\n\nBoth the parser generator and generated parsers should run well in the following environments:\n\n  * Node.js 0.4.4+\n  * IE 6+\n  * Firefox\n  * Chrome\n  * Safari\n  * Opera\n\nDevelopment\n-----------\n\n  * [Project website](https://pegjs.majda.cz/)\n  * [Source code](https://github.com/dmajda/pegjs)\n  * [Issue tracker](https://github.com/dmajda/pegjs/issues)\n  * [Google Group](http://groups.google.com/group/pegjs)\n  * [Twitter](http://twitter.com/peg_js)\n\nPEG.js is developed by [David Majda](http://majda.cz/) ([@dmajda](http://twitter.com/dmajda)). You are welcome to contribute code. Unless your contribution is really trivial you should get in touch with me first — this can prevent wasted effort on both sides. You can send code both as patch or GitHub pull request.\n
 \nNote that PEG.js is still very much work in progress. There are no compatibility guarantees until version 1.0.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/dmajda/pegjs/issues"
-  },
-  "_id": "pegjs@0.6.2",
-  "_from": "pegjs@0.6.2"
-}


[34/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/minimatch.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/minimatch.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/minimatch.js
deleted file mode 100644
index 405746b..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,1079 +0,0 @@
-;(function (require, exports, module, platform) {
-
-if (module) module.exports = minimatch
-else exports.minimatch = minimatch
-
-if (!require) {
-  require = function (id) {
-    switch (id) {
-      case "sigmund": return function sigmund (obj) {
-        return JSON.stringify(obj)
-      }
-      case "path": return { basename: function (f) {
-        f = f.split(/[\/\\]/)
-        var e = f.pop()
-        if (!e) e = f.pop()
-        return e
-      }}
-      case "lru-cache": return function LRUCache () {
-        // not quite an LRU, but still space-limited.
-        var cache = {}
-        var cnt = 0
-        this.set = function (k, v) {
-          cnt ++
-          if (cnt >= 100) cache = {}
-          cache[k] = v
-        }
-        this.get = function (k) { return cache[k] }
-      }
-    }
-  }
-}
-
-minimatch.Minimatch = Minimatch
-
-var LRU = require("lru-cache")
-  , cache = minimatch.cache = new LRU({max: 100})
-  , GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-  , sigmund = require("sigmund")
-
-var path = require("path")
-  // any single thing other than /
-  // don't need to escape / when using new RegExp()
-  , qmark = "[^/]"
-
-  // * => any number of characters
-  , star = qmark + "*?"
-
-  // ** when dots are allowed.  Anything goes, except .. and .
-  // not (^ or / followed by one or two dots followed by $ or /),
-  // followed by anything, any number of times.
-  , twoStarDot = "(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?"
-
-  // not a ^ or / followed by a dot,
-  // followed by anything, any number of times.
-  , twoStarNoDot = "(?:(?!(?:\\\/|^)\\.).)*?"
-
-  // characters that need to be escaped in RegExp.
-  , reSpecials = charSet("().*{}+?[]^$\\!")
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
-  return s.split("").reduce(function (set, c) {
-    set[c] = true
-    return set
-  }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.monkeyPatch = monkeyPatch
-function monkeyPatch () {
-  var desc = Object.getOwnPropertyDescriptor(String.prototype, "match")
-  var orig = desc.value
-  desc.value = function (p) {
-    if (p instanceof Minimatch) return p.match(this)
-    return orig.call(this, p)
-  }
-  Object.defineProperty(String.prototype, desc)
-}
-
-minimatch.filter = filter
-function filter (pattern, options) {
-  options = options || {}
-  return function (p, i, list) {
-    return minimatch(p, pattern, options)
-  }
-}
-
-function ext (a, b) {
-  a = a || {}
-  b = b || {}
-  var t = {}
-  Object.keys(b).forEach(function (k) {
-    t[k] = b[k]
-  })
-  Object.keys(a).forEach(function (k) {
-    t[k] = a[k]
-  })
-  return t
-}
-
-minimatch.defaults = function (def) {
-  if (!def || !Object.keys(def).length) return minimatch
-
-  var orig = minimatch
-
-  var m = function minimatch (p, pattern, options) {
-    return orig.minimatch(p, pattern, ext(def, options))
-  }
-
-  m.Minimatch = function Minimatch (pattern, options) {
-    return new orig.Minimatch(pattern, ext(def, options))
-  }
-
-  return m
-}
-
-Minimatch.defaults = function (def) {
-  if (!def || !Object.keys(def).length) return Minimatch
-  return minimatch.defaults(def).Minimatch
-}
-
-
-function minimatch (p, pattern, options) {
-  if (typeof pattern !== "string") {
-    throw new TypeError("glob pattern string required")
-  }
-
-  if (!options) options = {}
-
-  // shortcut: comments match nothing.
-  if (!options.nocomment && pattern.charAt(0) === "#") {
-    return false
-  }
-
-  // "" only matches ""
-  if (pattern.trim() === "") return p === ""
-
-  return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
-  if (!(this instanceof Minimatch)) {
-    return new Minimatch(pattern, options, cache)
-  }
-
-  if (typeof pattern !== "string") {
-    throw new TypeError("glob pattern string required")
-  }
-
-  if (!options) options = {}
-  pattern = pattern.trim()
-
-  // windows: need to use /, not \
-  // On other platforms, \ is a valid (albeit bad) filename char.
-  if (platform === "win32") {
-    pattern = pattern.split("\\").join("/")
-  }
-
-  // lru storage.
-  // these things aren't particularly big, but walking down the string
-  // and turning it into a regexp can get pretty costly.
-  var cacheKey = pattern + "\n" + sigmund(options)
-  var cached = minimatch.cache.get(cacheKey)
-  if (cached) return cached
-  minimatch.cache.set(cacheKey, this)
-
-  this.options = options
-  this.set = []
-  this.pattern = pattern
-  this.regexp = null
-  this.negate = false
-  this.comment = false
-  this.empty = false
-
-  // make the set of regexps etc.
-  this.make()
-}
-
-Minimatch.prototype.make = make
-function make () {
-  // don't do it more than once.
-  if (this._made) return
-
-  var pattern = this.pattern
-  var options = this.options
-
-  // empty patterns and comments match nothing.
-  if (!options.nocomment && pattern.charAt(0) === "#") {
-    this.comment = true
-    return
-  }
-  if (!pattern) {
-    this.empty = true
-    return
-  }
-
-  // step 1: figure out negation, etc.
-  this.parseNegate()
-
-  // step 2: expand braces
-  var set = this.globSet = this.braceExpand()
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // step 3: now we have a set, so turn each one into a series of path-portion
-  // matching patterns.
-  // These will be regexps, except in the case of "**", which is
-  // set to the GLOBSTAR object for globstar behavior,
-  // and will not contain any / characters
-  set = this.globParts = set.map(function (s) {
-    return s.split(slashSplit)
-  })
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // glob --> regexps
-  set = set.map(function (s, si, set) {
-    return s.map(this.parse, this)
-  }, this)
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // filter out everything that didn't compile properly.
-  set = set.filter(function (s) {
-    return -1 === s.indexOf(false)
-  })
-
-  if (options.debug) console.error(this.pattern, set)
-
-  this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
-  var pattern = this.pattern
-    , negate = false
-    , options = this.options
-    , negateOffset = 0
-
-  if (options.nonegate) return
-
-  for ( var i = 0, l = pattern.length
-      ; i < l && pattern.charAt(i) === "!"
-      ; i ++) {
-    negate = !negate
-    negateOffset ++
-  }
-
-  if (negateOffset) this.pattern = pattern.substr(negateOffset)
-  this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
-  return new Minimatch(pattern, options).braceExpand()
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-function braceExpand (pattern, options) {
-  options = options || this.options
-  pattern = typeof pattern === "undefined"
-    ? this.pattern : pattern
-
-  if (typeof pattern === "undefined") {
-    throw new Error("undefined pattern")
-  }
-
-  if (options.nobrace ||
-      !pattern.match(/\{.*\}/)) {
-    // shortcut. no need to expand.
-    return [pattern]
-  }
-
-  var escaping = false
-
-  // examples and comments refer to this crazy pattern:
-  // a{b,c{d,e},{f,g}h}x{y,z}
-  // expected:
-  // abxy
-  // abxz
-  // acdxy
-  // acdxz
-  // acexy
-  // acexz
-  // afhxy
-  // afhxz
-  // aghxy
-  // aghxz
-
-  // everything before the first \{ is just a prefix.
-  // So, we pluck that off, and work with the rest,
-  // and then prepend it to everything we find.
-  if (pattern.charAt(0) !== "{") {
-    // console.error(pattern)
-    var prefix = null
-    for (var i = 0, l = pattern.length; i < l; i ++) {
-      var c = pattern.charAt(i)
-      // console.error(i, c)
-      if (c === "\\") {
-        escaping = !escaping
-      } else if (c === "{" && !escaping) {
-        prefix = pattern.substr(0, i)
-        break
-      }
-    }
-
-    // actually no sets, all { were escaped.
-    if (prefix === null) {
-      // console.error("no sets")
-      return [pattern]
-    }
-
-    var tail = braceExpand(pattern.substr(i), options)
-    return tail.map(function (t) {
-      return prefix + t
-    })
-  }
-
-  // now we have something like:
-  // {b,c{d,e},{f,g}h}x{y,z}
-  // walk through the set, expanding each part, until
-  // the set ends.  then, we'll expand the suffix.
-  // If the set only has a single member, then'll put the {} back
-
-  // first, handle numeric sets, since they're easier
-  var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/)
-  if (numset) {
-    // console.error("numset", numset[1], numset[2])
-    var suf = braceExpand(pattern.substr(numset[0].length), options)
-      , start = +numset[1]
-      , end = +numset[2]
-      , inc = start > end ? -1 : 1
-      , set = []
-    for (var i = start; i != (end + inc); i += inc) {
-      // append all the suffixes
-      for (var ii = 0, ll = suf.length; ii < ll; ii ++) {
-        set.push(i + suf[ii])
-      }
-    }
-    return set
-  }
-
-  // ok, walk through the set
-  // We hope, somewhat optimistically, that there
-  // will be a } at the end.
-  // If the closing brace isn't found, then the pattern is
-  // interpreted as braceExpand("\\" + pattern) so that
-  // the leading \{ will be interpreted literally.
-  var i = 1 // skip the \{
-    , depth = 1
-    , set = []
-    , member = ""
-    , sawEnd = false
-    , escaping = false
-
-  function addMember () {
-    set.push(member)
-    member = ""
-  }
-
-  // console.error("Entering for")
-  FOR: for (i = 1, l = pattern.length; i < l; i ++) {
-    var c = pattern.charAt(i)
-    // console.error("", i, c)
-
-    if (escaping) {
-      escaping = false
-      member += "\\" + c
-    } else {
-      switch (c) {
-        case "\\":
-          escaping = true
-          continue
-
-        case "{":
-          depth ++
-          member += "{"
-          continue
-
-        case "}":
-          depth --
-          // if this closes the actual set, then we're done
-          if (depth === 0) {
-            addMember()
-            // pluck off the close-brace
-            i ++
-            break FOR
-          } else {
-            member += c
-            continue
-          }
-
-        case ",":
-          if (depth === 1) {
-            addMember()
-          } else {
-            member += c
-          }
-          continue
-
-        default:
-          member += c
-          continue
-      } // switch
-    } // else
-  } // for
-
-  // now we've either finished the set, and the suffix is
-  // pattern.substr(i), or we have *not* closed the set,
-  // and need to escape the leading brace
-  if (depth !== 0) {
-    // console.error("didn't close", pattern)
-    return braceExpand("\\" + pattern, options)
-  }
-
-  // x{y,z} -> ["xy", "xz"]
-  // console.error("set", set)
-  // console.error("suffix", pattern.substr(i))
-  var suf = braceExpand(pattern.substr(i), options)
-  // ["b", "c{d,e}","{f,g}h"] ->
-  //   [["b"], ["cd", "ce"], ["fh", "gh"]]
-  var addBraces = set.length === 1
-  // console.error("set pre-expanded", set)
-  set = set.map(function (p) {
-    return braceExpand(p, options)
-  })
-  // console.error("set expanded", set)
-
-
-  // [["b"], ["cd", "ce"], ["fh", "gh"]] ->
-  //   ["b", "cd", "ce", "fh", "gh"]
-  set = set.reduce(function (l, r) {
-    return l.concat(r)
-  })
-
-  if (addBraces) {
-    set = set.map(function (s) {
-      return "{" + s + "}"
-    })
-  }
-
-  // now attach the suffixes.
-  var ret = []
-  for (var i = 0, l = set.length; i < l; i ++) {
-    for (var ii = 0, ll = suf.length; ii < ll; ii ++) {
-      ret.push(set[i] + suf[ii])
-    }
-  }
-  return ret
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion.  Otherwise, any series
-// of * is equivalent to a single *.  Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
-  var options = this.options
-
-  // shortcuts
-  if (!options.noglobstar && pattern === "**") return GLOBSTAR
-  if (pattern === "") return ""
-
-  var re = ""
-    , hasMagic = !!options.nocase
-    , escaping = false
-    // ? => one single character
-    , patternListStack = []
-    , plType
-    , stateChar
-    , inClass = false
-    , reClassStart = -1
-    , classStart = -1
-    // . and .. never match anything that doesn't start with .,
-    // even when options.dot is set.
-    , patternStart = pattern.charAt(0) === "." ? "" // anything
-      // not (start or / followed by . or .. followed by / or end)
-      : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))"
-      : "(?!\\.)"
-
-  function clearStateChar () {
-    if (stateChar) {
-      // we had some state-tracking character
-      // that wasn't consumed by this pass.
-      switch (stateChar) {
-        case "*":
-          re += star
-          hasMagic = true
-          break
-        case "?":
-          re += qmark
-          hasMagic = true
-          break
-        default:
-          re += "\\"+stateChar
-          break
-      }
-      stateChar = false
-    }
-  }
-
-  for ( var i = 0, len = pattern.length, c
-      ; (i < len) && (c = pattern.charAt(i))
-      ; i ++ ) {
-
-    if (options.debug) {
-      console.error("%s\t%s %s %j", pattern, i, re, c)
-    }
-
-    // skip over any that are escaped.
-    if (escaping && reSpecials[c]) {
-      re += "\\" + c
-      escaping = false
-      continue
-    }
-
-    SWITCH: switch (c) {
-      case "/":
-        // completely not allowed, even escaped.
-        // Should already be path-split by now.
-        return false
-
-      case "\\":
-        clearStateChar()
-        escaping = true
-        continue
-
-      // the various stateChar values
-      // for the "extglob" stuff.
-      case "?":
-      case "*":
-      case "+":
-      case "@":
-      case "!":
-        if (options.debug) {
-          console.error("%s\t%s %s %j <-- stateChar", pattern, i, re, c)
-        }
-
-        // all of those are literals inside a class, except that
-        // the glob [!a] means [^a] in regexp
-        if (inClass) {
-          if (c === "!" && i === classStart + 1) c = "^"
-          re += c
-          continue
-        }
-
-        // if we already have a stateChar, then it means
-        // that there was something like ** or +? in there.
-        // Handle the stateChar, then proceed with this one.
-        clearStateChar()
-        stateChar = c
-        // if extglob is disabled, then +(asdf|foo) isn't a thing.
-        // just clear the statechar *now*, rather than even diving into
-        // the patternList stuff.
-        if (options.noext) clearStateChar()
-        continue
-
-      case "(":
-        if (inClass) {
-          re += "("
-          continue
-        }
-
-        if (!stateChar) {
-          re += "\\("
-          continue
-        }
-
-        plType = stateChar
-        patternListStack.push({ type: plType
-                              , start: i - 1
-                              , reStart: re.length })
-        // negation is (?:(?!js)[^/]*)
-        re += stateChar === "!" ? "(?:(?!" : "(?:"
-        stateChar = false
-        continue
-
-      case ")":
-        if (inClass || !patternListStack.length) {
-          re += "\\)"
-          continue
-        }
-
-        hasMagic = true
-        re += ")"
-        plType = patternListStack.pop().type
-        // negation is (?:(?!js)[^/]*)
-        // The others are (?:<pattern>)<type>
-        switch (plType) {
-          case "!":
-            re += "[^/]*?)"
-            break
-          case "?":
-          case "+":
-          case "*": re += plType
-          case "@": break // the default anyway
-        }
-        continue
-
-      case "|":
-        if (inClass || !patternListStack.length || escaping) {
-          re += "\\|"
-          escaping = false
-          continue
-        }
-
-        re += "|"
-        continue
-
-      // these are mostly the same in regexp and glob
-      case "[":
-        // swallow any state-tracking char before the [
-        clearStateChar()
-
-        if (inClass) {
-          re += "\\" + c
-          continue
-        }
-
-        inClass = true
-        classStart = i
-        reClassStart = re.length
-        re += c
-        continue
-
-      case "]":
-        //  a right bracket shall lose its special
-        //  meaning and represent itself in
-        //  a bracket expression if it occurs
-        //  first in the list.  -- POSIX.2 2.8.3.2
-        if (i === classStart + 1 || !inClass) {
-          re += "\\" + c
-          escaping = false
-          continue
-        }
-
-        // finish up the class.
-        hasMagic = true
-        inClass = false
-        re += c
-        continue
-
-      default:
-        // swallow any state char that wasn't consumed
-        clearStateChar()
-
-        if (escaping) {
-          // no need
-          escaping = false
-        } else if (reSpecials[c]
-                   && !(c === "^" && inClass)) {
-          re += "\\"
-        }
-
-        re += c
-
-    } // switch
-  } // for
-
-
-  // handle the case where we left a class open.
-  // "[abc" is valid, equivalent to "\[abc"
-  if (inClass) {
-    // split where the last [ was, and escape it
-    // this is a huge pita.  We now have to re-walk
-    // the contents of the would-be class to re-translate
-    // any characters that were passed through as-is
-    var cs = pattern.substr(classStart + 1)
-      , sp = this.parse(cs, SUBPARSE)
-    re = re.substr(0, reClassStart) + "\\[" + sp[0]
-    hasMagic = hasMagic || sp[1]
-  }
-
-  // handle the case where we had a +( thing at the *end*
-  // of the pattern.
-  // each pattern list stack adds 3 chars, and we need to go through
-  // and escape any | chars that were passed through as-is for the regexp.
-  // Go through and escape them, taking care not to double-escape any
-  // | chars that were already escaped.
-  var pl
-  while (pl = patternListStack.pop()) {
-    var tail = re.slice(pl.reStart + 3)
-    // maybe some even number of \, then maybe 1 \, followed by a |
-    tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
-      if (!$2) {
-        // the | isn't already escaped, so escape it.
-        $2 = "\\"
-      }
-
-      // need to escape all those slashes *again*, without escaping the
-      // one that we need for escaping the | character.  As it works out,
-      // escaping an even number of slashes can be done by simply repeating
-      // it exactly after itself.  That's why this trick works.
-      //
-      // I am sorry that you have to see this.
-      return $1 + $1 + $2 + "|"
-    })
-
-    // console.error("tail=%j\n   %s", tail, tail)
-    var t = pl.type === "*" ? star
-          : pl.type === "?" ? qmark
-          : "\\" + pl.type
-
-    hasMagic = true
-    re = re.slice(0, pl.reStart)
-       + t + "\\("
-       + tail
-  }
-
-  // handle trailing things that only matter at the very end.
-  clearStateChar()
-  if (escaping) {
-    // trailing \\
-    re += "\\\\"
-  }
-
-  // only need to apply the nodot start if the re starts with
-  // something that could conceivably capture a dot
-  var addPatternStart = false
-  switch (re.charAt(0)) {
-    case ".":
-    case "[":
-    case "(": addPatternStart = true
-  }
-
-  // if the re is not "" at this point, then we need to make sure
-  // it doesn't match against an empty path part.
-  // Otherwise a/* will match a/, which it should not.
-  if (re !== "" && hasMagic) re = "(?=.)" + re
-
-  if (addPatternStart) re = patternStart + re
-
-  // parsing just a piece of a larger pattern.
-  if (isSub === SUBPARSE) {
-    return [ re, hasMagic ]
-  }
-
-  // skip the regexp for non-magical patterns
-  // unescape anything in it, though, so that it'll be
-  // an exact match against a file etc.
-  if (!hasMagic) {
-    return globUnescape(pattern)
-  }
-
-  var flags = options.nocase ? "i" : ""
-    , regExp = new RegExp("^" + re + "$", flags)
-
-  regExp._glob = pattern
-  regExp._src = re
-
-  return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
-  return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
-  if (this.regexp || this.regexp === false) return this.regexp
-
-  // at this point, this.set is a 2d array of partial
-  // pattern strings, or "**".
-  //
-  // It's better to use .match().  This function shouldn't
-  // be used, really, but it's pretty convenient sometimes,
-  // when you just want to work with a regex.
-  var set = this.set
-
-  if (!set.length) return this.regexp = false
-  var options = this.options
-
-  var twoStar = options.noglobstar ? star
-      : options.dot ? twoStarDot
-      : twoStarNoDot
-    , flags = options.nocase ? "i" : ""
-
-  var re = set.map(function (pattern) {
-    return pattern.map(function (p) {
-      return (p === GLOBSTAR) ? twoStar
-           : (typeof p === "string") ? regExpEscape(p)
-           : p._src
-    }).join("\\\/")
-  }).join("|")
-
-  // must match entire pattern
-  // ending in a * or ** will make it less strict.
-  re = "^(?:" + re + ")$"
-
-  // can match anything, as long as it's not this.
-  if (this.negate) re = "^(?!" + re + ").*$"
-
-  try {
-    return this.regexp = new RegExp(re, flags)
-  } catch (ex) {
-    return this.regexp = false
-  }
-}
-
-minimatch.match = function (list, pattern, options) {
-  var mm = new Minimatch(pattern, options)
-  list = list.filter(function (f) {
-    return mm.match(f)
-  })
-  if (options.nonull && !list.length) {
-    list.push(pattern)
-  }
-  return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
-  // console.error("match", f, this.pattern)
-  // short-circuit in the case of busted things.
-  // comments, etc.
-  if (this.comment) return false
-  if (this.empty) return f === ""
-
-  if (f === "/" && partial) return true
-
-  var options = this.options
-
-  // windows: need to use /, not \
-  // On other platforms, \ is a valid (albeit bad) filename char.
-  if (platform === "win32") {
-    f = f.split("\\").join("/")
-  }
-
-  // treat the test path as a set of pathparts.
-  f = f.split(slashSplit)
-  if (options.debug) {
-    console.error(this.pattern, "split", f)
-  }
-
-  // just ONE of the pattern sets in this.set needs to match
-  // in order for it to be valid.  If negating, then just one
-  // match means that we have failed.
-  // Either way, return on the first hit.
-
-  var set = this.set
-  // console.error(this.pattern, "set", set)
-
-  for (var i = 0, l = set.length; i < l; i ++) {
-    var pattern = set[i]
-    var hit = this.matchOne(f, pattern, partial)
-    if (hit) {
-      if (options.flipNegate) return true
-      return !this.negate
-    }
-  }
-
-  // didn't get any hits.  this is success if it's a negative
-  // pattern, failure otherwise.
-  if (options.flipNegate) return false
-  return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
-  var options = this.options
-
-  if (options.debug) {
-    console.error("matchOne",
-                  { "this": this
-                  , file: file
-                  , pattern: pattern })
-  }
-
-  if (options.matchBase && pattern.length === 1) {
-    file = path.basename(file.join("/")).split("/")
-  }
-
-  if (options.debug) {
-    console.error("matchOne", file.length, pattern.length)
-  }
-
-  for ( var fi = 0
-          , pi = 0
-          , fl = file.length
-          , pl = pattern.length
-      ; (fi < fl) && (pi < pl)
-      ; fi ++, pi ++ ) {
-
-    if (options.debug) {
-      console.error("matchOne loop")
-    }
-    var p = pattern[pi]
-      , f = file[fi]
-
-    if (options.debug) {
-      console.error(pattern, p, f)
-    }
-
-    // should be impossible.
-    // some invalid regexp stuff in the set.
-    if (p === false) return false
-
-    if (p === GLOBSTAR) {
-      if (options.debug)
-        console.error('GLOBSTAR', [pattern, p, f])
-
-      // "**"
-      // a/**/b/**/c would match the following:
-      // a/b/x/y/z/c
-      // a/x/y/z/b/c
-      // a/b/x/b/x/c
-      // a/b/c
-      // To do this, take the rest of the pattern after
-      // the **, and see if it would match the file remainder.
-      // If so, return success.
-      // If not, the ** "swallows" a segment, and try again.
-      // This is recursively awful.
-      //
-      // a/**/b/**/c matching a/b/x/y/z/c
-      // - a matches a
-      // - doublestar
-      //   - matchOne(b/x/y/z/c, b/**/c)
-      //     - b matches b
-      //     - doublestar
-      //       - matchOne(x/y/z/c, c) -> no
-      //       - matchOne(y/z/c, c) -> no
-      //       - matchOne(z/c, c) -> no
-      //       - matchOne(c, c) yes, hit
-      var fr = fi
-        , pr = pi + 1
-      if (pr === pl) {
-        if (options.debug)
-          console.error('** at the end')
-        // a ** at the end will just swallow the rest.
-        // We have found a match.
-        // however, it will not swallow /.x, unless
-        // options.dot is set.
-        // . and .. are *never* matched by **, for explosively
-        // exponential reasons.
-        for ( ; fi < fl; fi ++) {
-          if (file[fi] === "." || file[fi] === ".." ||
-              (!options.dot && file[fi].charAt(0) === ".")) return false
-        }
-        return true
-      }
-
-      // ok, let's see if we can swallow whatever we can.
-      WHILE: while (fr < fl) {
-        var swallowee = file[fr]
-
-        if (options.debug) {
-          console.error('\nglobstar while',
-                        file, fr, pattern, pr, swallowee)
-        }
-
-        // XXX remove this slice.  Just pass the start index.
-        if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
-          if (options.debug)
-            console.error('globstar found match!', fr, fl, swallowee)
-          // found a match.
-          return true
-        } else {
-          // can't swallow "." or ".." ever.
-          // can only swallow ".foo" when explicitly asked.
-          if (swallowee === "." || swallowee === ".." ||
-              (!options.dot && swallowee.charAt(0) === ".")) {
-            if (options.debug)
-              console.error("dot detected!", file, fr, pattern, pr)
-            break WHILE
-          }
-
-          // ** swallows a segment, and continue.
-          if (options.debug)
-            console.error('globstar swallow a segment, and continue')
-          fr ++
-        }
-      }
-      // no match was found.
-      // However, in partial mode, we can't say this is necessarily over.
-      // If there's more *pattern* left, then 
-      if (partial) {
-        // ran out of file
-        // console.error("\n>>> no match, partial?", file, fr, pattern, pr)
-        if (fr === fl) return true
-      }
-      return false
-    }
-
-    // something other than **
-    // non-magic patterns just have to match exactly
-    // patterns with magic have been turned into regexps.
-    var hit
-    if (typeof p === "string") {
-      if (options.nocase) {
-        hit = f.toLowerCase() === p.toLowerCase()
-      } else {
-        hit = f === p
-      }
-      if (options.debug) {
-        console.error("string match", p, f, hit)
-      }
-    } else {
-      hit = f.match(p)
-      if (options.debug) {
-        console.error("pattern match", p, f, hit)
-      }
-    }
-
-    if (!hit) return false
-  }
-
-  // Note: ending in / means that we'll get a final ""
-  // at the end of the pattern.  This can only match a
-  // corresponding "" at the end of the file.
-  // If the file ends in /, then it can only match a
-  // a pattern that ends in /, unless the pattern just
-  // doesn't have any more for it. But, a/b/ should *not*
-  // match "a/b/*", even though "" matches against the
-  // [^/]*? pattern, except in partial mode, where it might
-  // simply not be reached yet.
-  // However, a/b/ should still satisfy a/*
-
-  // now either we fell off the end of the pattern, or we're done.
-  if (fi === fl && pi === pl) {
-    // ran out of pattern and filename at the same time.
-    // an exact hit!
-    return true
-  } else if (fi === fl) {
-    // ran out of file, but still had pattern left.
-    // this is ok if we're doing the match as part of
-    // a glob fs traversal.
-    return partial
-  } else if (pi === pl) {
-    // ran out of pattern, still have file left.
-    // this is only acceptable if we're on the very last
-    // empty segment of a file with a trailing slash.
-    // a/* should match a/b/
-    var emptyFileEnd = (fi === fl - 1) && (file[fi] === "")
-    return emptyFileEnd
-  }
-
-  // should be unreachable.
-  throw new Error("wtf?")
-}
-
-
-// replace stuff like \* with *
-function globUnescape (s) {
-  return s.replace(/\\(.)/g, "$1")
-}
-
-
-function regExpEscape (s) {
-  return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
-}
-
-})( typeof require === "function" ? require : null,
-    this,
-    typeof module === "object" ? module : null,
-    typeof process === "object" ? process.platform : "win32"
-  )

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/.npmignore
deleted file mode 100644
index 07e6e47..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/AUTHORS
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/AUTHORS b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/AUTHORS
deleted file mode 100644
index 016d7fb..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/AUTHORS
+++ /dev/null
@@ -1,8 +0,0 @@
-# Authors, sorted by whether or not they are me
-Isaac Z. Schlueter <i...@izs.me>
-Carlos Brito Lage <ca...@carloslage.net>
-Marko Mikulicic <ma...@isti.cnr.it>
-Trent Mick <tr...@gmail.com>
-Kevin O'Hara <ke...@gmail.com>
-Marco Rogers <ma...@gmail.com>
-Jesse Dailey <je...@gmail.com>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/LICENSE
deleted file mode 100644
index 05a4010..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/README.md b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/README.md
deleted file mode 100644
index 03ee0f9..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# lru cache
-
-A cache object that deletes the least-recently-used items.
-
-## Usage:
-
-```javascript
-var LRU = require("lru-cache")
-  , options = { max: 500
-              , length: function (n) { return n * 2 }
-              , dispose: function (key, n) { n.close() }
-              , maxAge: 1000 * 60 * 60 }
-  , cache = LRU(options)
-  , otherCache = LRU(50) // sets just the max size
-
-cache.set("key", "value")
-cache.get("key") // "value"
-
-cache.reset()    // empty the cache
-```
-
-If you put more stuff in it, then items will fall out.
-
-If you try to put an oversized thing in it, then it'll fall out right
-away.
-
-## Options
-
-* `max` The maximum size of the cache, checked by applying the length
-  function to all values in the cache.  Not setting this is kind of
-  silly, since that's the whole purpose of this lib, but it defaults
-  to `Infinity`.
-* `maxAge` Maximum age in ms.  Items are not pro-actively pruned out
-  as they age, but if you try to get an item that is too old, it'll
-  drop it and return undefined instead of giving it to you.
-* `length` Function that is used to calculate the length of stored
-  items.  If you're storing strings or buffers, then you probably want
-  to do something like `function(n){return n.length}`.  The default is
-  `function(n){return 1}`, which is fine if you want to store `n`
-  like-sized things.
-* `dispose` Function that is called on items when they are dropped
-  from the cache.  This can be handy if you want to close file
-  descriptors or do other cleanup tasks when items are no longer
-  accessible.  Called with `key, value`.  It's called *before*
-  actually removing the item from the internal cache, so if you want
-  to immediately put it back in, you'll have to do that in a
-  `nextTick` or `setTimeout` callback or it won't do anything.
-* `stale` By default, if you set a `maxAge`, it'll only actually pull
-  stale items out of the cache when you `get(key)`.  (That is, it's
-  not pre-emptively doing a `setTimeout` or anything.)  If you set
-  `stale:true`, it'll return the stale value before deleting it.  If
-  you don't set this, then it'll return `undefined` when you try to
-  get a stale entry, as if it had already been deleted.
-
-## API
-
-* `set(key, value)`
-* `get(key) => value`
-
-    Both of these will update the "recently used"-ness of the key.
-    They do what you think.
-
-* `peek(key)`
-
-    Returns the key value (or `undefined` if not found) without
-    updating the "recently used"-ness of the key.
-
-    (If you find yourself using this a lot, you *might* be using the
-    wrong sort of data structure, but there are some use cases where
-    it's handy.)
-
-* `del(key)`
-
-    Deletes a key out of the cache.
-
-* `reset()`
-
-    Clear the cache entirely, throwing away all values.
-
-* `has(key)`
-
-    Check if a key is in the cache, without updating the recent-ness
-    or deleting it for being stale.
-
-* `forEach(function(value,key,cache), [thisp])`
-
-    Just like `Array.prototype.forEach`.  Iterates over all the keys
-    in the cache, in order of recent-ness.  (Ie, more recently used
-    items are iterated over first.)
-
-* `keys()`
-
-    Return an array of the keys in the cache.
-
-* `values()`
-
-    Return an array of the values in the cache.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
deleted file mode 100644
index 8c80853..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
+++ /dev/null
@@ -1,257 +0,0 @@
-;(function () { // closure for web browsers
-
-if (typeof module === 'object' && module.exports) {
-  module.exports = LRUCache
-} else {
-  // just set the global for non-node platforms.
-  this.LRUCache = LRUCache
-}
-
-function hOP (obj, key) {
-  return Object.prototype.hasOwnProperty.call(obj, key)
-}
-
-function naiveLength () { return 1 }
-
-function LRUCache (options) {
-  if (!(this instanceof LRUCache)) {
-    return new LRUCache(options)
-  }
-
-  var max
-  if (typeof options === 'number') {
-    max = options
-    options = { max: max }
-  }
-
-  if (!options) options = {}
-
-  max = options.max
-
-  var lengthCalculator = options.length || naiveLength
-
-  if (typeof lengthCalculator !== "function") {
-    lengthCalculator = naiveLength
-  }
-
-  if (!max || !(typeof max === "number") || max <= 0 ) {
-    // a little bit silly.  maybe this should throw?
-    max = Infinity
-  }
-
-  var allowStale = options.stale || false
-
-  var maxAge = options.maxAge || null
-
-  var dispose = options.dispose
-
-  var cache = Object.create(null) // hash of items by key
-    , lruList = Object.create(null) // list of items in order of use recency
-    , mru = 0 // most recently used
-    , lru = 0 // least recently used
-    , length = 0 // number of items in the list
-    , itemCount = 0
-
-
-  // resize the cache when the max changes.
-  Object.defineProperty(this, "max",
-    { set : function (mL) {
-        if (!mL || !(typeof mL === "number") || mL <= 0 ) mL = Infinity
-        max = mL
-        // if it gets above double max, trim right away.
-        // otherwise, do it whenever it's convenient.
-        if (length > max) trim()
-      }
-    , get : function () { return max }
-    , enumerable : true
-    })
-
-  // resize the cache when the lengthCalculator changes.
-  Object.defineProperty(this, "lengthCalculator",
-    { set : function (lC) {
-        if (typeof lC !== "function") {
-          lengthCalculator = naiveLength
-          length = itemCount
-          for (var key in cache) {
-            cache[key].length = 1
-          }
-        } else {
-          lengthCalculator = lC
-          length = 0
-          for (var key in cache) {
-            cache[key].length = lengthCalculator(cache[key].value)
-            length += cache[key].length
-          }
-        }
-
-        if (length > max) trim()
-      }
-    , get : function () { return lengthCalculator }
-    , enumerable : true
-    })
-
-  Object.defineProperty(this, "length",
-    { get : function () { return length }
-    , enumerable : true
-    })
-
-
-  Object.defineProperty(this, "itemCount",
-    { get : function () { return itemCount }
-    , enumerable : true
-    })
-
-  this.forEach = function (fn, thisp) {
-    thisp = thisp || this
-    var i = 0;
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      i++
-      var hit = lruList[k]
-      fn.call(thisp, hit.value, hit.key, this)
-    }
-  }
-
-  this.keys = function () {
-    var keys = new Array(itemCount)
-    var i = 0
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      var hit = lruList[k]
-      keys[i++] = hit.key
-    }
-    return keys
-  }
-
-  this.values = function () {
-    var values = new Array(itemCount)
-    var i = 0
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      var hit = lruList[k]
-      values[i++] = hit.value
-    }
-    return values
-  }
-
-  this.reset = function () {
-    if (dispose) {
-      for (var k in cache) {
-        dispose(k, cache[k].value)
-      }
-    }
-    cache = {}
-    lruList = {}
-    lru = 0
-    mru = 0
-    length = 0
-    itemCount = 0
-  }
-
-  // Provided for debugging/dev purposes only. No promises whatsoever that
-  // this API stays stable.
-  this.dump = function () {
-    return cache
-  }
-
-  this.dumpLru = function () {
-    return lruList
-  }
-
-  this.set = function (key, value) {
-    if (hOP(cache, key)) {
-      // dispose of the old one before overwriting
-      if (dispose) dispose(key, cache[key].value)
-      if (maxAge) cache[key].now = Date.now()
-      cache[key].value = value
-      this.get(key)
-      return true
-    }
-
-    var len = lengthCalculator(value)
-    var age = maxAge ? Date.now() : 0
-    var hit = new Entry(key, value, mru++, len, age)
-
-    // oversized objects fall out of cache automatically.
-    if (hit.length > max) {
-      if (dispose) dispose(key, value)
-      return false
-    }
-
-    length += hit.length
-    lruList[hit.lu] = cache[key] = hit
-    itemCount ++
-
-    if (length > max) trim()
-    return true
-  }
-
-  this.has = function (key) {
-    if (!hOP(cache, key)) return false
-    var hit = cache[key]
-    if (maxAge && (Date.now() - hit.now > maxAge)) {
-      return false
-    }
-    return true
-  }
-
-  this.get = function (key) {
-    return get(key, true)
-  }
-
-  this.peek = function (key) {
-    return get(key, false)
-  }
-
-  function get (key, doUse) {
-    var hit = cache[key]
-    if (hit) {
-      if (maxAge && (Date.now() - hit.now > maxAge)) {
-        del(hit)
-        if (!allowStale) hit = undefined
-      } else {
-        if (doUse) use(hit)
-      }
-      if (hit) hit = hit.value
-    }
-    return hit
-  }
-
-  function use (hit) {
-    shiftLU(hit)
-    hit.lu = mru ++
-    lruList[hit.lu] = hit
-  }
-
-  this.del = function (key) {
-    del(cache[key])
-  }
-
-  function trim () {
-    while (lru < mru && length > max)
-      del(lruList[lru])
-  }
-
-  function shiftLU(hit) {
-    delete lruList[ hit.lu ]
-    while (lru < mru && !lruList[lru]) lru ++
-  }
-
-  function del(hit) {
-    if (hit) {
-      if (dispose) dispose(hit.key, hit.value)
-      length -= hit.length
-      itemCount --
-      delete cache[ hit.key ]
-      shiftLU(hit)
-    }
-  }
-}
-
-// classy, since V8 prefers predictable objects.
-function Entry (key, value, mru, len, age) {
-  this.key = key
-  this.value = value
-  this.lu = mru
-  this.length = len
-  this.now = age
-}
-
-})()

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/package.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/package.json
deleted file mode 100644
index 73920bf..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "name": "lru-cache",
-  "description": "A cache object that deletes the least-recently-used items.",
-  "version": "2.3.0",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me"
-  },
-  "scripts": {
-    "test": "tap test --gc"
-  },
-  "main": "lib/lru-cache.js",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/node-lru-cache.git"
-  },
-  "devDependencies": {
-    "tap": "",
-    "weak": ""
-  },
-  "license": {
-    "type": "MIT",
-    "url": "http://github.com/isaacs/node-lru-cache/raw/master/LICENSE"
-  },
-  "contributors": [
-    {
-      "name": "Isaac Z. Schlueter",
-      "email": "i@izs.me"
-    },
-    {
-      "name": "Carlos Brito Lage",
-      "email": "carlos@carloslage.net"
-    },
-    {
-      "name": "Marko Mikulicic",
-      "email": "marko.mikulicic@isti.cnr.it"
-    },
-    {
-      "name": "Trent Mick",
-      "email": "trentm@gmail.com"
-    },
-    {
-      "name": "Kevin O'Hara",
-      "email": "kevinohara80@gmail.com"
-    },
-    {
-      "name": "Marco Rogers",
-      "email": "marco.rogers@gmail.com"
-    },
-    {
-      "name": "Jesse Dailey",
-      "email": "jesse.dailey@gmail.com"
-    }
-  ],
-  "readme": "# lru cache\n\nA cache object that deletes the least-recently-used items.\n\n## Usage:\n\n```javascript\nvar LRU = require(\"lru-cache\")\n  , options = { max: 500\n              , length: function (n) { return n * 2 }\n              , dispose: function (key, n) { n.close() }\n              , maxAge: 1000 * 60 * 60 }\n  , cache = LRU(options)\n  , otherCache = LRU(50) // sets just the max size\n\ncache.set(\"key\", \"value\")\ncache.get(\"key\") // \"value\"\n\ncache.reset()    // empty the cache\n```\n\nIf you put more stuff in it, then items will fall out.\n\nIf you try to put an oversized thing in it, then it'll fall out right\naway.\n\n## Options\n\n* `max` The maximum size of the cache, checked by applying the length\n  function to all values in the cache.  Not setting this is kind of\n  silly, since that's the whole purpose of this lib, but it defaults\n  to `Infinity`.\n* `maxAge` Maximum age in ms.  Items are not pro-actively pruned out\n  as they age, but if yo
 u try to get an item that is too old, it'll\n  drop it and return undefined instead of giving it to you.\n* `length` Function that is used to calculate the length of stored\n  items.  If you're storing strings or buffers, then you probably want\n  to do something like `function(n){return n.length}`.  The default is\n  `function(n){return 1}`, which is fine if you want to store `n`\n  like-sized things.\n* `dispose` Function that is called on items when they are dropped\n  from the cache.  This can be handy if you want to close file\n  descriptors or do other cleanup tasks when items are no longer\n  accessible.  Called with `key, value`.  It's called *before*\n  actually removing the item from the internal cache, so if you want\n  to immediately put it back in, you'll have to do that in a\n  `nextTick` or `setTimeout` callback or it won't do anything.\n* `stale` By default, if you set a `maxAge`, it'll only actually pull\n  stale items out of the cache when you `get(key)`.  (That is
 , it's\n  not pre-emptively doing a `setTimeout` or anything.)  If you set\n  `stale:true`, it'll return the stale value before deleting it.  If\n  you don't set this, then it'll return `undefined` when you try to\n  get a stale entry, as if it had already been deleted.\n\n## API\n\n* `set(key, value)`\n* `get(key) => value`\n\n    Both of these will update the \"recently used\"-ness of the key.\n    They do what you think.\n\n* `peek(key)`\n\n    Returns the key value (or `undefined` if not found) without\n    updating the \"recently used\"-ness of the key.\n\n    (If you find yourself using this a lot, you *might* be using the\n    wrong sort of data structure, but there are some use cases where\n    it's handy.)\n\n* `del(key)`\n\n    Deletes a key out of the cache.\n\n* `reset()`\n\n    Clear the cache entirely, throwing away all values.\n\n* `has(key)`\n\n    Check if a key is in the cache, without updating the recent-ness\n    or deleting it for being stale.\n\n* `forEach(func
 tion(value,key,cache), [thisp])`\n\n    Just like `Array.prototype.forEach`.  Iterates over all the keys\n    in the cache, in order of recent-ness.  (Ie, more recently used\n    items are iterated over first.)\n\n* `keys()`\n\n    Return an array of the keys in the cache.\n\n* `values()`\n\n    Return an array of the values in the cache.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/node-lru-cache/issues"
-  },
-  "_id": "lru-cache@2.3.0",
-  "_from": "lru-cache@2"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/s.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/s.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/s.js
deleted file mode 100644
index c2a9e54..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/s.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var LRU = require('lru-cache');
-
-var max = +process.argv[2] || 10240;
-var more = 1024;
-
-var cache = LRU({
-  max: max, maxAge: 86400e3
-});
-
-// fill cache
-for (var i = 0; i < max; ++i) {
-  cache.set(i, {});
-}
-
-var start = process.hrtime();
-
-// adding more items
-for ( ; i < max+more; ++i) {
-  cache.set(i, {});
-}
-
-var end = process.hrtime(start);
-var msecs = end[0] * 1E3 + end[1] / 1E6;
-
-console.log('adding %d items took %d ms', more, msecs.toPrecision(5));

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/basic.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/basic.js
deleted file mode 100644
index 70f3f8b..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/basic.js
+++ /dev/null
@@ -1,329 +0,0 @@
-var test = require("tap").test
-  , LRU = require("../")
-
-test("basic", function (t) {
-  var cache = new LRU({max: 10})
-  cache.set("key", "value")
-  t.equal(cache.get("key"), "value")
-  t.equal(cache.get("nada"), undefined)
-  t.equal(cache.length, 1)
-  t.equal(cache.max, 10)
-  t.end()
-})
-
-test("least recently set", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), "B")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("lru recently gotten", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.get("a")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), undefined)
-  t.equal(cache.get("a"), "A")
-  t.end()
-})
-
-test("del", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.del("a")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("max", function (t) {
-  var cache = new LRU(3)
-
-  // test changing the max, verify that the LRU items get dropped.
-  cache.max = 100
-  for (var i = 0; i < 100; i ++) cache.set(i, i)
-  t.equal(cache.length, 100)
-  for (var i = 0; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  cache.max = 3
-  t.equal(cache.length, 3)
-  for (var i = 0; i < 97; i ++) {
-    t.equal(cache.get(i), undefined)
-  }
-  for (var i = 98; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-
-  // now remove the max restriction, and try again.
-  cache.max = "hello"
-  for (var i = 0; i < 100; i ++) cache.set(i, i)
-  t.equal(cache.length, 100)
-  for (var i = 0; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  // should trigger an immediate resize
-  cache.max = 3
-  t.equal(cache.length, 3)
-  for (var i = 0; i < 97; i ++) {
-    t.equal(cache.get(i), undefined)
-  }
-  for (var i = 98; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  t.end()
-})
-
-test("reset", function (t) {
-  var cache = new LRU(10)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.reset()
-  t.equal(cache.length, 0)
-  t.equal(cache.max, 10)
-  t.equal(cache.get("a"), undefined)
-  t.equal(cache.get("b"), undefined)
-  t.end()
-})
-
-
-// Note: `<cache>.dump()` is a debugging tool only. No guarantees are made
-// about the format/layout of the response.
-test("dump", function (t) {
-  var cache = new LRU(10)
-  var d = cache.dump();
-  t.equal(Object.keys(d).length, 0, "nothing in dump for empty cache")
-  cache.set("a", "A")
-  var d = cache.dump()  // { a: { key: "a", value: "A", lu: 0 } }
-  t.ok(d.a)
-  t.equal(d.a.key, "a")
-  t.equal(d.a.value, "A")
-  t.equal(d.a.lu, 0)
-
-  cache.set("b", "B")
-  cache.get("b")
-  d = cache.dump()
-  t.ok(d.b)
-  t.equal(d.b.key, "b")
-  t.equal(d.b.value, "B")
-  t.equal(d.b.lu, 2)
-
-  t.end()
-})
-
-
-test("basic with weighed length", function (t) {
-  var cache = new LRU({
-    max: 100,
-    length: function (item) { return item.size }
-  })
-  cache.set("key", {val: "value", size: 50})
-  t.equal(cache.get("key").val, "value")
-  t.equal(cache.get("nada"), undefined)
-  t.equal(cache.lengthCalculator(cache.get("key")), 50)
-  t.equal(cache.length, 50)
-  t.equal(cache.max, 100)
-  t.end()
-})
-
-
-test("weighed length item too large", function (t) {
-  var cache = new LRU({
-    max: 10,
-    length: function (item) { return item.size }
-  })
-  t.equal(cache.max, 10)
-
-  // should fall out immediately
-  cache.set("key", {val: "value", size: 50})
-
-  t.equal(cache.length, 0)
-  t.equal(cache.get("key"), undefined)
-  t.end()
-})
-
-test("least recently set with weighed length", function (t) {
-  var cache = new LRU({
-    max:8,
-    length: function (item) { return item.length }
-  })
-  cache.set("a", "A")
-  cache.set("b", "BB")
-  cache.set("c", "CCC")
-  cache.set("d", "DDDD")
-  t.equal(cache.get("d"), "DDDD")
-  t.equal(cache.get("c"), "CCC")
-  t.equal(cache.get("b"), undefined)
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("lru recently gotten with weighed length", function (t) {
-  var cache = new LRU({
-    max: 8,
-    length: function (item) { return item.length }
-  })
-  cache.set("a", "A")
-  cache.set("b", "BB")
-  cache.set("c", "CCC")
-  cache.get("a")
-  cache.get("b")
-  cache.set("d", "DDDD")
-  t.equal(cache.get("c"), undefined)
-  t.equal(cache.get("d"), "DDDD")
-  t.equal(cache.get("b"), "BB")
-  t.equal(cache.get("a"), "A")
-  t.end()
-})
-
-test("set returns proper booleans", function(t) {
-  var cache = new LRU({
-    max: 5,
-    length: function (item) { return item.length }
-  })
-
-  t.equal(cache.set("a", "A"), true)
-
-  // should return false for max exceeded
-  t.equal(cache.set("b", "donuts"), false)
-
-  t.equal(cache.set("b", "B"), true)
-  t.equal(cache.set("c", "CCCC"), true)
-  t.end()
-})
-
-test("drop the old items", function(t) {
-  var cache = new LRU({
-    max: 5,
-    maxAge: 50
-  })
-
-  cache.set("a", "A")
-
-  setTimeout(function () {
-    cache.set("b", "b")
-    t.equal(cache.get("a"), "A")
-  }, 25)
-
-  setTimeout(function () {
-    cache.set("c", "C")
-    // timed out
-    t.notOk(cache.get("a"))
-  }, 60)
-
-  setTimeout(function () {
-    t.notOk(cache.get("b"))
-    t.equal(cache.get("c"), "C")
-  }, 90)
-
-  setTimeout(function () {
-    t.notOk(cache.get("c"))
-    t.end()
-  }, 155)
-})
-
-test("disposal function", function(t) {
-  var disposed = false
-  var cache = new LRU({
-    max: 1,
-    dispose: function (k, n) {
-      disposed = n
-    }
-  })
-
-  cache.set(1, 1)
-  cache.set(2, 2)
-  t.equal(disposed, 1)
-  cache.set(3, 3)
-  t.equal(disposed, 2)
-  cache.reset()
-  t.equal(disposed, 3)
-  t.end()
-})
-
-test("disposal function on too big of item", function(t) {
-  var disposed = false
-  var cache = new LRU({
-    max: 1,
-    length: function (k) {
-      return k.length
-    },
-    dispose: function (k, n) {
-      disposed = n
-    }
-  })
-  var obj = [ 1, 2 ]
-
-  t.equal(disposed, false)
-  cache.set("obj", obj)
-  t.equal(disposed, obj)
-  t.end()
-})
-
-test("has()", function(t) {
-  var cache = new LRU({
-    max: 1,
-    maxAge: 10
-  })
-
-  cache.set('foo', 'bar')
-  t.equal(cache.has('foo'), true)
-  cache.set('blu', 'baz')
-  t.equal(cache.has('foo'), false)
-  t.equal(cache.has('blu'), true)
-  setTimeout(function() {
-    t.equal(cache.has('blu'), false)
-    t.end()
-  }, 15)
-})
-
-test("stale", function(t) {
-  var cache = new LRU({
-    maxAge: 10,
-    stale: true
-  })
-
-  cache.set('foo', 'bar')
-  t.equal(cache.get('foo'), 'bar')
-  t.equal(cache.has('foo'), true)
-  setTimeout(function() {
-    t.equal(cache.has('foo'), false)
-    t.equal(cache.get('foo'), 'bar')
-    t.equal(cache.get('foo'), undefined)
-    t.end()
-  }, 15)
-})
-
-test("lru update via set", function(t) {
-  var cache = LRU({ max: 2 });
-
-  cache.set('foo', 1);
-  cache.set('bar', 2);
-  cache.del('bar');
-  cache.set('baz', 3);
-  cache.set('qux', 4);
-
-  t.equal(cache.get('foo'), undefined)
-  t.equal(cache.get('bar'), undefined)
-  t.equal(cache.get('baz'), 3)
-  t.equal(cache.get('qux'), 4)
-  t.end()
-})
-
-test("least recently set w/ peek", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  t.equal(cache.peek("a"), "A")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), "B")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/foreach.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
deleted file mode 100644
index eefb80d..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var test = require('tap').test
-var LRU = require('../')
-
-test('forEach', function (t) {
-  var l = new LRU(5)
-  for (var i = 0; i < 10; i ++) {
-    l.set(i.toString(), i.toString(2))
-  }
-
-  var i = 9
-  l.forEach(function (val, key, cache) {
-    t.equal(cache, l)
-    t.equal(key, i.toString())
-    t.equal(val, i.toString(2))
-    i -= 1
-  })
-
-  // get in order of most recently used
-  l.get(6)
-  l.get(8)
-
-  var order = [ 8, 6, 9, 7, 5 ]
-  var i = 0
-
-  l.forEach(function (val, key, cache) {
-    var j = order[i ++]
-    t.equal(cache, l)
-    t.equal(key, j.toString())
-    t.equal(val, j.toString(2))
-  })
-
-  t.end()
-})
-
-test('keys() and values()', function (t) {
-  var l = new LRU(5)
-  for (var i = 0; i < 10; i ++) {
-    l.set(i.toString(), i.toString(2))
-  }
-
-  t.similar(l.keys(), ['9', '8', '7', '6', '5'])
-  t.similar(l.values(), ['1001', '1000', '111', '110', '101'])
-
-  // get in order of most recently used
-  l.get(6)
-  l.get(8)
-
-  t.similar(l.keys(), ['8', '6', '9', '7', '5'])
-  t.similar(l.values(), ['1000', '110', '1001', '111', '101'])
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
deleted file mode 100644
index 7af45b0..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env node --expose_gc
-
-var weak = require('weak');
-var test = require('tap').test
-var LRU = require('../')
-var l = new LRU({ max: 10 })
-var refs = 0
-function X() {
-  refs ++
-  weak(this, deref)
-}
-
-function deref() {
-  refs --
-}
-
-test('no leaks', function (t) {
-  // fill up the cache
-  for (var i = 0; i < 100; i++) {
-    l.set(i, new X);
-    // throw some gets in there, too.
-    if (i % 2 === 0)
-      l.get(i / 2)
-  }
-
-  gc()
-
-  var start = process.memoryUsage()
-
-  // capture the memory
-  var startRefs = refs
-
-  // do it again, but more
-  for (var i = 0; i < 10000; i++) {
-    l.set(i, new X);
-    // throw some gets in there, too.
-    if (i % 2 === 0)
-      l.get(i / 2)
-  }
-
-  gc()
-
-  var end = process.memoryUsage()
-  t.equal(refs, startRefs, 'no leaky refs')
-
-  console.error('start: %j\n' +
-                'end:   %j', start, end);
-  t.pass();
-  t.end();
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/LICENSE
deleted file mode 100644
index 0c44ae7..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/README.md b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/README.md
deleted file mode 100644
index 7e36512..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# sigmund
-
-Quick and dirty signatures for Objects.
-
-This is like a much faster `deepEquals` comparison, which returns a
-string key suitable for caches and the like.
-
-## Usage
-
-```javascript
-function doSomething (someObj) {
-  var key = sigmund(someObj, maxDepth) // max depth defaults to 10
-  var cached = cache.get(key)
-  if (cached) return cached)
-
-  var result = expensiveCalculation(someObj)
-  cache.set(key, result)
-  return result
-}
-```
-
-The resulting key will be as unique and reproducible as calling
-`JSON.stringify` or `util.inspect` on the object, but is much faster.
-In order to achieve this speed, some differences are glossed over.
-For example, the object `{0:'foo'}` will be treated identically to the
-array `['foo']`.
-
-Also, just as there is no way to summon the soul from the scribblings
-of a cocain-addled psychoanalyst, there is no way to revive the object
-from the signature string that sigmund gives you.  In fact, it's
-barely even readable.
-
-As with `sys.inspect` and `JSON.stringify`, larger objects will
-produce larger signature strings.
-
-Because sigmund is a bit less strict than the more thorough
-alternatives, the strings will be shorter, and also there is a
-slightly higher chance for collisions.  For example, these objects
-have the same signature:
-
-    var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
-    var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
-
-Like a good Freudian, sigmund is most effective when you already have
-some understanding of what you're looking for.  It can help you help
-yourself, but you must be willing to do some work as well.
-
-Cycles are handled, and cyclical objects are silently omitted (though
-the key is included in the signature output.)
-
-The second argument is the maximum depth, which defaults to 10,
-because that is the maximum object traversal depth covered by most
-insurance carriers.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/bench.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/bench.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/bench.js
deleted file mode 100644
index 5acfd6d..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/bench.js
+++ /dev/null
@@ -1,283 +0,0 @@
-// different ways to id objects
-// use a req/res pair, since it's crazy deep and cyclical
-
-// sparseFE10 and sigmund are usually pretty close, which is to be expected,
-// since they are essentially the same algorithm, except that sigmund handles
-// regular expression objects properly.
-
-
-var http = require('http')
-var util = require('util')
-var sigmund = require('./sigmund.js')
-var sreq, sres, creq, cres, test
-
-http.createServer(function (q, s) {
-  sreq = q
-  sres = s
-  sres.end('ok')
-  this.close(function () { setTimeout(function () {
-    start()
-  }, 200) })
-}).listen(1337, function () {
-  creq = http.get({ port: 1337 })
-  creq.on('response', function (s) { cres = s })
-})
-
-function start () {
-  test = [sreq, sres, creq, cres]
-  // test = sreq
-  // sreq.sres = sres
-  // sreq.creq = creq
-  // sreq.cres = cres
-
-  for (var i in exports.compare) {
-    console.log(i)
-    var hash = exports.compare[i]()
-    console.log(hash)
-    console.log(hash.length)
-    console.log('')
-  }
-
-  require('bench').runMain()
-}
-
-function customWs (obj, md, d) {
-  d = d || 0
-  var to = typeof obj
-  if (to === 'undefined' || to === 'function' || to === null) return ''
-  if (d > md || !obj || to !== 'object') return ('' + obj).replace(/[\n ]+/g, '')
-
-  if (Array.isArray(obj)) {
-    return obj.map(function (i, _, __) {
-      return customWs(i, md, d + 1)
-    }).reduce(function (a, b) { return a + b }, '')
-  }
-
-  var keys = Object.keys(obj)
-  return keys.map(function (k, _, __) {
-    return k + ':' + customWs(obj[k], md, d + 1)
-  }).reduce(function (a, b) { return a + b }, '')
-}
-
-function custom (obj, md, d) {
-  d = d || 0
-  var to = typeof obj
-  if (to === 'undefined' || to === 'function' || to === null) return ''
-  if (d > md || !obj || to !== 'object') return '' + obj
-
-  if (Array.isArray(obj)) {
-    return obj.map(function (i, _, __) {
-      return custom(i, md, d + 1)
-    }).reduce(function (a, b) { return a + b }, '')
-  }
-
-  var keys = Object.keys(obj)
-  return keys.map(function (k, _, __) {
-    return k + ':' + custom(obj[k], md, d + 1)
-  }).reduce(function (a, b) { return a + b }, '')
-}
-
-function sparseFE2 (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    Object.keys(v).forEach(function (k, _, __) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') return
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') return
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-    })
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function sparseFE (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    Object.keys(v).forEach(function (k, _, __) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') return
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') return
-      soFar += k
-      ch(v[k], depth + 1)
-    })
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function sparse (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k
-      ch(v[k], depth + 1)
-    }
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function noCommas (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-    }
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-
-function flatten (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-      soFar += ','
-    }
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-exports.compare =
-{
-  // 'custom 2': function () {
-  //   return custom(test, 2, 0)
-  // },
-  // 'customWs 2': function () {
-  //   return customWs(test, 2, 0)
-  // },
-  'JSON.stringify (guarded)': function () {
-    var seen = []
-    return JSON.stringify(test, function (k, v) {
-      if (typeof v !== 'object' || !v) return v
-      if (seen.indexOf(v) !== -1) return undefined
-      seen.push(v)
-      return v
-    })
-  },
-
-  'flatten 10': function () {
-    return flatten(test, 10)
-  },
-
-  // 'flattenFE 10': function () {
-  //   return flattenFE(test, 10)
-  // },
-
-  'noCommas 10': function () {
-    return noCommas(test, 10)
-  },
-
-  'sparse 10': function () {
-    return sparse(test, 10)
-  },
-
-  'sparseFE 10': function () {
-    return sparseFE(test, 10)
-  },
-
-  'sparseFE2 10': function () {
-    return sparseFE2(test, 10)
-  },
-
-  sigmund: function() {
-    return sigmund(test, 10)
-  },
-
-
-  // 'util.inspect 1': function () {
-  //   return util.inspect(test, false, 1, false)
-  // },
-  // 'util.inspect undefined': function () {
-  //   util.inspect(test)
-  // },
-  // 'util.inspect 2': function () {
-  //   util.inspect(test, false, 2, false)
-  // },
-  // 'util.inspect 3': function () {
-  //   util.inspect(test, false, 3, false)
-  // },
-  // 'util.inspect 4': function () {
-  //   util.inspect(test, false, 4, false)
-  // },
-  // 'util.inspect Infinity': function () {
-  //   util.inspect(test, false, Infinity, false)
-  // }
-}
-
-/** results
-**/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/package.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/package.json
deleted file mode 100644
index ec8e2eb..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "name": "sigmund",
-  "version": "1.0.0",
-  "description": "Quick and dirty signatures for Objects.",
-  "main": "sigmund.js",
-  "directories": {
-    "test": "test"
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "tap": "~0.3.0"
-  },
-  "scripts": {
-    "test": "tap test/*.js",
-    "bench": "node bench.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/sigmund"
-  },
-  "keywords": [
-    "object",
-    "signature",
-    "key",
-    "data",
-    "psychoanalysis"
-  ],
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "license": "BSD",
-  "readme": "# sigmund\n\nQuick and dirty signatures for Objects.\n\nThis is like a much faster `deepEquals` comparison, which returns a\nstring key suitable for caches and the like.\n\n## Usage\n\n```javascript\nfunction doSomething (someObj) {\n  var key = sigmund(someObj, maxDepth) // max depth defaults to 10\n  var cached = cache.get(key)\n  if (cached) return cached)\n\n  var result = expensiveCalculation(someObj)\n  cache.set(key, result)\n  return result\n}\n```\n\nThe resulting key will be as unique and reproducible as calling\n`JSON.stringify` or `util.inspect` on the object, but is much faster.\nIn order to achieve this speed, some differences are glossed over.\nFor example, the object `{0:'foo'}` will be treated identically to the\narray `['foo']`.\n\nAlso, just as there is no way to summon the soul from the scribblings\nof a cocain-addled psychoanalyst, there is no way to revive the object\nfrom the signature string that sigmund gives you.  In fact, it's\nbarely even rea
 dable.\n\nAs with `sys.inspect` and `JSON.stringify`, larger objects will\nproduce larger signature strings.\n\nBecause sigmund is a bit less strict than the more thorough\nalternatives, the strings will be shorter, and also there is a\nslightly higher chance for collisions.  For example, these objects\nhave the same signature:\n\n    var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}\n    var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}\n\nLike a good Freudian, sigmund is most effective when you already have\nsome understanding of what you're looking for.  It can help you help\nyourself, but you must be willing to do some work as well.\n\nCycles are handled, and cyclical objects are silently omitted (though\nthe key is included in the signature output.)\n\nThe second argument is the maximum depth, which defaults to 10,\nbecause that is the maximum object traversal depth covered by most\ninsurance carriers.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/sigmund/issues"
-  },
-  "_id": "sigmund@1.0.0",
-  "_from": "sigmund@~1.0.0"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/sigmund.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/sigmund.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/sigmund.js
deleted file mode 100644
index 82c7ab8..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/sigmund.js
+++ /dev/null
@@ -1,39 +0,0 @@
-module.exports = sigmund
-function sigmund (subject, maxSessions) {
-    maxSessions = maxSessions || 10;
-    var notes = [];
-    var analysis = '';
-    var RE = RegExp;
-
-    function psychoAnalyze (subject, session) {
-        if (session > maxSessions) return;
-
-        if (typeof subject === 'function' ||
-            typeof subject === 'undefined') {
-            return;
-        }
-
-        if (typeof subject !== 'object' || !subject ||
-            (subject instanceof RE)) {
-            analysis += subject;
-            return;
-        }
-
-        if (notes.indexOf(subject) !== -1 || session === maxSessions) return;
-
-        notes.push(subject);
-        analysis += '{';
-        Object.keys(subject).forEach(function (issue, _, __) {
-            // pseudo-private values.  skip those.
-            if (issue.charAt(0) === '_') return;
-            var to = typeof subject[issue];
-            if (to === 'function' || to === 'undefined') return;
-            analysis += issue;
-            psychoAnalyze(subject[issue], session + 1);
-        });
-    }
-    psychoAnalyze(subject, 0);
-    return analysis;
-}
-
-// vim: set softtabstop=4 shiftwidth=4:

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/test/basic.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/test/basic.js
deleted file mode 100644
index 50c53a1..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/node_modules/sigmund/test/basic.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var test = require('tap').test
-var sigmund = require('../sigmund.js')
-
-
-// occasionally there are duplicates
-// that's an acceptable edge-case.  JSON.stringify and util.inspect
-// have some collision potential as well, though less, and collision
-// detection is expensive.
-var hash = '{abc/def/g{0h1i2{jkl'
-var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
-var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
-
-var obj3 = JSON.parse(JSON.stringify(obj1))
-obj3.c = /def/
-obj3.g[2].cycle = obj3
-var cycleHash = '{abc/def/g{0h1i2{jklcycle'
-
-test('basic', function (t) {
-    t.equal(sigmund(obj1), hash)
-    t.equal(sigmund(obj2), hash)
-    t.equal(sigmund(obj3), cycleHash)
-    t.end()
-})
-


[36/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/examples/g.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/examples/g.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/examples/g.js
deleted file mode 100644
index be122df..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/examples/g.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var Glob = require("../").Glob
-
-var pattern = "test/a/**/[cg]/../[cg]"
-console.log(pattern)
-
-var mg = new Glob(pattern, {mark: true, sync:true}, function (er, matches) {
-  console.log("matches", matches)
-})
-console.log("after")

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/examples/usr-local.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/examples/usr-local.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/examples/usr-local.js
deleted file mode 100644
index 327a425..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/examples/usr-local.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var Glob = require("../").Glob
-
-var pattern = "{./*/*,/*,/usr/local/*}"
-console.log(pattern)
-
-var mg = new Glob(pattern, {mark: true}, function (er, matches) {
-  console.log("matches", matches)
-})
-console.log("after")

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/glob.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/glob.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/glob.js
deleted file mode 100644
index f0118a4..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/glob.js
+++ /dev/null
@@ -1,675 +0,0 @@
-// Approach:
-//
-// 1. Get the minimatch set
-// 2. For each pattern in the set, PROCESS(pattern)
-// 3. Store matches per-set, then uniq them
-//
-// PROCESS(pattern)
-// Get the first [n] items from pattern that are all strings
-// Join these together.  This is PREFIX.
-//   If there is no more remaining, then stat(PREFIX) and
-//   add to matches if it succeeds.  END.
-// readdir(PREFIX) as ENTRIES
-//   If fails, END
-//   If pattern[n] is GLOBSTAR
-//     // handle the case where the globstar match is empty
-//     // by pruning it out, and testing the resulting pattern
-//     PROCESS(pattern[0..n] + pattern[n+1 .. $])
-//     // handle other cases.
-//     for ENTRY in ENTRIES (not dotfiles)
-//       // attach globstar + tail onto the entry
-//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $])
-//
-//   else // not globstar
-//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
-//       Test ENTRY against pattern[n]
-//       If fails, continue
-//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
-//
-// Caveat:
-//   Cache all stats and readdirs results to minimize syscall.  Since all
-//   we ever care about is existence and directory-ness, we can just keep
-//   `true` for files, and [children,...] for directories, or `false` for
-//   things that don't exist.
-
-
-
-module.exports = glob
-
-var fs = require("graceful-fs")
-, minimatch = require("minimatch")
-, Minimatch = minimatch.Minimatch
-, inherits = require("inherits")
-, EE = require("events").EventEmitter
-, path = require("path")
-, isDir = {}
-, assert = require("assert").ok
-
-function glob (pattern, options, cb) {
-  if (typeof options === "function") cb = options, options = {}
-  if (!options) options = {}
-
-  if (typeof options === "number") {
-    deprecated()
-    return
-  }
-
-  var g = new Glob(pattern, options, cb)
-  return g.sync ? g.found : g
-}
-
-glob.fnmatch = deprecated
-
-function deprecated () {
-  throw new Error("glob's interface has changed. Please see the docs.")
-}
-
-glob.sync = globSync
-function globSync (pattern, options) {
-  if (typeof options === "number") {
-    deprecated()
-    return
-  }
-
-  options = options || {}
-  options.sync = true
-  return glob(pattern, options)
-}
-
-
-glob.Glob = Glob
-inherits(Glob, EE)
-function Glob (pattern, options, cb) {
-  if (!(this instanceof Glob)) {
-    return new Glob(pattern, options, cb)
-  }
-
-  if (typeof cb === "function") {
-    this.on("error", cb)
-    this.on("end", function (matches) {
-      cb(null, matches)
-    })
-  }
-
-  options = options || {}
-
-  this.EOF = {}
-  this._emitQueue = []
-
-  this.maxDepth = options.maxDepth || 1000
-  this.maxLength = options.maxLength || Infinity
-  this.cache = options.cache || {}
-  this.statCache = options.statCache || {}
-
-  this.changedCwd = false
-  var cwd = process.cwd()
-  if (!options.hasOwnProperty("cwd")) this.cwd = cwd
-  else {
-    this.cwd = options.cwd
-    this.changedCwd = path.resolve(options.cwd) !== cwd
-  }
-
-  this.root = options.root || path.resolve(this.cwd, "/")
-  this.root = path.resolve(this.root)
-  if (process.platform === "win32")
-    this.root = this.root.replace(/\\/g, "/")
-
-  this.nomount = !!options.nomount
-
-  if (!pattern) {
-    throw new Error("must provide pattern")
-  }
-
-  // base-matching: just use globstar for that.
-  if (options.matchBase && -1 === pattern.indexOf("/")) {
-    if (options.noglobstar) {
-      throw new Error("base matching requires globstar")
-    }
-    pattern = "**/" + pattern
-  }
-
-  this.strict = options.strict !== false
-  this.dot = !!options.dot
-  this.mark = !!options.mark
-  this.sync = !!options.sync
-  this.nounique = !!options.nounique
-  this.nonull = !!options.nonull
-  this.nosort = !!options.nosort
-  this.nocase = !!options.nocase
-  this.stat = !!options.stat
-
-  this.debug = !!options.debug || !!options.globDebug
-  if (this.debug)
-    this.log = console.error
-
-  this.silent = !!options.silent
-
-  var mm = this.minimatch = new Minimatch(pattern, options)
-  this.options = mm.options
-  pattern = this.pattern = mm.pattern
-
-  this.error = null
-  this.aborted = false
-
-  // list of all the patterns that ** has resolved do, so
-  // we can avoid visiting multiple times.
-  this._globstars = {}
-
-  EE.call(this)
-
-  // process each pattern in the minimatch set
-  var n = this.minimatch.set.length
-
-  // The matches are stored as {<filename>: true,...} so that
-  // duplicates are automagically pruned.
-  // Later, we do an Object.keys() on these.
-  // Keep them as a list so we can fill in when nonull is set.
-  this.matches = new Array(n)
-
-  this.minimatch.set.forEach(iterator.bind(this))
-  function iterator (pattern, i, set) {
-    this._process(pattern, 0, i, function (er) {
-      if (er) this.emit("error", er)
-      if (-- n <= 0) this._finish()
-    })
-  }
-}
-
-Glob.prototype.log = function () {}
-
-Glob.prototype._finish = function () {
-  assert(this instanceof Glob)
-
-  var nou = this.nounique
-  , all = nou ? [] : {}
-
-  for (var i = 0, l = this.matches.length; i < l; i ++) {
-    var matches = this.matches[i]
-    this.log("matches[%d] =", i, matches)
-    // do like the shell, and spit out the literal glob
-    if (!matches) {
-      if (this.nonull) {
-        var literal = this.minimatch.globSet[i]
-        if (nou) all.push(literal)
-        else all[literal] = true
-      }
-    } else {
-      // had matches
-      var m = Object.keys(matches)
-      if (nou) all.push.apply(all, m)
-      else m.forEach(function (m) {
-        all[m] = true
-      })
-    }
-  }
-
-  if (!nou) all = Object.keys(all)
-
-  if (!this.nosort) {
-    all = all.sort(this.nocase ? alphasorti : alphasort)
-  }
-
-  if (this.mark) {
-    // at *some* point we statted all of these
-    all = all.map(function (m) {
-      var sc = this.cache[m]
-      if (!sc)
-        return m
-      var isDir = (Array.isArray(sc) || sc === 2)
-      if (isDir && m.slice(-1) !== "/") {
-        return m + "/"
-      }
-      if (!isDir && m.slice(-1) === "/") {
-        return m.replace(/\/+$/, "")
-      }
-      return m
-    }, this)
-  }
-
-  this.log("emitting end", all)
-
-  this.EOF = this.found = all
-  this.emitMatch(this.EOF)
-}
-
-function alphasorti (a, b) {
-  a = a.toLowerCase()
-  b = b.toLowerCase()
-  return alphasort(a, b)
-}
-
-function alphasort (a, b) {
-  return a > b ? 1 : a < b ? -1 : 0
-}
-
-Glob.prototype.abort = function () {
-  this.aborted = true
-  this.emit("abort")
-}
-
-Glob.prototype.pause = function () {
-  if (this.paused) return
-  if (this.sync)
-    this.emit("error", new Error("Can't pause/resume sync glob"))
-  this.paused = true
-  this.emit("pause")
-}
-
-Glob.prototype.resume = function () {
-  if (!this.paused) return
-  if (this.sync)
-    this.emit("error", new Error("Can't pause/resume sync glob"))
-  this.paused = false
-  this.emit("resume")
-  this._processEmitQueue()
-  //process.nextTick(this.emit.bind(this, "resume"))
-}
-
-Glob.prototype.emitMatch = function (m) {
-  if (!this.stat || this.statCache[m] || m === this.EOF) {
-    this._emitQueue.push(m)
-    this._processEmitQueue()
-  } else {
-    this._stat(m, function(exists, isDir) {
-      if (exists) {
-        this._emitQueue.push(m)
-        this._processEmitQueue()
-      }
-    })
-  }
-}
-
-Glob.prototype._processEmitQueue = function (m) {
-  while (!this._processingEmitQueue &&
-         !this.paused) {
-    this._processingEmitQueue = true
-    var m = this._emitQueue.shift()
-    if (!m) {
-      this._processingEmitQueue = false
-      break
-    }
-
-    this.log('emit!', m === this.EOF ? "end" : "match")
-
-    this.emit(m === this.EOF ? "end" : "match", m)
-    this._processingEmitQueue = false
-  }
-}
-
-Glob.prototype._process = function (pattern, depth, index, cb_) {
-  assert(this instanceof Glob)
-
-  var cb = function cb (er, res) {
-    assert(this instanceof Glob)
-    if (this.paused) {
-      if (!this._processQueue) {
-        this._processQueue = []
-        this.once("resume", function () {
-          var q = this._processQueue
-          this._processQueue = null
-          q.forEach(function (cb) { cb() })
-        })
-      }
-      this._processQueue.push(cb_.bind(this, er, res))
-    } else {
-      cb_.call(this, er, res)
-    }
-  }.bind(this)
-
-  if (this.aborted) return cb()
-
-  if (depth > this.maxDepth) return cb()
-
-  // Get the first [n] parts of pattern that are all strings.
-  var n = 0
-  while (typeof pattern[n] === "string") {
-    n ++
-  }
-  // now n is the index of the first one that is *not* a string.
-
-  // see if there's anything else
-  var prefix
-  switch (n) {
-    // if not, then this is rather simple
-    case pattern.length:
-      prefix = pattern.join("/")
-      this._stat(prefix, function (exists, isDir) {
-        // either it's there, or it isn't.
-        // nothing more to do, either way.
-        if (exists) {
-          if (prefix && isAbsolute(prefix) && !this.nomount) {
-            if (prefix.charAt(0) === "/") {
-              prefix = path.join(this.root, prefix)
-            } else {
-              prefix = path.resolve(this.root, prefix)
-            }
-          }
-
-          if (process.platform === "win32")
-            prefix = prefix.replace(/\\/g, "/")
-
-          this.matches[index] = this.matches[index] || {}
-          this.matches[index][prefix] = true
-          this.emitMatch(prefix)
-        }
-        return cb()
-      })
-      return
-
-    case 0:
-      // pattern *starts* with some non-trivial item.
-      // going to readdir(cwd), but not include the prefix in matches.
-      prefix = null
-      break
-
-    default:
-      // pattern has some string bits in the front.
-      // whatever it starts with, whether that's "absolute" like /foo/bar,
-      // or "relative" like "../baz"
-      prefix = pattern.slice(0, n)
-      prefix = prefix.join("/")
-      break
-  }
-
-  // get the list of entries.
-  var read
-  if (prefix === null) read = "."
-  else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) {
-    if (!prefix || !isAbsolute(prefix)) {
-      prefix = path.join("/", prefix)
-    }
-    read = prefix = path.resolve(prefix)
-
-    // if (process.platform === "win32")
-    //   read = prefix = prefix.replace(/^[a-zA-Z]:|\\/g, "/")
-
-    this.log('absolute: ', prefix, this.root, pattern, read)
-  } else {
-    read = prefix
-  }
-
-  this.log('readdir(%j)', read, this.cwd, this.root)
-
-  return this._readdir(read, function (er, entries) {
-    if (er) {
-      // not a directory!
-      // this means that, whatever else comes after this, it can never match
-      return cb()
-    }
-
-    // globstar is special
-    if (pattern[n] === minimatch.GLOBSTAR) {
-      // test without the globstar, and with every child both below
-      // and replacing the globstar.
-      var s = [ pattern.slice(0, n).concat(pattern.slice(n + 1)) ]
-      entries.forEach(function (e) {
-        if (e.charAt(0) === "." && !this.dot) return
-        // instead of the globstar
-        s.push(pattern.slice(0, n).concat(e).concat(pattern.slice(n + 1)))
-        // below the globstar
-        s.push(pattern.slice(0, n).concat(e).concat(pattern.slice(n)))
-      }, this)
-
-      s = s.filter(function (pattern) {
-        var key = gsKey(pattern)
-        var seen = !this._globstars[key]
-        this._globstars[key] = true
-        return seen
-      }, this)
-
-      if (!s.length)
-        return cb()
-
-      // now asyncForEach over this
-      var l = s.length
-      , errState = null
-      s.forEach(function (gsPattern) {
-        this._process(gsPattern, depth + 1, index, function (er) {
-          if (errState) return
-          if (er) return cb(errState = er)
-          if (--l <= 0) return cb()
-        })
-      }, this)
-
-      return
-    }
-
-    // not a globstar
-    // It will only match dot entries if it starts with a dot, or if
-    // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
-    var pn = pattern[n]
-    var rawGlob = pattern[n]._glob
-    , dotOk = this.dot || rawGlob.charAt(0) === "."
-
-    entries = entries.filter(function (e) {
-      return (e.charAt(0) !== "." || dotOk) &&
-             e.match(pattern[n])
-    })
-
-    // If n === pattern.length - 1, then there's no need for the extra stat
-    // *unless* the user has specified "mark" or "stat" explicitly.
-    // We know that they exist, since the readdir returned them.
-    if (n === pattern.length - 1 &&
-        !this.mark &&
-        !this.stat) {
-      entries.forEach(function (e) {
-        if (prefix) {
-          if (prefix !== "/") e = prefix + "/" + e
-          else e = prefix + e
-        }
-        if (e.charAt(0) === "/" && !this.nomount) {
-          e = path.join(this.root, e)
-        }
-
-        if (process.platform === "win32")
-          e = e.replace(/\\/g, "/")
-
-        this.matches[index] = this.matches[index] || {}
-        this.matches[index][e] = true
-        this.emitMatch(e)
-      }, this)
-      return cb.call(this)
-    }
-
-
-    // now test all the remaining entries as stand-ins for that part
-    // of the pattern.
-    var l = entries.length
-    , errState = null
-    if (l === 0) return cb() // no matches possible
-    entries.forEach(function (e) {
-      var p = pattern.slice(0, n).concat(e).concat(pattern.slice(n + 1))
-      this._process(p, depth + 1, index, function (er) {
-        if (errState) return
-        if (er) return cb(errState = er)
-        if (--l === 0) return cb.call(this)
-      })
-    }, this)
-  })
-
-}
-
-function gsKey (pattern) {
-  return '**' + pattern.map(function (p) {
-    return (p === minimatch.GLOBSTAR) ? '**' : (''+p)
-  }).join('/')
-}
-
-Glob.prototype._stat = function (f, cb) {
-  assert(this instanceof Glob)
-  var abs = f
-  if (f.charAt(0) === "/") {
-    abs = path.join(this.root, f)
-  } else if (this.changedCwd) {
-    abs = path.resolve(this.cwd, f)
-  }
-
-  if (f.length > this.maxLength) {
-    var er = new Error("Path name too long")
-    er.code = "ENAMETOOLONG"
-    er.path = f
-    return this._afterStat(f, abs, cb, er)
-  }
-
-  this.log('stat', [this.cwd, f, '=', abs])
-
-  if (!this.stat && this.cache.hasOwnProperty(f)) {
-    var exists = this.cache[f]
-    , isDir = exists && (Array.isArray(exists) || exists === 2)
-    if (this.sync) return cb.call(this, !!exists, isDir)
-    return process.nextTick(cb.bind(this, !!exists, isDir))
-  }
-
-  var stat = this.statCache[abs]
-  if (this.sync || stat) {
-    var er
-    try {
-      stat = fs.statSync(abs)
-    } catch (e) {
-      er = e
-    }
-    this._afterStat(f, abs, cb, er, stat)
-  } else {
-    fs.stat(abs, this._afterStat.bind(this, f, abs, cb))
-  }
-}
-
-Glob.prototype._afterStat = function (f, abs, cb, er, stat) {
-  var exists
-  assert(this instanceof Glob)
-
-  if (abs.slice(-1) === "/" && stat && !stat.isDirectory()) {
-    this.log("should be ENOTDIR, fake it")
-
-    er = new Error("ENOTDIR, not a directory '" + abs + "'")
-    er.path = abs
-    er.code = "ENOTDIR"
-    stat = null
-  }
-
-  var emit = !this.statCache[abs]
-  this.statCache[abs] = stat
-
-  if (er || !stat) {
-    exists = false
-  } else {
-    exists = stat.isDirectory() ? 2 : 1
-    if (emit)
-      this.emit('stat', f, stat)
-  }
-  this.cache[f] = this.cache[f] || exists
-  cb.call(this, !!exists, exists === 2)
-}
-
-Glob.prototype._readdir = function (f, cb) {
-  assert(this instanceof Glob)
-  var abs = f
-  if (f.charAt(0) === "/") {
-    abs = path.join(this.root, f)
-  } else if (isAbsolute(f)) {
-    abs = f
-  } else if (this.changedCwd) {
-    abs = path.resolve(this.cwd, f)
-  }
-
-  if (f.length > this.maxLength) {
-    var er = new Error("Path name too long")
-    er.code = "ENAMETOOLONG"
-    er.path = f
-    return this._afterReaddir(f, abs, cb, er)
-  }
-
-  this.log('readdir', [this.cwd, f, abs])
-  if (this.cache.hasOwnProperty(f)) {
-    var c = this.cache[f]
-    if (Array.isArray(c)) {
-      if (this.sync) return cb.call(this, null, c)
-      return process.nextTick(cb.bind(this, null, c))
-    }
-
-    if (!c || c === 1) {
-      // either ENOENT or ENOTDIR
-      var code = c ? "ENOTDIR" : "ENOENT"
-      , er = new Error((c ? "Not a directory" : "Not found") + ": " + f)
-      er.path = f
-      er.code = code
-      this.log(f, er)
-      if (this.sync) return cb.call(this, er)
-      return process.nextTick(cb.bind(this, er))
-    }
-
-    // at this point, c === 2, meaning it's a dir, but we haven't
-    // had to read it yet, or c === true, meaning it's *something*
-    // but we don't have any idea what.  Need to read it, either way.
-  }
-
-  if (this.sync) {
-    var er, entries
-    try {
-      entries = fs.readdirSync(abs)
-    } catch (e) {
-      er = e
-    }
-    return this._afterReaddir(f, abs, cb, er, entries)
-  }
-
-  fs.readdir(abs, this._afterReaddir.bind(this, f, abs, cb))
-}
-
-Glob.prototype._afterReaddir = function (f, abs, cb, er, entries) {
-  assert(this instanceof Glob)
-  if (entries && !er) {
-    this.cache[f] = entries
-    // if we haven't asked to stat everything for suresies, then just
-    // assume that everything in there exists, so we can avoid
-    // having to stat it a second time.  This also gets us one step
-    // further into ELOOP territory.
-    if (!this.mark && !this.stat) {
-      entries.forEach(function (e) {
-        if (f === "/") e = f + e
-        else e = f + "/" + e
-        this.cache[e] = true
-      }, this)
-    }
-
-    return cb.call(this, er, entries)
-  }
-
-  // now handle errors, and cache the information
-  if (er) switch (er.code) {
-    case "ENOTDIR": // totally normal. means it *does* exist.
-      this.cache[f] = 1
-      return cb.call(this, er)
-    case "ENOENT": // not terribly unusual
-    case "ELOOP":
-    case "ENAMETOOLONG":
-    case "UNKNOWN":
-      this.cache[f] = false
-      return cb.call(this, er)
-    default: // some unusual error.  Treat as failure.
-      this.cache[f] = false
-      if (this.strict) this.emit("error", er)
-      if (!this.silent) console.error("glob error", er)
-      return cb.call(this, er)
-  }
-}
-
-var isAbsolute = process.platform === "win32" ? absWin : absUnix
-
-function absWin (p) {
-  if (absUnix(p)) return true
-  // pull off the device/UNC bit from a windows path.
-  // from node's lib/path.js
-  var splitDeviceRe =
-      /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/
-    , result = splitDeviceRe.exec(p)
-    , device = result[1] || ''
-    , isUnc = device && device.charAt(1) !== ':'
-    , isAbsolute = !!result[2] || isUnc // UNC paths are always absolute
-
-  return isAbsolute
-}
-
-function absUnix (p) {
-  return p.charAt(0) === "/" || p === ""
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/.npmignore
deleted file mode 100644
index c2658d7..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/LICENSE
deleted file mode 100644
index 0c44ae7..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/README.md b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/README.md
deleted file mode 100644
index 01af3d6..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# graceful-fs
-
-graceful-fs functions as a drop-in replacement for the fs module,
-making various improvements.
-
-The improvements are meant to normalize behavior across different
-platforms and environments, and to make filesystem access more
-resilient to errors.
-
-## Improvements over fs module
-
-graceful-fs:
-
-* keeps track of how many file descriptors are open, and by default
-  limits this to 1024. Any further requests to open a file are put in a
-  queue until new slots become available. If 1024 turns out to be too
-  much, it decreases the limit further.
-* fixes `lchmod` for Node versions prior to 0.6.2.
-* implements `fs.lutimes` if possible. Otherwise it becomes a noop.
-* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or
-  `lchown` if the user isn't root.
-* makes `lchmod` and `lchown` become noops, if not available.
-* retries reading a file if `read` results in EAGAIN error.
-
-On Windows, it retries renaming a file for up to one second if `EACCESS`
-or `EPERM` error occurs, likely because antivirus software has locked
-the directory.
-
-## Configuration
-
-The maximum number of open file descriptors that graceful-fs manages may
-be adjusted by setting `fs.MAX_OPEN` to a different number. The default
-is 1024.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/graceful-fs.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/graceful-fs.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/graceful-fs.js
deleted file mode 100644
index a46b5b2..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/graceful-fs.js
+++ /dev/null
@@ -1,152 +0,0 @@
-// Monkey-patching the fs module.
-// It's ugly, but there is simply no other way to do this.
-var fs = module.exports = require('fs')
-
-var assert = require('assert')
-
-// fix up some busted stuff, mostly on windows and old nodes
-require('./polyfills.js')
-
-// The EMFILE enqueuing stuff
-
-var util = require('util')
-
-function noop () {}
-
-var debug = noop
-var util = require('util')
-if (util.debuglog)
-  debug = util.debuglog('gfs')
-else if (/\bgfs\b/i.test(process.env.NODE_DEBUG || ''))
-  debug = function() {
-    var m = util.format.apply(util, arguments)
-    m = 'GFS: ' + m.split(/\n/).join('\nGFS: ')
-    console.error(m)
-  }
-
-if (/\bgfs\b/i.test(process.env.NODE_DEBUG || '')) {
-  process.on('exit', function() {
-    debug('fds', fds)
-    debug(queue)
-    assert.equal(queue.length, 0)
-  })
-}
-
-
-var originalOpen = fs.open
-fs.open = open
-
-function open(path, flags, mode, cb) {
-  if (typeof mode === "function") cb = mode, mode = null
-  if (typeof cb !== "function") cb = noop
-  new OpenReq(path, flags, mode, cb)
-}
-
-function OpenReq(path, flags, mode, cb) {
-  this.path = path
-  this.flags = flags
-  this.mode = mode
-  this.cb = cb
-  Req.call(this)
-}
-
-util.inherits(OpenReq, Req)
-
-OpenReq.prototype.process = function() {
-  originalOpen.call(fs, this.path, this.flags, this.mode, this.done)
-}
-
-var fds = {}
-OpenReq.prototype.done = function(er, fd) {
-  debug('open done', er, fd)
-  if (fd)
-    fds['fd' + fd] = this.path
-  Req.prototype.done.call(this, er, fd)
-}
-
-
-var originalReaddir = fs.readdir
-fs.readdir = readdir
-
-function readdir(path, cb) {
-  if (typeof cb !== "function") cb = noop
-  new ReaddirReq(path, cb)
-}
-
-function ReaddirReq(path, cb) {
-  this.path = path
-  this.cb = cb
-  Req.call(this)
-}
-
-util.inherits(ReaddirReq, Req)
-
-ReaddirReq.prototype.process = function() {
-  originalReaddir.call(fs, this.path, this.done)
-}
-
-ReaddirReq.prototype.done = function(er, files) {
-  Req.prototype.done.call(this, er, files)
-  onclose()
-}
-
-
-var originalClose = fs.close
-fs.close = close
-
-function close (fd, cb) {
-  debug('close', fd)
-  if (typeof cb !== "function") cb = noop
-  delete fds['fd' + fd]
-  originalClose.call(fs, fd, function(er) {
-    onclose()
-    cb(er)
-  })
-}
-
-
-var originalCloseSync = fs.closeSync
-fs.closeSync = closeSync
-
-function closeSync (fd) {
-  try {
-    return originalCloseSync(fd)
-  } finally {
-    onclose()
-  }
-}
-
-
-// Req class
-function Req () {
-  // start processing
-  this.done = this.done.bind(this)
-  this.failures = 0
-  this.process()
-}
-
-Req.prototype.done = function (er, result) {
-  // if an error, and the code is EMFILE, then get in the queue
-  if (er && er.code === "EMFILE") {
-    this.failures ++
-    enqueue(this)
-  } else {
-    var cb = this.cb
-    cb(er, result)
-  }
-}
-
-var queue = []
-
-function enqueue(req) {
-  queue.push(req)
-  debug('enqueue %d %s', queue.length, req.constructor.name, req)
-}
-
-function onclose() {
-  var req = queue.shift()
-  if (req) {
-    debug('process', req.constructor.name, req)
-    req.process()
-  }
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/package.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/package.json
deleted file mode 100644
index 1af3229..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me"
-  },
-  "name": "graceful-fs",
-  "description": "A drop-in replacement for fs, making various improvements.",
-  "version": "2.0.0",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/node-graceful-fs.git"
-  },
-  "main": "graceful-fs.js",
-  "engines": {
-    "node": ">=0.4.0"
-  },
-  "directories": {
-    "test": "test"
-  },
-  "scripts": {
-    "test": "tap test/*.js"
-  },
-  "keywords": [
-    "fs",
-    "module",
-    "reading",
-    "retry",
-    "retries",
-    "queue",
-    "error",
-    "errors",
-    "handling",
-    "EMFILE",
-    "EAGAIN",
-    "EINVAL",
-    "EPERM",
-    "EACCESS"
-  ],
-  "license": "BSD",
-  "readme": "# graceful-fs\n\ngraceful-fs functions as a drop-in replacement for the fs module,\nmaking various improvements.\n\nThe improvements are meant to normalize behavior across different\nplatforms and environments, and to make filesystem access more\nresilient to errors.\n\n## Improvements over fs module\n\ngraceful-fs:\n\n* keeps track of how many file descriptors are open, and by default\n  limits this to 1024. Any further requests to open a file are put in a\n  queue until new slots become available. If 1024 turns out to be too\n  much, it decreases the limit further.\n* fixes `lchmod` for Node versions prior to 0.6.2.\n* implements `fs.lutimes` if possible. Otherwise it becomes a noop.\n* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or\n  `lchown` if the user isn't root.\n* makes `lchmod` and `lchown` become noops, if not available.\n* retries reading a file if `read` results in EAGAIN error.\n\nOn Windows, it retries renaming a file for up to one second if 
 `EACCESS`\nor `EPERM` error occurs, likely because antivirus software has locked\nthe directory.\n\n## Configuration\n\nThe maximum number of open file descriptors that graceful-fs manages may\nbe adjusted by setting `fs.MAX_OPEN` to a different number. The default\nis 1024.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/node-graceful-fs/issues"
-  },
-  "_id": "graceful-fs@2.0.0",
-  "dist": {
-    "shasum": "f2f71dd95aed957548d0a70c4d321a165271bb80"
-  },
-  "_from": "graceful-fs@~2.0.0",
-  "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.0.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/polyfills.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/polyfills.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/polyfills.js
deleted file mode 100644
index afc83b3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/polyfills.js
+++ /dev/null
@@ -1,228 +0,0 @@
-var fs = require('fs')
-var constants = require('constants')
-
-var origCwd = process.cwd
-var cwd = null
-process.cwd = function() {
-  if (!cwd)
-    cwd = origCwd.call(process)
-  return cwd
-}
-var chdir = process.chdir
-process.chdir = function(d) {
-  cwd = null
-  chdir.call(process, d)
-}
-
-// (re-)implement some things that are known busted or missing.
-
-// lchmod, broken prior to 0.6.2
-// back-port the fix here.
-if (constants.hasOwnProperty('O_SYMLINK') &&
-    process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
-  fs.lchmod = function (path, mode, callback) {
-    callback = callback || noop
-    fs.open( path
-           , constants.O_WRONLY | constants.O_SYMLINK
-           , mode
-           , function (err, fd) {
-      if (err) {
-        callback(err)
-        return
-      }
-      // prefer to return the chmod error, if one occurs,
-      // but still try to close, and report closing errors if they occur.
-      fs.fchmod(fd, mode, function (err) {
-        fs.close(fd, function(err2) {
-          callback(err || err2)
-        })
-      })
-    })
-  }
-
-  fs.lchmodSync = function (path, mode) {
-    var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)
-
-    // prefer to return the chmod error, if one occurs,
-    // but still try to close, and report closing errors if they occur.
-    var err, err2
-    try {
-      var ret = fs.fchmodSync(fd, mode)
-    } catch (er) {
-      err = er
-    }
-    try {
-      fs.closeSync(fd)
-    } catch (er) {
-      err2 = er
-    }
-    if (err || err2) throw (err || err2)
-    return ret
-  }
-}
-
-
-// lutimes implementation, or no-op
-if (!fs.lutimes) {
-  if (constants.hasOwnProperty("O_SYMLINK")) {
-    fs.lutimes = function (path, at, mt, cb) {
-      fs.open(path, constants.O_SYMLINK, function (er, fd) {
-        cb = cb || noop
-        if (er) return cb(er)
-        fs.futimes(fd, at, mt, function (er) {
-          fs.close(fd, function (er2) {
-            return cb(er || er2)
-          })
-        })
-      })
-    }
-
-    fs.lutimesSync = function (path, at, mt) {
-      var fd = fs.openSync(path, constants.O_SYMLINK)
-        , err
-        , err2
-        , ret
-
-      try {
-        var ret = fs.futimesSync(fd, at, mt)
-      } catch (er) {
-        err = er
-      }
-      try {
-        fs.closeSync(fd)
-      } catch (er) {
-        err2 = er
-      }
-      if (err || err2) throw (err || err2)
-      return ret
-    }
-
-  } else if (fs.utimensat && constants.hasOwnProperty("AT_SYMLINK_NOFOLLOW")) {
-    // maybe utimensat will be bound soonish?
-    fs.lutimes = function (path, at, mt, cb) {
-      fs.utimensat(path, at, mt, constants.AT_SYMLINK_NOFOLLOW, cb)
-    }
-
-    fs.lutimesSync = function (path, at, mt) {
-      return fs.utimensatSync(path, at, mt, constants.AT_SYMLINK_NOFOLLOW)
-    }
-
-  } else {
-    fs.lutimes = function (_a, _b, _c, cb) { process.nextTick(cb) }
-    fs.lutimesSync = function () {}
-  }
-}
-
-
-// https://github.com/isaacs/node-graceful-fs/issues/4
-// Chown should not fail on einval or eperm if non-root.
-
-fs.chown = chownFix(fs.chown)
-fs.fchown = chownFix(fs.fchown)
-fs.lchown = chownFix(fs.lchown)
-
-fs.chownSync = chownFixSync(fs.chownSync)
-fs.fchownSync = chownFixSync(fs.fchownSync)
-fs.lchownSync = chownFixSync(fs.lchownSync)
-
-function chownFix (orig) {
-  if (!orig) return orig
-  return function (target, uid, gid, cb) {
-    return orig.call(fs, target, uid, gid, function (er, res) {
-      if (chownErOk(er)) er = null
-      cb(er, res)
-    })
-  }
-}
-
-function chownFixSync (orig) {
-  if (!orig) return orig
-  return function (target, uid, gid) {
-    try {
-      return orig.call(fs, target, uid, gid)
-    } catch (er) {
-      if (!chownErOk(er)) throw er
-    }
-  }
-}
-
-function chownErOk (er) {
-  // if there's no getuid, or if getuid() is something other than 0,
-  // and the error is EINVAL or EPERM, then just ignore it.
-  // This specific case is a silent failure in cp, install, tar,
-  // and most other unix tools that manage permissions.
-  // When running as root, or if other types of errors are encountered,
-  // then it's strict.
-  if (!er || (!process.getuid || process.getuid() !== 0)
-      && (er.code === "EINVAL" || er.code === "EPERM")) return true
-}
-
-
-// if lchmod/lchown do not exist, then make them no-ops
-if (!fs.lchmod) {
-  fs.lchmod = function (path, mode, cb) {
-    process.nextTick(cb)
-  }
-  fs.lchmodSync = function () {}
-}
-if (!fs.lchown) {
-  fs.lchown = function (path, uid, gid, cb) {
-    process.nextTick(cb)
-  }
-  fs.lchownSync = function () {}
-}
-
-
-
-// on Windows, A/V software can lock the directory, causing this
-// to fail with an EACCES or EPERM if the directory contains newly
-// created files.  Try again on failure, for up to 1 second.
-if (process.platform === "win32") {
-  var rename_ = fs.rename
-  fs.rename = function rename (from, to, cb) {
-    var start = Date.now()
-    rename_(from, to, function CB (er) {
-      if (er
-          && (er.code === "EACCES" || er.code === "EPERM")
-          && Date.now() - start < 1000) {
-        return rename_(from, to, CB)
-      }
-      cb(er)
-    })
-  }
-}
-
-
-// if read() returns EAGAIN, then just try it again.
-var read = fs.read
-fs.read = function (fd, buffer, offset, length, position, callback_) {
-  var callback
-  if (callback_ && typeof callback_ === 'function') {
-    var eagCounter = 0
-    callback = function (er, _, __) {
-      if (er && er.code === 'EAGAIN' && eagCounter < 10) {
-        eagCounter ++
-        return read.call(fs, fd, buffer, offset, length, position, callback)
-      }
-      callback_.apply(this, arguments)
-    }
-  }
-  return read.call(fs, fd, buffer, offset, length, position, callback)
-}
-
-var readSync = fs.readSync
-fs.readSync = function (fd, buffer, offset, length, position) {
-  var eagCounter = 0
-  while (true) {
-    try {
-      return readSync.call(fs, fd, buffer, offset, length, position)
-    } catch (er) {
-      if (er.code === 'EAGAIN' && eagCounter < 10) {
-        eagCounter ++
-        continue
-      }
-      throw er
-    }
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/test/open.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/test/open.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/test/open.js
deleted file mode 100644
index 104f36b..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/graceful-fs/test/open.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var test = require('tap').test
-var fs = require('../graceful-fs.js')
-
-test('graceful fs is monkeypatched fs', function (t) {
-  t.equal(fs, require('fs'))
-  t.end()
-})
-
-test('open an existing file works', function (t) {
-  var fd = fs.openSync(__filename, 'r')
-  fs.closeSync(fd)
-  fs.open(__filename, 'r', function (er, fd) {
-    if (er) throw er
-    fs.close(fd, function (er) {
-      if (er) throw er
-      t.pass('works')
-      t.end()
-    })
-  })
-})
-
-test('open a non-existing file throws', function (t) {
-  var er
-  try {
-    var fd = fs.openSync('this file does not exist', 'r')
-  } catch (x) {
-    er = x
-  }
-  t.ok(er, 'should throw')
-  t.notOk(fd, 'should not get an fd')
-  t.equal(er.code, 'ENOENT')
-
-  fs.open('neither does this file', 'r', function (er, fd) {
-    t.ok(er, 'should throw')
-    t.notOk(fd, 'should not get an fd')
-    t.equal(er.code, 'ENOENT')
-    t.end()
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/LICENSE
deleted file mode 100644
index 5a8e332..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-                    Version 2, December 2004
-
- Copyright (C) 2004 Sam Hocevar <sa...@hocevar.net>
-
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
-
-            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. You just DO WHAT THE FUCK YOU WANT TO.
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/README.md b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/README.md
deleted file mode 100644
index b1c5665..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-Browser-friendly inheritance fully compatible with standard node.js
-[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).
-
-This package exports standard `inherits` from node.js `util` module in
-node environment, but also provides alternative browser-friendly
-implementation through [browser
-field](https://gist.github.com/shtylman/4339901). Alternative
-implementation is a literal copy of standard one located in standalone
-module to avoid requiring of `util`. It also has a shim for old
-browsers with no `Object.create` support.
-
-While keeping you sure you are using standard `inherits`
-implementation in node.js environment, it allows bundlers such as
-[browserify](https://github.com/substack/node-browserify) to not
-include full `util` package to your client code if all you need is
-just `inherits` function. It worth, because browser shim for `util`
-package is large and `inherits` is often the single function you need
-from it.
-
-It's recommended to use this package instead of
-`require('util').inherits` for any code that has chances to be used
-not only in node.js but in browser too.
-
-## usage
-
-```js
-var inherits = require('inherits');
-// then use exactly as the standard one
-```
-
-## note on version ~1.0
-
-Version ~1.0 had completely different motivation and is not compatible
-neither with 2.0 nor with standard node.js `inherits`.
-
-If you are using version ~1.0 and planning to switch to ~2.0, be
-careful:
-
-* new version uses `super_` instead of `super` for referencing
-  superclass
-* new version overwrites current prototype while old one preserves any
-  existing fields on it

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits.js
deleted file mode 100644
index 29f5e24..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('util').inherits

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits_browser.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits_browser.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits_browser.js
deleted file mode 100644
index c1e78a7..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits_browser.js
+++ /dev/null
@@ -1,23 +0,0 @@
-if (typeof Object.create === 'function') {
-  // implementation from standard node.js 'util' module
-  module.exports = function inherits(ctor, superCtor) {
-    ctor.super_ = superCtor
-    ctor.prototype = Object.create(superCtor.prototype, {
-      constructor: {
-        value: ctor,
-        enumerable: false,
-        writable: true,
-        configurable: true
-      }
-    });
-  };
-} else {
-  // old school shim for old browsers
-  module.exports = function inherits(ctor, superCtor) {
-    ctor.super_ = superCtor
-    var TempCtor = function () {}
-    TempCtor.prototype = superCtor.prototype
-    ctor.prototype = new TempCtor()
-    ctor.prototype.constructor = ctor
-  }
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/package.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/package.json
deleted file mode 100644
index 9768e8d..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "name": "inherits",
-  "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
-  "version": "2.0.0",
-  "keywords": [
-    "inheritance",
-    "class",
-    "klass",
-    "oop",
-    "object-oriented",
-    "inherits",
-    "browser",
-    "browserify"
-  ],
-  "main": "./inherits.js",
-  "browser": "./inherits_browser.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/isaacs/inherits"
-  },
-  "license": {
-    "type": "WTFPL2"
-  },
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "scripts": {
-    "test": "node test"
-  },
-  "readme": "Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom
  it.\n\nIt's recommended to use this package instead of\n`require('util').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require('inherits');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n  superclass\n* new version overwrites current prototype while old one preserves any\n  existing fields on it\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/inherits/issues"
-  },
-  "_id": "inherits@2.0.0",
-  "dist": {
-    "shasum": "7f18182d0174b6a689be3aba865992c78eeb2680"
-  },
-  "_from": "inherits@2",
-  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.0.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/test.js
deleted file mode 100644
index fc53012..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/node_modules/inherits/test.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var inherits = require('./inherits.js')
-var assert = require('assert')
-
-function test(c) {
-  assert(c.constructor === Child)
-  assert(c.constructor.super_ === Parent)
-  assert(Object.getPrototypeOf(c) === Child.prototype)
-  assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype)
-  assert(c instanceof Child)
-  assert(c instanceof Parent)
-}
-
-function Child() {
-  Parent.call(this)
-  test(this)
-}
-
-function Parent() {}
-
-inherits(Child, Parent)
-
-var c = new Child
-test(c)
-
-console.log('ok')

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/package.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/package.json
deleted file mode 100644
index 5d6307c..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "name": "glob",
-  "description": "a little globber",
-  "version": "3.2.3",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/node-glob.git"
-  },
-  "main": "glob.js",
-  "engines": {
-    "node": "*"
-  },
-  "dependencies": {
-    "minimatch": "~0.2.11",
-    "graceful-fs": "~2.0.0",
-    "inherits": "2"
-  },
-  "devDependencies": {
-    "tap": "~0.4.0",
-    "mkdirp": "0",
-    "rimraf": "1"
-  },
-  "scripts": {
-    "test": "tap test/*.js"
-  },
-  "license": "BSD",
-  "readme": "# Glob\n\nMatch files using the patterns the shell uses, like stars and stuff.\n\nThis is a glob implementation in JavaScript.  It uses the `minimatch`\nlibrary to do its matching.\n\n## Attention: node-glob users!\n\nThe API has changed dramatically between 2.x and 3.x. This library is\nnow 100% JavaScript, and the integer flags have been replaced with an\noptions object.\n\nAlso, there's an event emitter class, proper tests, and all the other\nthings you've come to expect from node modules.\n\nAnd best of all, no compilation!\n\n## Usage\n\n```javascript\nvar glob = require(\"glob\")\n\n// options is optional\nglob(\"**/*.js\", options, function (er, files) {\n  // files is an array of filenames.\n  // If the `nonull` option is set, and nothing\n  // was found, then files is [\"**/*.js\"]\n  // er is an error object or null.\n})\n```\n\n## Features\n\nPlease see the [minimatch\ndocumentation](https://github.com/isaacs/minimatch) for more details.\n\nSupports these glo
 b features:\n\n* Brace Expansion\n* Extended glob matching\n* \"Globstar\" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n* [minimatch documentation](https://github.com/isaacs/minimatch)\n\n## glob(pattern, [options], cb)\n\n* `pattern` {String} Pattern to be matched\n* `options` {Object}\n* `cb` {Function}\n  * `err` {Error | null}\n  * `matches` {Array<String>} filenames found matching the pattern\n\nPerform an asynchronous glob search.\n\n## glob.sync(pattern, [options])\n\n* `pattern` {String} Pattern to be matched\n* `options` {Object}\n* return: {Array<String>} filenames found matching the pattern\n\nPerform a synchronous glob search.\n\n## Class: glob.Glob\n\nCreate a Glob object by instanting the `glob.Glob` class.\n\n```javascript\nvar Glob = require(\"glob\").Glob\nvar mg = new Glob(pattern, options, cb)\n```\n\nIt's an EventEmitter, and starts walking the filesystem to find matches\nimmediately.\n\n### new glob.Glob(pattern, [op
 tions], [cb])\n\n* `pattern` {String} pattern to search for\n* `options` {Object}\n* `cb` {Function} Called when an error occurs, or matches are found\n  * `err` {Error | null}\n  * `matches` {Array<String>} filenames found matching the pattern\n\nNote that if the `sync` flag is set in the options, then matches will\nbe immediately available on the `g.found` member.\n\n### Properties\n\n* `minimatch` The minimatch object that the glob uses.\n* `options` The options object passed in.\n* `error` The error encountered.  When an error is encountered, the\n  glob object is in an undefined state, and should be discarded.\n* `aborted` Boolean which is set to true when calling `abort()`.  There\n  is no way at this time to continue a glob search after aborting, but\n  you can re-use the statCache to avoid having to duplicate syscalls.\n* `statCache` Collection of all the stat results the glob search\n  performed.\n* `cache` Convenience object.  Each field has the following possible\n  value
 s:\n  * `false` - Path does not exist\n  * `true` - Path exists\n  * `1` - Path exists, and is not a directory\n  * `2` - Path exists, and is a directory\n  * `[file, entries, ...]` - Path exists, is a directory, and the\n    array value is the results of `fs.readdir`\n\n### Events\n\n* `end` When the matching is finished, this is emitted with all the\n  matches found.  If the `nonull` option is set, and no match was found,\n  then the `matches` list contains the original pattern.  The matches\n  are sorted, unless the `nosort` flag is set.\n* `match` Every time a match is found, this is emitted with the matched.\n* `error` Emitted when an unexpected error is encountered, or whenever\n  any fs error occurs if `options.strict` is set.\n* `abort` When `abort()` is called, this event is raised.\n\n### Methods\n\n* `abort` Stop the search.\n\n### Options\n\nAll the options that can be passed to Minimatch can also be passed to\nGlob to change pattern matching behavior.  Also, some have b
 een added,\nor have glob-specific ramifications.\n\nAll options are false by default, unless otherwise noted.\n\nAll options are added to the glob object, as well.\n\n* `cwd` The current working directory in which to search.  Defaults\n  to `process.cwd()`.\n* `root` The place where patterns starting with `/` will be mounted\n  onto.  Defaults to `path.resolve(options.cwd, \"/\")` (`/` on Unix\n  systems, and `C:\\` or some such on Windows.)\n* `dot` Include `.dot` files in normal matches and `globstar` matches.\n  Note that an explicit dot in a portion of the pattern will always\n  match dot files.\n* `nomount` By default, a pattern starting with a forward-slash will be\n  \"mounted\" onto the root setting, so that a valid filesystem path is\n  returned.  Set this flag to disable that behavior.\n* `mark` Add a `/` character to directory matches.  Note that this\n  requires additional stat calls.\n* `nosort` Don't sort the results.\n* `stat` Set to true to stat *all* results.  This 
 reduces performance\n  somewhat, and is completely unnecessary, unless `readdir` is presumed\n  to be an untrustworthy indicator of file existence.  It will cause\n  ELOOP to be triggered one level sooner in the case of cyclical\n  symbolic links.\n* `silent` When an unusual error is encountered\n  when attempting to read a directory, a warning will be printed to\n  stderr.  Set the `silent` option to true to suppress these warnings.\n* `strict` When an unusual error is encountered\n  when attempting to read a directory, the process will just continue on\n  in search of other matches.  Set the `strict` option to raise an error\n  in these cases.\n* `cache` See `cache` property above.  Pass in a previously generated\n  cache object to save some fs calls.\n* `statCache` A cache of results of filesystem information, to prevent\n  unnecessary stat calls.  While it should not normally be necessary to\n  set this, you may pass the statCache from one glob() call to the\n  options object of
  another, if you know that the filesystem will not\n  change between calls.  (See \"Race Conditions\" below.)\n* `sync` Perform a synchronous glob search.\n* `nounique` In some cases, brace-expanded patterns can result in the\n  same file showing up multiple times in the result set.  By default,\n  this implementation prevents duplicates in the result set.\n  Set this flag to disable that behavior.\n* `nonull` Set to never return an empty set, instead returning a set\n  containing the pattern itself.  This is the default in glob(3).\n* `nocase` Perform a case-insensitive match.  Note that case-insensitive\n  filesystems will sometimes result in glob returning results that are\n  case-insensitively matched anyway, since readdir and stat will not\n  raise an error.\n* `debug` Set to enable debug logging in minimatch and glob.\n* `globDebug` Set to enable debug logging in glob, but not minimatch.\n\n## Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with th
 e existing standards is a worthwhile\ngoal, some discrepancies exist between node-glob and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated.  Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally.  This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything.  Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set.  This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but\n`a/
 **b` will not.\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen glob returns the pattern as-provided, rather than\ninterpreting the character escapes.  For example,\n`glob.match([], \"\\\\*a\\\\?\")` will return `\"\\\\*a\\\\?\"` rather than\n`\"*a?\"`.  This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern.  Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity.  Since those two are valid, matching proceeds.\n\n## Windows\n\n**Please only use forward-slashes in glob expressions.**\n\nThough windows uses either `/` or `\\` as its path separator, only `/`\ncharacters are used by this glob implementation.  You must use\nforward-slashes **only** in glob expr
 essions.  Back-slashes will always\nbe interpreted as escape characters, not path separators.\n\nResults from absolute patterns such as `/foo/*` are mounted onto the\nroot setting using `path.join`.  On windows, this will by default result\nin `/foo/*` matching `C:\\foo\\bar.txt`.\n\n## Race Conditions\n\nGlob searching, by its very nature, is susceptible to race conditions,\nsince it relies on directory walking and such.\n\nAs a result, it is possible that a file that exists when glob looks for\nit may have been deleted or modified by the time it returns the result.\n\nAs part of its internal implementation, this program caches all stat\nand readdir calls that it makes, in order to cut down on system\noverhead.  However, this also makes it even more susceptible to races,\nespecially if the cache or statCache objects are reused between glob\ncalls.\n\nUsers are thus advised not to use a glob result as a guarantee of\nfilesystem state in the face of rapid changes.  For the vast major
 ity\nof operations, this is never a problem.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/node-glob/issues"
-  },
-  "_id": "glob@3.2.3",
-  "dist": {
-    "shasum": "d8225c774cac17a9d50c83e739b3b9ac0f2216cf"
-  },
-  "_from": "glob@3.x",
-  "_resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/00-setup.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/00-setup.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/00-setup.js
deleted file mode 100644
index 245afaf..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/00-setup.js
+++ /dev/null
@@ -1,176 +0,0 @@
-// just a little pre-run script to set up the fixtures.
-// zz-finish cleans it up
-
-var mkdirp = require("mkdirp")
-var path = require("path")
-var i = 0
-var tap = require("tap")
-var fs = require("fs")
-var rimraf = require("rimraf")
-
-var files =
-[ "a/.abcdef/x/y/z/a"
-, "a/abcdef/g/h"
-, "a/abcfed/g/h"
-, "a/b/c/d"
-, "a/bc/e/f"
-, "a/c/d/c/b"
-, "a/cb/e/f"
-]
-
-var symlinkTo = path.resolve(__dirname, "a/symlink/a/b/c")
-var symlinkFrom = "../.."
-
-files = files.map(function (f) {
-  return path.resolve(__dirname, f)
-})
-
-tap.test("remove fixtures", function (t) {
-  rimraf(path.resolve(__dirname, "a"), function (er) {
-    t.ifError(er, "remove fixtures")
-    t.end()
-  })
-})
-
-files.forEach(function (f) {
-  tap.test(f, function (t) {
-    var d = path.dirname(f)
-    mkdirp(d, 0755, function (er) {
-      if (er) {
-        t.fail(er)
-        return t.bailout()
-      }
-      fs.writeFile(f, "i like tests", function (er) {
-        t.ifError(er, "make file")
-        t.end()
-      })
-    })
-  })
-})
-
-if (process.platform !== "win32") {
-  tap.test("symlinky", function (t) {
-    var d = path.dirname(symlinkTo)
-    console.error("mkdirp", d)
-    mkdirp(d, 0755, function (er) {
-      t.ifError(er)
-      fs.symlink(symlinkFrom, symlinkTo, "dir", function (er) {
-        t.ifError(er, "make symlink")
-        t.end()
-      })
-    })
-  })
-}
-
-;["foo","bar","baz","asdf","quux","qwer","rewq"].forEach(function (w) {
-  w = "/tmp/glob-test/" + w
-  tap.test("create " + w, function (t) {
-    mkdirp(w, function (er) {
-      if (er)
-        throw er
-      t.pass(w)
-      t.end()
-    })
-  })
-})
-
-
-// generate the bash pattern test-fixtures if possible
-if (process.platform === "win32" || !process.env.TEST_REGEN) {
-  console.error("Windows, or TEST_REGEN unset.  Using cached fixtures.")
-  return
-}
-
-var spawn = require("child_process").spawn;
-var globs =
-  // put more patterns here.
-  // anything that would be directly in / should be in /tmp/glob-test
-  ["test/a/*/+(c|g)/./d"
-  ,"test/a/**/[cg]/../[cg]"
-  ,"test/a/{b,c,d,e,f}/**/g"
-  ,"test/a/b/**"
-  ,"test/**/g"
-  ,"test/a/abc{fed,def}/g/h"
-  ,"test/a/abc{fed/g,def}/**/"
-  ,"test/a/abc{fed/g,def}/**///**/"
-  ,"test/**/a/**/"
-  ,"test/+(a|b|c)/a{/,bc*}/**"
-  ,"test/*/*/*/f"
-  ,"test/**/f"
-  ,"test/a/symlink/a/b/c/a/b/c/a/b/c//a/b/c////a/b/c/**/b/c/**"
-  ,"{./*/*,/tmp/glob-test/*}"
-  ,"{/tmp/glob-test/*,*}" // evil owl face!  how you taunt me!
-  ,"test/a/!(symlink)/**"
-  ]
-var bashOutput = {}
-var fs = require("fs")
-
-globs.forEach(function (pattern) {
-  tap.test("generate fixture " + pattern, function (t) {
-    var cmd = "shopt -s globstar && " +
-              "shopt -s extglob && " +
-              "shopt -s nullglob && " +
-              // "shopt >&2; " +
-              "eval \'for i in " + pattern + "; do echo $i; done\'"
-    var cp = spawn("bash", ["-c", cmd], { cwd: path.dirname(__dirname) })
-    var out = []
-    cp.stdout.on("data", function (c) {
-      out.push(c)
-    })
-    cp.stderr.pipe(process.stderr)
-    cp.on("close", function (code) {
-      out = flatten(out)
-      if (!out)
-        out = []
-      else
-        out = cleanResults(out.split(/\r*\n/))
-
-      bashOutput[pattern] = out
-      t.notOk(code, "bash test should finish nicely")
-      t.end()
-    })
-  })
-})
-
-tap.test("save fixtures", function (t) {
-  var fname = path.resolve(__dirname, "bash-results.json")
-  var data = JSON.stringify(bashOutput, null, 2) + "\n"
-  fs.writeFile(fname, data, function (er) {
-    t.ifError(er)
-    t.end()
-  })
-})
-
-function cleanResults (m) {
-  // normalize discrepancies in ordering, duplication,
-  // and ending slashes.
-  return m.map(function (m) {
-    return m.replace(/\/+/g, "/").replace(/\/$/, "")
-  }).sort(alphasort).reduce(function (set, f) {
-    if (f !== set[set.length - 1]) set.push(f)
-    return set
-  }, []).sort(alphasort).map(function (f) {
-    // de-windows
-    return (process.platform !== 'win32') ? f
-           : f.replace(/^[a-zA-Z]:\\\\/, '/').replace(/\\/g, '/')
-  })
-}
-
-function flatten (chunks) {
-  var s = 0
-  chunks.forEach(function (c) { s += c.length })
-  var out = new Buffer(s)
-  s = 0
-  chunks.forEach(function (c) {
-    c.copy(out, s)
-    s += c.length
-  })
-
-  return out.toString().trim()
-}
-
-function alphasort (a, b) {
-  a = a.toLowerCase()
-  b = b.toLowerCase()
-  return a > b ? 1 : a < b ? -1 : 0
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/bash-comparison.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/bash-comparison.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/bash-comparison.js
deleted file mode 100644
index 239ed1a..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/bash-comparison.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// basic test
-// show that it does the same thing by default as the shell.
-var tap = require("tap")
-, child_process = require("child_process")
-, bashResults = require("./bash-results.json")
-, globs = Object.keys(bashResults)
-, glob = require("../")
-, path = require("path")
-
-// run from the root of the project
-// this is usually where you're at anyway, but be sure.
-process.chdir(path.resolve(__dirname, ".."))
-
-function alphasort (a, b) {
-  a = a.toLowerCase()
-  b = b.toLowerCase()
-  return a > b ? 1 : a < b ? -1 : 0
-}
-
-globs.forEach(function (pattern) {
-  var expect = bashResults[pattern]
-  // anything regarding the symlink thing will fail on windows, so just skip it
-  if (process.platform === "win32" &&
-      expect.some(function (m) {
-        return /\/symlink\//.test(m)
-      }))
-    return
-
-  tap.test(pattern, function (t) {
-    glob(pattern, function (er, matches) {
-      if (er)
-        throw er
-
-      // sort and unmark, just to match the shell results
-      matches = cleanResults(matches)
-
-      t.deepEqual(matches, expect, pattern)
-      t.end()
-    })
-  })
-
-  tap.test(pattern + " sync", function (t) {
-    var matches = cleanResults(glob.sync(pattern))
-
-    t.deepEqual(matches, expect, "should match shell")
-    t.end()
-  })
-})
-
-function cleanResults (m) {
-  // normalize discrepancies in ordering, duplication,
-  // and ending slashes.
-  return m.map(function (m) {
-    return m.replace(/\/+/g, "/").replace(/\/$/, "")
-  }).sort(alphasort).reduce(function (set, f) {
-    if (f !== set[set.length - 1]) set.push(f)
-    return set
-  }, []).sort(alphasort).map(function (f) {
-    // de-windows
-    return (process.platform !== 'win32') ? f
-           : f.replace(/^[a-zA-Z]:[\/\\]+/, '/').replace(/[\\\/]+/g, '/')
-  })
-}


[21/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/underscore.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/underscore.js b/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/underscore.js
deleted file mode 100644
index ab4c260..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/underscore.js
+++ /dev/null
@@ -1,958 +0,0 @@
-//     Underscore.js 1.2.1
-//     (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
-//     Underscore is freely distributable under the MIT license.
-//     Portions of Underscore are inspired or borrowed from Prototype,
-//     Oliver Steele's Functional, and John Resig's Micro-Templating.
-//     For all details and documentation:
-//     http://documentcloud.github.com/underscore
-
-(function() {
-
-  // Baseline setup
-  // --------------
-
-  // Establish the root object, `window` in the browser, or `global` on the server.
-  var root = this;
-
-  // Save the previous value of the `_` variable.
-  var previousUnderscore = root._;
-
-  // Establish the object that gets returned to break out of a loop iteration.
-  var breaker = {};
-
-  // Save bytes in the minified (but not gzipped) version:
-  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
-
-  // Create quick reference variables for speed access to core prototypes.
-  var slice            = ArrayProto.slice,
-      unshift          = ArrayProto.unshift,
-      toString         = ObjProto.toString,
-      hasOwnProperty   = ObjProto.hasOwnProperty;
-
-  // All **ECMAScript 5** native function implementations that we hope to use
-  // are declared here.
-  var
-    nativeForEach      = ArrayProto.forEach,
-    nativeMap          = ArrayProto.map,
-    nativeReduce       = ArrayProto.reduce,
-    nativeReduceRight  = ArrayProto.reduceRight,
-    nativeFilter       = ArrayProto.filter,
-    nativeEvery        = ArrayProto.every,
-    nativeSome         = ArrayProto.some,
-    nativeIndexOf      = ArrayProto.indexOf,
-    nativeLastIndexOf  = ArrayProto.lastIndexOf,
-    nativeIsArray      = Array.isArray,
-    nativeKeys         = Object.keys,
-    nativeBind         = FuncProto.bind;
-
-  // Create a safe reference to the Underscore object for use below.
-  var _ = function(obj) { return new wrapper(obj); };
-
-  // Export the Underscore object for **Node.js** and **"CommonJS"**, with
-  // backwards-compatibility for the old `require()` API. If we're not in
-  // CommonJS, add `_` to the global object.
-  if (typeof exports !== 'undefined') {
-    if (typeof module !== 'undefined' && module.exports) {
-      exports = module.exports = _;
-    }
-    exports._ = _;
-  } else if (typeof define === 'function' && define.amd) {
-    // Register as a named module with AMD.
-    define('underscore', function() {
-      return _;
-    });
-  } else {
-    // Exported as a string, for Closure Compiler "advanced" mode.
-    root['_'] = _;
-  }
-
-  // Current version.
-  _.VERSION = '1.2.1';
-
-  // Collection Functions
-  // --------------------
-
-  // The cornerstone, an `each` implementation, aka `forEach`.
-  // Handles objects with the built-in `forEach`, arrays, and raw objects.
-  // Delegates to **ECMAScript 5**'s native `forEach` if available.
-  var each = _.each = _.forEach = function(obj, iterator, context) {
-    if (obj == null) return;
-    if (nativeForEach && obj.forEach === nativeForEach) {
-      obj.forEach(iterator, context);
-    } else if (obj.length === +obj.length) {
-      for (var i = 0, l = obj.length; i < l; i++) {
-        if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
-      }
-    } else {
-      for (var key in obj) {
-        if (hasOwnProperty.call(obj, key)) {
-          if (iterator.call(context, obj[key], key, obj) === breaker) return;
-        }
-      }
-    }
-  };
-
-  // Return the results of applying the iterator to each element.
-  // Delegates to **ECMAScript 5**'s native `map` if available.
-  _.map = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
-    each(obj, function(value, index, list) {
-      results[results.length] = iterator.call(context, value, index, list);
-    });
-    return results;
-  };
-
-  // **Reduce** builds up a single result from a list of values, aka `inject`,
-  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
-  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
-    var initial = memo !== void 0;
-    if (obj == null) obj = [];
-    if (nativeReduce && obj.reduce === nativeReduce) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
-    }
-    each(obj, function(value, index, list) {
-      if (!initial) {
-        memo = value;
-        initial = true;
-      } else {
-        memo = iterator.call(context, memo, value, index, list);
-      }
-    });
-    if (!initial) throw new TypeError("Reduce of empty array with no initial value");
-    return memo;
-  };
-
-  // The right-associative version of reduce, also known as `foldr`.
-  // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
-  _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
-    if (obj == null) obj = [];
-    if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
-      if (context) iterator = _.bind(iterator, context);
-      return memo !== void 0 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
-    }
-    var reversed = (_.isArray(obj) ? obj.slice() : _.toArray(obj)).reverse();
-    return _.reduce(reversed, iterator, memo, context);
-  };
-
-  // Return the first value which passes a truth test. Aliased as `detect`.
-  _.find = _.detect = function(obj, iterator, context) {
-    var result;
-    any(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) {
-        result = value;
-        return true;
-      }
-    });
-    return result;
-  };
-
-  // Return all the elements that pass a truth test.
-  // Delegates to **ECMAScript 5**'s native `filter` if available.
-  // Aliased as `select`.
-  _.filter = _.select = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
-    each(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) results[results.length] = value;
-    });
-    return results;
-  };
-
-  // Return all the elements for which a truth test fails.
-  _.reject = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    each(obj, function(value, index, list) {
-      if (!iterator.call(context, value, index, list)) results[results.length] = value;
-    });
-    return results;
-  };
-
-  // Determine whether all of the elements match a truth test.
-  // Delegates to **ECMAScript 5**'s native `every` if available.
-  // Aliased as `all`.
-  _.every = _.all = function(obj, iterator, context) {
-    var result = true;
-    if (obj == null) return result;
-    if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
-    each(obj, function(value, index, list) {
-      if (!(result = result && iterator.call(context, value, index, list))) return breaker;
-    });
-    return result;
-  };
-
-  // Determine if at least one element in the object matches a truth test.
-  // Delegates to **ECMAScript 5**'s native `some` if available.
-  // Aliased as `any`.
-  var any = _.some = _.any = function(obj, iterator, context) {
-    iterator = iterator || _.identity;
-    var result = false;
-    if (obj == null) return result;
-    if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
-    each(obj, function(value, index, list) {
-      if (result |= iterator.call(context, value, index, list)) return breaker;
-    });
-    return !!result;
-  };
-
-  // Determine if a given value is included in the array or object using `===`.
-  // Aliased as `contains`.
-  _.include = _.contains = function(obj, target) {
-    var found = false;
-    if (obj == null) return found;
-    if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
-    found = any(obj, function(value) {
-      if (value === target) return true;
-    });
-    return found;
-  };
-
-  // Invoke a method (with arguments) on every item in a collection.
-  _.invoke = function(obj, method) {
-    var args = slice.call(arguments, 2);
-    return _.map(obj, function(value) {
-      return (method.call ? method || value : value[method]).apply(value, args);
-    });
-  };
-
-  // Convenience version of a common use case of `map`: fetching a property.
-  _.pluck = function(obj, key) {
-    return _.map(obj, function(value){ return value[key]; });
-  };
-
-  // Return the maximum element or (element-based computation).
-  _.max = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
-    if (!iterator && _.isEmpty(obj)) return -Infinity;
-    var result = {computed : -Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed >= result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Return the minimum element (or element-based computation).
-  _.min = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
-    if (!iterator && _.isEmpty(obj)) return Infinity;
-    var result = {computed : Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed < result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Shuffle an array.
-  _.shuffle = function(obj) {
-    var shuffled = [], rand;
-    each(obj, function(value, index, list) {
-      if (index == 0) {
-        shuffled[0] = value;
-      } else {
-        rand = Math.floor(Math.random() * (index + 1));
-        shuffled[index] = shuffled[rand];
-        shuffled[rand] = value;
-      }
-    });
-    return shuffled;
-  };
-
-  // Sort the object's values by a criterion produced by an iterator.
-  _.sortBy = function(obj, iterator, context) {
-    return _.pluck(_.map(obj, function(value, index, list) {
-      return {
-        value : value,
-        criteria : iterator.call(context, value, index, list)
-      };
-    }).sort(function(left, right) {
-      var a = left.criteria, b = right.criteria;
-      return a < b ? -1 : a > b ? 1 : 0;
-    }), 'value');
-  };
-
-  // Groups the object's values by a criterion. Pass either a string attribute
-  // to group by, or a function that returns the criterion.
-  _.groupBy = function(obj, val) {
-    var result = {};
-    var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
-    each(obj, function(value, index) {
-      var key = iterator(value, index);
-      (result[key] || (result[key] = [])).push(value);
-    });
-    return result;
-  };
-
-  // Use a comparator function to figure out at what index an object should
-  // be inserted so as to maintain order. Uses binary search.
-  _.sortedIndex = function(array, obj, iterator) {
-    iterator || (iterator = _.identity);
-    var low = 0, high = array.length;
-    while (low < high) {
-      var mid = (low + high) >> 1;
-      iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
-    }
-    return low;
-  };
-
-  // Safely convert anything iterable into a real, live array.
-  _.toArray = function(iterable) {
-    if (!iterable)                return [];
-    if (iterable.toArray)         return iterable.toArray();
-    if (_.isArray(iterable))      return slice.call(iterable);
-    if (_.isArguments(iterable))  return slice.call(iterable);
-    return _.values(iterable);
-  };
-
-  // Return the number of elements in an object.
-  _.size = function(obj) {
-    return _.toArray(obj).length;
-  };
-
-  // Array Functions
-  // ---------------
-
-  // Get the first element of an array. Passing **n** will return the first N
-  // values in the array. Aliased as `head`. The **guard** check allows it to work
-  // with `_.map`.
-  _.first = _.head = function(array, n, guard) {
-    return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
-  };
-
-  // Returns everything but the last entry of the array. Especcialy useful on
-  // the arguments object. Passing **n** will return all the values in
-  // the array, excluding the last N. The **guard** check allows it to work with
-  // `_.map`.
-  _.initial = function(array, n, guard) {
-    return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
-  };
-
-  // Get the last element of an array. Passing **n** will return the last N
-  // values in the array. The **guard** check allows it to work with `_.map`.
-  _.last = function(array, n, guard) {
-    return (n != null) && !guard ? slice.call(array, array.length - n) : array[array.length - 1];
-  };
-
-  // Returns everything but the first entry of the array. Aliased as `tail`.
-  // Especially useful on the arguments object. Passing an **index** will return
-  // the rest of the values in the array from that index onward. The **guard**
-  // check allows it to work with `_.map`.
-  _.rest = _.tail = function(array, index, guard) {
-    return slice.call(array, (index == null) || guard ? 1 : index);
-  };
-
-  // Trim out all falsy values from an array.
-  _.compact = function(array) {
-    return _.filter(array, function(value){ return !!value; });
-  };
-
-  // Return a completely flattened version of an array.
-  _.flatten = function(array, shallow) {
-    return _.reduce(array, function(memo, value) {
-      if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value));
-      memo[memo.length] = value;
-      return memo;
-    }, []);
-  };
-
-  // Return a version of the array that does not contain the specified value(s).
-  _.without = function(array) {
-    return _.difference(array, slice.call(arguments, 1));
-  };
-
-  // Produce a duplicate-free version of the array. If the array has already
-  // been sorted, you have the option of using a faster algorithm.
-  // Aliased as `unique`.
-  _.uniq = _.unique = function(array, isSorted, iterator) {
-    var initial = iterator ? _.map(array, iterator) : array;
-    var result = [];
-    _.reduce(initial, function(memo, el, i) {
-      if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) {
-        memo[memo.length] = el;
-        result[result.length] = array[i];
-      }
-      return memo;
-    }, []);
-    return result;
-  };
-
-  // Produce an array that contains the union: each distinct element from all of
-  // the passed-in arrays.
-  _.union = function() {
-    return _.uniq(_.flatten(arguments, true));
-  };
-
-  // Produce an array that contains every item shared between all the
-  // passed-in arrays. (Aliased as "intersect" for back-compat.)
-  _.intersection = _.intersect = function(array) {
-    var rest = slice.call(arguments, 1);
-    return _.filter(_.uniq(array), function(item) {
-      return _.every(rest, function(other) {
-        return _.indexOf(other, item) >= 0;
-      });
-    });
-  };
-
-  // Take the difference between one array and another.
-  // Only the elements present in just the first array will remain.
-  _.difference = function(array, other) {
-    return _.filter(array, function(value){ return !_.include(other, value); });
-  };
-
-  // Zip together multiple lists into a single array -- elements that share
-  // an index go together.
-  _.zip = function() {
-    var args = slice.call(arguments);
-    var length = _.max(_.pluck(args, 'length'));
-    var results = new Array(length);
-    for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
-    return results;
-  };
-
-  // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
-  // we need this function. Return the position of the first occurrence of an
-  // item in an array, or -1 if the item is not included in the array.
-  // Delegates to **ECMAScript 5**'s native `indexOf` if available.
-  // If the array is large and already in sort order, pass `true`
-  // for **isSorted** to use binary search.
-  _.indexOf = function(array, item, isSorted) {
-    if (array == null) return -1;
-    var i, l;
-    if (isSorted) {
-      i = _.sortedIndex(array, item);
-      return array[i] === item ? i : -1;
-    }
-    if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
-    for (i = 0, l = array.length; i < l; i++) if (array[i] === item) return i;
-    return -1;
-  };
-
-  // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
-  _.lastIndexOf = function(array, item) {
-    if (array == null) return -1;
-    if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
-    var i = array.length;
-    while (i--) if (array[i] === item) return i;
-    return -1;
-  };
-
-  // Generate an integer Array containing an arithmetic progression. A port of
-  // the native Python `range()` function. See
-  // [the Python documentation](http://docs.python.org/library/functions.html#range).
-  _.range = function(start, stop, step) {
-    if (arguments.length <= 1) {
-      stop = start || 0;
-      start = 0;
-    }
-    step = arguments[2] || 1;
-
-    var len = Math.max(Math.ceil((stop - start) / step), 0);
-    var idx = 0;
-    var range = new Array(len);
-
-    while(idx < len) {
-      range[idx++] = start;
-      start += step;
-    }
-
-    return range;
-  };
-
-  // Function (ahem) Functions
-  // ------------------
-
-  // Reusable constructor function for prototype setting.
-  var ctor = function(){};
-
-  // Create a function bound to a given object (assigning `this`, and arguments,
-  // optionally). Binding with arguments is also known as `curry`.
-  // Delegates to **ECMAScript 5**'s native `Function.bind` if available.
-  // We check for `func.bind` first, to fail fast when `func` is undefined.
-  _.bind = function bind(func, context) {
-    var bound, args;
-    if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
-    if (!_.isFunction(func)) throw new TypeError;
-    args = slice.call(arguments, 2);
-    return bound = function() {
-      if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
-      ctor.prototype = func.prototype;
-      var self = new ctor;
-      var result = func.apply(self, args.concat(slice.call(arguments)));
-      if (Object(result) === result) return result;
-      return self;
-    };
-  };
-
-  // Bind all of an object's methods to that object. Useful for ensuring that
-  // all callbacks defined on an object belong to it.
-  _.bindAll = function(obj) {
-    var funcs = slice.call(arguments, 1);
-    if (funcs.length == 0) funcs = _.functions(obj);
-    each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
-    return obj;
-  };
-
-  // Memoize an expensive function by storing its results.
-  _.memoize = function(func, hasher) {
-    var memo = {};
-    hasher || (hasher = _.identity);
-    return function() {
-      var key = hasher.apply(this, arguments);
-      return hasOwnProperty.call(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
-    };
-  };
-
-  // Delays a function for the given number of milliseconds, and then calls
-  // it with the arguments supplied.
-  _.delay = function(func, wait) {
-    var args = slice.call(arguments, 2);
-    return setTimeout(function(){ return func.apply(func, args); }, wait);
-  };
-
-  // Defers a function, scheduling it to run after the current call stack has
-  // cleared.
-  _.defer = function(func) {
-    return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
-  };
-
-  // Returns a function, that, when invoked, will only be triggered at most once
-  // during a given window of time.
-  _.throttle = function(func, wait) {
-    var timeout, context, args, throttling, finishThrottle;
-    finishThrottle = _.debounce(function(){ throttling = false; }, wait);
-    return function() {
-      context = this; args = arguments;
-      var throttler = function() {
-        timeout = null;
-        func.apply(context, args);
-        finishThrottle();
-      };
-      if (!timeout) timeout = setTimeout(throttler, wait);
-      if (!throttling) func.apply(context, args);
-      if (finishThrottle) finishThrottle();
-      throttling = true;
-    };
-  };
-
-  // Returns a function, that, as long as it continues to be invoked, will not
-  // be triggered. The function will be called after it stops being called for
-  // N milliseconds.
-  _.debounce = function(func, wait) {
-    var timeout;
-    return function() {
-      var context = this, args = arguments;
-      var throttler = function() {
-        timeout = null;
-        func.apply(context, args);
-      };
-      clearTimeout(timeout);
-      timeout = setTimeout(throttler, wait);
-    };
-  };
-
-  // Returns a function that will be executed at most one time, no matter how
-  // often you call it. Useful for lazy initialization.
-  _.once = function(func) {
-    var ran = false, memo;
-    return function() {
-      if (ran) return memo;
-      ran = true;
-      return memo = func.apply(this, arguments);
-    };
-  };
-
-  // Returns the first function passed as an argument to the second,
-  // allowing you to adjust arguments, run code before and after, and
-  // conditionally execute the original function.
-  _.wrap = function(func, wrapper) {
-    return function() {
-      var args = [func].concat(slice.call(arguments));
-      return wrapper.apply(this, args);
-    };
-  };
-
-  // Returns a function that is the composition of a list of functions, each
-  // consuming the return value of the function that follows.
-  _.compose = function() {
-    var funcs = slice.call(arguments);
-    return function() {
-      var args = slice.call(arguments);
-      for (var i = funcs.length - 1; i >= 0; i--) {
-        args = [funcs[i].apply(this, args)];
-      }
-      return args[0];
-    };
-  };
-
-  // Returns a function that will only be executed after being called N times.
-  _.after = function(times, func) {
-    return function() {
-      if (--times < 1) { return func.apply(this, arguments); }
-    };
-  };
-
-  // Object Functions
-  // ----------------
-
-  // Retrieve the names of an object's properties.
-  // Delegates to **ECMAScript 5**'s native `Object.keys`
-  _.keys = nativeKeys || function(obj) {
-    if (obj !== Object(obj)) throw new TypeError('Invalid object');
-    var keys = [];
-    for (var key in obj) if (hasOwnProperty.call(obj, key)) keys[keys.length] = key;
-    return keys;
-  };
-
-  // Retrieve the values of an object's properties.
-  _.values = function(obj) {
-    return _.map(obj, _.identity);
-  };
-
-  // Return a sorted list of the function names available on the object.
-  // Aliased as `methods`
-  _.functions = _.methods = function(obj) {
-    var names = [];
-    for (var key in obj) {
-      if (_.isFunction(obj[key])) names.push(key);
-    }
-    return names.sort();
-  };
-
-  // Extend a given object with all the properties in passed-in object(s).
-  _.extend = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      for (var prop in source) {
-        if (source[prop] !== void 0) obj[prop] = source[prop];
-      }
-    });
-    return obj;
-  };
-
-  // Fill in a given object with default properties.
-  _.defaults = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      for (var prop in source) {
-        if (obj[prop] == null) obj[prop] = source[prop];
-      }
-    });
-    return obj;
-  };
-
-  // Create a (shallow-cloned) duplicate of an object.
-  _.clone = function(obj) {
-    if (!_.isObject(obj)) return obj;
-    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
-  };
-
-  // Invokes interceptor with the obj, and then returns obj.
-  // The primary purpose of this method is to "tap into" a method chain, in
-  // order to perform operations on intermediate results within the chain.
-  _.tap = function(obj, interceptor) {
-    interceptor(obj);
-    return obj;
-  };
-
-  // Internal recursive comparison function.
-  function eq(a, b, stack) {
-    // Identical objects are equal. `0 === -0`, but they aren't identical.
-    // See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
-    if (a === b) return a !== 0 || 1 / a == 1 / b;
-    // A strict comparison is necessary because `null == undefined`.
-    if ((a == null) || (b == null)) return a === b;
-    // Unwrap any wrapped objects.
-    if (a._chain) a = a._wrapped;
-    if (b._chain) b = b._wrapped;
-    // Invoke a custom `isEqual` method if one is provided.
-    if (_.isFunction(a.isEqual)) return a.isEqual(b);
-    if (_.isFunction(b.isEqual)) return b.isEqual(a);
-    // Compare object types.
-    var typeA = typeof a;
-    if (typeA != typeof b) return false;
-    // Optimization; ensure that both values are truthy or falsy.
-    if (!a != !b) return false;
-    // `NaN` values are equal.
-    if (_.isNaN(a)) return _.isNaN(b);
-    // Compare string objects by value.
-    var isStringA = _.isString(a), isStringB = _.isString(b);
-    if (isStringA || isStringB) return isStringA && isStringB && String(a) == String(b);
-    // Compare number objects by value.
-    var isNumberA = _.isNumber(a), isNumberB = _.isNumber(b);
-    if (isNumberA || isNumberB) return isNumberA && isNumberB && +a == +b;
-    // Compare boolean objects by value. The value of `true` is 1; the value of `false` is 0.
-    var isBooleanA = _.isBoolean(a), isBooleanB = _.isBoolean(b);
-    if (isBooleanA || isBooleanB) return isBooleanA && isBooleanB && +a == +b;
-    // Compare dates by their millisecond values.
-    var isDateA = _.isDate(a), isDateB = _.isDate(b);
-    if (isDateA || isDateB) return isDateA && isDateB && a.getTime() == b.getTime();
-    // Compare RegExps by their source patterns and flags.
-    var isRegExpA = _.isRegExp(a), isRegExpB = _.isRegExp(b);
-    if (isRegExpA || isRegExpB) {
-      // Ensure commutative equality for RegExps.
-      return isRegExpA && isRegExpB &&
-             a.source == b.source &&
-             a.global == b.global &&
-             a.multiline == b.multiline &&
-             a.ignoreCase == b.ignoreCase;
-    }
-    // Ensure that both values are objects.
-    if (typeA != 'object') return false;
-    // Arrays or Arraylikes with different lengths are not equal.
-    if (a.length !== b.length) return false;
-    // Objects with different constructors are not equal.
-    if (a.constructor !== b.constructor) return false;
-    // Assume equality for cyclic structures. The algorithm for detecting cyclic
-    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
-    var length = stack.length;
-    while (length--) {
-      // Linear search. Performance is inversely proportional to the number of
-      // unique nested structures.
-      if (stack[length] == a) return true;
-    }
-    // Add the first object to the stack of traversed objects.
-    stack.push(a);
-    var size = 0, result = true;
-    // Deep compare objects.
-    for (var key in a) {
-      if (hasOwnProperty.call(a, key)) {
-        // Count the expected number of properties.
-        size++;
-        // Deep compare each member.
-        if (!(result = hasOwnProperty.call(b, key) && eq(a[key], b[key], stack))) break;
-      }
-    }
-    // Ensure that both objects contain the same number of properties.
-    if (result) {
-      for (key in b) {
-        if (hasOwnProperty.call(b, key) && !size--) break;
-      }
-      result = !size;
-    }
-    // Remove the first object from the stack of traversed objects.
-    stack.pop();
-    return result;
-  }
-
-  // Perform a deep comparison to check if two objects are equal.
-  _.isEqual = function(a, b) {
-    return eq(a, b, []);
-  };
-
-  // Is a given array, string, or object empty?
-  // An "empty" object has no enumerable own-properties.
-  _.isEmpty = function(obj) {
-    if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
-    for (var key in obj) if (hasOwnProperty.call(obj, key)) return false;
-    return true;
-  };
-
-  // Is a given value a DOM element?
-  _.isElement = function(obj) {
-    return !!(obj && obj.nodeType == 1);
-  };
-
-  // Is a given value an array?
-  // Delegates to ECMA5's native Array.isArray
-  _.isArray = nativeIsArray || function(obj) {
-    return toString.call(obj) == '[object Array]';
-  };
-
-  // Is a given variable an object?
-  _.isObject = function(obj) {
-    return obj === Object(obj);
-  };
-
-  // Is a given variable an arguments object?
-  if (toString.call(arguments) == '[object Arguments]') {
-    _.isArguments = function(obj) {
-      return toString.call(obj) == '[object Arguments]';
-    };
-  } else {
-    _.isArguments = function(obj) {
-      return !!(obj && hasOwnProperty.call(obj, 'callee'));
-    };
-  }
-
-  // Is a given value a function?
-  _.isFunction = function(obj) {
-    return toString.call(obj) == '[object Function]';
-  };
-
-  // Is a given value a string?
-  _.isString = function(obj) {
-    return toString.call(obj) == '[object String]';
-  };
-
-  // Is a given value a number?
-  _.isNumber = function(obj) {
-    return toString.call(obj) == '[object Number]';
-  };
-
-  // Is the given value `NaN`?
-  _.isNaN = function(obj) {
-    // `NaN` is the only value for which `===` is not reflexive.
-    return obj !== obj;
-  };
-
-  // Is a given value a boolean?
-  _.isBoolean = function(obj) {
-    return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
-  };
-
-  // Is a given value a date?
-  _.isDate = function(obj) {
-    return toString.call(obj) == '[object Date]';
-  };
-
-  // Is the given value a regular expression?
-  _.isRegExp = function(obj) {
-    return toString.call(obj) == '[object RegExp]';
-  };
-
-  // Is a given value equal to null?
-  _.isNull = function(obj) {
-    return obj === null;
-  };
-
-  // Is a given variable undefined?
-  _.isUndefined = function(obj) {
-    return obj === void 0;
-  };
-
-  // Utility Functions
-  // -----------------
-
-  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
-  // previous owner. Returns a reference to the Underscore object.
-  _.noConflict = function() {
-    root._ = previousUnderscore;
-    return this;
-  };
-
-  // Keep the identity function around for default iterators.
-  _.identity = function(value) {
-    return value;
-  };
-
-  // Run a function **n** times.
-  _.times = function (n, iterator, context) {
-    for (var i = 0; i < n; i++) iterator.call(context, i);
-  };
-
-  // Escape a string for HTML interpolation.
-  _.escape = function(string) {
-    return (''+string).replace(/&(?!\w+;|#\d+;|#x[\da-f]+;)/gi, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;').replace(/\//g,'&#x2F;');
-  };
-
-  // Add your own custom functions to the Underscore object, ensuring that
-  // they're correctly added to the OOP wrapper as well.
-  _.mixin = function(obj) {
-    each(_.functions(obj), function(name){
-      addToWrapper(name, _[name] = obj[name]);
-    });
-  };
-
-  // Generate a unique integer id (unique within the entire client session).
-  // Useful for temporary DOM ids.
-  var idCounter = 0;
-  _.uniqueId = function(prefix) {
-    var id = idCounter++;
-    return prefix ? prefix + id : id;
-  };
-
-  // By default, Underscore uses ERB-style template delimiters, change the
-  // following template settings to use alternative delimiters.
-  _.templateSettings = {
-    evaluate    : /<%([\s\S]+?)%>/g,
-    interpolate : /<%=([\s\S]+?)%>/g,
-    escape      : /<%-([\s\S]+?)%>/g
-  };
-
-  // JavaScript micro-templating, similar to John Resig's implementation.
-  // Underscore templating handles arbitrary delimiters, preserves whitespace,
-  // and correctly escapes quotes within interpolated code.
-  _.template = function(str, data) {
-    var c  = _.templateSettings;
-    var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
-      'with(obj||{}){__p.push(\'' +
-      str.replace(/\\/g, '\\\\')
-         .replace(/'/g, "\\'")
-         .replace(c.escape, function(match, code) {
-           return "',_.escape(" + code.replace(/\\'/g, "'") + "),'";
-         })
-         .replace(c.interpolate, function(match, code) {
-           return "'," + code.replace(/\\'/g, "'") + ",'";
-         })
-         .replace(c.evaluate || null, function(match, code) {
-           return "');" + code.replace(/\\'/g, "'")
-                              .replace(/[\r\n\t]/g, ' ') + "__p.push('";
-         })
-         .replace(/\r/g, '\\r')
-         .replace(/\n/g, '\\n')
-         .replace(/\t/g, '\\t')
-         + "');}return __p.join('');";
-    var func = new Function('obj', tmpl);
-    return data ? func(data) : func;
-  };
-
-  // The OOP Wrapper
-  // ---------------
-
-  // If Underscore is called as a function, it returns a wrapped object that
-  // can be used OO-style. This wrapper holds altered versions of all the
-  // underscore functions. Wrapped objects may be chained.
-  var wrapper = function(obj) { this._wrapped = obj; };
-
-  // Expose `wrapper.prototype` as `_.prototype`
-  _.prototype = wrapper.prototype;
-
-  // Helper function to continue chaining intermediate results.
-  var result = function(obj, chain) {
-    return chain ? _(obj).chain() : obj;
-  };
-
-  // A method to easily add functions to the OOP wrapper.
-  var addToWrapper = function(name, func) {
-    wrapper.prototype[name] = function() {
-      var args = slice.call(arguments);
-      unshift.call(args, this._wrapped);
-      return result(func.apply(_, args), this._chain);
-    };
-  };
-
-  // Add all of the Underscore functions to the wrapper object.
-  _.mixin(_);
-
-  // Add all mutator Array functions to the wrapper.
-  each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
-    var method = ArrayProto[name];
-    wrapper.prototype[name] = function() {
-      method.apply(this._wrapped, arguments);
-      return result(this._wrapped, this._chain);
-    };
-  });
-
-  // Add all accessor Array functions to the wrapper.
-  each(['concat', 'join', 'slice'], function(name) {
-    var method = ArrayProto[name];
-    wrapper.prototype[name] = function() {
-      return result(method.apply(this._wrapped, arguments), this._chain);
-    };
-  });
-
-  // Start chaining a wrapped Underscore object.
-  wrapper.prototype.chain = function() {
-    this._chain = true;
-    return this;
-  };
-
-  // Extracts the result from a wrapped and chained object.
-  wrapper.prototype.value = function() {
-    return this._wrapped;
-  };
-
-})();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/package.json b/blackberry10/node_modules/plugman/node_modules/dep-graph/package.json
deleted file mode 100644
index 6e00730..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  "author": {
-    "name": "Trevor Burnham",
-    "url": "http://trevorburnham.com"
-  },
-  "name": "dep-graph",
-  "description": "Simple dependency graph management",
-  "version": "1.1.0",
-  "homepage": "http://github.com/TrevorBurnham/dep-graph",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/TrevorBurnham/dep-graph.git"
-  },
-  "main": "lib/dep-graph.js",
-  "dependencies": {
-    "underscore": "1.2.1"
-  },
-  "devDependencies": {
-    "coffee-script": "1.1.2",
-    "nodeunit": "0.5.4",
-    "watchit": ">=0.0.1"
-  },
-  "readme": "# dep-graph.js\n\nThis is a small project spun off from [connect-assets](http://github.com/TrevorBurnham/connect-assets). Written in [CoffeeScript](coffeescript.org) by the author of [CoffeeScript: Accelerated JavaScript Development](http://pragprog.com/book/tbcoffee/coffeescript).\n\n## What's it for?\n\nSay you have a set of resources that depend on each other in some way. These resources can be anything—files, chains of command, plot twists on *Lost*—whatever. All that matters is that each one has a unique string identifier, and a list of direct dependencies.\n\n`dep-graph` makes it easy to compute \"chains\" of dependencies, with guaranteed logical ordering and no duplicates. That's trivial in most cases, but if `A` depends on `B` and `B` depends on `A`, a naïve dependency graph would get trapped in an infinite loop. `dep-graph` throws an error if any such \"cycles\" are detected.\n\n## How to use it?\n\n### In the browser\n\n    deps = new DepGraph\n    deps.a
 dd 'A', 'B'  # A requires B\n    deps.add 'B', 'C'  # B requires C\n    deps.getChain 'A'  # ['C', 'B', 'A']\n\n### In Node.js\n\nSame as above, but first run\n\n    npm install dep-graph\n\nfrom your project's directory, and put\n\n    DepGraph = require 'dep-graph'\n\nat the top of your file.\n\n## License\n\n©2011 Trevor Burnham and available under the [MIT license](http://www.opensource.org/licenses/mit-license.php):\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n
 THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
-  "readmeFilename": "README.mdown",
-  "bugs": {
-    "url": "https://github.com/TrevorBurnham/dep-graph/issues"
-  },
-  "_id": "dep-graph@1.1.0",
-  "_from": "dep-graph@1.1.0"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/src/dep-graph.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/src/dep-graph.coffee b/blackberry10/node_modules/plugman/node_modules/dep-graph/src/dep-graph.coffee
deleted file mode 100644
index fcff3a1..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/src/dep-graph.coffee
+++ /dev/null
@@ -1,59 +0,0 @@
-# [dep-graph](http://github.com/TrevorBurnham/dep-graph)
-
-_ = require 'underscore'
-
-class DepGraph
-  constructor: ->
-    # The internal representation of the dependency graph in the format
-    # `id: [ids]`, indicating only *direct* dependencies.
-    @map = {}
-
-  # Add a direct dependency. Returns `false` if that dependency is a duplicate.
-  add: (id, depId) ->
-    @map[id] ?= []
-    return false if depId in @map[id]
-    @map[id].push depId
-    @map[id]
-
-  # Generate a list of all dependencies (direct and indirect) for the given id,
-  # in logical order with no duplicates.
-  getChain: (id) ->
-    # First, get a list of all dependencies (unordered)
-    deps = @descendantsOf id
-
-    # Second, order them (using the Tarjan algorithm)
-    chain = []
-    visited = {}
-    visit = (node) =>
-      return if visited[node] or node is id
-      visited[node] = true
-      visit parent for parent in @parentsOf(node) when parent in deps
-      chain.unshift node
-
-    for leafNode in _.intersection(deps, @leafNodes()).reverse()
-      visit leafNode
-
-    chain
-
-  leafNodes: ->
-    allNodes = _.uniq _.flatten _.values @map
-    node for node in allNodes when !@map[node]?.length
-
-  parentsOf: (child) ->
-    node for node in _.keys(@map) when child in @map[node]
-
-  descendantsOf: (parent, descendants = [], branch = []) ->
-    descendants.push parent
-    branch.push parent
-    for child in @map[parent] ? []
-      if child in branch                # cycle
-        throw new Error("Cyclic dependency from #{parent} to #{child}")
-      continue if child in descendants  # duplicate
-      @descendantsOf child, descendants, branch.slice(0)
-    descendants[1..]
-
-# Export the class in Node, make it global in the browser.
-if module?.exports?
-  module.exports = DepGraph
-else
-  @DepGraph = DepGraph

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/test/test.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/test/test.coffee b/blackberry10/node_modules/plugman/node_modules/dep-graph/test/test.coffee
deleted file mode 100644
index 47b6551..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/test/test.coffee
+++ /dev/null
@@ -1,50 +0,0 @@
-DepGraph = require('../lib/dep-graph.js')
-depGraph = new DepGraph
-
-exports['Direct dependencies are chained in original order'] = (test) ->
-  depGraph.add '0', '1'
-  depGraph.add '0', '2'
-  depGraph.add '0', '3'
-  test.deepEqual depGraph.getChain('0'), ['1', '2', '3']
-  test.done()
-
-exports['Indirect dependencies are chained before their dependents'] = (test) ->
-  depGraph.add '2', 'A'
-  depGraph.add '2', 'B'
-  test.deepEqual depGraph.getChain('0'), ['1', 'A', 'B', '2', '3']
-  test.done()
-
-exports['getChain can safely be called for unknown resources'] = (test) ->
-  test.doesNotThrow -> depGraph.getChain('Z')
-  test.deepEqual depGraph.getChain('Z'), []
-  test.done()
-
-exports['Cyclic dependencies are detected'] = (test) ->
-  depGraph.add 'yin', 'yang'
-  depGraph.add 'yang', 'yin'
-  test.throws -> depGraph.getChain 'yin'
-  test.throws -> depGraph.getChain 'yang'
-  test.done()
-
-exports['Arc direction is taken into account (issue #1)'] = (test) ->
-  depGraph.add 'MAIN', 'One'
-  depGraph.add 'MAIN', 'Three'
-  depGraph.add 'One', 'Two'
-  depGraph.add 'Two', 'Three'
-  test.deepEqual depGraph.getChain('MAIN'), ['Three', 'Two', 'One']
-  test.done()
-
-exports['Dependency ordering is consistent (issue #2)'] = (test) ->
-  depGraph.add 'Head', 'Neck'
-  depGraph.add 'Head', 'Heart'
-  depGraph.add 'Heart', 'Neck'
-  depGraph.add 'Neck', 'Shoulders'
-  test.deepEqual depGraph.getChain('Head'), ['Shoulders', 'Neck', 'Heart']
-  test.done()
-
-exports['Nodes with same dependencies do not depend on each other (issue #6)'] = (test) ->
-  depGraph.add 'Java', 'JVM'
-  depGraph.add 'JRuby', 'JVM'
-  test.deepEqual depGraph.getChain('Java'), ['JVM']
-  test.deepEqual depGraph.getChain('JRuby'), ['JVM']
-  test.done()

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/.npmignore b/blackberry10/node_modules/plugman/node_modules/glob/.npmignore
deleted file mode 100644
index 2af4b71..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.*.swp
-test/a/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/.travis.yml b/blackberry10/node_modules/plugman/node_modules/glob/.travis.yml
deleted file mode 100644
index baa0031..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
-  - 0.8

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/LICENSE b/blackberry10/node_modules/plugman/node_modules/glob/LICENSE
deleted file mode 100644
index 0c44ae7..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/README.md b/blackberry10/node_modules/plugman/node_modules/glob/README.md
deleted file mode 100644
index cc69164..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/README.md
+++ /dev/null
@@ -1,250 +0,0 @@
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-This is a glob implementation in JavaScript.  It uses the `minimatch`
-library to do its matching.
-
-## Attention: node-glob users!
-
-The API has changed dramatically between 2.x and 3.x. This library is
-now 100% JavaScript, and the integer flags have been replaced with an
-options object.
-
-Also, there's an event emitter class, proper tests, and all the other
-things you've come to expect from node modules.
-
-And best of all, no compilation!
-
-## Usage
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
-  // files is an array of filenames.
-  // If the `nonull` option is set, and nothing
-  // was found, then files is ["**/*.js"]
-  // er is an error object or null.
-})
-```
-
-## Features
-
-Please see the [minimatch
-documentation](https://github.com/isaacs/minimatch) for more details.
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob(pattern, [options], cb)
-
-* `pattern` {String} Pattern to be matched
-* `options` {Object}
-* `cb` {Function}
-  * `err` {Error | null}
-  * `matches` {Array<String>} filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` {String} Pattern to be matched
-* `options` {Object}
-* return: {Array<String>} filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instanting the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` {String} pattern to search for
-* `options` {Object}
-* `cb` {Function} Called when an error occurs, or matches are found
-  * `err` {Error | null}
-  * `matches` {Array<String>} filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `error` The error encountered.  When an error is encountered, the
-  glob object is in an undefined state, and should be discarded.
-* `aborted` Boolean which is set to true when calling `abort()`.  There
-  is no way at this time to continue a glob search after aborting, but
-  you can re-use the statCache to avoid having to duplicate syscalls.
-* `statCache` Collection of all the stat results the glob search
-  performed.
-* `cache` Convenience object.  Each field has the following possible
-  values:
-  * `false` - Path does not exist
-  * `true` - Path exists
-  * `1` - Path exists, and is not a directory
-  * `2` - Path exists, and is a directory
-  * `[file, entries, ...]` - Path exists, is a directory, and the
-    array value is the results of `fs.readdir`
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
-  matches found.  If the `nonull` option is set, and no match was found,
-  then the `matches` list contains the original pattern.  The matches
-  are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the matched.
-* `error` Emitted when an unexpected error is encountered, or whenever
-  any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `abort` Stop the search.
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior.  Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the glob object, as well.
-
-* `cwd` The current working directory in which to search.  Defaults
-  to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
-  onto.  Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
-  systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
-  Note that an explicit dot in a portion of the pattern will always
-  match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
-  "mounted" onto the root setting, so that a valid filesystem path is
-  returned.  Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches.  Note that this
-  requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results.  This reduces performance
-  somewhat, and is completely unnecessary, unless `readdir` is presumed
-  to be an untrustworthy indicator of file existence.  It will cause
-  ELOOP to be triggered one level sooner in the case of cyclical
-  symbolic links.
-* `silent` When an unusual error is encountered
-  when attempting to read a directory, a warning will be printed to
-  stderr.  Set the `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered
-  when attempting to read a directory, the process will just continue on
-  in search of other matches.  Set the `strict` option to raise an error
-  in these cases.
-* `cache` See `cache` property above.  Pass in a previously generated
-  cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
-  unnecessary stat calls.  While it should not normally be necessary to
-  set this, you may pass the statCache from one glob() call to the
-  options object of another, if you know that the filesystem will not
-  change between calls.  (See "Race Conditions" below.)
-* `sync` Perform a synchronous glob search.
-* `nounique` In some cases, brace-expanded patterns can result in the
-  same file showing up multiple times in the result set.  By default,
-  this implementation prevents duplicates in the result set.
-  Set this flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
-  containing the pattern itself.  This is the default in glob(3).
-* `nocase` Perform a case-insensitive match.  Note that case-insensitive
-  filesystems will sometimes result in glob returning results that are
-  case-insensitively matched anyway, since readdir and stat will not
-  raise an error.
-* `debug` Set to enable debug logging in minimatch and glob.
-* `globDebug` Set to enable debug logging in glob, but not minimatch.
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated.  Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally.  This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything.  Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set.  This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes.  For example,
-`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`.  This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern.  Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity.  Since those two are valid, matching proceeds.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation.  You must use
-forward-slashes **only** in glob expressions.  Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`.  On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead.  However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes.  For the vast majority
-of operations, this is never a problem.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/examples/g.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/examples/g.js b/blackberry10/node_modules/plugman/node_modules/glob/examples/g.js
deleted file mode 100644
index be122df..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/examples/g.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var Glob = require("../").Glob
-
-var pattern = "test/a/**/[cg]/../[cg]"
-console.log(pattern)
-
-var mg = new Glob(pattern, {mark: true, sync:true}, function (er, matches) {
-  console.log("matches", matches)
-})
-console.log("after")

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/examples/usr-local.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/examples/usr-local.js b/blackberry10/node_modules/plugman/node_modules/glob/examples/usr-local.js
deleted file mode 100644
index 327a425..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/examples/usr-local.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var Glob = require("../").Glob
-
-var pattern = "{./*/*,/*,/usr/local/*}"
-console.log(pattern)
-
-var mg = new Glob(pattern, {mark: true}, function (er, matches) {
-  console.log("matches", matches)
-})
-console.log("after")

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/glob.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/glob.js b/blackberry10/node_modules/plugman/node_modules/glob/glob.js
deleted file mode 100644
index 176be02..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/glob.js
+++ /dev/null
@@ -1,675 +0,0 @@
-// Approach:
-//
-// 1. Get the minimatch set
-// 2. For each pattern in the set, PROCESS(pattern)
-// 3. Store matches per-set, then uniq them
-//
-// PROCESS(pattern)
-// Get the first [n] items from pattern that are all strings
-// Join these together.  This is PREFIX.
-//   If there is no more remaining, then stat(PREFIX) and
-//   add to matches if it succeeds.  END.
-// readdir(PREFIX) as ENTRIES
-//   If fails, END
-//   If pattern[n] is GLOBSTAR
-//     // handle the case where the globstar match is empty
-//     // by pruning it out, and testing the resulting pattern
-//     PROCESS(pattern[0..n] + pattern[n+1 .. $])
-//     // handle other cases.
-//     for ENTRY in ENTRIES (not dotfiles)
-//       // attach globstar + tail onto the entry
-//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $])
-//
-//   else // not globstar
-//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
-//       Test ENTRY against pattern[n]
-//       If fails, continue
-//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
-//
-// Caveat:
-//   Cache all stats and readdirs results to minimize syscall.  Since all
-//   we ever care about is existence and directory-ness, we can just keep
-//   `true` for files, and [children,...] for directories, or `false` for
-//   things that don't exist.
-
-
-
-module.exports = glob
-
-var fs = require("fs")
-, minimatch = require("minimatch")
-, Minimatch = minimatch.Minimatch
-, inherits = require("inherits")
-, EE = require("events").EventEmitter
-, path = require("path")
-, isDir = {}
-, assert = require("assert").ok
-
-function glob (pattern, options, cb) {
-  if (typeof options === "function") cb = options, options = {}
-  if (!options) options = {}
-
-  if (typeof options === "number") {
-    deprecated()
-    return
-  }
-
-  var g = new Glob(pattern, options, cb)
-  return g.sync ? g.found : g
-}
-
-glob.fnmatch = deprecated
-
-function deprecated () {
-  throw new Error("glob's interface has changed. Please see the docs.")
-}
-
-glob.sync = globSync
-function globSync (pattern, options) {
-  if (typeof options === "number") {
-    deprecated()
-    return
-  }
-
-  options = options || {}
-  options.sync = true
-  return glob(pattern, options)
-}
-
-
-glob.Glob = Glob
-inherits(Glob, EE)
-function Glob (pattern, options, cb) {
-  if (!(this instanceof Glob)) {
-    return new Glob(pattern, options, cb)
-  }
-
-  if (typeof cb === "function") {
-    this.on("error", cb)
-    this.on("end", function (matches) {
-      cb(null, matches)
-    })
-  }
-
-  options = options || {}
-
-  this.EOF = {}
-  this._emitQueue = []
-
-  this.maxDepth = options.maxDepth || 1000
-  this.maxLength = options.maxLength || Infinity
-  this.cache = options.cache || {}
-  this.statCache = options.statCache || {}
-
-  this.changedCwd = false
-  var cwd = process.cwd()
-  if (!options.hasOwnProperty("cwd")) this.cwd = cwd
-  else {
-    this.cwd = options.cwd
-    this.changedCwd = path.resolve(options.cwd) !== cwd
-  }
-
-  this.root = options.root || path.resolve(this.cwd, "/")
-  this.root = path.resolve(this.root)
-  if (process.platform === "win32")
-    this.root = this.root.replace(/\\/g, "/")
-
-  this.nomount = !!options.nomount
-
-  if (!pattern) {
-    throw new Error("must provide pattern")
-  }
-
-  // base-matching: just use globstar for that.
-  if (options.matchBase && -1 === pattern.indexOf("/")) {
-    if (options.noglobstar) {
-      throw new Error("base matching requires globstar")
-    }
-    pattern = "**/" + pattern
-  }
-
-  this.strict = options.strict !== false
-  this.dot = !!options.dot
-  this.mark = !!options.mark
-  this.sync = !!options.sync
-  this.nounique = !!options.nounique
-  this.nonull = !!options.nonull
-  this.nosort = !!options.nosort
-  this.nocase = !!options.nocase
-  this.stat = !!options.stat
-
-  this.debug = !!options.debug || !!options.globDebug
-  if (this.debug)
-    this.log = console.error
-
-  this.silent = !!options.silent
-
-  var mm = this.minimatch = new Minimatch(pattern, options)
-  this.options = mm.options
-  pattern = this.pattern = mm.pattern
-
-  this.error = null
-  this.aborted = false
-
-  // list of all the patterns that ** has resolved do, so
-  // we can avoid visiting multiple times.
-  this._globstars = {}
-
-  EE.call(this)
-
-  // process each pattern in the minimatch set
-  var n = this.minimatch.set.length
-
-  // The matches are stored as {<filename>: true,...} so that
-  // duplicates are automagically pruned.
-  // Later, we do an Object.keys() on these.
-  // Keep them as a list so we can fill in when nonull is set.
-  this.matches = new Array(n)
-
-  this.minimatch.set.forEach(iterator.bind(this))
-  function iterator (pattern, i, set) {
-    this._process(pattern, 0, i, function (er) {
-      if (er) this.emit("error", er)
-      if (-- n <= 0) this._finish()
-    })
-  }
-}
-
-Glob.prototype.log = function () {}
-
-Glob.prototype._finish = function () {
-  assert(this instanceof Glob)
-
-  var nou = this.nounique
-  , all = nou ? [] : {}
-
-  for (var i = 0, l = this.matches.length; i < l; i ++) {
-    var matches = this.matches[i]
-    this.log("matches[%d] =", i, matches)
-    // do like the shell, and spit out the literal glob
-    if (!matches) {
-      if (this.nonull) {
-        var literal = this.minimatch.globSet[i]
-        if (nou) all.push(literal)
-        else all[literal] = true
-      }
-    } else {
-      // had matches
-      var m = Object.keys(matches)
-      if (nou) all.push.apply(all, m)
-      else m.forEach(function (m) {
-        all[m] = true
-      })
-    }
-  }
-
-  if (!nou) all = Object.keys(all)
-
-  if (!this.nosort) {
-    all = all.sort(this.nocase ? alphasorti : alphasort)
-  }
-
-  if (this.mark) {
-    // at *some* point we statted all of these
-    all = all.map(function (m) {
-      var sc = this.cache[m]
-      if (!sc)
-        return m
-      var isDir = (Array.isArray(sc) || sc === 2)
-      if (isDir && m.slice(-1) !== "/") {
-        return m + "/"
-      }
-      if (!isDir && m.slice(-1) === "/") {
-        return m.replace(/\/+$/, "")
-      }
-      return m
-    }, this)
-  }
-
-  this.log("emitting end", all)
-
-  this.EOF = this.found = all
-  this.emitMatch(this.EOF)
-}
-
-function alphasorti (a, b) {
-  a = a.toLowerCase()
-  b = b.toLowerCase()
-  return alphasort(a, b)
-}
-
-function alphasort (a, b) {
-  return a > b ? 1 : a < b ? -1 : 0
-}
-
-Glob.prototype.abort = function () {
-  this.aborted = true
-  this.emit("abort")
-}
-
-Glob.prototype.pause = function () {
-  if (this.paused) return
-  if (this.sync)
-    this.emit("error", new Error("Can't pause/resume sync glob"))
-  this.paused = true
-  this.emit("pause")
-}
-
-Glob.prototype.resume = function () {
-  if (!this.paused) return
-  if (this.sync)
-    this.emit("error", new Error("Can't pause/resume sync glob"))
-  this.paused = false
-  this.emit("resume")
-  this._processEmitQueue()
-  //process.nextTick(this.emit.bind(this, "resume"))
-}
-
-Glob.prototype.emitMatch = function (m) {
-  if (!this.stat || this.statCache[m] || m === this.EOF) {
-    this._emitQueue.push(m)
-    this._processEmitQueue()
-  } else {
-    this._stat(m, function(exists, isDir) {
-      if (exists) {
-        this._emitQueue.push(m)
-        this._processEmitQueue()
-      }
-    })
-  }
-}
-
-Glob.prototype._processEmitQueue = function (m) {
-  while (!this._processingEmitQueue &&
-         !this.paused) {
-    this._processingEmitQueue = true
-    var m = this._emitQueue.shift()
-    if (!m) {
-      this._processingEmitQueue = false
-      break
-    }
-
-    this.log('emit!', m === this.EOF ? "end" : "match")
-
-    this.emit(m === this.EOF ? "end" : "match", m)
-    this._processingEmitQueue = false
-  }
-}
-
-Glob.prototype._process = function (pattern, depth, index, cb_) {
-  assert(this instanceof Glob)
-
-  var cb = function cb (er, res) {
-    assert(this instanceof Glob)
-    if (this.paused) {
-      if (!this._processQueue) {
-        this._processQueue = []
-        this.once("resume", function () {
-          var q = this._processQueue
-          this._processQueue = null
-          q.forEach(function (cb) { cb() })
-        })
-      }
-      this._processQueue.push(cb_.bind(this, er, res))
-    } else {
-      cb_.call(this, er, res)
-    }
-  }.bind(this)
-
-  if (this.aborted) return cb()
-
-  if (depth > this.maxDepth) return cb()
-
-  // Get the first [n] parts of pattern that are all strings.
-  var n = 0
-  while (typeof pattern[n] === "string") {
-    n ++
-  }
-  // now n is the index of the first one that is *not* a string.
-
-  // see if there's anything else
-  var prefix
-  switch (n) {
-    // if not, then this is rather simple
-    case pattern.length:
-      prefix = pattern.join("/")
-      this._stat(prefix, function (exists, isDir) {
-        // either it's there, or it isn't.
-        // nothing more to do, either way.
-        if (exists) {
-          if (prefix && isAbsolute(prefix) && !this.nomount) {
-            if (prefix.charAt(0) === "/") {
-              prefix = path.join(this.root, prefix)
-            } else {
-              prefix = path.resolve(this.root, prefix)
-            }
-          }
-
-          if (process.platform === "win32")
-            prefix = prefix.replace(/\\/g, "/")
-
-          this.matches[index] = this.matches[index] || {}
-          this.matches[index][prefix] = true
-          this.emitMatch(prefix)
-        }
-        return cb()
-      })
-      return
-
-    case 0:
-      // pattern *starts* with some non-trivial item.
-      // going to readdir(cwd), but not include the prefix in matches.
-      prefix = null
-      break
-
-    default:
-      // pattern has some string bits in the front.
-      // whatever it starts with, whether that's "absolute" like /foo/bar,
-      // or "relative" like "../baz"
-      prefix = pattern.slice(0, n)
-      prefix = prefix.join("/")
-      break
-  }
-
-  // get the list of entries.
-  var read
-  if (prefix === null) read = "."
-  else if (isAbsolute(prefix) || isAbsolute(pattern.join("/"))) {
-    if (!prefix || !isAbsolute(prefix)) {
-      prefix = path.join("/", prefix)
-    }
-    read = prefix = path.resolve(prefix)
-
-    // if (process.platform === "win32")
-    //   read = prefix = prefix.replace(/^[a-zA-Z]:|\\/g, "/")
-
-    this.log('absolute: ', prefix, this.root, pattern, read)
-  } else {
-    read = prefix
-  }
-
-  this.log('readdir(%j)', read, this.cwd, this.root)
-
-  return this._readdir(read, function (er, entries) {
-    if (er) {
-      // not a directory!
-      // this means that, whatever else comes after this, it can never match
-      return cb()
-    }
-
-    // globstar is special
-    if (pattern[n] === minimatch.GLOBSTAR) {
-      // test without the globstar, and with every child both below
-      // and replacing the globstar.
-      var s = [ pattern.slice(0, n).concat(pattern.slice(n + 1)) ]
-      entries.forEach(function (e) {
-        if (e.charAt(0) === "." && !this.dot) return
-        // instead of the globstar
-        s.push(pattern.slice(0, n).concat(e).concat(pattern.slice(n + 1)))
-        // below the globstar
-        s.push(pattern.slice(0, n).concat(e).concat(pattern.slice(n)))
-      }, this)
-
-      s = s.filter(function (pattern) {
-        var key = gsKey(pattern)
-        var seen = !this._globstars[key]
-        this._globstars[key] = true
-        return seen
-      }, this)
-
-      if (!s.length)
-        return cb()
-
-      // now asyncForEach over this
-      var l = s.length
-      , errState = null
-      s.forEach(function (gsPattern) {
-        this._process(gsPattern, depth + 1, index, function (er) {
-          if (errState) return
-          if (er) return cb(errState = er)
-          if (--l <= 0) return cb()
-        })
-      }, this)
-
-      return
-    }
-
-    // not a globstar
-    // It will only match dot entries if it starts with a dot, or if
-    // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
-    var pn = pattern[n]
-    var rawGlob = pattern[n]._glob
-    , dotOk = this.dot || rawGlob.charAt(0) === "."
-
-    entries = entries.filter(function (e) {
-      return (e.charAt(0) !== "." || dotOk) &&
-             e.match(pattern[n])
-    })
-
-    // If n === pattern.length - 1, then there's no need for the extra stat
-    // *unless* the user has specified "mark" or "stat" explicitly.
-    // We know that they exist, since the readdir returned them.
-    if (n === pattern.length - 1 &&
-        !this.mark &&
-        !this.stat) {
-      entries.forEach(function (e) {
-        if (prefix) {
-          if (prefix !== "/") e = prefix + "/" + e
-          else e = prefix + e
-        }
-        if (e.charAt(0) === "/" && !this.nomount) {
-          e = path.join(this.root, e)
-        }
-
-        if (process.platform === "win32")
-          e = e.replace(/\\/g, "/")
-
-        this.matches[index] = this.matches[index] || {}
-        this.matches[index][e] = true
-        this.emitMatch(e)
-      }, this)
-      return cb.call(this)
-    }
-
-
-    // now test all the remaining entries as stand-ins for that part
-    // of the pattern.
-    var l = entries.length
-    , errState = null
-    if (l === 0) return cb() // no matches possible
-    entries.forEach(function (e) {
-      var p = pattern.slice(0, n).concat(e).concat(pattern.slice(n + 1))
-      this._process(p, depth + 1, index, function (er) {
-        if (errState) return
-        if (er) return cb(errState = er)
-        if (--l === 0) return cb.call(this)
-      })
-    }, this)
-  })
-
-}
-
-function gsKey (pattern) {
-  return '**' + pattern.map(function (p) {
-    return (p === minimatch.GLOBSTAR) ? '**' : (''+p)
-  }).join('/')
-}
-
-Glob.prototype._stat = function (f, cb) {
-  assert(this instanceof Glob)
-  var abs = f
-  if (f.charAt(0) === "/") {
-    abs = path.join(this.root, f)
-  } else if (this.changedCwd) {
-    abs = path.resolve(this.cwd, f)
-  }
-
-  if (f.length > this.maxLength) {
-    var er = new Error("Path name too long")
-    er.code = "ENAMETOOLONG"
-    er.path = f
-    return this._afterStat(f, abs, cb, er)
-  }
-
-  this.log('stat', [this.cwd, f, '=', abs])
-
-  if (!this.stat && this.cache.hasOwnProperty(f)) {
-    var exists = this.cache[f]
-    , isDir = exists && (Array.isArray(exists) || exists === 2)
-    if (this.sync) return cb.call(this, !!exists, isDir)
-    return process.nextTick(cb.bind(this, !!exists, isDir))
-  }
-
-  var stat = this.statCache[abs]
-  if (this.sync || stat) {
-    var er
-    try {
-      stat = fs.statSync(abs)
-    } catch (e) {
-      er = e
-    }
-    this._afterStat(f, abs, cb, er, stat)
-  } else {
-    fs.stat(abs, this._afterStat.bind(this, f, abs, cb))
-  }
-}
-
-Glob.prototype._afterStat = function (f, abs, cb, er, stat) {
-  var exists
-  assert(this instanceof Glob)
-
-  if (abs.slice(-1) === "/" && stat && !stat.isDirectory()) {
-    this.log("should be ENOTDIR, fake it")
-
-    er = new Error("ENOTDIR, not a directory '" + abs + "'")
-    er.path = abs
-    er.code = "ENOTDIR"
-    stat = null
-  }
-
-  var emit = !this.statCache[abs]
-  this.statCache[abs] = stat
-
-  if (er || !stat) {
-    exists = false
-  } else {
-    exists = stat.isDirectory() ? 2 : 1
-    if (emit)
-      this.emit('stat', f, stat)
-  }
-  this.cache[f] = this.cache[f] || exists
-  cb.call(this, !!exists, exists === 2)
-}
-
-Glob.prototype._readdir = function (f, cb) {
-  assert(this instanceof Glob)
-  var abs = f
-  if (f.charAt(0) === "/") {
-    abs = path.join(this.root, f)
-  } else if (isAbsolute(f)) {
-    abs = f
-  } else if (this.changedCwd) {
-    abs = path.resolve(this.cwd, f)
-  }
-
-  if (f.length > this.maxLength) {
-    var er = new Error("Path name too long")
-    er.code = "ENAMETOOLONG"
-    er.path = f
-    return this._afterReaddir(f, abs, cb, er)
-  }
-
-  this.log('readdir', [this.cwd, f, abs])
-  if (this.cache.hasOwnProperty(f)) {
-    var c = this.cache[f]
-    if (Array.isArray(c)) {
-      if (this.sync) return cb.call(this, null, c)
-      return process.nextTick(cb.bind(this, null, c))
-    }
-
-    if (!c || c === 1) {
-      // either ENOENT or ENOTDIR
-      var code = c ? "ENOTDIR" : "ENOENT"
-      , er = new Error((c ? "Not a directory" : "Not found") + ": " + f)
-      er.path = f
-      er.code = code
-      this.log(f, er)
-      if (this.sync) return cb.call(this, er)
-      return process.nextTick(cb.bind(this, er))
-    }
-
-    // at this point, c === 2, meaning it's a dir, but we haven't
-    // had to read it yet, or c === true, meaning it's *something*
-    // but we don't have any idea what.  Need to read it, either way.
-  }
-
-  if (this.sync) {
-    var er, entries
-    try {
-      entries = fs.readdirSync(abs)
-    } catch (e) {
-      er = e
-    }
-    return this._afterReaddir(f, abs, cb, er, entries)
-  }
-
-  fs.readdir(abs, this._afterReaddir.bind(this, f, abs, cb))
-}
-
-Glob.prototype._afterReaddir = function (f, abs, cb, er, entries) {
-  assert(this instanceof Glob)
-  if (entries && !er) {
-    this.cache[f] = entries
-    // if we haven't asked to stat everything for suresies, then just
-    // assume that everything in there exists, so we can avoid
-    // having to stat it a second time.  This also gets us one step
-    // further into ELOOP territory.
-    if (!this.mark && !this.stat) {
-      entries.forEach(function (e) {
-        if (f === "/") e = f + e
-        else e = f + "/" + e
-        this.cache[e] = true
-      }, this)
-    }
-
-    return cb.call(this, er, entries)
-  }
-
-  // now handle errors, and cache the information
-  if (er) switch (er.code) {
-    case "ENOTDIR": // totally normal. means it *does* exist.
-      this.cache[f] = 1
-      return cb.call(this, er)
-    case "ENOENT": // not terribly unusual
-    case "ELOOP":
-    case "ENAMETOOLONG":
-    case "UNKNOWN":
-      this.cache[f] = false
-      return cb.call(this, er)
-    default: // some unusual error.  Treat as failure.
-      this.cache[f] = false
-      if (this.strict) this.emit("error", er)
-      if (!this.silent) console.error("glob error", er)
-      return cb.call(this, er)
-  }
-}
-
-var isAbsolute = process.platform === "win32" ? absWin : absUnix
-
-function absWin (p) {
-  if (absUnix(p)) return true
-  // pull off the device/UNC bit from a windows path.
-  // from node's lib/path.js
-  var splitDeviceRe =
-      /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/
-    , result = splitDeviceRe.exec(p)
-    , device = result[1] || ''
-    , isUnc = device && device.charAt(1) !== ':'
-    , isAbsolute = !!result[2] || isUnc // UNC paths are always absolute
-
-  return isAbsolute
-}
-
-function absUnix (p) {
-  return p.charAt(0) === "/" || p === ""
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/LICENSE b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/LICENSE
deleted file mode 100644
index 5a8e332..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-                    Version 2, December 2004
-
- Copyright (C) 2004 Sam Hocevar <sa...@hocevar.net>
-
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
-
-            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. You just DO WHAT THE FUCK YOU WANT TO.
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/README.md b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/README.md
deleted file mode 100644
index b1c5665..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-Browser-friendly inheritance fully compatible with standard node.js
-[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).
-
-This package exports standard `inherits` from node.js `util` module in
-node environment, but also provides alternative browser-friendly
-implementation through [browser
-field](https://gist.github.com/shtylman/4339901). Alternative
-implementation is a literal copy of standard one located in standalone
-module to avoid requiring of `util`. It also has a shim for old
-browsers with no `Object.create` support.
-
-While keeping you sure you are using standard `inherits`
-implementation in node.js environment, it allows bundlers such as
-[browserify](https://github.com/substack/node-browserify) to not
-include full `util` package to your client code if all you need is
-just `inherits` function. It worth, because browser shim for `util`
-package is large and `inherits` is often the single function you need
-from it.
-
-It's recommended to use this package instead of
-`require('util').inherits` for any code that has chances to be used
-not only in node.js but in browser too.
-
-## usage
-
-```js
-var inherits = require('inherits');
-// then use exactly as the standard one
-```
-
-## note on version ~1.0
-
-Version ~1.0 had completely different motivation and is not compatible
-neither with 2.0 nor with standard node.js `inherits`.
-
-If you are using version ~1.0 and planning to switch to ~2.0, be
-careful:
-
-* new version uses `super_` instead of `super` for referencing
-  superclass
-* new version overwrites current prototype while old one preserves any
-  existing fields on it

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/inherits.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/inherits.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/inherits.js
deleted file mode 100644
index 29f5e24..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/inherits.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('util').inherits

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/inherits_browser.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/inherits_browser.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/inherits_browser.js
deleted file mode 100644
index c1e78a7..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/inherits_browser.js
+++ /dev/null
@@ -1,23 +0,0 @@
-if (typeof Object.create === 'function') {
-  // implementation from standard node.js 'util' module
-  module.exports = function inherits(ctor, superCtor) {
-    ctor.super_ = superCtor
-    ctor.prototype = Object.create(superCtor.prototype, {
-      constructor: {
-        value: ctor,
-        enumerable: false,
-        writable: true,
-        configurable: true
-      }
-    });
-  };
-} else {
-  // old school shim for old browsers
-  module.exports = function inherits(ctor, superCtor) {
-    ctor.super_ = superCtor
-    var TempCtor = function () {}
-    TempCtor.prototype = superCtor.prototype
-    ctor.prototype = new TempCtor()
-    ctor.prototype.constructor = ctor
-  }
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/package.json b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/package.json
deleted file mode 100644
index deec274..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "name": "inherits",
-  "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
-  "version": "2.0.0",
-  "keywords": [
-    "inheritance",
-    "class",
-    "klass",
-    "oop",
-    "object-oriented",
-    "inherits",
-    "browser",
-    "browserify"
-  ],
-  "main": "./inherits.js",
-  "browser": "./inherits_browser.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/isaacs/inherits"
-  },
-  "license": {
-    "type": "WTFPL2"
-  },
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "scripts": {
-    "test": "node test"
-  },
-  "readme": "Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom
  it.\n\nIt's recommended to use this package instead of\n`require('util').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require('inherits');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n  superclass\n* new version overwrites current prototype while old one preserves any\n  existing fields on it\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/inherits/issues"
-  },
-  "_id": "inherits@2.0.0",
-  "_from": "inherits@2"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/test.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/test.js
deleted file mode 100644
index fc53012..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/inherits/test.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var inherits = require('./inherits.js')
-var assert = require('assert')
-
-function test(c) {
-  assert(c.constructor === Child)
-  assert(c.constructor.super_ === Parent)
-  assert(Object.getPrototypeOf(c) === Child.prototype)
-  assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype)
-  assert(c instanceof Child)
-  assert(c instanceof Parent)
-}
-
-function Child() {
-  Parent.call(this)
-  test(this)
-}
-
-function Parent() {}
-
-inherits(Child, Parent)
-
-var c = new Child
-test(c)
-
-console.log('ok')

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/LICENSE b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/LICENSE
deleted file mode 100644
index 05a4010..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.


[25/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/README.md b/blackberry10/node_modules/net-ping/README.md
deleted file mode 100644
index 7f2d197..0000000
--- a/blackberry10/node_modules/net-ping/README.md
+++ /dev/null
@@ -1,473 +0,0 @@
-
-# net-ping - [homepage][homepage]
-
-This module implements ICMP Echo (ping) support for [Node.js][nodejs].
-
-This module is installed using [node package manager (npm)][npm]:
-
-    npm install net-ping
-
-It is loaded using the `require()` function:
-
-    var ping = require ("net-ping");
-
-A ping session can then be created to ping or trace route to many hosts:
-
-    var session = ping.createSession ();
-
-    session.pingHost (target, function (error, target) {
-        if (error)
-            console.log (target + ": " + error.toString ());
-        else
-            console.log (target + ": Alive");
-    });
-
-[homepage]: http://re-tool.org "Homepage"
-[nodejs]: http://nodejs.org "Node.js"
-[npm]: https://npmjs.org/ "npm"
-
-# Network Protocol Support
-
-This module supports IPv4 using the ICMP, and IPv6 using the ICMPv6.
-
-# Error Handling
-
-Each request exposed by this module requires one or more mandatory callback
-functions.  Callback functions are typically provided an `error` argument.
-
-All errors are sub-classes of the `Error` class.  For timed out errors the
-error passed to the callback function will be an instance of the
-`ping.RequestTimedOutError` class, with the exposed `message` attribute set
-to `Request timed out`.
-
-This makes it easy to determine if a host responded, a time out occurred, or
-whether an error response was received:
-
-    session.pingHost ("1.2.3.4", function (error, target) {
-        if (error)
-            if (error instanceof ping.RequestTimedOutError)
-                console.log (target + ": Not alive");
-            else
-                console.log (target + ": " + error.toString ());
-        else
-            console.log (target + ": Alive");
-    });
-
-In addition to the the `ping.RequestTimedOutError` class, the following errors
-are also exported by this module to wrap ICMP error responses:
-
- * `DestinationUnreachableError`
- * `PacketTooBigError`
- * `ParameterProblemError`
- * `RedirectReceivedError`
- * `SourceQuenchError`
- * `TimeExceededError`
-
-These errors are typically reported by hosts other than the intended target.
-In all cases each class exposes a `source` attribute which will specify the
-host who reported the error (which could be the intended target).  This will
-also be included in the errors `message` attribute, i.e.:
-
-    $ sudo node example/ping-ttl.js 1 192.168.2.10 192.168.2.20 192.168.2.30
-    192.168.2.10: Alive
-    192.168.2.20: TimeExceededError: Time exceeded (source=192.168.1.1)
-    192.168.2.30: Not alive
-
-The `Session` class will emit an `error` event for any other error not
-directly associated with a request.  This is typically an instance of the
-`Error` class with the errors `message` attribute specifying the reason.
-
-# Packet Size
-
-By default ICMP echo request packets sent by this module are 16 bytes in size.
-Some implementations cannot cope with such small ICMP echo requests.  For
-example, some implementations will return an ICMP echo reply, but will include
-an incorrect ICMP checksum.
-
-This module exposes a `packetSize` option to the `createSession()` method which
-specifies how big ICMP echo request packets should be:
-
-    var session = ping.createSession ({packetSize: 64});
-
-# Round Trip Times
-
-Some callbacks used by methods exposed by this module provide two instances of
-the JavaScript `Date` class specifying when the first ping was sent for a
-request, and when a request completed.
-
-These parameters are typically named `sent` and `rcvd`, and are provided to
-help round trip time calculation.
-
-A request can complete in one of two ways.  In the first, a ping response is
-received and `rcvd - sent` will yield the round trip time for the request in
-milliseconds.
-
-In the second, no ping response is received resulting in a request time out.
-In this case `rcvd - sent` will yield the total time spent waiting for each
-retry to timeout if any.  For example, if the `retries` option to the
-`createSession()` method was specified as `2` and `timeout` as `2000` then
-`rcvd - sent` will yield more than `6000` milliseconds.
-
-Although this module provides instances of the `Date` class to help round trip
-time calculation the dates and times represented in each instance should not be
-considered 100% accurate.
-
-Environmental conditions can affect when a date and time is actually
-calculated, e.g. garbage collection introducing a delay or the receipt of many
-packets at once.  There are also a number of functions through which received
-packets must pass, which can also introduce a slight variable delay.
-
-Throughout development experience has shown that, in general the smaller the
-round trip time the less accurate it will be - but the information is still
-useful nonetheless.
-
-# Constants
-
-The following sections describe constants exported and used by this module.
-
-## ping.NetworkProtocol
-
-This object contains constants which can be used for the `networkProtocol`
-option to the `createSession()` function exposed by this module.  This option
-specifies the IP protocol version to use when creating the raw socket.
-
-The following constants are defined in this object:
-
- * `IPv4` - IPv4 protocol
- * `IPv6` - IPv6 protocol
-
-# Using This Module
-
-The `Session` class is used to issue ping and trace route requests to many
-hosts.  This module exports the `createSession()` function which is used to
-create instances of the `Session` class.
-
-## ping.createSession ([options])
-
-The `createSession()` function instantiates and returns an instance of the
-`Session` class:
-
-    // Default options
-    var options = {
-        networkProtocol: ping.NetworkProtocol.IPv4,
-        packetSize: 16,
-        retries: 1,
-        sessionId: (process.pid % 65535),
-        timeout: 2000,
-        ttl: 128
-    };
-    
-    var session = ping.createSession (options);
-
-The optional `options` parameter is an object, and can contain the following
-items:
-
- * `networkProtocol` - Either the constant `ping.NetworkProtocol.IPv4` or the
-   constant `ping.NetworkProtocol.IPv6`, defaults to the constant
-   `ping.NetworkProtocol.IPv4`
- * `packetSize` - How many bytes each ICMP echo request packet should be,
-   defaults to `16`, if the value specified is less that `12` then the value
-   `12` will be used (8 bytes are required for the ICMP packet itself, then 4
-   bytes are required to encode a unique session ID in the request and response
-   packets)
- * `retries` - Number of times to re-send a ping requests, defaults to `1`
- * `sessionId` - A unique ID used to identify request and response packets sent
-   by this instance of the `Session` class, valid numbers are in the range of
-   `1` to `65535`, defaults to the value of `process.pid % 65535`
- * `timeout` - Number of milliseconds to wait for a response before re-trying
-   or failing, defaults to `2000`
- * `ttl` - Value to use for the IP header time to live field, defaults to `128`
-
-After creating the ping `Session` object an underlying raw socket will be
-created.  If the underlying raw socket cannot be opened an exception with be
-thrown.  The error will be an instance of the `Error` class.
-
-Seperate instances of the `Session` class must be created for IPv4 and IPv6.
-
-## session.on ("close", callback)
-
-The `close` event is emitted by the session when the underlying raw socket
-is closed.
-
-No arguments are passed to the callback.
-
-The following example prints a message to the console when the underlying raw
-socket is closed:
-
-    session.on ("close", function () {
-        console.log ("socket closed");
-    });
-
-## session.on ("error", callback)
-
-The `error` event is emitted by the session when the underlying raw socket
-emits an error.
-
-The following arguments will be passed to the `callback` function:
-
- * `error` - An instance of the `Error` class, the exposed `message` attribute
-   will contain a detailed error message.
-
-The following example prints a message to the console when an error occurs
-with the underlying raw socket, the session is then closed:
-
-    session.on ("error", function (error) {
-        console.log (error.toString ());
-        session.close ();
-    });
-
-## session.close ()
-
-The `close()` method closes the underlying raw socket, and cancels all
-outstanding requsts.
-
-The calback function for each outstanding ping requests will be called.  The
-error parameter will be an instance of the `Error` class, and the `message`
-attribute set to `Socket forcibly closed`.
-
-The sessoin can be re-used simply by submitting more ping requests, a new raw
-socket will be created to serve the new ping requests.  This is a way in which
-to clear outstanding requests.
-
-The following example submits a ping request and prints the target which
-successfully responded first, and then closes the session which will clear the
-other outstanding ping requests.
-
-    var targets = ["1.1.1.1", "2.2.2.2", "3.3.3.3"];
-    
-    for (var i = 0; i < targets.length; i++) {
-        session.pingHost (targets[i], function (error, target) {
-            if (! error) {
-                console.log (target);
-                session.close (); 
-            }
-        });
-    }
-
-## session.pingHost (target, callback)
-
-The `pingHost()` method sends a ping request to a remote host.
-
-The `target` parameter is the dotted quad formatted IP address of the target
-host for IPv4 sessions, or the compressed formatted IP address of the target
-host for IPv6 sessions.
-
-The `callback` function is called once the ping requests is complete.  The
-following arguments will be passed to the `callback` function:
-
- * `error` - Instance of the `Error` class or a sub-class, or `null` if no
-   error occurred
- * `target` - The target parameter as specified in the request
-   still be the target host and NOT the responding gateway
- * `sent` - An instance of the `Date` class specifying when the first ping
-   was sent for this request (refer to the Round Trip Time section for more
-   information)
- * `rcvd` - An instance of the `Date` class specifying when the request
-   completed (refer to the Round Trip Time section for more information)
-
-The following example sends a ping request to a remote host:
-
-    var target = "fe80::a00:27ff:fe2a:3427";
-
-    session.pingHost (target, function (error, target, sent, rcvd) {
-        var ms = rcvd - sent;
-        if (error)
-            console.log (target + ": " + error.toString ());
-        else
-            console.log (target + ": Alive (ms=" + ms + ")");
-    });
-
-## session.traceRoute (target, ttl, feedCallback, doneCallback)
-
-The `traceRoute()` method provides similar functionality to the trace route
-utility typically provided with most networked operating systems.
-
-The `target` parameter is the dotted quad formatted IP address of the target
-host for IPv4 sessions, or the compressed formatted IP address of the target
-host for IPv6 sessions.  The optional `ttl` parameter specifies the maximum
-number of hops used by the trace route and defaults to the `ttl` options
-parameter as defined by the `createSession()` method.
-
-Some hosts do not respond to ping requests when the time to live is `0`, that
-is they will not send back an time exceeded error response.  Instead of
-stopping the trace route at the first time out this method will move on to the
-next hop, by increasing the time to live by 1.  It will do this 2 times,
-meaning that a trace route will continue until the target host responds or at
-most 3 request time outs are experienced.
-
-Each requst is subject to the `retries` and `timeout` option parameters to the
-`createSession()` method.  That is, requests will be retried per hop as per
-these parameters.
-
-This method will not call a single callback once the trace route is complete.
-Instead the `feedCallback` function will be called each time a ping response is
-received or a time out occurs. The following arguments will be passed to the
-`feedCallback` function:
-
- * `error` - Instance of the `Error` class or a sub-class, or `null` if no
-   error occurred
- * `target` - The target parameter as specified in the request
- * `ttl` - The time to live used in the request which triggered this respinse
- * `sent` - An instance of the `Date` class specifying when the first ping
-   was sent for this request (refer to the Round Trip Time section for more
-   information)
- * `rcvd` - An instance of the `Date` class specifying when the request
-   completed (refer to the Round Trip Time section for more information)
-
-Once a ping response has been received from the target, or more than three
-request timed out errors are experienced, the `doneCallback` function will be
-called. The following arguments will be passed to the `doneCallback` function:
-
- * `error` - Instance of the `Error` class or a sub-class, or `null` if no
-   error occurred
- * `target` - The target parameter as specified in the request
-
-Once the `doneCallback` function has been called the request is complete and
-the `requestCallback` function will no longer be called.
-
-If the `feedCallback` function returns a true value when called the trace route
-will stop and the `doneCallback` will be called.
-
-The following example initiates a trace route to a remote host:
-
-    function doneCb (error, target) {
-        if (error)
-            console.log (target + ": " + error.toString ());
-        else
-            console.log (target + ": Done");
-    }
-
-    function feedCb (error, target, ttl, sent, rcvd) {
-        var ms = rcvd - sent;
-        if (error) {
-            if (error instanceof ping.TimeExceededError) {
-                console.log (target + ": " + error.source + " (ttl="
-                        + ttl + " ms=" + ms +")");
-            } else {
-                console.log (target + ": " + error.toString ()
-                        + " (ttl=" + ttl + " ms=" + ms +")");
-            }
-        } else {
-            console.log (target + ": " + target + " (ttl=" + ttl
-                    + " ms=" + ms +")");
-        }
-    }
-
-    session.traceRoute ("192.168.10.10", 10, feedCb, doneCb);
-
-# Example Programs
-
-Example programs are included under the modules `example` directory.
-
-# Bugs & Known Issues
-
-None, yet!
-
-Bug reports should be sent to <st...@gmail.com>.
-
-# Changes
-
-## Version 1.0.0 - 03/02/2013
-
- * Initial release
-
-## Version 1.0.1 - 04/02/2013
-
- * Minor corrections to the README.md
- * Add note to README.md about error handling
- * Timed out errors are now instances of the `ping.RequestTimedOutError`
-   object
-
-## Version 1.0.2 - 11/02/2013
-
- * The RequestTimedOutError class is not being exported
-
-## Version 1.1.0 - 13/02/2013
-
- * Support IPv6
-
-## Version 1.1.1 - 15/02/2013
-
- * The `ping.Session.close()` method was not undefining the sessions raw
-   socket after closing
- * Return self from the `pingHost()` method to chain method calls 
-
-## Version 1.1.2 - 04/03/2013
-
- * Use the `raw.Socket.pauseRecv()` and `raw.Socket.resumeRecv()` methods
-   instead of closing a socket when there are no more outstanding requests
-
-## Version 1.1.3 - 07/03/2013
-
- * Sessions were limited to sending 65535 ping requests
-
-## Version 1.1.4 - 09/04/2013
-
- * Add the `packetSize` option to the `createSession()` method to specify how
-   many bytes each ICMP echo request packet should be
-
-## Version 1.1.5 - 17/05/2013
-
- * Incorrectly parsing ICMP error responses resulting in responses matching
-   the wrong request
- * Use a unique session ID per instance of the `Session` class to identify
-   requests and responses sent by a session
- * Added the (internal) `_debugRequest()` and `_debugResponse()` methods, and
-   the `_debug` option to the `createSession()` method
- * Added example programs `ping-ttl.js` and `ping6-ttl.js`
- * Use MIT license instead of GPL
-
-## Version 1.1.6 - 17/05/2013
-
- * Session IDs are now 2 bytes (previously 1 byte), and request IDs are also
-   now 2 bytes (previously 3 bytes)
- * Each ICMP error response now has an associated error class (e.g. the
-   `Time exceeded` response maps onto the `ping.TimeExceededError` class)
- * Call request callbacks with an error when there are no free request IDs
-   because of too many outstanding requests
-
-## Version 1.1.7 - 19/05/2013
-
- * Added the `traceRoute()` method
- * Added the `ttl` option parameter to the `createSession()` method, and
-   updated the example programs `ping-ttl.js` and `ping6-ttl.js` to use it
- * Response callback for `pingHost()` now includes two instances of the
-   `Date` class to specify when a request was sent and a response received
-
-## Version 1.1.8 - 01/07/2013
-
- * Use `raw.Socket.createChecksum()` instead of automatic checksum generation
-
-## Version 1.1.9 - 01/07/2013
-
- * Use `raw.Socket.writeChecksum()` instead of manually rendering checksums
-
-# Roadmap
-
-Suggestions and requirements should be sent to <st...@gmail.com>.
-
-# License
-
-Copyright (c) 2013 Stephen Vickers
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-# Author
-
-Stephen Vickers <st...@gmail.com>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/index.js b/blackberry10/node_modules/net-ping/index.js
deleted file mode 100644
index 16d6ebc..0000000
--- a/blackberry10/node_modules/net-ping/index.js
+++ /dev/null
@@ -1,526 +0,0 @@
-
-var events = require ("events");
-var net = require ("net");
-var raw = require ("raw-socket");
-var util = require ("util");
-
-function _expandConstantObject (object) {
-	var keys = [];
-	for (key in object)
-		keys.push (key);
-	for (var i = 0; i < keys.length; i++)
-		object[object[keys[i]]] = parseInt (keys[i]);
-}
-
-var NetworkProtocol = {
-	1: "IPv4",
-	2: "IPv6"
-};
-
-_expandConstantObject (NetworkProtocol);
-
-function DestinationUnreachableError (source) {
-	this.name = "DestinationUnreachableError";
-	this.message = "Destination unreachable (source=" + source + ")";
-	this.source = source;
-}
-util.inherits (DestinationUnreachableError, Error);
-
-function PacketTooBigError (source) {
-	this.name = "PacketTooBigError";
-	this.message = "Packet too big (source=" + source + ")";
-	this.source = source;
-}
-util.inherits (PacketTooBigError, Error);
-
-function ParameterProblemError (source) {
-	this.name = "ParameterProblemError";
-	this.message = "Parameter problem (source=" + source + ")";
-	this.source = source;
-}
-util.inherits (ParameterProblemError, Error);
-
-function RedirectReceivedError (source) {
-	this.name = "RedirectReceivedError";
-	this.message = "Redireect received (source=" + source + ")";
-	this.source = source;
-}
-util.inherits (RedirectReceivedError, Error);
-
-function RequestTimedOutError () {
-	this.name = "RequestTimedOutError";
-	this.message = "Request timed out";
-}
-util.inherits (RequestTimedOutError, Error);
-
-function SourceQuenchError (source) {
-	this.name = "SourceQuenchError";
-	this.message = "Source quench (source=" + source + ")";
-	this.source = source;
-}
-util.inherits (SourceQuenchError, Error);
-
-function TimeExceededError (source) {
-	this.name = "TimeExceededError";
-	this.message = "Time exceeded (source=" + source + ")";
-	this.source = source;
-}
-util.inherits (TimeExceededError, Error);
-
-function Session (options) {
-	this.retries = (options && options.retries) ? options.retries : 1;
-	this.timeout = (options && options.timeout) ? options.timeout : 2000;
-
-	this.packetSize = (options && options.packetSize) ? options.packetSize : 16;
-
-	if (this.packetSize < 12)
-		this.packetSize = 12;
-
-	this.addressFamily = (options && options.networkProtocol
-				&& options.networkProtocol == NetworkProtocol.IPv6)
-			? raw.AddressFamily.IPv6
-			: raw.AddressFamily.IPv4;
-
-	this._debug = (options && options._debug) ? true : false;
-	
-	this.defaultTTL = (options && options.ttl) ? options.ttl : 128;
-	
-	this.sessionId = (options && options.sessionId)
-			? options.sessionId
-			: process.pid;
-	
-	this.sessionId = this.sessionId % 65535;
-	
-	this.nextId = 1;
-
-	this.socket = null;
-
-	this.reqs = {};
-	this.reqsPending = 0;
-
-	this.getSocket ();
-};
-
-util.inherits (Session, events.EventEmitter);
-
-Session.prototype.close = function () {
-	if (this.socket)
-		this.socket.close ();
-	this.flush (new Error ("Socket forcibly closed"));
-	delete this.socket;
-	return this;
-};
-
-Session.prototype._debugRequest = function (target, req) {
-	console.log ("request: addressFamily=" + this.addressFamily + " target="
-			+ req.target + " id=" + req.id + " buffer="
-			+ req.buffer.toString ("hex"));
-}
-
-Session.prototype._debugResponse = function (source, buffer) {
-	console.log ("response: addressFamily=" + this.addressFamily + " source="
-			+ source + " buffer=" + buffer.toString ("hex"));
-}
-
-Session.prototype.flush = function (error) {
-	for (id in this.reqs) {
-		var req = this.reqRemove (id);
-		var sent = req.sent ? req.sent : new Date ();
-		req.callback (error, req.target, sent, new Date ());
-	}
-};
-
-Session.prototype.getSocket = function () {
-	if (this.socket)
-		return this.socket;
-
-	var protocol = this.addressFamily == raw.AddressFamily.IPv6
-			? raw.Protocol.ICMPv6
-			: raw.Protocol.ICMP;
-
-	var me = this;
-	var options = {
-		addressFamily: this.addressFamily,
-		protocol: protocol
-	};
-
-	this.socket = raw.createSocket (options);
-	this.socket.on ("error", this.onSocketError.bind (me));
-	this.socket.on ("close", this.onSocketClose.bind (me));
-	this.socket.on ("message", this.onSocketMessage.bind (me));
-	
-	this.ttl = null;
-	this.setTTL (this.defaultTTL);
-	
-	return this.socket;
-};
-
-Session.prototype.fromBuffer = function (buffer) {
-	var offset, type, code;
-
-	if (this.addressFamily == raw.AddressFamily.IPv6) {
-		// IPv6 raw sockets don't pass the IPv6 header back to us
-		offset = 0;
-
-		if (buffer.length - offset < 8)
-			return;
-		
-		// We don't believe any IPv6 options will be passed back to us so we
-		// don't attempt to pass them here.
-
-		type = buffer.readUInt8 (offset);
-		code = buffer.readUInt8 (offset + 1);
-	} else {
-		// Need at least 20 bytes for an IP header, and it should be IPv4
-		if (buffer.length < 20 || (buffer[0] & 0xf0) != 0x40)
-			return;
-
-		// The length of the IPv4 header is in mulitples of double words
-		var ip_length = (buffer[0] & 0x0f) * 4;
-
-		// ICMP header is 8 bytes, we don't care about the data for now
-		if (buffer.length - ip_length < 8)
-			return;
-
-		var ip_icmp_offset = ip_length;
-
-		// ICMP message too short
-		if (buffer.length - ip_icmp_offset < 8)
-			return;
-
-		type = buffer.readUInt8 (ip_icmp_offset);
-		code = buffer.readUInt8 (ip_icmp_offset + 1);
-
-		// For error type responses the sequence and identifier cannot be
-		// extracted in the same way as echo responses, the data part contains
-		// the IP header from our request, followed with at least 8 bytes from
-		// the echo request that generated the error, so we first go to the IP
-		// header, then skip that to get to the ICMP packet which contains the
-		// sequence and identifier.
-		if (type == 3 || type == 4 || type == 5 || type == 11) {
-			var ip_icmp_ip_offset = ip_icmp_offset + 8;
-
-			// Need at least 20 bytes for an IP header, and it should be IPv4
-			if (buffer.length - ip_icmp_ip_offset  < 20
-					|| (buffer[ip_icmp_ip_offset] & 0xf0) != 0x40)
-				return;
-
-			// The length of the IPv4 header is in mulitples of double words
-			var ip_icmp_ip_length = (buffer[ip_icmp_ip_offset] & 0x0f) * 4;
-
-			// ICMP message too short
-			if (buffer.length - ip_icmp_ip_offset - ip_icmp_ip_length < 8)
-				return;
-
-			offset = ip_icmp_ip_offset + ip_icmp_ip_length;
-		} else {
-			offset = ip_icmp_offset
-		}
-	}
-
-	// Response is not for a request we generated
-	if (buffer.readUInt16BE (offset + 4) != this.sessionId)
-		return;
-
-	buffer[offset + 4] = 0;
-	
-	var id = buffer.readUInt16BE (offset + 6);
-	var req = this.reqs[id];
-
-	if (req) {
-		req.type = type;
-		req.code = code;
-		return req;
-	} else {
-		return null;
-	}
-};
-
-Session.prototype.onBeforeSocketSend = function (req) {
-	this.setTTL (req.ttl ? req.ttl : this.defaultTTL);
-}
-
-Session.prototype.onSocketClose = function () {
-	this.emit ("close");
-	this.flush (new Error ("Socket closed"));
-};
-
-Session.prototype.onSocketError = function (error) {
-	this.emit ("error", error);
-};
-
-Session.prototype.onSocketMessage = function (buffer, source) {
-	if (this._debug)
-		this._debugResponse (source, buffer);
-
-	var req = this.fromBuffer (buffer);
-	if (req) {
-		this.reqRemove (req.id);
-		
-		if (this.addressFamily == raw.AddressFamily.IPv6) {
-			if (req.type == 1) {
-				req.callback (new DestinationUnreachableError (source), req.target,
-						req.sent, new Date ());
-			} else if (req.type == 2) {
-				req.callback (new PacketTooBigError (source), req.target,
-						req.sent, new Date ());
-			} else if (req.type == 3) {
-				req.callback (new TimeExceededError (source), req.target,
-						req.sent, new Date ());
-			} else if (req.type == 4) {
-				req.callback (new ParameterProblemError (source), req.target,
-						req.sent, new Date ());
-			} else if (req.type == 129) {
-				req.callback (null, req.target,
-						req.sent, new Date ());
-			} else {
-				req.callback (new Error ("Unknown response type '" + req.type
-						+ "' (source=" + source + ")"), req.target,
-						req.sent, new Date ());
-			}
-		} else {
-			if (req.type == 0) {
-				req.callback (null, req.target,
-						req.sent, new Date ());
-			} else if (req.type == 3) {
-				req.callback (new DestinationUnreachableError (source), req.target,
-						req.sent, new Date ());
-			} else if (req.type == 4) {
-				req.callback (new SourceQuenchError (source), req.target,
-						req.sent, new Date ());
-			} else if (req.type == 5) {
-				req.callback (new RedirectReceivedError (source), req.target,
-						req.sent, new Date ());
-			} else if (req.type == 11) {
-				req.callback (new TimeExceededError (source), req.target,
-						req.sent, new Date ());
-			} else {
-				req.callback (new Error ("Unknown response type '" + req.type
-						+ "' (source=" + source + ")"), req.target,
-						req.sent, new Date ());
-			}
-		}
-	}
-};
-
-Session.prototype.onSocketSend = function (req, error, bytes) {
-	if (! req.sent)
-		req.sent = new Date ();
-	if (error) {
-		this.reqRemove (req.id);
-		req.callback (error, req.target, req.sent, req.sent);
-	} else {
-		var me = this;
-		req.timer = setTimeout (this.onTimeout.bind (me, req), req.timeout);
-	}
-};
-
-Session.prototype.onTimeout = function (req) {
-	if (req.retries > 0) {
-		req.retries--;
-		this.send (req);
-	} else {
-		this.reqRemove (req.id);
-		req.callback (new RequestTimedOutError ("Request timed out"),
-				req.target, req.sent, new Date ());
-	}
-};
-
-// Keep searching for an ID which is not in use
-Session.prototype._generateId = function () {
-	var startId = this.nextId++;
-	while (1) {
-		if (this.nextId > 65535)
-			this.nextId = 1;
-		if (this.reqs[this.nextId]) {
-			this.nextId++;
-		} else {
-			return this.nextId;
-		}
-		// No free request IDs
-		if (this.nextId == startId)
-			return;
-	}
-}
-
-Session.prototype.pingHost = function (target, callback) {
-	var id = this._generateId ();
-	if (! id) {
-		callback (new Error ("Too many requests outstanding"), target);
-		return this;
-	}
-
-	var req = {
-		id: id,
-		retries: this.retries,
-		timeout: this.timeout,
-		callback: callback,
-		target: target
-	};
-
-	this.reqQueue (req);
-
-	return this;
-};
-
-Session.prototype.reqQueue = function (req) {
-	req.buffer = this.toBuffer (req);
-
-	if (this._debug)
-		this._debugRequest (req.target, req);
-
-	this.reqs[req.id] = req;
-	this.reqsPending++;
-	this.send (req);
-	
-	return this;
-}
-
-Session.prototype.reqRemove = function (id) {
-	var req = this.reqs[id];
-	if (req) {
-		clearTimeout (req.timer);
-		delete req.timer;
-		delete this.reqs[req.id];
-		this.reqsPending--;
-	}
-	// If we have no more outstanding requests pause readable events
-	if (this.reqsPending <= 0)
-		if (! this.getSocket ().recvPaused)
-			this.getSocket ().pauseRecv ();
-	return req;
-};
-
-Session.prototype.send = function (req) {
-	var buffer = req.buffer;
-	var me = this;
-	// Resume readable events if the raw socket is paused
-	if (this.getSocket ().recvPaused)
-		this.getSocket ().resumeRecv ();
-	this.getSocket ().send (buffer, 0, buffer.length, req.target,
-			this.onBeforeSocketSend.bind (me, req),
-			this.onSocketSend.bind (me, req));
-};
-
-Session.prototype.setTTL = function (ttl) {
-	if (this.ttl && this.ttl == ttl)
-		return;
-
-	var level = this.addressFamily == raw.AddressFamily.IPv6
-			? raw.SocketLevel.IPPROTO_IPV6
-			: raw.SocketLevel.IPPROTO_IP;
-	this.getSocket ().setOption (level, raw.SocketOption.IP_TTL, ttl);
-	this.ttl = ttl;
-}
-
-Session.prototype.toBuffer = function (req) {
-	var buffer = new Buffer (this.packetSize);
-
-	// Since our buffer represents real memory we should initialise it to
-	// prevent its previous contents from leaking to the network.
-	for (var i = 8; i < this.packetSize; i++)
-		buffer[i] = 0;
-
-	var type = this.addressFamily == raw.AddressFamily.IPv6 ? 128 : 8;
-
-	buffer.writeUInt8 (type, 0);
-	buffer.writeUInt8 (0, 1);
-	buffer.writeUInt16BE (0, 2);
-	buffer.writeUInt16BE (this.sessionId, 4);
-	buffer.writeUInt16BE (req.id, 6);
-
-	raw.writeChecksum (buffer, 2, raw.createChecksum (buffer));
-
-	return buffer;
-};
-
-Session.prototype.traceRouteCallback = function (trace, req, error, target,
-		sent, rcvd) {
-	if (trace.feedCallback (error, target, req.ttl, sent, rcvd)) {
-		trace.doneCallback (new Error ("Trace forcibly stopped"), target);
-		return;
-	}
-
-	if (error) {
-		if (req.ttl >= trace.ttl) {
-			trace.doneCallback (error, target);
-			return;
-		}
-		
-		if ((error instanceof RequestTimedOutError) && ++trace.timeouts >= 3) {
-			trace.doneCallback (new Error ("Too many timeouts"), target);
-			return;
-		}
-
-		var id = this._generateId ();
-		if (! id) {
-			trace.doneCallback (new Error ("Too many requests outstanding"),
-					target);
-			return;
-		}
-
-		req.ttl++;
-		req.id = id;
-		var me = this;
-		req.retries = this.retries;
-		req.sent = null;
-		this.reqQueue (req);
-	} else {
-		trace.doneCallback (null, target);
-	}
-}
-
-Session.prototype.traceRoute = function (target, ttl, feedCallback,
-		doneCallback) {
-	if (! doneCallback) {
-		doneCallback = feedCallback;
-		feedCallback = ttl;
-		ttl = this.ttl;
-	}
-
-	var id = this._generateId ();
-	if (! id) {
-		var sent = new Date ();
-		callback (new Error ("Too many requests outstanding"), target,
-				sent, sent);
-		return this;
-	}
-
-	var trace = {
-		feedCallback: feedCallback,
-		doneCallback: doneCallback,
-		ttl: ttl,
-		timeouts: 0
-	};
-	
-	var me = this;
-
-	var req = {
-		id: id,
-		retries: this.retries,
-		timeout: this.timeout,
-		ttl: 1,
-		target: target
-	};
-	req.callback = me.traceRouteCallback.bind (me, trace, req);
-	
-	this.reqQueue (req);
-
-	return this;
-};
-
-exports.createSession = function (options) {
-	return new Session (options || {});
-};
-
-exports.NetworkProtocol = NetworkProtocol;
-
-exports.Session = Session;
-
-exports.DestinationUnreachableError = DestinationUnreachableError;
-exports.PacketTooBigError = PacketTooBigError;
-exports.ParameterProblemError = ParameterProblemError;
-exports.RedirectReceivedError = RedirectReceivedError;
-exports.RequestTimedOutError = RequestTimedOutError;
-exports.SourceQuenchError = SourceQuenchError;
-exports.TimeExceededError = TimeExceededError;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/.npmignore b/blackberry10/node_modules/net-ping/node_modules/raw-socket/.npmignore
deleted file mode 100644
index 4331a44..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-TODO
-build
-.hgignore
-.hgtags
-node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/README.md b/blackberry10/node_modules/net-ping/node_modules/raw-socket/README.md
deleted file mode 100644
index c9ec276..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/README.md
+++ /dev/null
@@ -1,651 +0,0 @@
-
-# raw-socket - [homepage][homepage]
-
-This module implements raw sockets for [Node.js][nodejs].
-
-*This module has been created primarily to facilitate implementation of the
-[net-ping][net-ping] module.*
-
-This module is installed using [node package manager (npm)][npm]:
-
-    # This module contains C++ source code which will be compiled
-    # during installation using node-gyp.  A suitable build chain
-    # must be configured before installation.
-    
-    npm install raw-socket
-
-It is loaded using the `require()` function:
-
-    var raw = require ("raw-socket");
-
-Raw sockets can then be created, and data sent using [Node.js][nodejs]
-`Buffer` objects:
-
-    var socket = raw.createSocket ({protocol: raw.Protocol.None});
-
-    socket.on ("message", function (buffer, source) {
-        console.log ("received " + buffer.length + " bytes from " + source);
-    });
-    
-    socket.send (buffer, 0, buffer.length, "1.1.1.1", function (error, bytes) {
-        if (error)
-            console.log (error.toString ());
-    });
-
-[homepage]: http://re-tool.org "Homepage"
-[nodejs]: http://nodejs.org "Node.js"
-[net-ping]: https://npmjs.org/package/net-ping "net-ping"
-[npm]: https://npmjs.org/ "npm"
-
-# Network Protocol Support
-
-The raw sockets exposed by this module support IPv4 and IPv6.
-
-Raw sockets are created using the operating systems `socket()` function, and
-the socket type `SOCK_RAW` specified.
-
-# Raw Socket Behaviour
-
-Raw sockets behave in different ways depending on operating system and
-version, and may support different socket options.
-
-Some operating system versions may restrict the use of raw sockets to
-privileged users.  If this is the case an exception will be thrown on socket
-creation using a message similar to `Operation not permitted` (this message
-is likely to be different depending on operating system version).
-
-The appropriate operating system documentation should be consulted to
-understand how raw sockets will behave before attempting to use this module.
-
-# Keeping The [Node.js][nodejs] Event Loop Alive
-
-This module uses the `libuv` library to integrate into the [Node.js][nodejs]
-event loop - this library is also used by [Node.js][nodejs].  An underlying
- `libuv` library `poll_handle_t` event watcher is used to monitor the
-underlying operating system raw socket used by a socket object.
-
-All the while a socket object exists, and the sockets `close()` method has not
-been called, the raw socket will keep the [Node.js][nodejs] event loop alive
-which will prevent a program from exiting.
-
-This module exports four methods which a program can use to control this
-behaviour.
-
-The `pauseRecv()` and `pauseSend()` methods stop the underlying `poll_handle_t`
-event watcher used by a socket from monitoring for readable and writeable
-events.  While the `resumeRecv()` and `resumeSend()` methods start the
-underlying `poll_handle_t` event watcher used by a socket allowing it to
-monitor for readable and writeable events.
-
-Each socket object also exports the `recvPaused` and `sendPaused` boolean
-attributes to determine the state of the underlying `poll_handle_t` event
-watcher used by a socket.
-
-Socket creation can be expensive on some platforms, and the above methods offer
-an alternative to closing and deleting a socket to prevent it from keeping the
-[Node.js][nodejs] event loop alive.
-
-The [Node.js][nodejs] [net-ping][net-ping] module offers a concrete example
-of using these methods.  Since [Node.js][nodejs] offers no raw socket support
-this module is used to implement ICMP echo (ping) support.  Once all ping
-requests have been processed by the [net-ping][net-ping] module the
-`pauseRecv()` and `pauseSend()` methods are used to allow a program to exit if
-required.
-
-The following example stops the underlying `poll_handle_t` event watcher used
-by a socket from generating writeable events, however since readable events
-will still be watched for the program will not exit immediately:
-
-    if (! socket.recvPaused)
-        socket.pauseRecv ();
-
-The following can the be used to resume readable events:
-
-    if (socket.recvPaused)
-        socket.resumeRecv ();
-
-The following example stops the underlying `poll_handle_t` event watcher used
-by a socket from generating both readable and writeable events, if no other
-event watchers have been setup (e.g. `setTimeout()`) the program will exit.
-
-    if (! socket.recvPaused)
-        socket.pauseRecv ();
-    if (! socket.sendPaused)
-        socket.pauseSend ();
-
-The following can the be used to resume both readable and writeable events:
-
-    if (socket.recvPaused)
-        socket.resumeRecv ();
-    if (socket.sendPaused)
-        socket.resumeSend ();
-
-When data is sent using a sockets `send()` method the `resumeSend()` method
-will be called if the sockets `sendPaused` attribute is `true`, however the
-`resumeRecv()` method will not be called regardless of whether the sockets
-`recvPaused` attribute is `true` or `false`.
-
-[nodejs]: http://nodejs.org "Node.js"
-[net-ping]: http://npmjs.org/package/net-ping "net-ping"
-
-# Constants
-
-The following sections describe constants exported and used by this module.
-
-## raw.AddressFamily
-
-This object contains constants which can be used for the `addressFamily`
-option to the `createSocket()` function exposed by this module.  This option
-specifies the IP protocol version to use when creating the raw socket.
-
-The following constants are defined in this object:
-
- * `IPv4` - IPv4 protocol
- * `IPv6` - IPv6 protocol
-
-## raw.Protocol
-
-This object contains constants which can be used for the `protocol` option to
-the `createSocket()` function exposed by this module.  This option specifies
-the protocol number to place in the protocol field of IP headers generated by
-the operating system.
-
-The following constants are defined in this object:
-
- * `None` - protocol number 0
- * `ICMP` - protocol number 1
- * `TCP` - protocol number 6
- * `UDP` - protocol number 17
- * `ICMPv6` - protocol number 58
-
-## raw.SocketLevel
-
-This object contains constants which can be used for the `level` parameter to
-the `getOption()` and `setOption()` methods exposed by this module.
-
-The following constants are defined in this object:
-
- * `SOL_SOCKET`
- * `IPPROTO_IP`
- * `IPPROTO_IPV6`
-
-## raw.SocketOption
-
-This object contains constants which can be used for the `option` parameter to
-the `getOption()` and `setOption()` methods exposed by this module.
-
-The following constants are defined in this object:
-
- * `SO_RCVBUF`
- * `SO_RCVTIMEO`
- * `SO_SNDBUF`
- * `SO_SNDTIMEO`
- * `IP_HDRINCL`
- * `IP_OPTIONS`
- * `IP_TOS`
- * `IP_TTL`
- * `IPV6_TTL`
- * `IPV6_UNICAST_HOPS`
- * `IPV6_V6ONLY`
-
-*The `IPV6_TTL` socket option is not known to be defined by any operating
-system, it is provided in convenience to be synonymous with IPv4*
-
-For Windows platforms the following constant is also defined:
-
- * `IPV6_HDRINCL`
-
-# Using This Module
-
-Raw sockets are represented by an instance of the `Socket` class.  This
-module exports the `createSocket()` function which is used to create
-instances of the `Socket` class.
-
-The module also exports a number of stubs which call through to a number of
-functions provided by the operating system, i.e. `htonl()`.
-
-This module also exports a function to generate protocol checksums.
-
-## raw.createChecksum (bufferOrObject, [bufferOrObject, ...])
-
-The `createChecksum()` function creates and returns a 16 bit one's complement
-of the one's complement sum for all the data specified in one or more
-[Node.js][nodejs] `Buffer` objects.  This is useful for creating checksums for
-protocols such as IP, TCP, UDP and ICMP.
-
-The `bufferOrObject` parameter can be one of two types.  The first is a
-[Node.js][nodejs] `Buffer` object.  In this case a checksum is calculated from
-all the data it contains.  The `bufferOrObject` parameter can also be an
-object which must contain the following attributes:
-
- * `buffer` - A [Node.js][nodejs] `Buffer` object which contains data which
-   to generate a checksum for
- * `offset` - Skip this number of bytes from the beginning of `buffer`
- * `length` - Only generate a checksum for this number of bytes in `buffer`
-   from `offset`
-
-The second parameter type provides control over how much of the data in a
-[Node.js][nodejs] `Buffer` object a checksum should be generated for.
-
-When more than one parameter is passed a single checksum is calculated as if
-the data in in all parameters were in a single buffer.  This is useful for
-when calulating checksums for TCP and UDP for example - where a psuedo header
-must be created and used for checksum calculation.
-
-In this case two buffers can be passed, the first containing the psuedo header
-and the second containing the real TCP packet, and the offset and length
-parameters used to specify the bounds of the TCP packet payload.
-
-The following example generates a checksum for a TCP packet and its psuedo
-header:
-
-    var sum = raw.createChecksum (pseudo_header, {buffer: tcp_packet,
-            offset: 20, length: tcp_packet.length - 20});
-
-Both buffers will be treated as one, i.e. as if the data at offset `20` in
-`tcp_packet` had followed all data in `pseudo_header` - as if they were one
-buffer.
-
-## raw.writeChecksum (buffer, offset, checksum)
-
-The `writeChecksum()` function writes a checksum created by the
-`raw.createChecksum()` function to the [Node.js][nodejs] `Buffer` object 
-`buffer` at offsets `offset` and `offset` + 1.
-
-The following example generates and writes a checksum at offset `2` in a
-[Node.js][nodejs] `Buffer` object:
-
-    raw.writeChecksum (buffer, 2, raw.createChecksum (buffer));
-
-## raw.htonl (uint32)
-
-The `htonl()` function converts a 32 bit unsigned integer from host byte
-order to network byte order and returns the result.  This function is simply
-a stub through to the operating systems `htonl()` function.
-
-## raw.htons (uint16)
-
-The `htons()` function converts a 16 bit unsigned integer from host byte
-order to network byte order and returns the result.  This function is simply
-a stub through to the operating systems `htons()` function.
-
-## raw.ntohl (uint32)
-
-The `ntohl()` function converts a 32 bit unsigned integer from network byte
-order to host byte order and returns the result.  This function is simply
-a stub through to the operating systems `ntohl()` function.
-
-## raw.ntohs (uint16)
-
-The `ntohs()` function converts a 16 bit unsigned integer from network byte
-order to host byte order and returns the result.  This function is simply
-a stub through to the operating systems `ntohs()` function.
-
-## raw.createSocket ([options])
-
-The `createSocket()` function instantiates and returns an instance of the
-`Socket` class:
-
-    // Default options
-    var options = {
-        addressFamily: raw.AddressFamily.IPv4,
-        protocol: raw.Protocol.None,
-        bufferSize: 4096,
-        generateChecksums: false,
-        checksumOffset: 0
-    };
-    
-    var socket = raw.createSocket (options);
-
-The optional `options` parameter is an object, and can contain the following
-items:
-
- * `addressFamily` - Either the constant `raw.AddressFamily.IPv4` or the
-   constant `raw.AddressFamily.IPv6`, defaults to the constant
-   `raw.AddressFamily.IPv4`
- * `protocol` - Either one of the constants defined in the `raw.Protocol`
-   object or the protocol number to use for the socket, defaults to the
-   consant `raw.Protocol.None`
- * `bufferSize` - Size, in bytes, of the sockets internal receive buffer,
-   defaults to 4096
- * `generateChecksums` - Either `true` or `false` to enable or disable the
-   automatic checksum generation feature, defaults to `false`
- * `checksumOffset` - When `generateChecksums` is `true` specifies how many
-   bytes to index into the send buffer to write automatically generated
-   checksums, defaults to `0`
-
-An exception will be thrown if the underlying raw socket could not be created.
-The error will be an instance of the `Error` class.
-
-The `protocol` parameter, or its default value of the constant
-`raw.Protocol.None`, will be specified in the protocol field of each IP
-header.
-
-## socket.on ("close", callback)
-
-The `close` event is emitted by the socket when the underlying raw socket
-is closed.
-
-No arguments are passed to the callback.
-
-The following example prints a message to the console when the socket is
-closed:
-
-    socket.on ("close", function () {
-        console.log ("socket closed");
-    });
-
-## socket.on ("error", callback)
-
-The `error` event is emitted by the socket when an error occurs sending or
-receiving data.
-
-The following arguments will be passed to the `callback` function:
-
- * `error` - An instance of the `Error` class, the exposed `message` attribute
-   will contain a detailed error message.
-
-The following example prints a message to the console when an error occurs,
-after which the socket is closed:
-
-    socket.on ("error", function (error) {
-        console.log (error.toString ());
-        socket.close ();
-    });
-
-## socket.on ("message", callback)
-
-The `message` event is emitted by the socket when data has been received.
-
-The following arguments will be passed to the `callback` function:
-
- * `buffer` - A [Node.js][nodejs] `Buffer` object containing the data
-   received, the buffer will be sized to fit the data received, that is the
-   `length` attribute of buffer will specify how many bytes were received
- * `address` - For IPv4 raw sockets the dotted quad formatted source IP
-   address of the message, e.g `192.168.1.254`, for IPv6 raw sockets the
-   compressed formatted source IP address of the message, e.g.
-   `fe80::a00:27ff:fe2a:3427`
-
-The following example prints received messages in hexadecimal to the console:
-
-    socket.on ("message", function (buffer, address) {
-        console.log ("received " + buffer.length + " bytes from " + address
-                + ": " + buffer.toString ("hex"));
-    });
-
-## socket.generateChecksums (generate, offset)
-
-The `generateChecksums()` method is used to specify whether automatic checksum
-generation should be performed by the socket.
-
-The `generate` parameter is either `true` or `false` to enable or disable the
-feature.  The optional `offset` parameter specifies how many bytes to index
-into the send buffer when writing the generated checksum to the send buffer.
-
-The following example enables automatic checksum generation at offset 2
-resulting in checksums being written to byte 3 and 4 of the send buffer
-(offsets start from 0, meaning byte 1):
-
-    socket.generateChecksums (true, 2);
-
-## socket.getOption (level, option, buffer, length)
-
-The `getOption()` method gets a socket option using the operating systems
-`getsockopt()` function.
-
-The `level` parameter is one of the constants defined in the `raw.SocketLevel`
-object.  The `option` parameter is one of the constants defined in the
-`raw.SocketOption` object.  The `buffer` parameter is a [Node.js][nodejs]
-`Buffer` object where the socket option value will be written.  The `length`
-parameter specifies the size of the `buffer` parameter.
-
-If an error occurs an exception will be thrown, the exception will be an
-instance of the `Error` class.
-
-The number of bytes written into the `buffer` parameter is returned, and can
-differ from the amount of space available.
-
-The following example retrieves the current value of `IP_TTL` socket option:
-
-    var level = raw.SocketLevel.IPPROTO_IP;
-    var option = raw.SocketOption.IP_TTL;
-    
-    # IP_TTL is a signed integer on some platforms so a 4 byte buffer is used
-    var buffer = new Buffer (4);
-    
-    var written = socket.getOption (level, option, buffer, buffer.length);
-    
-    console.log (buffer.toString ("hex"), 0, written);
-
-## socket.send (buffer, offset, length, address, beforeCallback, afterCallback)
-
-The `send()` method sends data to a remote host.
-
-The `buffer` parameter is a [Node.js][nodejs] `Buffer` object containing the
-data to be sent.  The `length` parameter specifies how many bytes from
-`buffer`, beginning at offset `offset`, to send.  For IPv4 raw sockets the
-`address` parameter contains the dotted quad formatted IP address of the
-remote host to send the data to, e.g `192.168.1.254`, for IPv6 raw sockets the
-`address` parameter contains the compressed formatted IP address of the remote
-host to send the data to, e.g. `fe80::a00:27ff:fe2a:3427`.  If provided the
-optional `beforeCallback` function is called right before the data is actually
-sent using the underlying raw socket, giving users the opportunity to perform
-pre-send actions such as setting a socket option, e.g. the IP header TTL.  No
-arguments are passed to the `beforeCallback` function.  The `afterCallback`
-function is called once the data has been sent.  The following arguments will
-be passed to the `afterCallback` function:
-
- * `error` - Instance of the `Error` class, or `null` if no error occurred
- * `bytes` - Number of bytes sent
-
-The following example sends a ICMP ping message to a remote host, before the
-request is actually sent the IP header TTL is modified, and modified again
-after the data has been sent:
-
-    // ICMP echo (ping) request, checksum should be ok
-    var buffer = new Buffer ([
-            0x08, 0x00, 0x43, 0x52, 0x00, 0x01, 0x0a, 0x09,
-            0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
-            0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
-            0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x61,
-            0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69]);
-
-    var socketLevel = raw.SocketLevel.IPPROTO_IP
-    var socketOption = raw.SocketOption.IP_TTL;
-
-    function beforeSend () {
-        socket.setOption (socketLevel, socketOption, 1);
-    }
-    
-    function afterSend (error, bytes) {
-        if (error)
-            console.log (error.toString ());
-        else
-            console.log ("sent " + bytes + " bytes");
-        
-        socket.setOption (socketLevel, socketOption, 1);
-    }
-
-    socket.send (buffer, 0, buffer.length, target, beforeSend, afterSend);
-
-## socket.setOption (level, option, buffer, length)
-
-The `setOption()` method sets a socket option using the operating systems
-`setsockopt()` function.
-
-The `level` parameter is one of the constants defined in the `raw.SocketLevel`
-object.  The `option` parameter is one of the constants defined in the
-`raw.SocketOption` object.  The `buffer` parameter is a [Node.js][nodejs]
-`Buffer` object where the socket option value is specified.  The `length`
-parameter specifies how much space the option value occupies in the `buffer`
-parameter.
-
-If an error occurs an exception will be thrown, the exception will be an
-instance of the `Error` class.
-
-The following example sets the value of `IP_TTL` socket option to `1`:
-
-    var level = raw.SocketLevel.IPPROTO_IP;
-    var option = raw.SocketOption.IP_TTL;
-    
-    # IP_TTL is a signed integer on some platforms so a 4 byte buffer is used,
-    # x86 computers use little-endian format so specify bytes reverse order
-    var buffer = new Buffer ([0x01, 0x00, 0x00, 0x00]);
-    
-    socket.setOption (level, option, buffer, buffer.length);
-
-To avoid dealing with endianess the `setOption()` method supports a three
-argument form which can be used for socket options requiring a 32bit unsigned
-integer value (for example the `IP_TTL` socket option used in the previous
-example).  Its signature is as follows:
-
-    socket.setOption (level, option, value)
-
-The previous example can be re-written to use this form:
-
-    var level = raw.SocketLevel.IPPROTO_IP;
-    var option = raw.SocketOption.IP_TTL;
-
-    socket.setOption (level, option, 1);
-
-# Example Programs
-
-Example programs are included under the modules `example` directory.
-
-# Bugs & Known Issues
-
-None, yet!
-
-Bug reports should be sent to <st...@gmail.com>.
-
-# Changes
-
-## Version 1.0.0 - 29/01/2013
-
- * Initial release
-
-## Version 1.0.1 - 01/02/2013
-
- * Move `SOCKET_ERRNO` define from `raw.cc` to `raw.h`
- * Error in exception thrown by `SocketWrap::New` in `raw.cc` stated that two
-   arguments were required, this should be one
- * Corrections to the README.md
- * Missing includes causes compilation error on some systems (maybe Node
-   version dependant)
-
-## Version 1.0.2 - 02/02/2013
-
- * Support automatic checksum generation
-
-## Version 1.1.0 - 13/02/2013
-
- * The [net-ping][net-ping] module is now implemented so update the note about
-   it in the first section of the README.md
- * Support IPv6
- * Support the `IP_HDRINCL` socket option via the `noIpHeader` option to the
-   `createSocket()` function and the `noIpHeader()` method exposed by the
-   `Socket` class
-
-## Version 1.1.1 - 14/02/2013
-
- * IP addresses not being validated
-
-## Version 1.1.2 - 15/02/2013
-
- * Default protocol option to `createSession()` was incorrect in the README.md
- * The `session.on("message")` example used `message` instead of `buffer` in
-   the README.md
-
-## Version 1.1.3 - 04/03/2013
-
- * `raw.Socket.onSendReady()` emit's an error when `raw.SocketWrap.send()`
-   throws an exception when it should call the `req.callback` callback
- * Added the `pauseRecv()`, `resumeRecv()`, `pauseSend()` and `resumeSend()`
-   methods
-
-[net-ping]: https://npmjs.org/package/net-ping "net-ping"
-
-## Version 1.1.4 - 05/03/2013
-
- * Cleanup documentation for the `pauseSend()`, `pauseRecv()`, `resumeSend()`
-   and `resumeRecv()` methods in the README.md
-
-## Version 1.1.5 - 09/05/2013
-
- * Reformated lines in the README.md file inline with the rest of the file
- * Removed the `noIpHeader()` method (the `setOption()` method should be
-   used to configure the `IP_HDRINCL` socket option - and possibly
-   `IPV6_HDRINCL` on Windows platforms), and removed the `Automatic IP Header
-   Generation` section from the README.md file
- * Added the `setOption()` and `getOption()` methods, and added the
-   `SocketLevel` and `SocketOption` constants
- * Tidied up the example program `ping-no-ip-header.js` (now uses the
-   `setOption()` method to configure the `IP_HDRINCL` socket option)
- * Tidied up the example program `ping6-no-ip-header.js` (now uses the
-   `setOption()` method to configure the `IPV6_HDRINCL` socket option)
- * Added the example program `get-option.js`
- * Added the example program `ping-set-option-ip-ttl.js`
- * Use MIT license instead of GPL
-
-## Version 1.1.6 - 18/05/2013
-
- * Added the `beforeCallback` parameter to the `send()` method, and renamed the
-   `callback` parameter to `afterCallback`
- * Fixed a few typos in the README.md file
- * Modified the example program `ping-set-option-ip-ttl.js` to use the
-   `beforeCallback` parameter to the `send()` method
- * The example program `ping6-no-ip-header.js` was not passing the correct
-   arguments to the `setOption()` method
-
-## Version 1.1.7 - 23/06/2013
-
- * Added the `htonl()`, `htons()`, `ntohl()`, and `ntohs()` functions, and
-   associated example programs
- * Added the `createChecksum()` function, and associated example program
-
-## Version 1.1.8 - 01/07/2013
-
- * Added the `writeChecksum()` function
- * Removed the "Automated Checksum Generation" feature - this has been
-   replaced with the `createChecksum()` and `writeChecksum()` functions
-
-## Version 1.2.0 - 02/07/2013
-
- * Up version number to 1.2.0 (we should have done this for 1.1.8 because it
-   introduced some API breaking changes)
-
-# Roadmap
-
-In no particular order:
-
- * Enhance performance by moving the send queue into the C++ raw::SocketWrap
-   class
-
-Suggestions and requirements should be sent to <st...@gmail.com>.
-
-# License
-
-Copyright (c) 2013 Stephen Vickers
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-# Author
-
-Stephen Vickers <st...@gmail.com>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/binding.gyp
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/binding.gyp b/blackberry10/node_modules/net-ping/node_modules/raw-socket/binding.gyp
deleted file mode 100644
index 53b5e06..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/binding.gyp
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  'targets': [
-    {
-      'target_name': 'raw',
-      'sources': [
-        'src/raw.cc'
-      ],
-      'conditions' : [
-        ['OS=="win"', {
-          'libraries' : ['ws2_32.lib']
-        }]
-      ]
-    }
-  ]
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/index.js b/blackberry10/node_modules/net-ping/node_modules/raw-socket/index.js
deleted file mode 100644
index 211523e..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/index.js
+++ /dev/null
@@ -1,216 +0,0 @@
-
-var events = require ("events");
-var net = require ("net");
-var raw = require ("./build/Release/raw");
-var util = require ("util");
-
-function _expandConstantObject (object) {
-	var keys = [];
-	for (key in object)
-		keys.push (key);
-	for (var i = 0; i < keys.length; i++)
-		object[object[keys[i]]] = parseInt (keys[i]);
-}
-
-var AddressFamily = {
-	1: "IPv4",
-	2: "IPv6"
-};
-
-_expandConstantObject (AddressFamily);
-
-var Protocol = {
-	0: "None",
-	1: "ICMP",
-	6: "TCP",
-	17: "UDP",
-	58: "ICMPv6"
-};
-
-_expandConstantObject (Protocol);
-
-for (var key in events.EventEmitter.prototype) {
-  raw.SocketWrap.prototype[key] = events.EventEmitter.prototype[key];
-}
-
-function Socket (options) {
-	Socket.super_.call (this);
-
-	this.requests = [];
-	this.buffer = new Buffer ((options && options.bufferSize)
-			? options.bufferSize
-			: 4096);
-
-	this.recvPaused = false;
-	this.sendPaused = true;
-
-	this.wrap = new raw.SocketWrap (
-			((options && options.protocol)
-					? options.protocol
-					: 0),
-			((options && options.addressFamily)
-					? options.addressFamily
-					: AddressFamily.IPv4)
-		);
-
-	var me = this;
-	this.wrap.on ("sendReady", this.onSendReady.bind (me));
-	this.wrap.on ("recvReady", this.onRecvReady.bind (me));
-	this.wrap.on ("error", this.onError.bind (me));
-	this.wrap.on ("close", this.onClose.bind (me));
-};
-
-util.inherits (Socket, events.EventEmitter);
-
-Socket.prototype.close = function () {
-	this.wrap.close ();
-	return this;
-}
-
-Socket.prototype.getOption = function (level, option, value, length) {
-	return this.wrap.getOption (level, option, value, length);
-}
-
-Socket.prototype.onClose = function () {
-	this.emit ("close");
-}
-
-Socket.prototype.onError = function (error) {
-	this.emit ("error", error);
-	this.close ();
-}
-
-Socket.prototype.onRecvReady = function () {
-	var me = this;
-	try {
-		this.wrap.recv (this.buffer, function (buffer, bytes, source) {
-			var newBuffer = buffer.slice (0, bytes);
-			me.emit ("message", newBuffer, source);
-		});
-	} catch (error) {
-		me.emit ("error", error);
-	}
-}
-
-Socket.prototype.onSendReady = function () {
-	if (this.requests.length > 0) {
-		var me = this;
-		var req = this.requests.shift ();
-		try {
-			if (req.beforeCallback)
-				req.beforeCallback ();
-			this.wrap.send (req.buffer, req.offset, req.length,
-					req.address, function (bytes) {
-				req.afterCallback.call (me, null, bytes);
-			});
-		} catch (error) {
-			req.afterCallback.call (me, error, 0);
-		}
-	} else {
-		if (! this.sendPaused)
-			this.pauseSend ();
-	}
-}
-
-Socket.prototype.pauseRecv = function () {
-	this.recvPaused = true;
-	this.wrap.pause (this.recvPaused, this.sendPaused);
-	return this;
-}
-
-Socket.prototype.pauseSend = function () {
-	this.sendPaused = true;
-	this.wrap.pause (this.recvPaused, this.sendPaused);
-	return this;
-}
-
-Socket.prototype.resumeRecv = function () {
-	this.recvPaused = false;
-	this.wrap.pause (this.recvPaused, this.sendPaused);
-	return this;
-}
-
-Socket.prototype.resumeSend = function () {
-	this.sendPaused = false;
-	this.wrap.pause (this.recvPaused, this.sendPaused);
-	return this;
-}
-
-Socket.prototype.send = function (buffer, offset, length, address,
-		beforeCallback, afterCallback) {
-	if (! afterCallback) {
-		afterCallback = beforeCallback;
-		beforeCallback = null;
-	}
-
-	if (length + offset > buffer.length)  {
-		afterCallback.call (this, new Error ("Buffer length '" + buffer.length
-				+ "' is not large enough for the specified offset '" + offset
-				+ "' plus length '" + length + "'"));
-		return this;
-	}
-
-	if (! net.isIP (address)) {
-		afterCallback.call (this, new Error ("Invalid IP address '" + address + "'"));
-		return this;
-	}
-
-	var req = {
-		buffer: buffer,
-		offset: offset,
-		length: length,
-		address: address,
-		afterCallback: afterCallback,
-		beforeCallback: beforeCallback
-	};
-	this.requests.push (req);
-
-	if (this.sendPaused)
-		this.resumeSend ();
-
-	return this;
-}
-
-Socket.prototype.setOption = function (level, option, value, length) {
-	if (arguments.length > 3)
-		this.wrap.setOption (level, option, value, length);
-	else
-		this.wrap.setOption (level, option, value);
-}
-
-exports.createChecksum = function () {
-	var sum = 0;
-	for (var i = 0; i < arguments.length; i++) {
-		var object = arguments[i];
-		if (object instanceof Buffer) {
-			sum = raw.createChecksum (sum, object, 0, object.length);
-		} else {
-			sum = raw.createChecksum (sum, object.buffer, object.offset,
-					object.length);
-		}
-	}
-	return sum;
-}
-
-exports.writeChecksum = function (buffer, offset, checksum) {
-	buffer.writeUInt8 ((checksum & 0xff00) >> 8, offset);
-	buffer.writeUInt8 (checksum & 0xff, offset + 1);
-	return buffer;
-}
-
-exports.createSocket = function (options) {
-	return new Socket (options || {});
-};
-
-exports.AddressFamily = AddressFamily;
-exports.Protocol = Protocol;
-
-exports.Socket = Socket;
-
-exports.SocketLevel = raw.SocketLevel;
-exports.SocketOption = raw.SocketOption;
-
-exports.htonl = raw.htonl;
-exports.htons = raw.htons;
-exports.ntohl = raw.ntohl;
-exports.ntohs = raw.ntohs;


[09/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/index.html
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/index.html b/blackberry10/node_modules/plugman/node_modules/underscore/index.html
deleted file mode 100644
index 8c5793a..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/index.html
+++ /dev/null
@@ -1,2467 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
-  <meta http-equiv="X-UA-Compatible" content="chrome=1" />
-  <meta name="viewport" content="width=device-width" />
-  <link rel="canonical" href="http://underscorejs.org" />
-  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
-  <title>Underscore.js</title>
-  <style>
-    body {
-      font-size: 14px;
-      line-height: 22px;
-      background: #f4f4f4 url(docs/images/background.png);
-      color: #000;
-      font-family: Helvetica Neue, Helvetica, Arial;
-    }
-    .interface {
-      font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, sans-serif !important;
-    }
-    div#sidebar {
-      background: #fff;
-      position: fixed;
-      top: 0; left: 0; bottom: 0;
-      width: 200px;
-      overflow-y: auto;
-      overflow-x: hidden;
-      -webkit-overflow-scrolling: touch;
-      padding: 15px 0 30px 30px;
-      border-right: 1px solid #bbb;
-      box-shadow: 0 0 20px #ccc; -webkit-box-shadow: 0 0 20px #ccc; -moz-box-shadow: 0 0 20px #ccc;
-    }
-    a.toc_title, a.toc_title:visited {
-      display: block;
-      color: black;
-      font-weight: bold;
-      margin-top: 15px;
-    }
-      a.toc_title:hover {
-        text-decoration: underline;
-      }
-      #sidebar .version {
-        font-size: 10px;
-        font-weight: normal;
-      }
-    ul.toc_section {
-      font-size: 11px;
-      line-height: 14px;
-      margin: 5px 0 0 0;
-      padding-left: 0px;
-      list-style-type: none;
-      font-family: Lucida Grande;
-    }
-      .toc_section li {
-        cursor: pointer;
-        margin: 0 0 3px 0;
-      }
-        .toc_section li a {
-          text-decoration: none;
-          color: black;
-        }
-          .toc_section li a:hover {
-            text-decoration: underline;
-          }
-    div.container {
-      width: 550px;
-      margin: 40px 0 50px 260px;
-    }
-    img#logo {
-      width: 396px;
-      height: 69px;
-    }
-    div.warning {
-      margin-top: 15px;
-      font: bold 11px Arial;
-      color: #770000;
-    }
-    p {
-      margin: 20px 0;
-      width: 550px;
-    }
-    a, a:visited {
-      color: #444;
-    }
-    a:active, a:hover {
-      color: #000;
-    }
-    h1, h2, h3, h4, h5, h6 {
-      padding-top: 20px;
-    }
-      h2 {
-        font-size: 20px;
-      }
-    b.header {
-      font-size: 16px;
-      line-height: 30px;
-    }
-    span.alias {
-      font-size: 14px;
-      font-style: italic;
-      margin-left: 20px;
-    }
-    table, tr, td {
-      margin: 0; padding: 0;
-    }
-      td {
-        padding: 2px 12px 2px 0;
-      }
-      table .rule {
-        height: 1px;
-        background: #ccc;
-        margin: 5px 0;
-      }
-    ul {
-      list-style-type: circle;
-      padding: 0 0 0 20px;
-    }
-      li {
-        width: 500px;
-        margin-bottom: 10px;
-      }
-      code, pre, tt {
-        font-family: Monaco, Consolas, "Lucida Console", monospace;
-        font-size: 12px;
-        line-height: 18px;
-        font-style: normal;
-      }
-        tt {
-          padding: 0px 3px;
-          background: #fff;
-          border: 1px solid #ddd;
-          zoom: 1;
-        }
-        code {
-          margin-left: 20px;
-        }
-        pre {
-          font-size: 12px;
-          padding: 2px 0 2px 15px;
-          border-left: 5px solid #bbb;
-          margin: 0px 0 30px;
-        }
-    @media only screen and (-webkit-min-device-pixel-ratio: 1.5) and (max-width: 640px),
-          only screen and (-o-min-device-pixel-ratio: 3/2) and (max-width: 640px),
-          only screen and (min-device-pixel-ratio: 1.5) and (max-width: 640px) {
-      img {
-        max-width: 100%;
-      }
-      div#sidebar {
-        -webkit-overflow-scrolling: initial;
-        position: relative;
-        width: 90%;
-        height: 120px;
-        left: 0;
-        top: -7px;
-        padding: 10px 0 10px 30px;
-        border: 0;
-      }
-      img#logo {
-        width: auto;
-        height: auto;
-      }
-      div.container {
-        margin: 0;
-        width: 100%;
-      }
-      p, div.container ul {
-        max-width: 98%;
-        overflow-x: scroll;
-      }
-      pre {
-        overflow: scroll;
-      }
-    }
-  </style>
-</head>
-<body>
-
-  <div id="sidebar" class="interface">
-
-    <a class="toc_title" href="#">
-      Underscore.js <span class="version">(1.4.4)</span>
-    </a>
-    <ul class="toc_section">
-      <li>&raquo; <a href="http://github.com/documentcloud/underscore">GitHub Repository</a></li>
-      <li>&raquo; <a href="docs/underscore.html">Annotated Source</a></li>
-    </ul>
-
-    <a class="toc_title" href="#">
-      Introduction
-    </a>
-
-    <a class="toc_title" href="#collections">
-      Collections
-    </a>
-    <ul class="toc_section">
-      <li>- <a href="#each">each</a></li>
-      <li>- <a href="#map">map</a></li>
-      <li>- <a href="#reduce">reduce</a></li>
-      <li>- <a href="#reduceRight">reduceRight</a></li>
-      <li>- <a href="#find">find</a></li>
-      <li>- <a href="#filter">filter</a></li>
-      <li>- <a href="#where">where</a></li>
-      <li>- <a href="#findWhere">findWhere</a></li>
-      <li>- <a href="#reject">reject</a></li>
-      <li>- <a href="#every">every</a></li>
-      <li>- <a href="#some">some</a></li>
-      <li>- <a href="#contains">contains</a></li>
-      <li>- <a href="#invoke">invoke</a></li>
-      <li>- <a href="#pluck">pluck</a></li>
-      <li>- <a href="#max">max</a></li>
-      <li>- <a href="#min">min</a></li>
-      <li>- <a href="#sortBy">sortBy</a></li>
-      <li>- <a href="#groupBy">groupBy</a></li>
-      <li>- <a href="#countBy">countBy</a></li>
-      <li>- <a href="#shuffle">shuffle</a></li>
-      <li>- <a href="#toArray">toArray</a></li>
-      <li>- <a href="#size">size</a></li>
-    </ul>
-
-    <a class="toc_title" href="#arrays">
-      Arrays
-    </a>
-    <ul class="toc_section">
-      <li>- <a href="#first">first</a></li>
-      <li>- <a href="#initial">initial</a></li>
-      <li>- <a href="#last">last</a></li>
-      <li>- <a href="#rest">rest</a></li>
-      <li>- <a href="#compact">compact</a></li>
-      <li>- <a href="#flatten">flatten</a></li>
-      <li>- <a href="#without">without</a></li>
-      <li>- <a href="#union">union</a></li>
-      <li>- <a href="#intersection">intersection</a></li>
-      <li>- <a href="#difference">difference</a></li>
-      <li>- <a href="#uniq">uniq</a></li>
-      <li>- <a href="#zip">zip</a></li>
-      <li>- <a href="#object">object</a></li>
-      <li>- <a href="#indexOf">indexOf</a></li>
-      <li>- <a href="#lastIndexOf">lastIndexOf</a></li>
-      <li>- <a href="#sortedIndex">sortedIndex</a></li>
-      <li>- <a href="#range">range</a></li>
-    </ul>
-
-    <a class="toc_title" href="#functions">
-      Functions
-    </a>
-    <ul class="toc_section">
-      <li>- <a href="#bind">bind</a></li>
-      <li>- <a href="#bindAll">bindAll</a></li>
-      <li>- <a href="#partial">partial</a></li>
-      <li>- <a href="#memoize">memoize</a></li>
-      <li>- <a href="#delay">delay</a></li>
-      <li>- <a href="#defer">defer</a></li>
-      <li>- <a href="#throttle">throttle</a></li>
-      <li>- <a href="#debounce">debounce</a></li>
-      <li>- <a href="#once">once</a></li>
-      <li>- <a href="#after">after</a></li>
-      <li>- <a href="#wrap">wrap</a></li>
-      <li>- <a href="#compose">compose</a></li>
-    </ul>
-
-    <a class="toc_title" href="#objects">
-      Objects
-    </a>
-    <ul class="toc_section">
-      <li>- <a href="#keys">keys</a></li>
-      <li>- <a href="#values">values</a></li>
-      <li>- <a href="#pairs">pairs</a></li>
-      <li>- <a href="#invert">invert</a></li>
-      <li>- <a href="#object-functions">functions</a></li>
-      <li>- <a href="#extend">extend</a></li>
-      <li>- <a href="#pick">pick</a></li>
-      <li>- <a href="#omit">omit</a></li>
-      <li>- <a href="#defaults">defaults</a></li>
-      <li>- <a href="#clone">clone</a></li>
-      <li>- <a href="#tap">tap</a></li>
-      <li>- <a href="#has">has</a></li>
-      <li>- <a href="#isEqual">isEqual</a></li>
-      <li>- <a href="#isEmpty">isEmpty</a></li>
-      <li>- <a href="#isElement">isElement</a></li>
-      <li>- <a href="#isArray">isArray</a></li>
-      <li>- <a href="#isObject">isObject</a></li>
-      <li>- <a href="#isArguments">isArguments</a></li>
-      <li>- <a href="#isFunction">isFunction</a></li>
-      <li>- <a href="#isString">isString</a></li>
-      <li>- <a href="#isNumber">isNumber</a></li>
-      <li>- <a href="#isFinite">isFinite</a></li>
-      <li>- <a href="#isBoolean">isBoolean</a></li>
-      <li>- <a href="#isDate">isDate</a></li>
-      <li>- <a href="#isRegExp">isRegExp</a></li>
-      <li>- <a href="#isNaN">isNaN</a></li>
-      <li>- <a href="#isNull">isNull</a></li>
-      <li>- <a href="#isUndefined">isUndefined</a></li>
-    </ul>
-
-    <a class="toc_title" href="#utility">
-      Utility
-    </a>
-    <ul class="toc_section">
-      <li>- <a href="#noConflict">noConflict</a></li>
-      <li>- <a href="#identity">identity</a></li>
-      <li>- <a href="#times">times</a></li>
-      <li>- <a href="#random">random</a></li>
-      <li>- <a href="#mixin">mixin</a></li>
-      <li>- <a href="#uniqueId">uniqueId</a></li>
-      <li>- <a href="#escape">escape</a></li>
-      <li>- <a href="#unescape">unescape</a></li>
-      <li>- <a href="#result">result</a></li>
-      <li>- <a href="#template">template</a></li>
-    </ul>
-
-    <a class="toc_title" href="#chaining">
-      Chaining
-    </a>
-    <ul class="toc_section">
-      <li>- <a href="#chain">chain</a></li>
-      <li>- <a href="#value">value</a></li>
-    </ul>
-
-    <a class="toc_title" href="#links">
-      Links
-    </a>
-
-    <a class="toc_title" href="#changelog">
-      Change Log
-    </a>
-
-  </div>
-
-  <div class="container">
-
-    <p id="introduction">
-      <img id="logo" src="docs/images/underscore.png" alt="Underscore.js" />
-    </p>
-
-    <p>
-      <a href="http://github.com/documentcloud/underscore/">Underscore</a> is a
-      utility-belt library for JavaScript that provides a lot of the
-      functional programming support that you would expect in
-      <a href="http://prototypejs.org/doc/latest/">Prototype.js</a>
-      (or <a href="http://www.ruby-doc.org/core/classes/Enumerable.html">Ruby</a>),
-      but without extending any of the built-in JavaScript objects. It's the
-      tie to go along with <a href="http://docs.jquery.com">jQuery</a>'s tux,
-      and <a href="http://backbonejs.org">Backbone.js</a>'s suspenders.
-    </p>
-
-    <p>
-      Underscore provides 80-odd functions that support both the usual
-      functional suspects: <b>map</b>, <b>select</b>, <b>invoke</b> &mdash;
-      as well as more specialized helpers: function binding, javascript
-      templating, deep equality testing, and so on. It delegates to built-in
-      functions, if present, so modern browsers will use the
-      native implementations of <b>forEach</b>, <b>map</b>, <b>reduce</b>,
-      <b>filter</b>, <b>every</b>, <b>some</b> and <b>indexOf</b>.
-    </p>
-
-    <p>
-      A complete <a href="test/">Test &amp; Benchmark Suite</a>
-      is included for your perusal.
-    </p>
-
-    <p>
-      You may also read through the <a href="docs/underscore.html">annotated source code</a>.
-    </p>
-
-    <p>
-      The project is
-      <a href="http://github.com/documentcloud/underscore/">hosted on GitHub</a>.
-      You can report bugs and discuss features on the
-      <a href="http://github.com/documentcloud/underscore/issues">issues page</a>,
-      on Freenode in the <tt>#documentcloud</tt> channel,
-      or send tweets to <a href="http://twitter.com/documentcloud">@documentcloud</a>.
-    </p>
-
-    <p>
-      <i>Underscore is an open-source component of <a href="http://documentcloud.org/">DocumentCloud</a>.</i>
-    </p>
-
-    <h2>Downloads <i style="padding-left: 12px; font-size:12px;">(Right-click, and use "Save As")</i></h2>
-
-    <table>
-      <tr>
-        <td><a href="underscore.js">Development Version (1.4.4)</a></td>
-        <td><i>40kb, Uncompressed with Plentiful Comments</i></td>
-      </tr>
-      <tr>
-        <td><a href="underscore-min.js">Production Version (1.4.4)</a></td>
-        <td><i>4kb, Minified and Gzipped</i></td>
-      </tr>
-      <tr>
-        <td colspan="2"><div class="rule"></div></td>
-      </tr>
-      <tr>
-        <td><a href="https://raw.github.com/documentcloud/underscore/master/underscore.js">Edge Version</a></td>
-        <td><i>Unreleased, current <tt>master</tt>, use at your own risk</i></td>
-      </tr>
-    </table>
-
-    <div id="documentation">
-
-      <h2 id="collections">Collection Functions (Arrays or Objects)</h2>
-
-      <p id="each">
-        <b class="header">each</b><code>_.each(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>forEach</b></span>
-        <br />
-        Iterates over a <b>list</b> of elements, yielding each in turn to an <b>iterator</b>
-        function. The <b>iterator</b> is bound to the <b>context</b> object, if one is
-        passed. Each invocation of <b>iterator</b> is called with three arguments:
-        <tt>(element, index, list)</tt>. If <b>list</b> is a JavaScript object, <b>iterator</b>'s
-        arguments will be <tt>(value, key, list)</tt>. Delegates to the native
-        <b>forEach</b> function if it exists.
-      </p>
-      <pre>
-_.each([1, 2, 3], alert);
-=&gt; alerts each number in turn...
-_.each({one : 1, two : 2, three : 3}, alert);
-=&gt; alerts each number value in turn...</pre>
-
-      <p id="map">
-        <b class="header">map</b><code>_.map(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>collect</b></span>
-        <br />
-        Produces a new array of values by mapping each value in <b>list</b>
-        through a transformation function (<b>iterator</b>). If the native <b>map</b> method
-        exists, it will be used instead. If <b>list</b> is a JavaScript object,
-        <b>iterator</b>'s arguments will be <tt>(value, key, list)</tt>.
-      </p>
-      <pre>
-_.map([1, 2, 3], function(num){ return num * 3; });
-=&gt; [3, 6, 9]
-_.map({one : 1, two : 2, three : 3}, function(num, key){ return num * 3; });
-=&gt; [3, 6, 9]</pre>
-
-      <p id="reduce">
-        <b class="header">reduce</b><code>_.reduce(list, iterator, memo, [context])</code>
-        <span class="alias">Aliases: <b>inject, foldl</b></span>
-        <br />
-        Also known as <b>inject</b> and <b>foldl</b>, <b>reduce</b> boils down a
-        <b>list</b> of values into a single value. <b>Memo</b> is the initial state
-        of the reduction, and each successive step of it should be returned by
-        <b>iterator</b>. The iterator is passed four arguments: the <tt>memo</tt>,
-        then the <tt>value</tt> and <tt>index</tt> (or key) of the iteration,
-        and finally a reference to the entire <tt>list</tt>.
-      </p>
-      <pre>
-var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);
-=&gt; 6
-</pre>
-
-      <p id="reduceRight">
-        <b class="header">reduceRight</b><code>_.reduceRight(list, iterator, memo, [context])</code>
-        <span class="alias">Alias: <b>foldr</b></span>
-        <br />
-        The right-associative version of <b>reduce</b>. Delegates to the
-        JavaScript 1.8 version of <b>reduceRight</b>, if it exists. <b>Foldr</b>
-        is not as useful in JavaScript as it would be in a language with lazy
-        evaluation.
-      </p>
-      <pre>
-var list = [[0, 1], [2, 3], [4, 5]];
-var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);
-=&gt; [4, 5, 2, 3, 0, 1]
-</pre>
-
-      <p id="find">
-        <b class="header">find</b><code>_.find(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>detect</b></span>
-        <br />
-        Looks through each value in the <b>list</b>, returning the first one that
-        passes a truth test (<b>iterator</b>). The function returns as
-        soon as it finds an acceptable element, and doesn't traverse the
-        entire list.
-      </p>
-      <pre>
-var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
-=&gt; 2
-</pre>
-
-      <p id="filter">
-        <b class="header">filter</b><code>_.filter(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>select</b></span>
-        <br />
-        Looks through each value in the <b>list</b>, returning an array of all
-        the values that pass a truth test (<b>iterator</b>). Delegates to the
-        native <b>filter</b> method, if it exists.
-      </p>
-      <pre>
-var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
-=&gt; [2, 4, 6]
-</pre>
-
-      <p id="where">
-        <b class="header">where</b><code>_.where(list, properties)</code>
-        <br />
-        Looks through each value in the <b>list</b>, returning an array of all
-        the values that contain all of the key-value pairs listed in <b>properties</b>.
-      </p>
-      <pre>
-_.where(listOfPlays, {author: "Shakespeare", year: 1611});
-=&gt; [{title: "Cymbeline", author: "Shakespeare", year: 1611},
-    {title: "The Tempest", author: "Shakespeare", year: 1611}]
-</pre>
-
-      <p id="findWhere">
-        <b class="header">findWhere</b><code>_.findWhere(list, properties)</code>
-        <br />
-        Looks through the <b>list</b> and returns the <i>first</i> value that matches
-        all of the key-value pairs listed in <b>properties</b>.
-      </p>
-      <pre>
-_.findWhere(publicServicePulitzers, {newsroom: "The New York Times"});
-=&gt; {year: 1918, newsroom: "The New York Times",
-  reason: "For its public service in publishing in full so many official reports,
-  documents and speeches by European statesmen relating to the progress and
-  conduct of the war."}
-</pre>
-
-      <p id="reject">
-        <b class="header">reject</b><code>_.reject(list, iterator, [context])</code>
-        <br />
-        Returns the values in <b>list</b> without the elements that the truth
-        test (<b>iterator</b>) passes. The opposite of <b>filter</b>.
-      </p>
-      <pre>
-var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
-=&gt; [1, 3, 5]
-</pre>
-
-      <p id="every">
-        <b class="header">every</b><code>_.every(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>all</b></span>
-        <br />
-        Returns <i>true</i> if all of the values in the <b>list</b> pass the <b>iterator</b>
-        truth test. Delegates to the native method <b>every</b>, if present.
-      </p>
-      <pre>
-_.every([true, 1, null, 'yes'], _.identity);
-=&gt; false
-</pre>
-
-      <p id="some">
-        <b class="header">some</b><code>_.some(list, [iterator], [context])</code>
-        <span class="alias">Alias: <b>any</b></span>
-        <br />
-        Returns <i>true</i> if any of the values in the <b>list</b> pass the
-        <b>iterator</b> truth test. Short-circuits and stops traversing the list
-        if a true element is found. Delegates to the native method <b>some</b>,
-        if present.
-      </p>
-      <pre>
-_.some([null, 0, 'yes', false]);
-=&gt; true
-</pre>
-
-      <p id="contains">
-        <b class="header">contains</b><code>_.contains(list, value)</code>
-        <span class="alias">Alias: <b>include</b></span>
-        <br />
-        Returns <i>true</i> if the <b>value</b> is present in the <b>list</b>.
-        Uses <b>indexOf</b> internally, if <b>list</b> is an Array.
-      </p>
-      <pre>
-_.contains([1, 2, 3], 3);
-=&gt; true
-</pre>
-
-      <p id="invoke">
-        <b class="header">invoke</b><code>_.invoke(list, methodName, [*arguments])</code>
-        <br />
-        Calls the method named by <b>methodName</b> on each value in the <b>list</b>.
-        Any extra arguments passed to <b>invoke</b> will be forwarded on to the
-        method invocation.
-      </p>
-      <pre>
-_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
-=&gt; [[1, 5, 7], [1, 2, 3]]
-</pre>
-
-      <p id="pluck">
-        <b class="header">pluck</b><code>_.pluck(list, propertyName)</code>
-        <br />
-        A convenient version of what is perhaps the most common use-case for
-        <b>map</b>: extracting a list of property values.
-      </p>
-      <pre>
-var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
-_.pluck(stooges, 'name');
-=&gt; ["moe", "larry", "curly"]
-</pre>
-
-      <p id="max">
-        <b class="header">max</b><code>_.max(list, [iterator], [context])</code>
-        <br />
-        Returns the maximum value in <b>list</b>. If <b>iterator</b> is passed,
-        it will be used on each value to generate the criterion by which the
-        value is ranked.
-      </p>
-      <pre>
-var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
-_.max(stooges, function(stooge){ return stooge.age; });
-=&gt; {name : 'curly', age : 60};
-</pre>
-
-      <p id="min">
-        <b class="header">min</b><code>_.min(list, [iterator], [context])</code>
-        <br />
-        Returns the minimum value in <b>list</b>. If <b>iterator</b> is passed,
-        it will be used on each value to generate the criterion by which the
-        value is ranked.
-      </p>
-      <pre>
-var numbers = [10, 5, 100, 2, 1000];
-_.min(numbers);
-=&gt; 2
-</pre>
-
-      <p id="sortBy">
-        <b class="header">sortBy</b><code>_.sortBy(list, iterator, [context])</code>
-        <br />
-        Returns a sorted copy of <b>list</b>, ranked in ascending order by the
-        results of running each value through <b>iterator</b>. Iterator may
-        also be the string name of the property to sort by (eg. <tt>length</tt>).
-      </p>
-      <pre>
-_.sortBy([1, 2, 3, 4, 5, 6], function(num){ return Math.sin(num); });
-=&gt; [5, 4, 6, 3, 1, 2]
-</pre>
-
-      <p id="groupBy">
-        <b class="header">groupBy</b><code>_.groupBy(list, iterator, [context])</code>
-        <br />
-        Splits a collection into sets, grouped by the result of running each
-        value through <b>iterator</b>. If <b>iterator</b> is a string instead of
-        a function, groups by the property named by <b>iterator</b> on each of
-        the values.
-      </p>
-      <pre>
-_.groupBy([1.3, 2.1, 2.4], function(num){ return Math.floor(num); });
-=&gt; {1: [1.3], 2: [2.1, 2.4]}
-
-_.groupBy(['one', 'two', 'three'], 'length');
-=&gt; {3: ["one", "two"], 5: ["three"]}
-</pre>
-
-      <p id="countBy">
-        <b class="header">countBy</b><code>_.countBy(list, iterator, [context])</code>
-        <br />
-        Sorts a list into groups and returns a count for the number of objects
-        in each group.
-        Similar to <tt>groupBy</tt>, but instead of returning a list of values,
-        returns a count for the number of values in that group.
-      </p>
-      <pre>
-_.countBy([1, 2, 3, 4, 5], function(num) {
-  return num % 2 == 0 ? 'even' : 'odd';
-});
-=&gt; {odd: 3, even: 2}
-</pre>
-
-      <p id="shuffle">
-        <b class="header">shuffle</b><code>_.shuffle(list)</code>
-        <br />
-        Returns a shuffled copy of the <b>list</b>, using a version of the
-        <a href="http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle">Fisher-Yates shuffle</a>.
-      </p>
-      <pre>
-_.shuffle([1, 2, 3, 4, 5, 6]);
-=&gt; [4, 1, 6, 3, 5, 2]
-</pre>
-
-      <p id="toArray">
-        <b class="header">toArray</b><code>_.toArray(list)</code>
-        <br />
-        Converts the <b>list</b> (anything that can be iterated over), into a
-        real Array. Useful for transmuting the <b>arguments</b> object.
-      </p>
-      <pre>
-(function(){ return _.toArray(arguments).slice(1); })(1, 2, 3, 4);
-=&gt; [2, 3, 4]
-</pre>
-
-      <p id="size">
-        <b class="header">size</b><code>_.size(list)</code>
-        <br />
-        Return the number of values in the <b>list</b>.
-      </p>
-      <pre>
-_.size({one : 1, two : 2, three : 3});
-=&gt; 3
-</pre>
-
-      <h2 id="arrays">Array Functions</h2>
-
-      <p>
-        <i>
-          Note: All array functions will also work on the <b>arguments</b> object.
-          However, Underscore functions are not designed to work on "sparse" arrays.
-        </i>
-      </p>
-
-      <p id="first">
-        <b class="header">first</b><code>_.first(array, [n])</code>
-        <span class="alias">Alias: <b>head</b>, <b>take</b></span>
-        <br />
-        Returns the first element of an <b>array</b>. Passing <b>n</b> will
-        return the first <b>n</b> elements of the array.
-      </p>
-      <pre>
-_.first([5, 4, 3, 2, 1]);
-=&gt; 5
-</pre>
-
-      <p id="initial">
-        <b class="header">initial</b><code>_.initial(array, [n])</code>
-        <br />
-        Returns everything but the last entry of the array. Especially useful on
-        the arguments object. Pass <b>n</b> to exclude the last <b>n</b> elements
-        from the result.
-      </p>
-      <pre>
-_.initial([5, 4, 3, 2, 1]);
-=&gt; [5, 4, 3, 2]
-</pre>
-
-      <p id="last">
-        <b class="header">last</b><code>_.last(array, [n])</code>
-        <br />
-        Returns the last element of an <b>array</b>. Passing <b>n</b> will return
-        the last <b>n</b> elements of the array.
-      </p>
-      <pre>
-_.last([5, 4, 3, 2, 1]);
-=&gt; 1
-</pre>
-
-      <p id="rest">
-        <b class="header">rest</b><code>_.rest(array, [index])</code>
-        <span class="alias">Alias: <b>tail, drop</b></span>
-        <br />
-        Returns the <b>rest</b> of the elements in an array. Pass an <b>index</b>
-        to return the values of the array from that index onward.
-      </p>
-      <pre>
-_.rest([5, 4, 3, 2, 1]);
-=&gt; [4, 3, 2, 1]
-</pre>
-
-      <p id="compact">
-        <b class="header">compact</b><code>_.compact(array)</code>
-        <br />
-        Returns a copy of the <b>array</b> with all falsy values removed.
-        In JavaScript, <i>false</i>, <i>null</i>, <i>0</i>, <i>""</i>,
-        <i>undefined</i> and <i>NaN</i> are all falsy.
-      </p>
-      <pre>
-_.compact([0, 1, false, 2, '', 3]);
-=&gt; [1, 2, 3]
-</pre>
-
-      <p id="flatten">
-        <b class="header">flatten</b><code>_.flatten(array, [shallow])</code>
-        <br />
-        Flattens a nested <b>array</b> (the nesting can be to any depth). If you
-        pass <b>shallow</b>, the array will only be flattened a single level.
-      </p>
-      <pre>
-_.flatten([1, [2], [3, [[4]]]]);
-=&gt; [1, 2, 3, 4];
-
-_.flatten([1, [2], [3, [[4]]]], true);
-=&gt; [1, 2, 3, [[4]]];
-</pre>
-
-      <p id="without">
-        <b class="header">without</b><code>_.without(array, [*values])</code>
-        <br />
-        Returns a copy of the <b>array</b> with all instances of the <b>values</b>
-        removed.
-      </p>
-      <pre>
-_.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
-=&gt; [2, 3, 4]
-</pre>
-
-      <p id="union">
-        <b class="header">union</b><code>_.union(*arrays)</code>
-        <br />
-        Computes the union of the passed-in <b>arrays</b>: the list of unique items,
-        in order, that are present in one or more of the <b>arrays</b>.
-      </p>
-      <pre>
-_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
-=&gt; [1, 2, 3, 101, 10]
-</pre>
-
-      <p id="intersection">
-        <b class="header">intersection</b><code>_.intersection(*arrays)</code>
-        <br />
-        Computes the list of values that are the intersection of all the <b>arrays</b>.
-        Each value in the result is present in each of the <b>arrays</b>.
-      </p>
-      <pre>
-_.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
-=&gt; [1, 2]
-</pre>
-
-      <p id="difference">
-        <b class="header">difference</b><code>_.difference(array, *others)</code>
-        <br />
-        Similar to <b>without</b>, but returns the values from <b>array</b> that
-        are not present in the <b>other</b> arrays.
-      </p>
-      <pre>
-_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
-=&gt; [1, 3, 4]
-</pre>
-
-      <p id="uniq">
-        <b class="header">uniq</b><code>_.uniq(array, [isSorted], [iterator])</code>
-        <span class="alias">Alias: <b>unique</b></span>
-        <br />
-        Produces a duplicate-free version of the <b>array</b>, using <i>===</i> to test
-        object equality. If you know in advance that the <b>array</b> is sorted,
-        passing <i>true</i> for <b>isSorted</b> will run a much faster algorithm.
-        If you want to compute unique items based on a transformation, pass an
-        <b>iterator</b> function.
-      </p>
-      <pre>
-_.uniq([1, 2, 1, 3, 1, 4]);
-=&gt; [1, 2, 3, 4]
-</pre>
-
-      <p id="zip">
-        <b class="header">zip</b><code>_.zip(*arrays)</code>
-        <br />
-        Merges together the values of each of the <b>arrays</b> with the
-        values at the corresponding position. Useful when you have separate
-        data sources that are coordinated through matching array indexes.
-        If you're working with a matrix of nested arrays, <b>zip.apply</b>
-        can transpose the matrix in a similar fashion.
-      </p>
-      <pre>
-_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
-=&gt; [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]
-</pre>
-
-      <p id="object">
-        <b class="header">object</b><code>_.object(list, [values])</code>
-        <br />
-        Converts arrays into objects. Pass either a single list of
-        <tt>[key, value]</tt> pairs, or a list of keys, and a list of values.
-      </p>
-      <pre>
-_.object(['moe', 'larry', 'curly'], [30, 40, 50]);
-=&gt; {moe: 30, larry: 40, curly: 50}
-
-_.object([['moe', 30], ['larry', 40], ['curly', 50]]);
-=&gt; {moe: 30, larry: 40, curly: 50}
-</pre>
-
-      <p id="indexOf">
-        <b class="header">indexOf</b><code>_.indexOf(array, value, [isSorted])</code>
-        <br />
-        Returns the index at which <b>value</b> can be found in the <b>array</b>,
-        or <i>-1</i> if value is not present in the <b>array</b>. Uses the native
-        <b>indexOf</b> function unless it's missing. If you're working with a
-        large array, and you know that the array is already sorted, pass <tt>true</tt>
-        for <b>isSorted</b> to use a faster binary search ... or, pass a number as
-        the third argument in order to look for the first matching value in the
-        array after the given index.
-      </p>
-      <pre>
-_.indexOf([1, 2, 3], 2);
-=&gt; 1
-</pre>
-
-      <p id="lastIndexOf">
-        <b class="header">lastIndexOf</b><code>_.lastIndexOf(array, value, [fromIndex])</code>
-        <br />
-        Returns the index of the last occurrence of <b>value</b> in the <b>array</b>,
-        or <i>-1</i> if value is not present. Uses the native <b>lastIndexOf</b>
-        function if possible. Pass <b>fromIndex</b> to start your search at a
-        given index.
-      </p>
-      <pre>
-_.lastIndexOf([1, 2, 3, 1, 2, 3], 2);
-=&gt; 4
-</pre>
-
-      <p id="sortedIndex">
-        <b class="header">sortedIndex</b><code>_.sortedIndex(list, value, [iterator], [context])</code>
-        <br />
-        Uses a binary search to determine the index at which the <b>value</b>
-        <i>should</i> be inserted into the <b>list</b> in order to maintain the <b>list</b>'s
-        sorted order. If an <b>iterator</b> is passed, it will be used to compute
-        the sort ranking of each value, including the <b>value</b> you pass.
-      </p>
-      <pre>
-_.sortedIndex([10, 20, 30, 40, 50], 35);
-=&gt; 3
-</pre>
-
-      <p id="range">
-        <b class="header">range</b><code>_.range([start], stop, [step])</code>
-        <br />
-        A function to create flexibly-numbered lists of integers, handy for
-        <tt>each</tt> and <tt>map</tt> loops. <b>start</b>, if omitted, defaults
-        to <i>0</i>; <b>step</b> defaults to <i>1</i>. Returns a list of integers
-        from <b>start</b> to <b>stop</b>, incremented (or decremented) by <b>step</b>,
-        exclusive.
-      </p>
-      <pre>
-_.range(10);
-=&gt; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
-_.range(1, 11);
-=&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-_.range(0, 30, 5);
-=&gt; [0, 5, 10, 15, 20, 25]
-_.range(0, -10, -1);
-=&gt; [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
-_.range(0);
-=&gt; []
-</pre>
-
-      <h2 id="functions">Function (uh, ahem) Functions</h2>
-
-      <p id="bind">
-        <b class="header">bind</b><code>_.bind(function, object, [*arguments])</code>
-        <br />
-        Bind a <b>function</b> to an <b>object</b>, meaning that whenever
-        the function is called, the value of <i>this</i> will be the <b>object</b>.
-        Optionally, pass <b>arguments</b> to the <b>function</b> to pre-fill them,
-        also known as <b>partial application</b>.
-      </p>
-      <pre>
-var func = function(greeting){ return greeting + ': ' + this.name };
-func = _.bind(func, {name : 'moe'}, 'hi');
-func();
-=&gt; 'hi: moe'
-</pre>
-
-      <p id="bindAll">
-        <b class="header">bindAll</b><code>_.bindAll(object, [*methodNames])</code>
-        <br />
-        Binds a number of methods on the <b>object</b>, specified by
-        <b>methodNames</b>, to be run in the context of that object whenever they
-        are invoked. Very handy for binding functions that are going to be used
-        as event handlers, which would otherwise be invoked with a fairly useless
-        <i>this</i>. If no <b>methodNames</b> are provided, all of the object's
-        function properties will be bound to it.
-      </p>
-      <pre>
-var buttonView = {
-  label   : 'underscore',
-  onClick : function(){ alert('clicked: ' + this.label); },
-  onHover : function(){ console.log('hovering: ' + this.label); }
-};
-_.bindAll(buttonView);
-jQuery('#underscore_button').bind('click', buttonView.onClick);
-=&gt; When the button is clicked, this.label will have the correct value...
-</pre>
-
-      <p id="partial">
-        <b class="header">partial</b><code>_.partial(function, [*arguments])</code>
-        <br />
-        Partially apply a function by filling in any number of its arguments,
-        <i>without</i> changing its dynamic <tt>this</tt> value. A close cousin
-        of <a href="#bind">bind</a>.
-      </p>
-      <pre>
-var add = function(a, b) { return a + b; };
-add5 = _.partial(add, 5);
-add5(10);
-=&gt; 15
-</pre>
-
-      <p id="memoize">
-        <b class="header">memoize</b><code>_.memoize(function, [hashFunction])</code>
-        <br />
-        Memoizes a given <b>function</b> by caching the computed result. Useful
-        for speeding up slow-running computations. If passed an optional
-        <b>hashFunction</b>, it will be used to compute the hash key for storing
-        the result, based on the arguments to the original function. The default
-        <b>hashFunction</b> just uses the first argument to the memoized function
-        as the key.
-      </p>
-      <pre>
-var fibonacci = _.memoize(function(n) {
-  return n &lt; 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
-});
-</pre>
-
-      <p id="delay">
-        <b class="header">delay</b><code>_.delay(function, wait, [*arguments])</code>
-        <br />
-        Much like <b>setTimeout</b>, invokes <b>function</b> after <b>wait</b>
-        milliseconds. If you pass the optional <b>arguments</b>, they will be
-        forwarded on to the <b>function</b> when it is invoked.
-      </p>
-      <pre>
-var log = _.bind(console.log, console);
-_.delay(log, 1000, 'logged later');
-=&gt; 'logged later' // Appears after one second.
-</pre>
-
-      <p id="defer">
-        <b class="header">defer</b><code>_.defer(function, [*arguments])</code>
-        <br />
-        Defers invoking the <b>function</b> until the current call stack has cleared,
-        similar to using <b>setTimeout</b> with a delay of 0. Useful for performing
-        expensive computations or HTML rendering in chunks without blocking the UI thread
-        from updating. If you pass the optional <b>arguments</b>, they will be
-        forwarded on to the <b>function</b> when it is invoked.
-      </p>
-      <pre>
-_.defer(function(){ alert('deferred'); });
-// Returns from the function before the alert runs.
-</pre>
-
-      <p id="throttle">
-        <b class="header">throttle</b><code>_.throttle(function, wait)</code>
-        <br />
-        Creates and returns a new, throttled version of the passed function,
-        that, when invoked repeatedly, will only actually call the original function
-        at most once per every <b>wait</b>
-        milliseconds. Useful for rate-limiting events that occur faster than you
-        can keep up with.
-      </p>
-      <pre>
-var throttled = _.throttle(updatePosition, 100);
-$(window).scroll(throttled);
-</pre>
-
-      <p id="debounce">
-        <b class="header">debounce</b><code>_.debounce(function, wait, [immediate])</code>
-        <br />
-        Creates and returns a new debounced version of the passed function that
-        will postpone its execution until after
-        <b>wait</b> milliseconds have elapsed since the last time it
-        was invoked. Useful for implementing behavior that should only happen
-        <i>after</i> the input has stopped arriving. For example: rendering a
-        preview of a Markdown comment, recalculating a layout after the window
-        has stopped being resized, and so on.
-      </p>
-
-      <p>
-        Pass <tt>true</tt> for the <b>immediate</b> parameter to cause
-        <b>debounce</b> to trigger the function on the leading instead of the
-        trailing edge of the <b>wait</b> interval. Useful in circumstances like
-        preventing accidental double-clicks on a "submit" button from firing a
-        second time.
-      </p>
-
-      <pre>
-var lazyLayout = _.debounce(calculateLayout, 300);
-$(window).resize(lazyLayout);
-</pre>
-
-      <p id="once">
-        <b class="header">once</b><code>_.once(function)</code>
-        <br />
-        Creates a version of the function that can only be called one time.
-        Repeated calls to the modified function will have no effect, returning
-        the value from the original call. Useful for initialization functions,
-        instead of having to set a boolean flag and then check it later.
-      </p>
-      <pre>
-var initialize = _.once(createApplication);
-initialize();
-initialize();
-// Application is only created once.
-</pre>
-
-      <p id="after">
-        <b class="header">after</b><code>_.after(count, function)</code>
-        <br />
-        Creates a version of the function that will only be run after first
-        being called <b>count</b> times. Useful for grouping asynchronous responses,
-        where you want to be sure that all the async calls have finished, before
-        proceeding.
-      </p>
-      <pre>
-var renderNotes = _.after(notes.length, render);
-_.each(notes, function(note) {
-  note.asyncSave({success: renderNotes});
-});
-// renderNotes is run once, after all notes have saved.
-</pre>
-
-      <p id="wrap">
-        <b class="header">wrap</b><code>_.wrap(function, wrapper)</code>
-        <br />
-        Wraps the first <b>function</b> inside of the <b>wrapper</b> function,
-        passing it as the first argument. This allows the <b>wrapper</b> to
-        execute code before and after the <b>function</b> runs, adjust the arguments,
-        and execute it conditionally.
-      </p>
-      <pre>
-var hello = function(name) { return "hello: " + name; };
-hello = _.wrap(hello, function(func) {
-  return "before, " + func("moe") + ", after";
-});
-hello();
-=&gt; 'before, hello: moe, after'
-</pre>
-
-      <p id="compose">
-        <b class="header">compose</b><code>_.compose(*functions)</code>
-        <br />
-        Returns the composition of a list of <b>functions</b>, where each function
-        consumes the return value of the function that follows. In math terms,
-        composing the functions <i>f()</i>, <i>g()</i>, and <i>h()</i> produces
-        <i>f(g(h()))</i>.
-      </p>
-      <pre>
-var greet    = function(name){ return "hi: " + name; };
-var exclaim  = function(statement){ return statement + "!"; };
-var welcome = _.compose(exclaim, greet);
-welcome('moe');
-=&gt; 'hi: moe!'
-</pre>
-
-      <h2 id="objects">Object Functions</h2>
-
-      <p id="keys">
-        <b class="header">keys</b><code>_.keys(object)</code>
-        <br />
-        Retrieve all the names of the <b>object</b>'s properties.
-      </p>
-      <pre>
-_.keys({one : 1, two : 2, three : 3});
-=&gt; ["one", "two", "three"]
-</pre>
-
-      <p id="values">
-        <b class="header">values</b><code>_.values(object)</code>
-        <br />
-        Return all of the values of the <b>object</b>'s properties.
-      </p>
-      <pre>
-_.values({one : 1, two : 2, three : 3});
-=&gt; [1, 2, 3]
-</pre>
-
-      <p id="pairs">
-        <b class="header">pairs</b><code>_.pairs(object)</code>
-        <br />
-        Convert an object into a list of <tt>[key, value]</tt> pairs.
-      </p>
-      <pre>
-_.pairs({one: 1, two: 2, three: 3});
-=&gt; [["one", 1], ["two", 2], ["three", 3]]
-</pre>
-
-      <p id="invert">
-        <b class="header">invert</b><code>_.invert(object)</code>
-        <br />
-        Returns a copy of the <b>object</b> where the keys have become the values
-        and the values the keys. For this to work, all of your object's values
-        should be unique and string serializable.
-      </p>
-      <pre>
-_.invert({Moe: "Moses", Larry: "Louis", Curly: "Jerome"});
-=&gt; {Moses: "Moe", Louis: "Larry", Jerome: "Curly"};
-</pre>
-
-      <p id="object-functions">
-        <b class="header">functions</b><code>_.functions(object)</code>
-        <span class="alias">Alias: <b>methods</b></span>
-        <br />
-        Returns a sorted list of the names of every method in an object &mdash;
-        that is to say, the name of every function property of the object.
-      </p>
-      <pre>
-_.functions(_);
-=&gt; ["all", "any", "bind", "bindAll", "clone", "compact", "compose" ...
-</pre>
-
-      <p id="extend">
-        <b class="header">extend</b><code>_.extend(destination, *sources)</code>
-        <br />
-        Copy all of the properties in the <b>source</b> objects over to the
-        <b>destination</b> object, and return the <b>destination</b> object.
-        It's in-order, so the last source will override properties of the same
-        name in previous arguments.
-      </p>
-      <pre>
-_.extend({name : 'moe'}, {age : 50});
-=&gt; {name : 'moe', age : 50}
-</pre>
-
-      <p id="pick">
-        <b class="header">pick</b><code>_.pick(object, *keys)</code>
-        <br />
-        Return a copy of the <b>object</b>, filtered to only have values for
-        the whitelisted <b>keys</b> (or array of valid keys).
-      </p>
-      <pre>
-_.pick({name : 'moe', age: 50, userid : 'moe1'}, 'name', 'age');
-=&gt; {name : 'moe', age : 50}
-</pre>
-
-      <p id="omit">
-        <b class="header">omit</b><code>_.omit(object, *keys)</code>
-        <br />
-        Return a copy of the <b>object</b>, filtered to omit the blacklisted
-        <b>keys</b> (or array of keys).
-      </p>
-      <pre>
-_.omit({name : 'moe', age : 50, userid : 'moe1'}, 'userid');
-=&gt; {name : 'moe', age : 50}
-</pre>
-
-      <p id="defaults">
-        <b class="header">defaults</b><code>_.defaults(object, *defaults)</code>
-        <br />
-        Fill in null and undefined properties in <b>object</b> with values from the
-        <b>defaults</b> objects, and return the <b>object</b>. As soon as the
-        property is filled, further defaults will have no effect.
-      </p>
-      <pre>
-var iceCream = {flavor : "chocolate"};
-_.defaults(iceCream, {flavor : "vanilla", sprinkles : "lots"});
-=&gt; {flavor : "chocolate", sprinkles : "lots"}
-</pre>
-
-      <p id="clone">
-        <b class="header">clone</b><code>_.clone(object)</code>
-        <br />
-        Create a shallow-copied clone of the <b>object</b>. Any nested objects
-        or arrays will be copied by reference, not duplicated.
-      </p>
-      <pre>
-_.clone({name : 'moe'});
-=&gt; {name : 'moe'};
-</pre>
-
-      <p id="tap">
-        <b class="header">tap</b><code>_.tap(object, interceptor)</code>
-        <br />
-        Invokes <b>interceptor</b> with the <b>object</b>, and then returns <b>object</b>.
-        The primary purpose of this method is to "tap into" a method chain, in order to perform operations on intermediate results within the chain.
-      </p>
-      <pre>
-_.chain([1,2,3,200])
-  .filter(function(num) { return num % 2 == 0; })
-  .tap(alert)
-  .map(function(num) { return num * num })
-  .value();
-=&gt; // [2, 200] (alerted)
-=&gt; [4, 40000]
-</pre>
-
-      <p id="has">
-        <b class="header">has</b><code>_.has(object, key)</code>
-        <br />
-        Does the object contain the given key? Identical to
-        <tt>object.hasOwnProperty(key)</tt>, but uses a safe reference to the
-        <tt>hasOwnProperty</tt> function, in case it's been
-        <a href="http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/">overridden accidentally</a>.
-      </p>
-      <pre>
-_.has({a: 1, b: 2, c: 3}, "b");
-=&gt; true
-</pre>
-
-      <p id="isEqual">
-        <b class="header">isEqual</b><code>_.isEqual(object, other)</code>
-        <br />
-        Performs an optimized deep comparison between the two objects, to determine
-        if they should be considered equal.
-      </p>
-      <pre>
-var moe   = {name : 'moe', luckyNumbers : [13, 27, 34]};
-var clone = {name : 'moe', luckyNumbers : [13, 27, 34]};
-moe == clone;
-=&gt; false
-_.isEqual(moe, clone);
-=&gt; true
-</pre>
-
-      <p id="isEmpty">
-        <b class="header">isEmpty</b><code>_.isEmpty(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> contains no values.
-      </p>
-      <pre>
-_.isEmpty([1, 2, 3]);
-=&gt; false
-_.isEmpty({});
-=&gt; true
-</pre>
-
-      <p id="isElement">
-        <b class="header">isElement</b><code>_.isElement(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a DOM element.
-      </p>
-      <pre>
-_.isElement(jQuery('body')[0]);
-=&gt; true
-</pre>
-
-      <p id="isArray">
-        <b class="header">isArray</b><code>_.isArray(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is an Array.
-      </p>
-      <pre>
-(function(){ return _.isArray(arguments); })();
-=&gt; false
-_.isArray([1,2,3]);
-=&gt; true
-</pre>
-
-      <p id="isObject">
-        <b class="header">isObject</b><code>_.isObject(value)</code>
-        <br />
-        Returns <i>true</i> if <b>value</b> is an Object. Note that JavaScript
-        arrays and functions are objects, while (normal) strings and numbers are not.
-      </p>
-      <pre>
-_.isObject({});
-=&gt; true
-_.isObject(1);
-=&gt; false
-</pre>
-
-      <p id="isArguments">
-        <b class="header">isArguments</b><code>_.isArguments(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is an Arguments object.
-      </p>
-      <pre>
-(function(){ return _.isArguments(arguments); })(1, 2, 3);
-=&gt; true
-_.isArguments([1,2,3]);
-=&gt; false
-</pre>
-
-      <p id="isFunction">
-        <b class="header">isFunction</b><code>_.isFunction(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a Function.
-      </p>
-      <pre>
-_.isFunction(alert);
-=&gt; true
-</pre>
-
-      <p id="isString">
-        <b class="header">isString</b><code>_.isString(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a String.
-      </p>
-      <pre>
-_.isString("moe");
-=&gt; true
-</pre>
-
-      <p id="isNumber">
-        <b class="header">isNumber</b><code>_.isNumber(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a Number (including <tt>NaN</tt>).
-      </p>
-      <pre>
-_.isNumber(8.4 * 5);
-=&gt; true
-</pre>
-
-      <p id="isFinite">
-        <b class="header">isFinite</b><code>_.isFinite(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a finite Number.
-      </p>
-      <pre>
-_.isFinite(-101);
-=&gt; true
-
-_.isFinite(-Infinity);
-=&gt; false
-</pre>
-
-      <p id="isBoolean">
-        <b class="header">isBoolean</b><code>_.isBoolean(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is either <i>true</i> or <i>false</i>.
-      </p>
-      <pre>
-_.isBoolean(null);
-=&gt; false
-</pre>
-
-      <p id="isDate">
-        <b class="header">isDate</b><code>_.isDate(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a Date.
-      </p>
-      <pre>
-_.isDate(new Date());
-=&gt; true
-</pre>
-
-      <p id="isRegExp">
-        <b class="header">isRegExp</b><code>_.isRegExp(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a RegExp.
-      </p>
-      <pre>
-_.isRegExp(/moe/);
-=&gt; true
-</pre>
-
-      <p id="isNaN">
-        <b class="header">isNaN</b><code>_.isNaN(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is <i>NaN</i>.<br /> Note: this is not
-        the same as the native <b>isNaN</b> function, which will also return
-        true if the variable is <i>undefined</i>.
-      </p>
-      <pre>
-_.isNaN(NaN);
-=&gt; true
-isNaN(undefined);
-=&gt; true
-_.isNaN(undefined);
-=&gt; false
-</pre>
-
-      <p id="isNull">
-        <b class="header">isNull</b><code>_.isNull(object)</code>
-        <br />
-        Returns <i>true</i> if the value of <b>object</b> is <i>null</i>.
-      </p>
-      <pre>
-_.isNull(null);
-=&gt; true
-_.isNull(undefined);
-=&gt; false
-</pre>
-
-      <p id="isUndefined">
-        <b class="header">isUndefined</b><code>_.isUndefined(value)</code>
-        <br />
-        Returns <i>true</i> if <b>value</b> is <i>undefined</i>.
-      </p>
-      <pre>
-_.isUndefined(window.missingVariable);
-=&gt; true
-</pre>
-
-      <h2 id="utility">Utility Functions</h2>
-
-      <p id="noConflict">
-        <b class="header">noConflict</b><code>_.noConflict()</code>
-        <br />
-        Give control of the "_" variable back to its previous owner. Returns
-        a reference to the <b>Underscore</b> object.
-      </p>
-      <pre>
-var underscore = _.noConflict();</pre>
-
-      <p id="identity">
-        <b class="header">identity</b><code>_.identity(value)</code>
-        <br />
-        Returns the same value that is used as the argument. In math:
-        <tt>f(x) = x</tt><br />
-        This function looks useless, but is used throughout Underscore as
-        a default iterator.
-      </p>
-      <pre>
-var moe = {name : 'moe'};
-moe === _.identity(moe);
-=&gt; true</pre>
-
-      <p id="times">
-        <b class="header">times</b><code>_.times(n, iterator, [context])</code>
-        <br />
-        Invokes the given iterator function <b>n</b> times. Each invocation of
-        <b>iterator</b> is called with an <tt>index</tt> argument.
-        <br />
-        <i>Note: this example uses the <a href="#chaining">chaining syntax</a></i>.
-      </p>
-      <pre>
-_(3).times(function(n){ genie.grantWishNumber(n); });</pre>
-
-      <p id="random">
-        <b class="header">random</b><code>_.random(min, max)</code>
-        <br />
-        Returns a random integer between <b>min</b> and <b>max</b>, inclusive.
-        If you only pass one argument, it will return a number between <tt>0</tt>
-        and that number.
-      </p>
-      <pre>
-_.random(0, 100);
-=&gt; 42</pre>
-
-      <p id="mixin">
-        <b class="header">mixin</b><code>_.mixin(object)</code>
-        <br />
-        Allows you to extend Underscore with your own utility functions. Pass
-        a hash of <tt>{name: function}</tt> definitions to have your functions
-        added to the Underscore object, as well as the OOP wrapper.
-      </p>
-      <pre>
-_.mixin({
-  capitalize : function(string) {
-    return string.charAt(0).toUpperCase() + string.substring(1).toLowerCase();
-  }
-});
-_("fabio").capitalize();
-=&gt; "Fabio"
-</pre>
-
-      <p id="uniqueId">
-        <b class="header">uniqueId</b><code>_.uniqueId([prefix])</code>
-        <br />
-        Generate a globally-unique id for client-side models or DOM elements
-        that need one. If <b>prefix</b> is passed, the id will be appended to it.
-      </p>
-      <pre>
-_.uniqueId('contact_');
-=&gt; 'contact_104'</pre>
-
-      <p id="escape">
-        <b class="header">escape</b><code>_.escape(string)</code>
-        <br />
-        Escapes a string for insertion into HTML, replacing
-        <tt>&amp;</tt>, <tt>&lt;</tt>, <tt>&gt;</tt>, <tt>&quot;</tt>, <tt>&#x27;</tt>, and <tt>&#x2F;</tt> characters.
-      </p>
-      <pre>
-_.escape('Curly, Larry &amp; Moe');
-=&gt; "Curly, Larry &amp;amp; Moe"</pre>
-
-      <p id="unescape">
-        <b class="header">unescape</b><code>_.unescape(string)</code>
-        <br />
-        The opposite of <a href="#escape"><b>escape</b></a>, replaces
-        <tt>&amp;amp;</tt>, <tt>&amp;lt;</tt>, <tt>&amp;gt;</tt>,
-        <tt>&amp;quot;</tt>, <tt>&amp;#x27;</tt>, and <tt>&amp;#x2F;</tt>
-        with their unescaped counterparts.
-      </p>
-      <pre>
-_.unescape('Curly, Larry &amp;amp; Moe');
-=&gt; "Curly, Larry &amp; Moe"</pre>
-
-      <p id="result">
-        <b class="header">result</b><code>_.result(object, property)</code>
-        <br />
-        If the value of the named property is a function then invoke it; otherwise, return it.
-      </p>
-      <pre>
-var object = {cheese: 'crumpets', stuff: function(){ return 'nonsense'; }};
-_.result(object, 'cheese');
-=&gt; "crumpets"
-_.result(object, 'stuff');
-=&gt; "nonsense"</pre>
-
-      <p id="template">
-        <b class="header">template</b><code>_.template(templateString, [data], [settings])</code>
-        <br />
-        Compiles JavaScript templates into functions that can be evaluated
-        for rendering. Useful for rendering complicated bits of HTML from JSON
-        data sources. Template functions can both interpolate variables, using
-        <tt>&lt;%= &hellip; %&gt;</tt>, as well as execute arbitrary JavaScript code, with
-        <tt>&lt;% &hellip; %&gt;</tt>. If you wish to interpolate a value, and have
-        it be HTML-escaped, use <tt>&lt;%- &hellip; %&gt;</tt> When you evaluate a template function, pass in a
-        <b>data</b> object that has properties corresponding to the template's free
-        variables. If you're writing a one-off, you can pass the <b>data</b>
-        object as the second parameter to <b>template</b> in order to render
-        immediately instead of returning a template function.  The <b>settings</b> argument
-        should be a hash containing any <tt>_.templateSettings</tt> that should be overridden.
-      </p>
-
-      <pre>
-var compiled = _.template("hello: &lt;%= name %&gt;");
-compiled({name : 'moe'});
-=&gt; "hello: moe"
-
-var list = "&lt;% _.each(people, function(name) { %&gt; &lt;li&gt;&lt;%= name %&gt;&lt;/li&gt; &lt;% }); %&gt;";
-_.template(list, {people : ['moe', 'curly', 'larry']});
-=&gt; "&lt;li&gt;moe&lt;/li&gt;&lt;li&gt;curly&lt;/li&gt;&lt;li&gt;larry&lt;/li&gt;"
-
-var template = _.template("&lt;b&gt;&lt;%- value %&gt;&lt;/b&gt;");
-template({value : '&lt;script&gt;'});
-=&gt; "&lt;b&gt;&amp;lt;script&amp;gt;&lt;/b&gt;"</pre>
-
-      <p>
-        You can also use <tt>print</tt> from within JavaScript code.  This is
-        sometimes more convenient than using <tt>&lt;%= ... %&gt;</tt>.
-      </p>
-
-      <pre>
-var compiled = _.template("&lt;% print('Hello ' + epithet); %&gt;");
-compiled({epithet: "stooge"});
-=&gt; "Hello stooge."</pre>
-
-      <p>
-        If ERB-style delimiters aren't your cup of tea, you can change Underscore's
-        template settings to use different symbols to set off interpolated code.
-        Define an <b>interpolate</b> regex to match expressions that should be
-        interpolated verbatim, an <b>escape</b> regex to match expressions that should
-        be inserted after being HTML escaped, and an <b>evaluate</b> regex to match
-        expressions that should be evaluated without insertion into the resulting
-        string. You may define or omit any combination of the three.
-        For example, to perform
-        <a href="http://github.com/janl/mustache.js#readme">Mustache.js</a>
-        style templating:
-      </p>
-
-      <pre>
-_.templateSettings = {
-  interpolate : /\{\{(.+?)\}\}/g
-};
-
-var template = _.template("Hello {{ name }}!");
-template({name : "Mustache"});
-=&gt; "Hello Mustache!"</pre>
-
-      <p>
-        By default, <b>template</b> places the values from your data in the local scope
-        via the <tt>with</tt> statement.  However, you can specify a single variable name
-        with the <b>variable</b> setting. This can significantly improve the speed
-        at which a template is able to render.
-      </p>
-
-      <pre>
-_.template("Using 'with': <%= data.answer %>", {answer: 'no'}, {variable: 'data'});
-=&gt; "Using 'with': no"</pre>
-
-      <p>
-        Precompiling your templates can be a big help when debugging errors you can't
-        reproduce.  This is because precompiled templates can provide line numbers and
-        a stack trace, something that is not possible when compiling templates on the client.
-        The <b>source</b> property is available on the compiled template
-        function for easy precompilation.
-      </p>
-
-      <pre>&lt;script&gt;
-  JST.project = <%= _.template(jstText).source %>;
-&lt;/script&gt;</pre>
-
-
-      <h2 id="chaining">Chaining</h2>
-
-      <p>
-        You can use Underscore in either an object-oriented or a functional style,
-        depending on your preference. The following two lines of code are
-        identical ways to double a list of numbers.
-      </p>
-
-    <pre>
-_.map([1, 2, 3], function(n){ return n * 2; });
-_([1, 2, 3]).map(function(n){ return n * 2; });</pre>
-
-      <p>
-        Calling <tt>chain</tt> will cause all future method calls to return
-        wrapped objects. When you've finished the computation, use
-        <tt>value</tt> to retrieve the final value. Here's an example of chaining
-        together a <b>map/flatten/reduce</b>, in order to get the word count of
-        every word in a song.
-      </p>
-
-<pre>
-var lyrics = [
-  {line : 1, words : "I'm a lumberjack and I'm okay"},
-  {line : 2, words : "I sleep all night and I work all day"},
-  {line : 3, words : "He's a lumberjack and he's okay"},
-  {line : 4, words : "He sleeps all night and he works all day"}
-];
-
-_.chain(lyrics)
-  .map(function(line) { return line.words.split(' '); })
-  .flatten()
-  .reduce(function(counts, word) {
-    counts[word] = (counts[word] || 0) + 1;
-    return counts;
-  }, {})
-  .value();
-
-=&gt; {lumberjack : 2, all : 4, night : 2 ... }</pre>
-
-      <p>
-        In addition, the
-        <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/prototype">Array prototype's methods</a>
-        are proxied through the chained Underscore object, so you can slip a
-        <tt>reverse</tt> or a <tt>push</tt> into your chain, and continue to
-        modify the array.
-      </p>
-
-      <p id="chain">
-        <b class="header">chain</b><code>_.chain(obj)</code>
-        <br />
-        Returns a wrapped object. Calling methods on this object will continue
-        to return wrapped objects until <tt>value</tt> is used.
-      </p>
-      <pre>
-var stooges = [{name : 'curly', age : 25}, {name : 'moe', age : 21}, {name : 'larry', age : 23}];
-var youngest = _.chain(stooges)
-  .sortBy(function(stooge){ return stooge.age; })
-  .map(function(stooge){ return stooge.name + ' is ' + stooge.age; })
-  .first()
-  .value();
-=&gt; "moe is 21"
-</pre>
-
-      <p id="value">
-        <b class="header">value</b><code>_(obj).value()</code>
-        <br />
-        Extracts the value of a wrapped object.
-      </p>
-      <pre>
-_([1, 2, 3]).value();
-=&gt; [1, 2, 3]
-</pre>
-
-      <h2 id="links">Links &amp; Suggested Reading</h2>
-
-      <p>
-        The Underscore documentation is also available in
-        <a href="http://learning.github.com/underscore/">Simplified Chinese</a>.
-      </p>
-
-      <p>
-        <a href="http://mirven.github.com/underscore.lua/">Underscore.lua</a>,
-        a Lua port of the functions that are applicable in both languages.
-        Includes OOP-wrapping and chaining.
-        (<a href="http://github.com/mirven/underscore.lua">source</a>)
-      </p>
-
-      <p>
-        <a href="http://underscorem.org">Underscore.m</a>, an Objective-C port
-        of many of the Underscore.js functions, using a syntax that encourages
-        chaining.
-        (<a href="https://github.com/robb/Underscore.m">source</a>)
-      </p>
-
-      <p>
-        <a href="http://kmalakoff.github.com/_.m/">_.m</a>, an alternative
-        Objective-C port that tries to stick a little closer to the original
-        Underscore.js API.
-        (<a href="https://github.com/kmalakoff/_.m">source</a>)
-      </p>
-
-      <p>
-        <a href="http://brianhaveri.github.com/Underscore.php/">Underscore.php</a>,
-        a PHP port of the functions that are applicable in both languages.
-        Includes OOP-wrapping and chaining.
-        (<a href="http://github.com/brianhaveri/Underscore.php">source</a>)
-      </p>
-
-      <p>
-        <a href="http://vti.github.com/underscore-perl/">Underscore-perl</a>,
-        a Perl port of many of the Underscore.js functions,
-        aimed at on Perl hashes and arrays.
-        (<a href="https://github.com/vti/underscore-perl/">source</a>)
-      </p>
-
-      <p>
-        <a href="http://russplaysguitar.github.com/UnderscoreCF/">Underscore.cfc</a>,
-        a Coldfusion port of many of the Underscore.js functions.
-        (<a href="https://github.com/russplaysguitar/underscorecf">source</a>)
-      </p>
-
-      <p>
-        <a href="https://github.com/edtsech/underscore.string">Underscore.string</a>,
-        an Underscore extension that adds functions for string-manipulation:
-        <tt>trim</tt>, <tt>startsWith</tt>, <tt>contains</tt>, <tt>capitalize</tt>,
-        <tt>reverse</tt>, <tt>sprintf</tt>, and more.
-      </p>
-
-      <p>
-        Ruby's <a href="http://ruby-doc.org/core/classes/Enumerable.html">Enumerable</a> module.
-      </p>
-
-      <p>
-        <a href="http://www.prototypejs.org/">Prototype.js</a>, which provides
-        JavaScript with collection functions in the manner closest to Ruby's Enumerable.
-      </p>
-
-      <p>
-        Oliver Steele's
-        <a href="http://osteele.com/sources/javascript/functional/">Functional JavaScript</a>,
-        which includes comprehensive higher-order function support as well as string lambdas.
-      </p>
-
-      <p>
-        Michael Aufreiter's <a href="http://github.com/michael/data">Data.js</a>,
-        a data manipulation + persistence library for JavaScript.
-      </p>
-
-      <p>
-        Python's <a href="http://docs.python.org/library/itertools.html">itertools</a>.
-      </p>
-
-      <h2 id="changelog">Change Log</h2>
-
-      <p>
-        <b class="header">1.4.4</b> &mdash; <small><i>Jan. 30, 2013</i></small> &mdash; <a href="https://github.com/documentcloud/underscore/compare/1.4.3...1.4.4">Diff</a><br />
-        <ul>
-          <li>
-            Added <tt>_.findWhere</tt>, for finding the first element in a list
-            that matches a particular set of keys and values.
-          </li>
-          <li>
-            Added <tt>_.partial</tt>, for partially applying a function <i>without</i>
-            changing its dynamic reference to <tt>this</tt>.
-          </li>
-          <li>
-            Simplified <tt>bind</tt> by removing some edge cases involving
-            constructor functions. In short: don't <tt>_.bind</tt> your
-            constructors.
-          </li>
-          <li>
-            A minor optimization to <tt>invoke</tt>.
-          </li>
-          <li>
-            Fix bug in the minified version due to the minifier incorrectly
-            optimizing-away <tt>isFunction</tt>.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.4.3</b> &mdash; <small><i>Dec. 4, 2012</i></small> &mdash; <a href="https://github.com/documentcloud/underscore/compare/1.4.2...1.4.3">Diff</a><br />
-        <ul>
-          <li>
-            Improved Underscore compatibility with Adobe's JS engine that can be
-            used to script Illustrator, Photoshop, and friends.
-          </li>
-          <li>
-            Added a default <tt>_.identity</tt> iterator to <tt>countBy</tt> and
-            <tt>groupBy</tt>.
-          </li>
-          <li>
-            The <tt>uniq</tt> function can now take <tt>array, iterator, context</tt>
-            as the argument list.
-          </li>
-          <li>
-            The <tt>times</tt> function now returns the mapped array of iterator
-            results.
-          </li>
-          <li>
-            Simplified and fixed bugs in <tt>throttle</tt>.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.4.2</b> &mdash; <small><i>Oct. 1, 2012</i></small> &mdash; <a href="https://github.com/documentcloud/underscore/compare/1.4.1...1.4.2">Diff</a><br />
-        <ul>
-          <li>
-            For backwards compatibility, returned to pre-1.4.0 behavior when
-            passing <tt>null</tt> to iteration functions. They now become no-ops
-            again.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.4.1</b> &mdash; <small><i>Oct. 1, 2012</i></small> &mdash; <a href="https://github.com/documentcloud/underscore/compare/1.4.0...1.4.1">Diff</a><br />
-        <ul>
-          <li>
-            Fixed a 1.4.0 regression in the <tt>lastIndexOf</tt> function.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.4.0</b> &mdash; <small><i>Sept. 27, 2012</i></small>  &mdash; <a href="https://github.com/documentcloud/underscore/compare/1.3.3...1.4.0">Diff</a><br />
-        <ul>
-          <li>
-            Added a <tt>pairs</tt> function, for turning a JavaScript object
-            into <tt>[key, value]</tt> pairs ... as well as an <tt>object</tt>
-            function, for converting an array of <tt>[key, value]</tt> pairs
-            into an object.
-          </li>
-          <li>
-            Added a <tt>countBy</tt> function, for counting the number of objects
-            in a list that match a certain criteria.
-          </li>
-          <li>
-            Added an <tt>invert</tt> function, for performing a simple inversion
-            of the keys and values in an object.
-          </li>
-          <li>
-            Added a <tt>where</tt> function, for easy cases of filtering a list
-            for objects with specific values.
-          </li>
-          <li>
-            Added an <tt>omit</tt> function, for filtering an object to remove
-            certain keys.
-          </li>
-          <li>
-            Added a <tt>random</tt> function, to return a random number in a
-            given range.
-          </li>
-          <li>
-            <tt>_.debounce</tt>'d functions now return their last updated value,
-            just like <tt>_.throttle</tt>'d functions do.
-          </li>
-          <li>
-            The <tt>sortBy</tt> function now runs a stable sort algorithm.
-          </li>
-          <li>
-            Added the optional <tt>fromIndex</tt> option to <tt>indexOf</tt> and
-            <tt>lastIndexOf</tt>.
-          </li>
-          <li>
-            "Sparse" arrays are no longer supported in Underscore iteration
-            functions. Use a <tt>for</tt> loop instead (or better yet, an object).
-          </li>
-          <li>
-            The <tt>min</tt> and <tt>max</tt> functions may now be called on
-            <i>very</i> large arrays.
-          </li>
-          <li>
-            Interpolation in templates now represents <tt>null</tt> and
-            <tt>undefined</tt> as the empty string.
-          </li>
-          <li>
-            <del>Underscore iteration functions no longer accept <tt>null</tt> values
-            as a no-op argument. You'll get an early error instead.</del>
-          </li>
-          <li>
-            A number of edge-cases fixes and tweaks, which you can spot in the
-            <a href="https://github.com/documentcloud/underscore/compare/1.3.3...1.4.0">diff</a>.
-            Depending on how you're using Underscore, <b>1.4.0</b> may be more
-            backwards-incompatible than usual &mdash; please test when you upgrade.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.3.3</b> &mdash; <small><i>April 10, 2012</i></small><br />
-        <ul>
-          <li>
-            Many improvements to <tt>_.template</tt>, which now provides the
-            <tt>source</tt> of the template function as a property, for potentially
-            even more efficient pre-compilation on the server-side. You may now
-            also set the <tt>variable</tt> option when creating a template,
-            which will cause your passed-in data to be made available under the
-            variable you named, instead of using a <tt>with</tt> statement &mdash;
-            significantly improving the speed of rendering the template.
-          </li>
-          <li>
-            Added the <tt>pick</tt> function, which allows you to filter an
-            object literal with a whitelist of allowed property names.
-          </li>
-          <li>
-            Added the <tt>result</tt> function, for convenience when working
-            with APIs that allow either functions or raw properties.
-          </li>
-          <li>
-            Added the <tt>isFinite</tt> function, because sometimes knowing that
-            a value is a number just ain't quite enough.
-          </li>
-          <li>
-            The <tt>sortBy</tt> function may now also be passed the string name
-            of a property to use as the sort order on each object.
-          </li>
-          <li>
-            Fixed <tt>uniq</tt> to work with sparse arrays.
-          </li>
-          <li>
-            The <tt>difference</tt> function now performs a shallow flatten
-            instead of a deep one when computing array differences.
-          </li>
-          <li>
-            The <tt>debounce</tt> function now takes an <tt>immediate</tt>
-            parameter, which will cause the callback to fire on the leading
-            instead of the trailing edge.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.3.1</b> &mdash; <small><i>Jan. 23, 2012</i></small><br />
-        <ul>
-          <li>
-            Added an <tt>_.has</tt> function, as a safer way to use <tt>hasOwnProperty</tt>.
-          </li>
-          <li>
-            Added <tt>_.collect</tt> as an alias for <tt>_.map</tt>. Smalltalkers, rejoice.
-          </li>
-          <li>
-            Reverted an old change so that <tt>_.extend</tt> will correctly copy
-            over keys with undefined values again.
-          </li>
-          <li>
-            Bugfix to stop escaping slashes within interpolations in <tt>_.template</tt>.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.3.0</b> &mdash; <small><i>Jan. 11, 2012</i></small><br />
-        <ul>
-          <li>
-            Removed AMD (RequireJS) support from Underscore. If you'd like to use
-            Underscore with RequireJS, you can load it as a normal script, wrap
-            or patch your copy, or download a forked version.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.2.4</b> &mdash; <small><i>Jan. 4, 2012</i></small><br />
-        <ul>
-          <li>
-            You now can (and probably should, as it's simpler)
-            write <tt>_.chain(list)</tt>
-            instead of <tt>_(list).chain()</tt>.
-          </li>
-          <li>
-            Fix for escaped characters in Underscore templates, and for supporting
-            customizations of <tt>_.templateSettings</tt> that only define one or
-            two of the required regexes.
-          </li>
-          <li>
-            Fix for passing an array as the first argument to an <tt>_.wrap</tt>'d function.
-          </li>
-          <li>
-            Improved compatibility with ClojureScript, which adds a <tt>call</tt>
-            function to <tt>String.prototype</tt>.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.2.3</b> &mdash; <small><i>Dec. 7, 2011</i></small><br />
-        <ul>
-          <li>
-            Dynamic scope is now preserved for compiled <tt>_.template</tt> functions,
-            so you can use the value of <tt>this</tt> if you like.
-          </li>
-          <li>
-            Sparse array support of <tt>_.indexOf</tt>, <tt>_.lastIndexOf</tt>.
-          </li>
-          <li>
-            Both <tt>_.reduce</tt> and <tt>_.reduceRight</tt> can now be passed an
-            explicitly <tt>undefined</tt> value. (There's no reason why you'd
-            want to do this.)
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.2.2</b> &mdash; <small><i>Nov. 14, 2011</i></small><br />
-        <ul>
-          <li>
-            Continued tweaks to <tt>_.isEqual</tt> semantics. Now JS primitives are
-            considered equivalent to their wrapped versions, and arrays are compared
-            by their numeric properties only <small>(#351)</small>.
-          </li>
-          <li>
-            <tt>_.escape</tt> no longer tries to be smart about not double-escaping
-            already-escaped HTML entities. Now it just escapes regardless <small>(#350)</small>.
-          </li>
-          <li>
-            In <tt>_.template</tt>, you may now leave semicolons out of evaluated
-            statements if you wish: <tt>&lt;% }) %&gt;</tt> <small>(#369)</small>.
-          </li>
-          <li>
-            <tt>_.after(callback, 0)</tt> will now trigger the callback immediately,
-            making "after" easier to use with asynchronous APIs <small>(#366)</small>.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.2.1</b> &mdash; <small><i>Oct. 24, 2011</i></small><br />
-        <ul>
-          <li>
-            Several important bug fixes for <tt>_.isEqual</tt>, which should now
-            do better on mutated Arrays, and on non-Array objects with
-            <tt>length</tt> properties. <small>(#329)</small>
-          </li>
-          <li>
-            <b>jrburke</b> contributed Underscore exporting for AMD module loaders,
-            and <b>tonylukasavage</b> for Appcelerator Titanium.
-            <small>(#335, #338)</small>
-          </li>
-          <li>
-            You can now <tt>_.groupBy(list, 'property')</tt> as a shortcut for
-            grouping values by a particular common property.
-          </li>
-          <li>
-            <tt>_.throttle</tt>'d functions now fire immediately upon invocation,
-            and are rate-limited thereafter <small>(#170, #266)</small>.
-          </li>
-          <li>
-            Most of the <tt>_.is[Type]</tt> checks no longer ducktype.
-          </li>
-          <li>
-            The <tt>_.bind</tt> function now also works on constructors, a-la
-            ES5 ... but you would never want to use <tt>_.bind</tt> on a
-            constructor function.
-          </li>
-          <li>
-            <tt>_.clone</tt> no longer wraps non-object types in Objects.
-          </li>
-          <li>
-            <tt>_.find</tt> and <tt>_.filter</tt> are now the preferred names for
-            <tt>_.detect</tt> and <tt>_.select</tt>.
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.2.0</b> &mdash; <small><i>Oct. 5, 2011</i></small><br />
-        <ul>
-          <li>
-            The <tt>_.isEqual</tt> function now
-            supports true deep equality comparisons, with checks for cyclic structures,
-            thanks to Kit Cambridge.
-          </li>
-          <li>
-            Underscore templates now support HTML escaping interpolations, using
-            <tt>&lt;%- ... %&gt;</tt> syntax.
-          </li>
-          <li>
-            Ryan Tenney contributed <tt>_.shuffle</tt>, which uses a modified
-            Fisher-Yates to give you a shuffled copy of an array.
-          </li>
-          <li>
-            <tt>_.uniq</tt> can now be passed an optional iterator, to determine by
-            what criteria an object should be considered unique.
-          </li>
-          <li>
-            <tt>_.last</tt> now takes an optional argument which will return the last
-            N elements of the list.
-          </li>
-          <li>
-            A new <tt>_.initial</tt> function was added, as a mirror of <tt>_.rest</tt>,
-            which returns all the initial values of a list (except the last N).
-          </li>
-        </ul>
-      </p>
-
-      <p>
-        <b class="header">1.1.7</b> &mdash; <small><i>July 13, 2011</i></small><br />
-        Added <tt>_.groupBy</tt>, which aggregates a collection into groups of like items.
-        Added <tt>_.union</tt> and <tt>_.difference</tt>, to complement the
-        (re-named) <tt>_.intersection</tt>.
-        Various improvements for support of sparse arrays.
-        <tt>_.toArray</tt> now returns a clone, if directly passed an array.
-        <tt>_.functions</tt> now also returns the names of functions that are present
-        in the prototype chain.
-      </p>
-
-      <p>
-        <b class="header">1.1.6</b> &mdash; <small><i>April 18, 2011</i></small><br />
-        Added <tt>_.after</tt>, which will return a function that only runs after
-        first being called a specified number of times.
-        <tt>_.invoke</tt> can now take a direct function reference.
-        <tt>_.every</tt> now requires an iterator function to be passed, which
-        mirrors the ECMA5 API.
-        <tt>_.extend</tt> no longer copies keys when the value is undefined.
-        <tt>_.bind</tt> now errors when trying to bind an undefined value.
-      </p>
-
-      <p>
-        <b class="header">1.1.5</b> &mdash; <small><i>Mar 20, 2011</i></small><br />
-        Added an <tt>_.defaults</tt> function, for use merging together JS objects
-        representing default options.
-        Added an <tt>_.once</tt> function, for manufacturing functions that should
-        only ever execute a single time.
-        <tt>_.bind</tt> now delegates to the native ECMAScript 5 version,
-        where available.
-        <tt>_.keys</tt> now throws an error when used on non-Object values, as in
-        ECMAScript 5.
-        Fixed a bug with <tt>_.keys</tt> when used over sparse arrays.
-      </p>
-
-      <p>
-        <b class="header">1.1.4</b> &mdash; <small><i>Jan 9, 2011</i></small><br />
-        Improved compliance with ES5's Array methods when passing <tt>null</tt>
-        as a value. <tt>_.wrap</tt> now correctly sets <tt>this</tt> for the
-        wrapped function. <tt>_.indexOf</tt> now takes an optional flag for
-        finding the insertion index in an array that is guaranteed to already
-        be sorted. Avoiding the use of <tt>.callee</tt>, to allow <tt>_.isArray</tt>
-        to work properly in ES5's strict mode.
-      </p>
-
-      <p>
-        <b class="header">1.1.3</b> &mdash; <small><i>Dec 1, 2010</i></small><br />
-        In CommonJS, Underscore may now be required with just: <br />
-        <tt>var _ = require("underscore")</tt>.
-        Added <tt>_.throttle</tt> and <tt>_.debounce</tt> functions.
-        Removed <tt>_.breakLoop</tt>, in favor of an ECMA5-style un-<i>break</i>-able
-        each implementation &mdash; this removes the try/catch, and you'll now have
-        better stack traces for exceptions that are thrown within an Underscore iterator.
-        Improved the <b>isType</b> family of functions for better interoperability
-        with Internet Explorer host objects.
-        <tt>_.template</tt> now correctly escapes backslashes in templates.
-        Improved <tt>_.reduce</tt> compatibility with the ECMA5 version:
-        if you don't pass an initial value, the first item in the collection is used.
-        <tt>_.each</tt> no longer returns the iterated collection, for improved
-        consistency with ES5's <tt>forEach</tt>.
-      </p>
-
-      <p>
-        <b class="header">1.1.2</b><br />
-        Fixed <tt>_.contains</tt>, which was mistakenly pointing at
-        <tt>_.intersect</tt> instead of <tt>_.include</tt>, like it should
-        have been. Added <tt>_.unique</tt> as an alias for <tt>_.uniq</tt>.
-      </p>
-
-      <p>
-        <b class="header">1.1.1</b><br />
-        Improved the speed of <tt>_.template</tt>, and its handling of multiline
-        interpolations. Ryan Tenney contributed optimizations to many Underscore
-        functions. An annotated version of the source code is now available.
-      </p>
-
-      <p>
-        <b class="header">1.1.0</b><br />
-        The method signature of <tt>_.reduce</tt> has been changed to match
-        the ECMAScript 5 signature, instead of the Ruby/Prototype.js version.
-        This is a backwards-incompatible change. <tt>_.template</tt> may now be
-        called with no arguments, and preserves whitespace. <tt>_.contains</tt>
-        is a new alias for <tt>_.include</tt>.
-      </p>
-
-      <p>
-        <b class="header">1.0.4</b><br />
-        <a href="http://themoell.com/">Andri Möll</a> contributed the <tt>_.memoize</tt>
-        function, which can be used to speed up expensive repeated computations
-        by caching the results.
-      </p>
-
-      <p>
-        <b class="header">1.0.3</b><br />
-        Patch that makes <tt>_.isEqual</tt> return <tt>false</tt> if any property
-        of the compared object has a <tt>NaN</tt> value. Technically the correct
-        thing to do, but of questionable semantics. Watch out for NaN comparisons.
-      </p>
-
-      <p>
-        <b class="header">1.0.2</b><br />
-        Fixes <tt>_.isArguments</tt> in recent versions of Opera, which have
-        arguments objects as real Arrays.
-      </p>
-
-      <p>
-        <b class="header">1.0.1</b><br />
-        Bugfix for <tt>_.isEqual</tt>, when comparing two objects with the same
-        number of undefined keys, but with different names.
-      </p>
-
-      <p>
-        <b class="header">1.0.0</b><br />
-        Things have been stable for many months now, so Underscore is now
-        considered to be out of beta, at <b>1.0</b>. Improvements since <b>0.6</b>
-        include <tt>_.isBoolean</tt>, and the ability to have <tt>_.extend</tt>
-        take multiple source objects.
-      </p>
-
-      <p>
-        <b class="header">0.6.0</b><br />
-        Major release. Incorporates a number of
-        <a href="http://github.com/ratbeard">Mile Frawley's</a> refactors for
-        safer duck-typing on collection functions, and cleaner internals. A new
-        <tt>_.mixin</tt> method that allows you to extend Underscore with utility
-        functions of your own. Added <tt>_.times</tt>, which works the same as in
-        Ruby or Prototype.js. Native support for ECMAScript 5's <tt>Array.isArray</tt>,
-        and <tt>Object.keys</tt>.
-      </p>
-
-      <p>
-        <b class="header">0.5.8</b><br />
-        Fixed Underscore's collection functions to work on
-        <a href="https://developer.mozilla.org/En/DOM/NodeList">NodeLists</a> and
-        <a href="https://developer.mozilla.org/En/DOM/HTMLCollection">HTMLCollections</a>
-        once more, thanks to
-        <a href="http://github.com/jmtulloss">Justin Tulloss</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.7</b><br />
-        A safer implementation of <tt>_.isArguments</tt>, and a
-        faster <tt>_.isNumber</tt>,<br />thanks to
-        <a href="http://jedschmidt.com/">Jed Schmidt</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.6</b><br />
-        Customizable delimiters for <tt>_.template</tt>, contributed by
-        <a href="http://github.com/iamnoah">Noah Sloan</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.5</b><br />
-        Fix for a bug in MobileSafari's OOP-wrapper, with the arguments object.
-      </p>
-
-      <p>
-        <b class="header">0.5.4</b><br />
-        Fix for multiple single quotes within a template string for
-        <tt>_.template</tt>. See:
-        <a href="http://www.west-wind.com/Weblog/posts/509108.aspx">Rick Strahl's blog post</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.2</b><br />
-        New implementations of <tt>isArray</tt>, <tt>isDate</tt>, <tt>isFunction</tt>,
-        <tt>isNumber</tt>, <tt>isRegExp</tt>, and <tt>isString</tt>, thanks to
-        a suggestion from
-        <a href="http://www.broofa.com/">Robert Kieffer</a>.
-        Instead of doing <tt>Object#toString</tt>
-        comparisons, they now check for expected properties, which is less safe,
-        but more than an order of magnitude faster. Most other Underscore
-        functions saw minor speed improvements as a result.
-        <a href="http://dolzhenko.org/">Evgeniy Dolzhenko</a>
-        contributed <tt>_.tap</tt>,
-        <a href="http://ruby-doc.org/core-1.9/classes/Object.html#M000191">similar to Ruby 1.9's</a>,
-        which is handy for injecting side effects (like logging) into chained calls.
-      </p>
-
-      <p>
-        <b class="header">0.5.1</b><br />
-        Added an <tt>_.isArguments</tt> function. Lots of little safety checks
-        and optimizations contributed by
-        <a href="http://github.com/iamnoah/">Noah Sloan</a> and
-        <a href="http://themoell.com/">Andri Möll</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.0</b><br />
-        <b>[API Changes]</b> <tt>_.bindAll</tt> now takes the context object as
-        its first parameter. If no method names are passed, all of the context
-        object's methods are bound to it, enabling chaining and easier binding.
-        <tt>_.functions</tt> now takes a single argument and returns the names
-        of its Function properties. Calling <tt>_.functions(_)</tt> will get you
-        the previous behavior.
-        Added <tt>_.isRegExp</tt> so that <tt>isEqual</tt> can now test for RegExp equality.
-        All of the "is" functions have been shrunk down into a single definition.
-        <a href="http://github.com/grayrest/">Karl Guertin</a> contributed patches.
-      </p>
-
-      <p>
-        <b class="header">0.4.7</b><br />
-        Added <tt>isDate</tt>, <tt>isNaN</tt>, and <tt>isNull</tt>, for completeness.
-        Optimizations for <tt>isEqual</tt> when checking equality between Arrays
-        or Dates. <tt>_.keys</tt> is now <small><i><b>25%&ndash;2X</b></i></small> faster (depending on your
-        browser) which speeds up the functions that rely on it, such as <tt>_.each</tt>.
-      </p>
-
-      <p>
-        <b class="header">0.4.6</b><br />
-        Added the <tt>range</tt> function, a port of the
-        <a href="http://docs.python.org/library/functions.html#range">Python
-        function of the same name</a>, for generating flexibly-numbered lists
-        of integers. Original patch contributed by
-        <a href="http://github.com/kylichuku">Kirill Ishanov</a>.
-      </p>
-
-      <p>
-        <b class="header">0.4.5</b><br />
-        Added <tt>rest</tt> for Arrays and arguments objects, and aliased
-        <tt>first</tt> as <tt>head</tt>, and <tt>rest</tt> as <tt>tail</tt>,
-        thanks to <a href="http://github.com/lukesutton/">Luke Sutton</a>'s patches.
-        Added tests ensuring that all Underscore Array functions also work on
-        <i>arguments</i> objects.
-      </p>
-
-      <p>
-        <b class="header">0.4.4</b><br />
-        Added <tt>isString</tt>, and <tt>isNumber</tt>, for consistency. Fixed
-        <tt>_.isEqual(NaN, NaN)</tt> to return <i>true</i> (which is debatable).
-      </p>
-
-      <p>
-        <b class="header">0.4.3</b><br />
-        Started using the native <tt>StopIteration</tt> object in browsers that support it.
-        Fixed Undersco

<TRUNCATED>

[32/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/env.rhino.1.2.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/env.rhino.1.2.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/env.rhino.1.2.js
deleted file mode 100644
index 8da1c07..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/env.rhino.1.2.js
+++ /dev/null
@@ -1,13989 +0,0 @@
-/*
- * Envjs core-env.1.2.13
- * Pure JavaScript Browser Environment
- * By John Resig <http://ejohn.org/> and the Envjs Team
- * Copyright 2008-2010 John Resig, under the MIT License
- */
-
-var Envjs = function(){
-    var i,
-        name,
-        override = function(){
-            for(i=0;i<arguments.length;i++){
-                for ( name in arguments[i] ) {
-                    var g = arguments[i].__lookupGetter__(name),
-                        s = arguments[i].__lookupSetter__(name);
-                    if ( g || s ) {
-                        if ( g ) { Envjs.__defineGetter__(name, g); }
-                        if ( s ) { Envjs.__defineSetter__(name, s); }
-                    } else {
-                        Envjs[name] = arguments[i][name];
-                    }
-                }
-            }
-        };
-    if(arguments.length === 1 && typeof(arguments[0]) == 'string'){
-        window.location = arguments[0];
-    }else if (arguments.length === 1 && typeof(arguments[0]) == "object"){
-        override(arguments[0]);
-    }else if(arguments.length === 2 && typeof(arguments[0]) == 'string'){
-        override(arguments[1]);
-        window.location = arguments[0];
-    }
-    return;
-},
-__this__ = this;
-
-//eg "Mozilla"
-Envjs.appCodeName  = "Envjs";
-
-//eg "Gecko/20070309 Firefox/2.0.0.3"
-Envjs.appName      = "Resig/20070309 PilotFish/1.2.13";
-
-Envjs.version = "1.6";//?
-Envjs.revision = '';
-/*
- * Envjs core-env.1.2.13 
- * Pure JavaScript Browser Environment
- * By John Resig <http://ejohn.org/> and the Envjs Team
- * Copyright 2008-2010 John Resig, under the MIT License
- */
-
-//CLOSURE_START
-(function(){
-
-
-
-
-
-/**
- * @author john resig
- */
-// Helper method for extending one object with another.
-function __extend__(a,b) {
-    for ( var i in b ) {
-        var g = b.__lookupGetter__(i), s = b.__lookupSetter__(i);
-        if ( g || s ) {
-            if ( g ) { a.__defineGetter__(i, g); }
-            if ( s ) { a.__defineSetter__(i, s); }
-        } else {
-            a[i] = b[i];
-        }
-    } return a;
-}
-
-/**
- * Writes message to system out
- * @param {String} message
- */
-Envjs.log = function(message){};
-
-/**
- * Constants providing enumerated levels for logging in modules
- */
-Envjs.DEBUG = 1;
-Envjs.INFO = 2;
-Envjs.WARN = 3;
-Envjs.ERROR = 3;
-Envjs.NONE = 3;
-
-/**
- * Writes error info out to console
- * @param {Error} e
- */
-Envjs.lineSource = function(e){};
-
-    
-/**
- * TODO: used in ./event/eventtarget.js
- * @param {Object} event
- */
-Envjs.defaultEventBehaviors = {};
-
-
-/**
- * describes which script src values will trigger Envjs to load
- * the script like a browser would
- */
-Envjs.scriptTypes = {
-    "text/javascript"   :false,
-    "text/envjs"        :true
-};
-
-/**
- * will be called when loading a script throws an error
- * @param {Object} script
- * @param {Object} e
- */
-Envjs.onScriptLoadError = function(script, e){
-    console.log('error loading script %s %s', script, e);
-};
-
-
-/**
- * load and execute script tag text content
- * @param {Object} script
- */
-Envjs.loadInlineScript = function(script){
-    var tmpFile;
-    tmpFile = Envjs.writeToTempFile(script.text, 'js') ;
-    load(tmpFile);
-};
-
-/**
- * Should evaluate script in some context
- * @param {Object} context
- * @param {Object} source
- * @param {Object} name
- */
-Envjs.eval = function(context, source, name){};
-
-
-/**
- * Executes a script tag
- * @param {Object} script
- * @param {Object} parser
- */
-Envjs.loadLocalScript = function(script){
-    //console.log("loading script %s", script);
-    var types,
-    src,
-    i,
-    base,
-    filename,
-    xhr;
-
-    if(script.type){
-        types = script.type.split(";");
-        for(i=0;i<types.length;i++){
-            if(Envjs.scriptTypes[types[i]]){
-                //ok this script type is allowed
-                break;
-            }
-            if(i+1 == types.length){
-                //console.log('wont load script type %s', script.type);
-                return false;
-            }
-        }
-    }
-
-    try{
-        //console.log('handling inline scripts');
-        if(!script.src.length){
-            Envjs.loadInlineScript(script);
-            return true;
-        }
-    }catch(e){
-        //Envjs.error("Error loading script.", e);
-        Envjs.onScriptLoadError(script, e);
-        return false;
-    }
-
-
-    //console.log("loading allowed external script %s", script.src);
-
-    //lets you register a function to execute
-    //before the script is loaded
-    if(Envjs.beforeScriptLoad){
-        for(src in Envjs.beforeScriptLoad){
-            if(script.src.match(src)){
-                Envjs.beforeScriptLoad[src](script);
-            }
-        }
-    }
-    base = "" + script.ownerDocument.location;
-    //filename = Envjs.uri(script.src.match(/([^\?#]*)/)[1], base );
-    //console.log('loading script from base %s', base);
-    filename = Envjs.uri(script.src, base);
-    try {
-        xhr = new XMLHttpRequest();
-        xhr.open("GET", filename, false/*syncronous*/);
-        //console.log("loading external script %s", filename);
-        xhr.onreadystatechange = function(){
-            //console.log("readyState %s", xhr.readyState);
-            if(xhr.readyState === 4){
-                Envjs.eval(
-                    script.ownerDocument.ownerWindow,
-                    xhr.responseText,
-                    filename
-                );
-            }
-        };
-        xhr.send(null, false);
-    } catch(e) {
-        console.log("could not load script %s \n %s", filename, e );
-        Envjs.onScriptLoadError(script, e);
-        return false;
-    }
-    //lets you register a function to execute
-    //after the script is loaded
-    if(Envjs.afterScriptLoad){
-        for(src in Envjs.afterScriptLoad){
-            if(script.src.match(src)){
-                Envjs.afterScriptLoad[src](script);
-            }
-        }
-    }
-    return true;
-};
-
-
-/**
- * An 'image' was requested by the document.
- *
- * - During inital parse of a <link>
- * - Via an innerHTML parse of a <link>
- * - A modificiation of the 'src' attribute of an Image/HTMLImageElement
- *
- * NOTE: this is optional API.  If this doesn't exist then the default
- * 'loaded' event occurs.
- *
- * @param node {Object} the <img> node
- * @param node the src value
- * @return 'true' to indicate the 'load' succeed, false otherwise
- */
-Envjs.loadImage = function(node, src) {
-    return true;
-};
-
-
-/**
- * A 'link'  was requested by the document.  Typically this occurs when:
- * - During inital parse of a <link>
- * - Via an innerHTML parse of a <link>
- * - A modificiation of the 'href' attribute on a <link> node in the tree
- *
- * @param node {Object} is the link node in question
- * @param href {String} is the href.
- *
- * Return 'true' to indicate that the 'load' was successful, or false
- * otherwise.  The appropriate event is then triggered.
- *
- * NOTE: this is optional API.  If this doesn't exist then the default
- *   'loaded' event occurs
- */
-Envjs.loadLink = function(node, href) {
-    return true;
-};
-
-(function(){
-
-
-/*
- *  cookie handling
- *  Private internal helper class used to save/retreive cookies
- */
-
-/**
- * Specifies the location of the cookie file
- */
-Envjs.cookieFile = function(){
-    return 'file://'+Envjs.homedir+'/.cookies';
-};
-
-/**
- * saves cookies to a local file
- * @param {Object} htmldoc
- */
-Envjs.saveCookies = function(){
-    var cookiejson = JSON.stringify(Envjs.cookies.peristent,null,'\t');
-    //console.log('persisting cookies %s', cookiejson);
-    Envjs.writeToFile(cookiejson, Envjs.cookieFile());
-};
-
-/**
- * loads cookies from a local file
- * @param {Object} htmldoc
- */
-Envjs.loadCookies = function(){
-    var cookiejson,
-        js;
-    try{
-        cookiejson = Envjs.readFromFile(Envjs.cookieFile())
-        js = JSON.parse(cookiejson, null, '\t');
-    }catch(e){
-        //console.log('failed to load cookies %s', e);
-        js = {};
-    }
-    return js;
-};
-
-Envjs.cookies = {
-    persistent:{
-        //domain - key on domain name {
-            //path - key on path {
-                //name - key on name {
-                     //value : cookie value
-                     //other cookie properties
-                //}
-            //}
-        //}
-        //expire - provides a timestamp for expiring the cookie
-        //cookie - the cookie!
-    },
-    temporary:{//transient is a reserved word :(
-        //like above
-    }
-};
-
-var __cookies__;
-
-//HTMLDocument cookie
-Envjs.setCookie = function(url, cookie){
-    var i,
-        index,
-        name,
-        value,
-        properties = {},
-        attr,
-        attrs;
-    url = Envjs.urlsplit(url);
-    if(cookie)
-        attrs = cookie.split(";");
-    else
-        return;
-    
-    //for now the strategy is to simply create a json object
-    //and post it to a file in the .cookies.js file.  I hate parsing
-    //dates so I decided not to implement support for 'expires' 
-    //(which is deprecated) and instead focus on the easier 'max-age'
-    //(which succeeds 'expires') 
-    cookie = {};//keyword properties of the cookie
-    cookie['domain'] = url.hostname;
-    cookie['path'] = url.path||'/';
-    for(i=0;i<attrs.length;i++){
-        index = attrs[i].indexOf("=");
-        if(index > -1){
-            name = __trim__(attrs[i].slice(0,index));
-            value = __trim__(attrs[i].slice(index+1));
-            if(name=='max-age'){
-                //we'll have to when to check these
-                //and garbage collect expired cookies
-                cookie[name] = parseInt(value, 10);
-            } else if( name == 'domain' ){
-                if(__domainValid__(url, value)){
-                    cookie['domain'] = value;
-                }
-            } else if( name == 'path' ){
-                //not sure of any special logic for path
-                cookie['path'] = value;
-            } else {
-                //its not a cookie keyword so store it in our array of properties
-                //and we'll serialize individually in a moment
-                properties[name] = value;
-            }
-        }else{
-            if( attrs[i] == 'secure' ){
-                cookie[attrs[i]] = true;
-            }
-        }
-    }
-    if(!('max-age' in cookie)){
-        //it's a transient cookie so it only lasts as long as 
-        //the window.location remains the same (ie in-memory cookie)
-        __mergeCookie__(Envjs.cookies.temporary, cookie, properties);
-    }else{
-        //the cookie is persistent
-        __mergeCookie__(Envjs.cookies.persistent, cookie, properties);
-        Envjs.saveCookies();
-    }
-};
-
-function __domainValid__(url, value){
-    var i,
-        domainParts = url.hostname.split('.').reverse(),
-        newDomainParts = value.split('.').reverse();
-    if(newDomainParts.length > 1){
-        for(i=0;i<newDomainParts.length;i++){
-            if(!(newDomainParts[i] == domainParts[i])){
-                return false;
-            }
-        }
-        return true;
-    }
-    return false;
-};
-
-Envjs.getCookies = function(url){
-    //The cookies that are returned must belong to the same domain
-    //and be at or below the current window.location.path.  Also
-    //we must check to see if the cookie was set to 'secure' in which
-    //case we must check our current location.protocol to make sure it's
-    //https:
-    var persisted;
-    url = Envjs.urlsplit(url);
-    if(!__cookies__){
-        try{
-            __cookies__ = true;
-            try{
-                persisted = Envjs.loadCookies();
-            }catch(e){
-                //fail gracefully
-                //console.log('%s', e);
-            }   
-            if(persisted){
-                __extend__(Envjs.cookies.persistent, persisted);
-            }
-            //console.log('set cookies for doc %s', doc.baseURI);
-        }catch(e){
-            console.log('cookies not loaded %s', e)
-        };
-    }
-    var temporary = __cookieString__(Envjs.cookies.temporary, url),
-        persistent =  __cookieString__(Envjs.cookies.persistent, url);
-    //console.log('temporary cookies: %s', temporary);  
-    //console.log('persistent cookies: %s', persistent);  
-    return  temporary + persistent;
-};
-
-function __cookieString__(cookies, url) {
-    var cookieString = "",
-        domain, 
-        path,
-        name,
-        i=0;
-    for (domain in cookies) {
-        // check if the cookie is in the current domain (if domain is set)
-        // console.log('cookie domain %s', domain);
-        if (domain == "" || domain == url.hostname) {
-            for (path in cookies[domain]) {
-                // console.log('cookie domain path %s', path);
-                // make sure path is at or below the window location path
-                if (path == "/" || url.path.indexOf(path) > -1) {
-                    for (name in cookies[domain][path]) {
-                        // console.log('cookie domain path name %s', name);
-                        cookieString += 
-                            ((i++ > 0)?'; ':'') +
-                            name + "=" + 
-                            cookies[domain][path][name].value;
-                    }
-                }
-            }
-        }
-    }
-    return cookieString;
-};
-
-function __mergeCookie__(target, cookie, properties){
-    var name, now;
-    if(!target[cookie.domain]){
-        target[cookie.domain] = {};
-    }
-    if(!target[cookie.domain][cookie.path]){
-        target[cookie.domain][cookie.path] = {};
-    }
-    for(name in properties){
-        now = new Date().getTime();
-        target[cookie.domain][cookie.path][name] = {
-            "value":properties[name],
-            "secure":cookie.secure,
-            "max-age":cookie['max-age'],
-            "date-created":now,
-            "expiration":(cookie['max-age']===0) ? 
-                0 :
-                now + cookie['max-age']
-        };
-        //console.log('cookie is %o',target[cookie.domain][cookie.path][name]);
-    }
-};
-
-})();//end cookies
-/*
-    http://www.JSON.org/json2.js
-    2008-07-15
-
-    Public Domain.
-
-    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
-
-    See http://www.JSON.org/js.html
-
-   
-    This code should be minified before deployment.
-    See http://javascript.crockford.com/jsmin.html
-
-    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
-    NOT CONTROL.
-*/
-try{ JSON; }catch(e){ 
-JSON = function () {
-
-    function f(n) {
-        // Format integers to have at least two digits.
-        return n < 10 ? '0' + n : n;
-    }
-
-    Date.prototype.toJSON = function (key) {
-
-        return this.getUTCFullYear()   + '-' +
-             f(this.getUTCMonth() + 1) + '-' +
-             f(this.getUTCDate())      + 'T' +
-             f(this.getUTCHours())     + ':' +
-             f(this.getUTCMinutes())   + ':' +
-             f(this.getUTCSeconds())   + 'Z';
-    };
-
-    String.prototype.toJSON = function (key) {
-        return String(this);
-    };
-    Number.prototype.toJSON =
-    Boolean.prototype.toJSON = function (key) {
-        return this.valueOf();
-    };
-
-    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-        escapeable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-        gap,
-        indent,
-        meta = {    // table of character substitutions
-            '\b': '\\b',
-            '\t': '\\t',
-            '\n': '\\n',
-            '\f': '\\f',
-            '\r': '\\r',
-            '"' : '\\"',
-            '\\': '\\\\'
-        },
-        rep;
-
-
-    function quote(string) {
-        
-        escapeable.lastIndex = 0;
-        return escapeable.test(string) ?
-            '"' + string.replace(escapeable, function (a) {
-                var c = meta[a];
-                if (typeof c === 'string') {
-                    return c;
-                }
-                return '\\u' + ('0000' +
-                        (+(a.charCodeAt(0))).toString(16)).slice(-4);
-            }) + '"' :
-            '"' + string + '"';
-    }
-
-
-    function str(key, holder) {
-
-        var i,          // The loop counter.
-            k,          // The member key.
-            v,          // The member value.
-            length,
-            mind = gap,
-            partial,
-            value = holder[key];
-
-        if (value && typeof value === 'object' &&
-                typeof value.toJSON === 'function') {
-            value = value.toJSON(key);
-        }
-        if (typeof rep === 'function') {
-            value = rep.call(holder, key, value);
-        }
-
-        switch (typeof value) {
-        case 'string':
-            return quote(value);
-
-        case 'number':
-            return isFinite(value) ? String(value) : 'null';
-
-        case 'boolean':
-        case 'null':
-
-            return String(value);
-            
-        case 'object':
-
-            if (!value) {
-                return 'null';
-            }
-            gap += indent;
-            partial = [];
-
-            if (typeof value.length === 'number' &&
-                    !(value.propertyIsEnumerable('length'))) {
-
-                length = value.length;
-                for (i = 0; i < length; i += 1) {
-                    partial[i] = str(i, value) || 'null';
-                }
-                
-                v = partial.length === 0 ? '[]' :
-                    gap ? '[\n' + gap +
-                            partial.join(',\n' + gap) + '\n' +
-                                mind + ']' :
-                          '[' + partial.join(',') + ']';
-                gap = mind;
-                return v;
-            }
-
-            if (rep && typeof rep === 'object') {
-                length = rep.length;
-                for (i = 0; i < length; i += 1) {
-                    k = rep[i];
-                    if (typeof k === 'string') {
-                        v = str(k, value);
-                        if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                        }
-                    }
-                }
-            } else {
-
-                for (k in value) {
-                    if (Object.hasOwnProperty.call(value, k)) {
-                        v = str(k, value);
-                        if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                        }
-                    }
-                }
-            }
-
-            v = partial.length === 0 ? '{}' :
-                gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
-                        mind + '}' : '{' + partial.join(',') + '}';
-            gap = mind;
-            return v;
-        }
-    }
-
-    return {
-        stringify: function (value, replacer, space) {
-
-            var i;
-            gap = '';
-            indent = '';
-
-            if (typeof space === 'number') {
-                for (i = 0; i < space; i += 1) {
-                    indent += ' ';
-                }
-
-            } else if (typeof space === 'string') {
-                indent = space;
-            }
-
-            rep = replacer;
-            if (replacer && typeof replacer !== 'function' &&
-                    (typeof replacer !== 'object' ||
-                     typeof replacer.length !== 'number')) {
-                throw new Error('JSON.stringify');
-            }
-
-            return str('', {'': value});
-        },
-
-
-        parse: function (text, reviver) {
-            var j;
-            function walk(holder, key) {
-                var k, v, value = holder[key];
-                if (value && typeof value === 'object') {
-                    for (k in value) {
-                        if (Object.hasOwnProperty.call(value, k)) {
-                            v = walk(value, k);
-                            if (v !== undefined) {
-                                value[k] = v;
-                            } else {
-                                delete value[k];
-                            }
-                        }
-                    }
-                }
-                return reviver.call(holder, key, value);
-            }
-
-            cx.lastIndex = 0;
-            if (cx.test(text)) {
-                text = text.replace(cx, function (a) {
-                    return '\\u' + ('0000' +
-                            (+(a.charCodeAt(0))).toString(16)).slice(-4);
-                });
-            }
-
-
-            if (/^[\],:{}\s]*$/.
-test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
-replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
-replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-        
-                j = eval('(' + text + ')');
-
-                return typeof reviver === 'function' ?
-                    walk({'': j}, '') : j;
-            }
-
-            throw new SyntaxError('JSON.parse');
-        }
-    };
-}();
-
-}
-
-/**
- * synchronizes thread modifications
- * @param {Function} fn
- */
-Envjs.sync = function(fn){};
-
-/**
- * sleep thread for specified duration
- * @param {Object} millseconds
- */
-Envjs.sleep = function(millseconds){};
-
-/**
- * Interval to wait on event loop when nothing is happening
- */
-Envjs.WAIT_INTERVAL = 20;//milliseconds
-
-/*
- * Copyright (c) 2010 Nick Galbreath
- * http://code.google.com/p/stringencoders/source/browse/#svn/trunk/javascript
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * url processing in the spirit of python's urlparse module
- * see `pydoc urlparse` or
- * http://docs.python.org/library/urlparse.html
- *
- *  urlsplit: break apart a URL into components
- *  urlunsplit:  reconsistute a URL from componets
- *  urljoin: join an absolute and another URL
- *  urldefrag: remove the fragment from a URL
- *
- * Take a look at the tests in urlparse-test.html
- *
- * On URL Normalization:
- *
- * urlsplit only does minor normalization the components Only scheme
- * and hostname are lowercased urljoin does a bit more, normalizing
- * paths with "."  and "..".
-
- * urlnormalize adds additional normalization
- *
- *   * removes default port numbers
- *     http://abc.com:80/ -> http://abc.com/, etc
- *   * normalizes path
- *     http://abc.com -> http://abc.com/
- *     and other "." and ".." cleanups
- *   * if file, remove query and fragment
- *
- * It does not do:
- *   * normalizes escaped hex values
- *     http://abc.com/%7efoo -> http://abc.com/%7Efoo
- *   * normalize '+' <--> '%20'
- *
- * Differences with Python
- *
- * The javascript urlsplit returns a normal object with the following
- * properties: scheme, netloc, hostname, port, path, query, fragment.
- * All properties are read-write.
- *
- * In python, the resulting object is not a dict, but a specialized,
- * read-only, and has alternative tuple interface (e.g. obj[0] ==
- * obj.scheme).  It's not clear why such a simple function requires
- * a unique datastructure.
- *
- * urlunsplit in javascript takes an duck-typed object,
- *  { scheme: 'http', netloc: 'abc.com', ...}
- *  while in  * python it takes a list-like object.
- *  ['http', 'abc.com'... ]
- *
- * For all functions, the javascript version use
- * hostname+port if netloc is missing.  In python
- * hostname+port were always ignored.
- *
- * Similar functionality in different languages:
- *
- *   http://php.net/manual/en/function.parse-url.php
- *   returns assocative array but cannot handle relative URL
- *
- * TODO: test allowfragments more
- * TODO: test netloc missing, but hostname present
- */
-
-var urlparse = {};
-
-// Unlike to be useful standalone
-//
-// NORMALIZE PATH with "../" and "./"
-//   http://en.wikipedia.org/wiki/URL_normalization
-//   http://tools.ietf.org/html/rfc3986#section-5.2.3
-//
-urlparse.normalizepath = function(path)
-{
-    if (!path || path === '/') {
-        return '/';
-    }
-
-    var parts = path.split('/');
-
-    var newparts = [];
-    // make sure path always starts with '/'
-    if (parts[0]) {
-        newparts.push('');
-    }
-
-    for (var i = 0; i < parts.length; ++i) {
-        if (parts[i] === '..') {
-            if (newparts.length > 1) {
-                newparts.pop();
-            } else {
-                newparts.push(parts[i]);
-            }
-        } else if (parts[i] != '.') {
-            newparts.push(parts[i]);
-        }
-    }
-
-    path = newparts.join('/');
-    if (!path) {
-        path = '/';
-    }
-    return path;
-};
-
-//
-// Does many of the normalizations that the stock
-//  python urlsplit/urlunsplit/urljoin neglects
-//
-// Doesn't do hex-escape normalization on path or query
-//   %7e -> %7E
-// Nor, '+' <--> %20 translation
-//
-urlparse.urlnormalize = function(url)
-{
-    var parts = urlparse.urlsplit(url);
-    switch (parts.scheme) {
-    case 'file':
-        // files can't have query strings
-        //  and we don't bother with fragments
-        parts.query = '';
-        parts.fragment = '';
-        break;
-    case 'http':
-    case 'https':
-        // remove default port
-        if ((parts.scheme === 'http' && parts.port == 80) ||
-            (parts.scheme === 'https' && parts.port == 443)) {
-            parts.port = null;
-            // hostname is already lower case
-            parts.netloc = parts.hostname;
-        }
-        break;
-    default:
-        // if we don't have specific normalizations for this
-        // scheme, return the original url unmolested
-        return url;
-    }
-
-    // for [file|http|https].  Not sure about other schemes
-    parts.path = urlparse.normalizepath(parts.path);
-
-    return urlparse.urlunsplit(parts);
-};
-
-urlparse.urldefrag = function(url)
-{
-    var idx = url.indexOf('#');
-    if (idx == -1) {
-        return [ url, '' ];
-    } else {
-        return [ url.substr(0,idx), url.substr(idx+1) ];
-    }
-};
-
-urlparse.urlsplit = function(url, default_scheme, allow_fragments)
-{
-    var leftover;
-
-    if (typeof allow_fragments === 'undefined') {
-        allow_fragments = true;
-    }
-
-    // scheme (optional), host, port
-    var fullurl = /^([A-Za-z]+)?(:?\/\/)([0-9.\-A-Za-z]*)(?::(\d+))?(.*)$/;
-    // path, query, fragment
-    var parse_leftovers = /([^?#]*)?(?:\?([^#]*))?(?:#(.*))?$/;
-
-    var o = {};
-
-    var parts = url.match(fullurl);
-    if (parts) {
-        o.scheme = parts[1] || default_scheme || '';
-        o.hostname = parts[3].toLowerCase() || '';
-        o.port = parseInt(parts[4],10) || '';
-        // Probably should grab the netloc from regexp
-        //  and then parse again for hostname/port
-
-        o.netloc = parts[3];
-        if (parts[4]) {
-            o.netloc += ':' + parts[4];
-        }
-
-        leftover = parts[5];
-    } else {
-        o.scheme = default_scheme || '';
-        o.netloc = '';
-        o.hostname = '';
-        leftover = url;
-    }
-    o.scheme = o.scheme.toLowerCase();
-
-    parts = leftover.match(parse_leftovers);
-
-    o.path =  parts[1] || '';
-    o.query = parts[2] || '';
-
-    if (allow_fragments) {
-        o.fragment = parts[3] || '';
-    } else {
-        o.fragment = '';
-    }
-
-    return o;
-};
-
-urlparse.urlunsplit = function(o) {
-    var s = '';
-    if (o.scheme) {
-        s += o.scheme + '://';
-    }
-
-    if (o.netloc) {
-        if (s == '') {
-            s += '//';
-        }
-        s +=  o.netloc;
-    } else if (o.hostname) {
-        // extension.  Python only uses netloc
-        if (s == '') {
-            s += '//';
-        }
-        s += o.hostname;
-        if (o.port) {
-            s += ':' + o.port;
-        }
-    }
-
-    if (o.path) {
-        s += o.path;
-    }
-
-    if (o.query) {
-        s += '?' + o.query;
-    }
-    if (o.fragment) {
-        s += '#' + o.fragment;
-    }
-    return s;
-};
-
-urlparse.urljoin = function(base, url, allow_fragments)
-{
-    if (typeof allow_fragments === 'undefined') {
-        allow_fragments = true;
-    }
-
-    var url_parts = urlparse.urlsplit(url);
-
-    // if url parts has a scheme (i.e. absolute)
-    // then nothing to do
-    if (url_parts.scheme) {
-        if (! allow_fragments) {
-            return url;
-        } else {
-            return urlparse.urldefrag(url)[0];
-        }
-    }
-    var base_parts = urlparse.urlsplit(base);
-
-    // copy base, only if not present
-    if (!base_parts.scheme) {
-        base_parts.scheme = url_parts.scheme;
-    }
-
-    // copy netloc, only if not present
-    if (!base_parts.netloc || !base_parts.hostname) {
-        base_parts.netloc = url_parts.netloc;
-        base_parts.hostname = url_parts.hostname;
-        base_parts.port = url_parts.port;
-    }
-
-    // paths
-    if (url_parts.path.length > 0) {
-        if (url_parts.path.charAt(0) == '/') {
-            base_parts.path = url_parts.path;
-        } else {
-            // relative path.. get rid of "current filename" and
-            //   replace.  Same as var parts =
-            //   base_parts.path.split('/'); parts[parts.length-1] =
-            //   url_parts.path; base_parts.path = parts.join('/');
-            var idx = base_parts.path.lastIndexOf('/');
-            if (idx == -1) {
-                base_parts.path = url_parts.path;
-            } else {
-                base_parts.path = base_parts.path.substr(0,idx) + '/' +
-                    url_parts.path;
-            }
-        }
-    }
-
-    // clean up path
-    base_parts.path = urlparse.normalizepath(base_parts.path);
-
-    // copy query string
-    base_parts.query = url_parts.query;
-
-    // copy fragments
-    if (allow_fragments) {
-        base_parts.fragment = url_parts.fragment;
-    } else {
-        base_parts.fragment = '';
-    }
-
-    return urlparse.urlunsplit(base_parts);
-};
-
-/**
- * getcwd - named after posix call of same name (see 'man 2 getcwd')
- *
- */
-Envjs.getcwd = function() {
-    return '.';
-};
-
-/**
- * resolves location relative to doc location
- *
- * @param {Object} path  Relative or absolute URL
- * @param {Object} base  (semi-optional)  The base url used in resolving "path" above
- */
-Envjs.uri = function(path, base) {
-    //console.log('constructing uri from path %s and base %s', path, base);
-
-    // Semi-common trick is to make an iframe with src='javascript:false'
-    //  (or some equivalent).  By returning '', the load is skipped
-    if (path.indexOf('javascript') === 0) {
-        return '';
-    }
-
-    // if path is absolute, then just normalize and return
-    if (path.match('^[a-zA-Z]+://')) {
-        return urlparse.urlnormalize(path);
-    }
-
-    // interesting special case, a few very large websites use
-    // '//foo/bar/' to mean 'http://foo/bar'
-    if (path.match('^//')) {
-        path = 'http:' + path;
-    }
-
-    // if base not passed in, try to get it from document
-    // Ideally I would like the caller to pass in document.baseURI to
-    //  make this more self-sufficient and testable
-    if (!base && document) {
-        base = document.baseURI;
-    }
-
-    // about:blank doesn't count
-    if (base === 'about:blank'){
-        base = '';
-    }
-
-    // if base is still empty, then we are in QA mode loading local
-    // files.  Get current working directory
-    if (!base) {
-        base = 'file://' +  Envjs.getcwd() + '/';
-    }
-    // handles all cases if path is abosulte or relative to base
-    // 3rd arg is "false" --> remove fragments
-    var newurl = urlparse.urlnormalize(urlparse.urljoin(base, path, false));
-
-    return newurl;
-};
-
-
-
-/**
- * Used in the XMLHttpRquest implementation to run a
- * request in a seperate thread
- * @param {Object} fn
- */
-Envjs.runAsync = function(fn){};
-
-
-/**
- * Used to write to a local file
- * @param {Object} text
- * @param {Object} url
- */
-Envjs.writeToFile = function(text, url){};
-
-
-/**
- * Used to write to a local file
- * @param {Object} text
- * @param {Object} suffix
- */
-Envjs.writeToTempFile = function(text, suffix){};
-
-/**
- * Used to read the contents of a local file
- * @param {Object} url
- */
-Envjs.readFromFile = function(url){};
-
-/**
- * Used to delete a local file
- * @param {Object} url
- */
-Envjs.deleteFile = function(url){};
-
-/**
- * establishes connection and calls responsehandler
- * @param {Object} xhr
- * @param {Object} responseHandler
- * @param {Object} data
- */
-Envjs.connection = function(xhr, responseHandler, data){};
-
-
-__extend__(Envjs, urlparse);
-
-/**
- * Makes an object window-like by proxying object accessors
- * @param {Object} scope
- * @param {Object} parent
- */
-Envjs.proxy = function(scope, parent, aliasList){};
-
-Envjs.javaEnabled = false;
-
-Envjs.homedir        = '';
-Envjs.tmpdir         = '';
-Envjs.os_name        = '';
-Envjs.os_arch        = '';
-Envjs.os_version     = '';
-Envjs.lang           = '';
-Envjs.platform       = '';
-
-/**
- *
- * @param {Object} frameElement
- * @param {Object} url
- */
-Envjs.loadFrame = function(frame, url){
-    try {
-        if(frame.contentWindow){
-            //mark for garbage collection
-            frame.contentWindow = null;
-        }
-
-        //create a new scope for the window proxy
-        //platforms will need to override this function
-        //to make sure the scope is global-like
-        frame.contentWindow = (function(){return this;})();
-        new Window(frame.contentWindow, window);
-
-        //I dont think frames load asynchronously in firefox
-        //and I think the tests have verified this but for
-        //some reason I'm less than confident... Are there cases?
-        frame.contentDocument = frame.contentWindow.document;
-        frame.contentDocument.async = false;
-        if(url){
-            //console.log('envjs.loadFrame async %s', frame.contentDocument.async);
-            frame.contentWindow.location = url;
-        }
-    } catch(e) {
-        console.log("failed to load frame content: from %s %s", url, e);
-    }
-};
-
-
-// The following are in rhino/window.js
-// TODO: Envjs.unloadFrame
-// TODO: Envjs.proxy
-
-/**
- * @author john resig & the envjs team
- * @uri http://www.envjs.com/
- * @copyright 2008-2010
- * @license MIT
- */
-//CLOSURE_END
-}());
-/*
- * Envjs rhino-env.1.2.13
- * Pure JavaScript Browser Environment
- * By John Resig <http://ejohn.org/> and the Envjs Team
- * Copyright 2008-2010 John Resig, under the MIT License
- */
-
-var __context__ = Packages.org.mozilla.javascript.Context.getCurrentContext();
-
-Envjs.platform       = "Rhino";
-Envjs.revision       = "1.7.0.rc2";
-
-/*
- * Envjs rhino-env.1.2.13 
- * Pure JavaScript Browser Environment
- * By John Resig <http://ejohn.org/> and the Envjs Team
- * Copyright 2008-2010 John Resig, under the MIT License
- */
-
-//CLOSURE_START
-(function(){
-
-
-
-
-
-/**
- * @author john resig
- */
-// Helper method for extending one object with another.
-function __extend__(a,b) {
-    for ( var i in b ) {
-        var g = b.__lookupGetter__(i), s = b.__lookupSetter__(i);
-        if ( g || s ) {
-            if ( g ) { a.__defineGetter__(i, g); }
-            if ( s ) { a.__defineSetter__(i, s); }
-        } else {
-            a[i] = b[i];
-        }
-    } return a;
-}
-
-/**
- * Writes message to system out.
- *
- * Some sites redefine 'print' as in 'window.print', so instead of
- * printing to stdout, you are popping open a new window, which might
- * call print, etc, etc,etc This can cause infinite loops and can
- * exhausing all memory.
- *
- * By defining this upfront now, Envjs.log will always call the native 'print'
- * function
- *
- * @param {Object} message
- */
-Envjs.log = print;
-
-Envjs.lineSource = function(e){
-    return e&&e.rhinoException?e.rhinoException.lineSource():"(line ?)";
-};
-/**
- * load and execute script tag text content
- * @param {Object} script
- */
-Envjs.loadInlineScript = function(script){
-    if(script.ownerDocument.ownerWindow){
-        Envjs.eval(
-            script.ownerDocument.ownerWindow,
-            script.text,
-            'eval('+script.text.substring(0,16)+'...):'+new Date().getTime()
-        );
-    }else{
-        Envjs.eval(
-            __this__,
-            script.text,
-            'eval('+script.text.substring(0,16)+'...):'+new Date().getTime()
-        );
-    }
-    //console.log('evaluated at scope %s \n%s',
-    //    script.ownerDocument.ownerWindow.guid, script.text);
-};
-
-
-Envjs.eval = function(context, source, name){
-    __context__.evaluateString(
-        context,
-        source,
-        name,
-        0,
-        null
-    );
-};
-
-//Temporary patch for parser module
-Packages.org.mozilla.javascript.Context.
-    getCurrentContext().setOptimizationLevel(-1);
-
-/**
- * Rhino provides a very succinct 'sync'
- * @param {Function} fn
- */
-try{
-    Envjs.sync = sync;
-    Envjs.spawn = spawn;
-} catch(e){
-    //sync unavailable on AppEngine
-    Envjs.sync = function(fn){
-        //console.log('Threadless platform, sync is safe');
-        return fn;
-    };
-
-    Envjs.spawn = function(fn){
-        //console.log('Threadless platform, spawn shares main thread.');
-        return fn();
-    };
-}
-
-/**
- * sleep thread for specified duration
- * @param {Object} millseconds
- */
-Envjs.sleep = function(millseconds){
-    try{
-        java.lang.Thread.currentThread().sleep(millseconds);
-    }catch(e){
-        console.log('Threadless platform, cannot sleep.');
-    }
-};
-
-/**
- * provides callback hook for when the system exits
- */
-Envjs.onExit = function(callback){
-    var rhino = Packages.org.mozilla.javascript,
-        contextFactory =  __context__.getFactory(),
-        listener = new rhino.ContextFactory.Listener({
-            contextReleased: function(context){
-                if(context === __context__)
-                    console.log('context released', context);
-                contextFactory.removeListener(this);
-                if(callback)
-                    callback();
-            }
-        });
-    contextFactory.addListener(listener);
-};
-
-/**
- * Get 'Current Working Directory'
- */
-Envjs.getcwd = function() {
-    return java.lang.System.getProperty('user.dir');
-}
-
-/**
- *
- * @param {Object} fn
- * @param {Object} onInterupt
- */
-Envjs.runAsync = function(fn, onInterupt){
-    ////Envjs.debug("running async");
-    var running = true,
-        run;
-
-    try{
-        run = Envjs.sync(function(){
-            fn();
-            Envjs.wait();
-        });
-        Envjs.spawn(run);
-    }catch(e){
-        console.log("error while running async operation", e);
-        try{if(onInterrupt)onInterrupt(e)}catch(ee){};
-    }
-};
-
-/**
- * Used to write to a local file
- * @param {Object} text
- * @param {Object} url
- */
-Envjs.writeToFile = function(text, url){
-    //Envjs.debug("writing text to url : " + url);
-    var out = new java.io.FileWriter(
-        new java.io.File(
-            new java.net.URI(url.toString())));
-    out.write( text, 0, text.length );
-    out.flush();
-    out.close();
-};
-
-/**
- * Used to write to a local file
- * @param {Object} text
- * @param {Object} suffix
- */
-Envjs.writeToTempFile = function(text, suffix){
-    //Envjs.debug("writing text to temp url : " + suffix);
-    // Create temp file.
-    var temp = java.io.File.createTempFile("envjs-tmp", suffix);
-
-    // Delete temp file when program exits.
-    temp.deleteOnExit();
-
-    // Write to temp file
-    var out = new java.io.FileWriter(temp);
-    out.write(text, 0, text.length);
-    out.close();
-    return temp.getAbsolutePath().toString()+'';
-};
-
-
-/**
- * Used to read the contents of a local file
- * @param {Object} url
- */
-Envjs.readFromFile = function( url ){
-    var fileReader = new java.io.FileReader(
-        new java.io.File( 
-            new java.net.URI( url )));
-            
-    var stringwriter = new java.io.StringWriter(),
-        buffer = java.lang.reflect.Array.newInstance(java.lang.Character.TYPE, 1024),
-        length;
-
-    while ((length = fileReader.read(buffer, 0, 1024)) != -1) {
-        stringwriter.write(buffer, 0, length);
-    }
-
-    stringwriter.close();
-    return stringwriter.toString()+"";
-};
-    
-
-/**
- * Used to delete a local file
- * @param {Object} url
- */
-Envjs.deleteFile = function(url){
-    var file = new java.io.File( new java.net.URI( url ) );
-    file["delete"]();
-};
-
-/**
- * establishes connection and calls responsehandler
- * @param {Object} xhr
- * @param {Object} responseHandler
- * @param {Object} data
- */
-Envjs.connection = function(xhr, responseHandler, data){
-    var url = java.net.URL(xhr.url),
-        connection,
-        header,
-        outstream,
-        buffer,
-        length,
-        binary = false,
-        name, value,
-        contentEncoding,
-        instream,
-        responseXML,
-        i;
-    if ( /^file\:/.test(url) ) {
-        try{
-            if ( "PUT" == xhr.method || "POST" == xhr.method ) {
-                data =  data || "" ;
-                Envjs.writeToFile(data, url);
-                xhr.readyState = 4;
-                //could be improved, I just cant recall the correct http codes
-                xhr.status = 200;
-                xhr.statusText = "";
-            } else if ( xhr.method == "DELETE" ) {
-                Envjs.deleteFile(url);
-                xhr.readyState = 4;
-                //could be improved, I just cant recall the correct http codes
-                xhr.status = 200;
-                xhr.statusText = "";
-            } else {
-                connection = url.openConnection();
-                connection.connect();
-                //try to add some canned headers that make sense
-
-                try{
-                    if(xhr.url.match(/html$/)){
-                        xhr.responseHeaders["Content-Type"] = 'text/html';
-                    }else if(xhr.url.match(/.xml$/)){
-                        xhr.responseHeaders["Content-Type"] = 'text/xml';
-                    }else if(xhr.url.match(/.js$/)){
-                        xhr.responseHeaders["Content-Type"] = 'text/javascript';
-                    }else if(xhr.url.match(/.json$/)){
-                        xhr.responseHeaders["Content-Type"] = 'application/json';
-                    }else{
-                        xhr.responseHeaders["Content-Type"] = 'text/plain';
-                    }
-                    //xhr.responseHeaders['Last-Modified'] = connection.getLastModified();
-                    //xhr.responseHeaders['Content-Length'] = headerValue+'';
-                    //xhr.responseHeaders['Date'] = new Date()+'';*/
-                }catch(e){
-                    console.log('failed to load response headers',e);
-                }
-            }
-        }catch(e){
-            console.log('failed to open file %s %s', url, e);
-            connection = null;
-            xhr.readyState = 4;
-            xhr.statusText = "Local File Protocol Error";
-            xhr.responseText = "<html><head/><body><p>"+ e+ "</p></body></html>";
-        }
-    } else {
-        connection = url.openConnection();
-        connection.setRequestMethod( xhr.method );
-
-        // Add headers to Java connection
-        for (header in xhr.headers){
-            connection.addRequestProperty(header+'', xhr.headers[header]+'');
-        }
-
-        //write data to output stream if required
-        if(data){
-            if(data instanceof Document){
-                if ( xhr.method == "PUT" || xhr.method == "POST" ) {
-                    connection.setDoOutput(true);
-                    outstream = connection.getOutputStream(),
-                    xml = (new XMLSerializer()).serializeToString(data);
-                    buffer = new java.lang.String(xml).getBytes('UTF-8');
-                    outstream.write(buffer, 0, buffer.length);
-                    outstream.close();
-                }
-            }else if(data.length&&data.length>0){
-                if ( xhr.method == "PUT" || xhr.method == "POST" ) {
-                    connection.setDoOutput(true);
-                    outstream = connection.getOutputStream();
-                    buffer = new java.lang.String(data).getBytes('UTF-8');
-                    outstream.write(buffer, 0, buffer.length);
-                    outstream.close();
-                }
-            }
-            connection.connect();
-        }else{
-            connection.connect();
-        }
-    }
-
-    if(connection){
-        try{
-            length = connection.getHeaderFields().size();
-            // Stick the response headers into responseHeaders
-            for (i = 0; i < length; i++) {
-                name = connection.getHeaderFieldKey(i);
-                value = connection.getHeaderField(i);
-                if (name)
-                    xhr.responseHeaders[name+''] = value+'';
-            }
-        }catch(e){
-            console.log('failed to load response headers \n%s',e);
-        }
-
-        xhr.readyState = 4;
-        xhr.status = parseInt(connection.responseCode,10) || undefined;
-        xhr.statusText = connection.responseMessage || "";
-
-        contentEncoding = connection.getContentEncoding() || "utf-8";
-        instream = null;
-        responseXML = null;
-        
-        try{
-            //console.log('contentEncoding %s', contentEncoding);
-            if( contentEncoding.equalsIgnoreCase("gzip") ||
-                contentEncoding.equalsIgnoreCase("decompress")){
-                //zipped content
-                binary = true;
-                outstream = new java.io.ByteArrayOutputStream();
-                buffer = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 1024);
-                instream = new java.util.zip.GZIPInputStream(connection.getInputStream())
-            }else{
-                //this is a text file
-                outstream = new java.io.StringWriter();
-                buffer = java.lang.reflect.Array.newInstance(java.lang.Character.TYPE, 1024);
-                instream = new java.io.InputStreamReader(connection.getInputStream());
-            }
-        }catch(e){
-            if (connection.getResponseCode() == 404){
-                console.log('failed to open connection stream \n %s %s',
-                            e.toString(), e);
-            }else{
-                console.log('failed to open connection stream \n %s %s',
-                            e.toString(), e);
-            }
-            instream = connection.getErrorStream();
-        }
-
-        while ((length = instream.read(buffer, 0, 1024)) != -1) {
-            outstream.write(buffer, 0, length);
-        }
-
-        outstream.close();
-        instream.close();
-        
-        if(binary){
-            xhr.responseText = new String(outstream.toByteArray(), 'UTF-8') + '';
-        }else{
-            xhr.responseText = outstream.toString() + '';
-        }
-
-    }
-    if(responseHandler){
-        //Envjs.debug('calling ajax response handler');
-        responseHandler();
-    }
-};
-
-//Since we're running in rhino I guess we can safely assume
-//java is 'enabled'.  I'm sure this requires more thought
-//than I've given it here
-Envjs.javaEnabled = true;
-
-Envjs.homedir        = java.lang.System.getProperty("user.home");
-Envjs.tmpdir         = java.lang.System.getProperty("java.io.tmpdir");
-Envjs.os_name        = java.lang.System.getProperty("os.name");
-Envjs.os_arch        = java.lang.System.getProperty("os.arch");
-Envjs.os_version     = java.lang.System.getProperty("os.version");
-Envjs.lang           = java.lang.System.getProperty("user.lang");
-
-
-/**
- *
- * @param {Object} frameElement
- * @param {Object} url
- */
-Envjs.loadFrame = function(frame, url){
-    try {
-        if(frame.contentWindow){
-            //mark for garbage collection
-            frame.contentWindow = null;
-        }
-
-        //create a new scope for the window proxy
-        frame.contentWindow = Envjs.proxy();
-        new Window(frame.contentWindow, window);
-
-        //I dont think frames load asynchronously in firefox
-        //and I think the tests have verified this but for
-        //some reason I'm less than confident... Are there cases?
-        frame.contentDocument = frame.contentWindow.document;
-        frame.contentDocument.async = false;
-        if(url){
-            //console.log('envjs.loadFrame async %s', frame.contentDocument.async);
-            frame.contentWindow.location = url;
-        }
-    } catch(e) {
-        console.log("failed to load frame content: from %s %s", url, e);
-    }
-};
-
-/**
- * unloadFrame
- * @param {Object} frame
- */
-Envjs.unloadFrame = function(frame){
-    var all, length, i;
-    try{
-        //TODO: probably self-referencing structures within a document tree
-        //preventing it from being entirely garbage collected once orphaned.
-        //Should have code to walk tree and break all links between contained
-        //objects.
-        frame.contentDocument = null;
-        if(frame.contentWindow){
-            frame.contentWindow.close();
-        }
-        gc();
-    }catch(e){
-        console.log(e);
-    }
-};
-
-/**
- * Makes an object window-like by proxying object accessors
- * @param {Object} scope
- * @param {Object} parent
- */
-Envjs.proxy = function(scope, parent) {
-    try{
-        if(scope+'' == '[object global]'){
-            return scope
-        }else{
-            return  __context__.initStandardObjects();
-        }
-    }catch(e){
-        console.log('failed to init standard objects %s %s \n%s', scope, parent, e);
-    }
-
-};
-
-/**
- * @author john resig & the envjs team
- * @uri http://www.envjs.com/
- * @copyright 2008-2010
- * @license MIT
- */
-//CLOSURE_END
-}());
-
-/**
- * @author envjs team
- */
-var Console,
-    console;
-
-/*
- * Envjs console.1.2.13 
- * Pure JavaScript Browser Environment
- * By John Resig <http://ejohn.org/> and the Envjs Team
- * Copyright 2008-2010 John Resig, under the MIT License
- */
-
-//CLOSURE_START
-(function(){
-
-
-
-
-
-/**
- * @author envjs team
- * borrowed 99%-ish with love from firebug-lite
- *
- * http://wiki.commonjs.org/wiki/Console
- */
-Console = function(module){
-    var $level,
-    $logger,
-    $null = function(){};
-
-
-    if(Envjs[module] && Envjs[module].loglevel){
-        $level = Envjs.module.loglevel;
-        $logger = {
-            log: function(level){
-                logFormatted(arguments, (module)+" ");
-            },
-            debug: $level>1 ? $null: function() {
-                logFormatted(arguments, (module)+" debug");
-            },
-            info: $level>2 ? $null:function(){
-                logFormatted(arguments, (module)+" info");
-            },
-            warn: $level>3 ? $null:function(){
-                logFormatted(arguments, (module)+" warning");
-            },
-            error: $level>4 ? $null:function(){
-                logFormatted(arguments, (module)+" error");
-            }
-        };
-    } else {
-        $logger = {
-            log: function(level){
-                logFormatted(arguments, "");
-            },
-            debug: $null,
-            info: $null,
-            warn: $null,
-            error: $null
-        };
-    }
-
-    return $logger;
-};
-
-console = new Console("console",1);
-
-function logFormatted(objects, className)
-{
-    var html = [];
-
-    var format = objects[0];
-    var objIndex = 0;
-
-    if (typeof(format) != "string")
-    {
-        format = "";
-        objIndex = -1;
-    }
-
-    var parts = parseFormat(format);
-    for (var i = 0; i < parts.length; ++i)
-    {
-        var part = parts[i];
-        if (part && typeof(part) == "object")
-        {
-            var object = objects[++objIndex];
-            part.appender(object, html);
-        }
-        else {
-            appendText(part, html);
-	}
-    }
-
-    for (var i = objIndex+1; i < objects.length; ++i)
-    {
-        appendText(" ", html);
-
-        var object = objects[i];
-        if (typeof(object) == "string") {
-            appendText(object, html);
-        } else {
-            appendObject(object, html);
-	}
-    }
-
-    Envjs.log(html.join(' '));
-}
-
-function parseFormat(format)
-{
-    var parts = [];
-
-    var reg = /((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/;
-    var appenderMap = {s: appendText, d: appendInteger, i: appendInteger, f: appendFloat};
-
-    for (var m = reg.exec(format); m; m = reg.exec(format))
-    {
-        var type = m[8] ? m[8] : m[5];
-        var appender = type in appenderMap ? appenderMap[type] : appendObject;
-        var precision = m[3] ? parseInt(m[3]) : (m[4] == "." ? -1 : 0);
-
-        parts.push(format.substr(0, m[0][0] == "%" ? m.index : m.index+1));
-        parts.push({appender: appender, precision: precision});
-
-        format = format.substr(m.index+m[0].length);
-    }
-
-    parts.push(format);
-
-    return parts;
-}
-
-function escapeHTML(value)
-{
-    return value;
-}
-
-function objectToString(object)
-{
-    try
-    {
-        return object+"";
-    }
-    catch (exc)
-    {
-        return null;
-    }
-}
-
-// ********************************************************************************************
-
-function appendText(object, html)
-{
-    html.push(escapeHTML(objectToString(object)));
-}
-
-function appendNull(object, html)
-{
-    html.push(escapeHTML(objectToString(object)));
-}
-
-function appendString(object, html)
-{
-    html.push(escapeHTML(objectToString(object)));
-}
-
-function appendInteger(object, html)
-{
-    html.push(escapeHTML(objectToString(object)));
-}
-
-function appendFloat(object, html)
-{
-    html.push(escapeHTML(objectToString(object)));
-}
-
-function appendFunction(object, html)
-{
-    var reName = /function ?(.*?)\(/;
-    var m = reName.exec(objectToString(object));
-    var name = m ? m[1] : "function";
-    html.push(escapeHTML(name));
-}
-
-function appendObject(object, html)
-{
-    try
-    {
-        if (object == undefined) {
-            appendNull("undefined", html);
-        } else if (object == null) {
-            appendNull("null", html);
-        } else if (typeof object == "string") {
-            appendString(object, html);
-	} else if (typeof object == "number") {
-            appendInteger(object, html);
-	} else if (typeof object == "function") {
-            appendFunction(object, html);
-        } else if (object.nodeType == 1) {
-            appendSelector(object, html);
-        } else if (typeof object == "object") {
-            appendObjectFormatted(object, html);
-        } else {
-            appendText(object, html);
-	}
-    }
-    catch (exc)
-    {
-    }
-}
-
-function appendObjectFormatted(object, html)
-{
-    var text = objectToString(object);
-    var reObject = /\[object (.*?)\]/;
-
-    var m = reObject.exec(text);
-    html.push( m ? m[1] : text);
-}
-
-function appendSelector(object, html)
-{
-
-    html.push(escapeHTML(object.nodeName.toLowerCase()));
-    if (object.id) {
-        html.push(escapeHTML(object.id));
-    }
-    if (object.className) {
-        html.push(escapeHTML(object.className));
-    }
-}
-
-function appendNode(node, html)
-{
-    if (node.nodeType == 1)
-    {
-        html.push( node.nodeName.toLowerCase());
-
-        for (var i = 0; i < node.attributes.length; ++i)
-        {
-            var attr = node.attributes[i];
-            if (!attr.specified) {
-                continue;
-	    }
-
-            html.push( attr.nodeName.toLowerCase(),escapeHTML(attr.nodeValue));
-        }
-
-        if (node.firstChild)
-        {
-            for (var child = node.firstChild; child; child = child.nextSibling) {
-                appendNode(child, html);
-	    }
-
-            html.push( node.nodeName.toLowerCase());
-        }
-    }
-    else if (node.nodeType === 3)
-    {
-        html.push(escapeHTML(node.nodeValue));
-    }
-};
-
-/**
- * @author john resig & the envjs team
- * @uri http://www.envjs.com/
- * @copyright 2008-2010
- * @license MIT
- */
-//CLOSURE_END
-}());
-/*
- * Envjs dom.1.2.13 
- * Pure JavaScript Browser Environment
- * By John Resig <http://ejohn.org/> and the Envjs Team
- * Copyright 2008-2010 John Resig, under the MIT License
- * 
- * Parts of the implementation were originally written by:\
- * and Jon van Noort   (jon@webarcana.com.au) \
- * and David Joham     (djoham@yahoo.com)",\ 
- * and Scott Severtson
- * 
- * This file simply provides the global definitions we need to \
- * be able to correctly implement to core browser DOM interfaces."
- */
-
-var Attr,
-    CDATASection,
-    CharacterData,
-    Comment,
-    Document,
-    DocumentFragment,
-    DocumentType,
-    DOMException,
-    DOMImplementation,
-    Element,
-    Entity,
-    EntityReference,
-    NamedNodeMap,
-    Namespace,
-    Node,
-    NodeList,
-    Notation,
-    ProcessingInstruction,
-    Text,
-    Range,
-    XMLSerializer,
-    DOMParser;
-
-
-
-/*
- * Envjs dom.1.2.13 
- * Pure JavaScript Browser Environment
- * By John Resig <http://ejohn.org/> and the Envjs Team
- * Copyright 2008-2010 John Resig, under the MIT License
- */
-
-//CLOSURE_START
-(function(){
-
-
-
-
-
-/**
- * @author john resig
- */
-// Helper method for extending one object with another.
-function __extend__(a,b) {
-    for ( var i in b ) {
-        var g = b.__lookupGetter__(i), s = b.__lookupSetter__(i);
-        if ( g || s ) {
-            if ( g ) { a.__defineGetter__(i, g); }
-            if ( s ) { a.__defineSetter__(i, s); }
-        } else {
-            a[i] = b[i];
-        }
-    } return a;
-}
-
-/**
- * @author john resig
- */
-//from jQuery
-function __setArray__( target, array ) {
-    // Resetting the length to 0, then using the native Array push
-    // is a super-fast way to populate an object with array-like properties
-    target.length = 0;
-    Array.prototype.push.apply( target, array );
-}
-
-/**
- * @class  NodeList -
- *      provides the abstraction of an ordered collection of nodes
- *
- * @param  ownerDocument : Document - the ownerDocument
- * @param  parentNode    : Node - the node that the NodeList is attached to (or null)
- */
-NodeList = function(ownerDocument, parentNode) {
-    this.length = 0;
-    this.parentNode = parentNode;
-    this.ownerDocument = ownerDocument;
-    this._readonly = false;
-    __setArray__(this, []);
-};
-
-__extend__(NodeList.prototype, {
-    item : function(index) {
-        var ret = null;
-        if ((index >= 0) && (index < this.length)) {
-            // bounds check
-            ret = this[index];
-        }
-        // if the index is out of bounds, default value null is returned
-        return ret;
-    },
-    get xml() {
-        var ret = "",
-            i;
-
-        // create string containing the concatenation of the string values of each child
-        for (i=0; i < this.length; i++) {
-            if(this[i]){
-                if(this[i].nodeType == Node.TEXT_NODE && i>0 &&
-                   this[i-1].nodeType == Node.TEXT_NODE){
-                    //add a single space between adjacent text nodes
-                    ret += " "+this[i].xml;
-                }else{
-                    ret += this[i].xml;
-                }
-            }
-        }
-        return ret;
-    },
-    toArray: function () {
-        var children = [],
-            i;
-        for ( i=0; i < this.length; i++) {
-            children.push (this[i]);
-        }
-        return children;
-    },
-    toString: function(){
-        return "[object NodeList]";
-    }
-});
-
-
-/**
- * @method __findItemIndex__
- *      find the item index of the node
- * @author Jon van Noort (jon@webarcana.com.au)
- * @param  node : Node
- * @return : int
- */
-var __findItemIndex__ = function (nodelist, node) {
-    var ret = -1, i;
-    for (i=0; i<nodelist.length; i++) {
-        // compare id to each node's _id
-        if (nodelist[i] === node) {
-            // found it!
-            ret = i;
-            break;
-        }
-    }
-    // if node is not found, default value -1 is returned
-    return ret;
-};
-
-/**
- * @method __insertBefore__
- *      insert the specified Node into the NodeList before the specified index
- *      Used by Node.insertBefore(). Note: Node.insertBefore() is responsible
- *      for Node Pointer surgery __insertBefore__ simply modifies the internal
- *      data structure (Array).
- * @param  newChild      : Node - the Node to be inserted
- * @param  refChildIndex : int     - the array index to insert the Node before
- */
-var __insertBefore__ = function(nodelist, newChild, refChildIndex) {
-    if ((refChildIndex >= 0) && (refChildIndex <= nodelist.length)) {
-        // bounds check
-        if (newChild.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {
-            // node is a DocumentFragment
-            // append the children of DocumentFragment
-            Array.prototype.splice.apply(nodelist,
-                [refChildIndex, 0].concat(newChild.childNodes.toArray()));
-        }
-        else {
-            // append the newChild
-            Array.prototype.splice.apply(nodelist,[refChildIndex, 0, newChild]);
-        }
-    }
-};
-
-/**
- * @method __replaceChild__
- *      replace the specified Node in the NodeList at the specified index
- *      Used by Node.replaceChild(). Note: Node.replaceChild() is responsible
- *      for Node Pointer surgery __replaceChild__ simply modifies the internal
- *      data structure (Array).
- *
- * @param  newChild      : Node - the Node to be inserted
- * @param  refChildIndex : int     - the array index to hold the Node
- */
-var __replaceChild__ = function(nodelist, newChild, refChildIndex) {
-    var ret = null;
-
-    // bounds check
-    if ((refChildIndex >= 0) && (refChildIndex < nodelist.length)) {
-        // preserve old child for return
-        ret = nodelist[refChildIndex];
-
-        if (newChild.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {
-            // node is a DocumentFragment
-            // get array containing children prior to refChild
-            Array.prototype.splice.apply(nodelist,
-                [refChildIndex, 1].concat(newChild.childNodes.toArray()));
-        }
-        else {
-            // simply replace node in array (links between Nodes are
-            // made at higher level)
-            nodelist[refChildIndex] = newChild;
-        }
-    }
-    // return replaced node
-    return ret;
-};
-
-/**
- * @method __removeChild__
- *      remove the specified Node in the NodeList at the specified index
- *      Used by Node.removeChild(). Note: Node.removeChild() is responsible
- *      for Node Pointer surgery __removeChild__ simply modifies the internal
- *      data structure (Array).
- * @param  refChildIndex : int - the array index holding the Node to be removed
- */
-var __removeChild__ = function(nodelist, refChildIndex) {
-    var ret = null;
-
-    if (refChildIndex > -1) {
-        // found it!
-        // return removed node
-        ret = nodelist[refChildIndex];
-
-        // rebuild array without removed child
-        Array.prototype.splice.apply(nodelist,[refChildIndex, 1]);
-    }
-    // return removed node
-    return ret;
-};
-
-/**
- * @method __appendChild__
- *      append the specified Node to the NodeList. Used by Node.appendChild().
- *      Note: Node.appendChild() is responsible for Node Pointer surgery
- *      __appendChild__ simply modifies the internal data structure (Array).
- * @param  newChild      : Node - the Node to be inserted
- */
-var __appendChild__ = function(nodelist, newChild) {
-    if (newChild.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {
-        // node is a DocumentFragment
-        // append the children of DocumentFragment
-        Array.prototype.push.apply(nodelist, newChild.childNodes.toArray() );
-    } else {
-        // simply add node to array (links between Nodes are made at higher level)
-        Array.prototype.push.apply(nodelist, [newChild]);
-    }
-
-};
-
-/**
- * @method __cloneNodes__ -
- *      Returns a NodeList containing clones of the Nodes in this NodeList
- * @param  deep : boolean -
- *      If true, recursively clone the subtree under each of the nodes;
- *      if false, clone only the nodes themselves (and their attributes,
- *      if it is an Element).
- * @param  parentNode : Node - the new parent of the cloned NodeList
- * @return : NodeList - NodeList containing clones of the Nodes in this NodeList
- */
-var __cloneNodes__ = function(nodelist, deep, parentNode) {
-    var cloneNodeList = new NodeList(nodelist.ownerDocument, parentNode);
-
-    // create list containing clones of each child
-    for (var i=0; i < nodelist.length; i++) {
-        __appendChild__(cloneNodeList, nodelist[i].cloneNode(deep));
-    }
-
-    return cloneNodeList;
-};
-
-
-var __ownerDocument__ = function(node){
-    return (node.nodeType == Node.DOCUMENT_NODE)?node:node.ownerDocument;
-};
-
-/**
- * @class  Node -
- *      The Node interface is the primary datatype for the entire
- *      Document Object Model. It represents a single node in the
- *      document tree.
- * @param  ownerDocument : Document - The Document object associated with this node.
- */
-
-Node = function(ownerDocument) {
-    this.baseURI = 'about:blank';
-    this.namespaceURI = null;
-    this.nodeName = "";
-    this.nodeValue = null;
-
-    // A NodeList that contains all children of this node. If there are no
-    // children, this is a NodeList containing no nodes.  The content of the
-    // returned NodeList is "live" in the sense that, for instance, changes to
-    // the children of the node object that it was created from are immediately
-    // reflected in the nodes returned by the NodeList accessors; it is not a
-    // static snapshot of the content of the node. This is true for every
-    // NodeList, including the ones returned by the getElementsByTagName method.
-    this.childNodes      = new NodeList(ownerDocument, this);
-
-    // The first child of this node. If there is no such node, this is null
-    this.firstChild      = null;
-    // The last child of this node. If there is no such node, this is null.
-    this.lastChild       = null;
-    // The node immediately preceding this node. If there is no such node,
-    // this is null.
-    this.previousSibling = null;
-    // The node immediately following this node. If there is no such node,
-    // this is null.
-    this.nextSibling     = null;
-
-    this.attributes = null;
-    // The namespaces in scope for this node
-    this._namespaces = new NamespaceNodeMap(ownerDocument, this);
-    this._readonly = false;
-
-    //IMPORTANT: These must come last so rhino will not iterate parent
-    //           properties before child properties.  (qunit.equiv issue)
-
-    // The parent of this node. All nodes, except Document, DocumentFragment,
-    // and Attr may have a parent.  However, if a node has just been created
-    // and not yet added to the tree, or if it has been removed from the tree,
-    // this is null
-    this.parentNode      = null;
-    // The Document object associated with this node
-    this.ownerDocument = ownerDocument;
-
-};
-
-// nodeType constants
-Node.ELEMENT_NODE                = 1;
-Node.ATTRIBUTE_NODE              = 2;
-Node.TEXT_NODE                   = 3;
-Node.CDATA_SECTION_NODE          = 4;
-Node.ENTITY_REFERENCE_NODE       = 5;
-Node.ENTITY_NODE                 = 6;
-Node.PROCESSING_INSTRUCTION_NODE = 7;
-Node.COMMENT_NODE                = 8;
-Node.DOCUMENT_NODE               = 9;
-Node.DOCUMENT_TYPE_NODE          = 10;
-Node.DOCUMENT_FRAGMENT_NODE      = 11;
-Node.NOTATION_NODE               = 12;
-Node.NAMESPACE_NODE              = 13;
-
-Node.DOCUMENT_POSITION_EQUAL        = 0x00;
-Node.DOCUMENT_POSITION_DISCONNECTED = 0x01;
-Node.DOCUMENT_POSITION_PRECEDING    = 0x02;
-Node.DOCUMENT_POSITION_FOLLOWING    = 0x04;
-Node.DOCUMENT_POSITION_CONTAINS     = 0x08;
-Node.DOCUMENT_POSITION_CONTAINED_BY = 0x10;
-Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC      = 0x20;
-
-
-__extend__(Node.prototype, {
-    get localName(){
-        return this.prefix?
-            this.nodeName.substring(this.prefix.length+1, this.nodeName.length):
-            this.nodeName;
-    },
-    get prefix(){
-        return this.nodeName.split(':').length>1?
-            this.nodeName.split(':')[0]:
-            null;
-    },
-    set prefix(value){
-        if(value === null){
-            this.nodeName = this.localName;
-        }else{
-            this.nodeName = value+':'+this.localName;
-        }
-    },
-    hasAttributes : function() {
-        if (this.attributes.length == 0) {
-            return false;
-        }else{
-            return true;
-        }
-    },
-    get textContent(){
-        return __recursivelyGatherText__(this);
-    },
-    set textContent(newText){
-        while(this.firstChild != null){
-            this.removeChild( this.firstChild );
-        }
-        var text = this.ownerDocument.createTextNode(newText);
-        this.appendChild(text);
-    },
-    insertBefore : function(newChild, refChild) {
-        var prevNode;
-
-        if(newChild==null){
-            return newChild;
-        }
-        if(refChild==null){
-            this.appendChild(newChild);
-            return this.newChild;
-        }
-
-        // test for exceptions
-        if (__ownerDocument__(this).implementation.errorChecking) {
-            // throw Exception if Node is readonly
-            if (this._readonly) {
-                throw(new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR));
-            }
-
-            // throw Exception if newChild was not created by this Document
-            if (__ownerDocument__(this) != __ownerDocument__(newChild)) {
-                throw(new DOMException(DOMException.WRONG_DOCUMENT_ERR));
-            }
-
-            // throw Exception if the node is an ancestor
-            if (__isAncestor__(this, newChild)) {
-                throw(new DOMException(DOMException.HIERARCHY_REQUEST_ERR));
-            }
-        }
-
-        // if refChild is specified, insert before it
-        if (refChild) {
-            // find index of refChild
-            var itemIndex = __findItemIndex__(this.childNodes, refChild);
-            // throw Exception if there is no child node with this id
-            if (__ownerDocument__(this).implementation.errorChecking && (itemIndex < 0)) {
-                throw(new DOMException(DOMException.NOT_FOUND_ERR));
-            }
-
-            // if the newChild is already in the tree,
-            var newChildParent = newChild.parentNode;
-            if (newChildParent) {
-                // remove it
-                newChildParent.removeChild(newChild);
-            }
-
-            // insert newChild into childNodes
-            __insertBefore__(this.childNodes, newChild, itemIndex);
-
-            // do node pointer surgery
-            prevNode = refChild.previousSibling;
-
-            // handle DocumentFragment
-            if (newChild.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {
-                if (newChild.childNodes.length > 0) {
-                    // set the parentNode of DocumentFragment's children
-                    for (var ind = 0; ind < newChild.childNodes.length; ind++) {
-                        newChild.childNodes[ind].parentNode = this;
-                    }
-
-                    // link refChild to last child of DocumentFragment
-                    refChild.previousSibling = newChild.childNodes[newChild.childNodes.length-1];
-                }
-            }else {
-                // set the parentNode of the newChild
-                newChild.parentNode = this;
-                // link refChild to newChild
-                refChild.previousSibling = newChild;
-            }
-
-        }else {
-            // otherwise, append to end
-            prevNode = this.lastChild;
-            this.appendChild(newChild);
-        }
-
-        if (newChild.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {
-            // do node pointer surgery for DocumentFragment
-            if (newChild.childNodes.length > 0) {
-                if (prevNode) {
-                    prevNode.nextSibling = newChild.childNodes[0];
-                }else {
-                    // this is the first child in the list
-                    this.firstChild = newChild.childNodes[0];
-                }
-                newChild.childNodes[0].previousSibling = prevNode;
-                newChild.childNodes[newChild.childNodes.length-1].nextSibling = refChild;
-            }
-        }else {
-            // do node pointer surgery for newChild
-            if (prevNode) {
-                prevNode.nextSibling = newChild;
-            }else {
-                // this is the first child in the list
-                this.firstChild = newChild;
-            }
-            newChild.previousSibling = prevNode;
-            newChild.nextSibling     = refChild;
-        }
-
-        return newChild;
-    },
-    replaceChild : function(newChild, oldChild) {
-        var ret = null;
-
-        if(newChild==null || oldChild==null){
-            return oldChild;
-        }
-
-        // test for exceptions
-        if (__ownerDocument__(this).implementation.errorChecking) {
-            // throw Exception if Node is readonly
-            if (this._readonly) {
-                throw(new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR));
-            }
-
-            // throw Exception if newChild was not created by this Document
-            if (__ownerDocument__(this) != __ownerDocument__(newChild)) {
-                throw(new DOMException(DOMException.WRONG_DOCUMENT_ERR));
-            }
-
-            // throw Exception if the node is an ancestor
-            if (__isAncestor__(this, newChild)) {
-                throw(new DOMException(DOMException.HIERARCHY_REQUEST_ERR));
-            }
-        }
-
-        // get index of oldChild
-        var index = __findItemIndex__(this.childNodes, oldChild);
-
-        // throw Exception if there is no child node with this id
-        if (__ownerDocument__(this).implementation.errorChecking && (index < 0)) {
-            throw(new DOMException(DOMException.NOT_FOUND_ERR));
-        }
-
-        // if the newChild is already in the tree,
-        var newChildParent = newChild.parentNode;
-        if (newChildParent) {
-            // remove it
-            newChildParent.removeChild(newChild);
-        }
-
-        // add newChild to childNodes
-        ret = __replaceChild__(this.childNodes,newChild, index);
-
-
-        if (newChild.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {
-            // do node pointer surgery for Document Fragment
-            if (newChild.childNodes.length > 0) {
-                for (var ind = 0; ind < newChild.childNodes.length; ind++) {
-                    newChild.childNodes[ind].parentNode = this;
-                }
-
-                if (oldChild.previousSibling) {
-                    oldChild.previousSibling.nextSibling = newChild.childNodes[0];
-                } else {
-                    this.firstChild = newChild.childNodes[0];
-                }
-
-                if (oldChild.nextSibling) {
-                    oldChild.nextSibling.previousSibling = newChild;
-                } else {
-                    this.lastChild = newChild.childNodes[newChild.childNodes.length-1];
-                }
-
-                newChild.childNodes[0].previousSibling = oldChild.previousSibling;
-                newChild.childNodes[newChild.childNodes.length-1].nextSibling = oldChild.nextSibling;
-            }
-        } else {
-            // do node pointer surgery for newChild
-            newChild.parentNode = this;
-
-            if (oldChild.previousSibling) {
-                oldChild.previousSibling.nextSibling = newChild;
-            }else{
-                this.firstChild = newChild;
-            }
-            if (oldChild.nextSibling) {
-                oldChild.nextSibling.previousSibling = newChild;
-            }else{
-                this.lastChild = newChild;
-            }
-            newChild.previousSibling = oldChild.previousSibling;
-            newChild.nextSibling = oldChild.nextSibling;
-        }
-
-        return ret;
-    },
-    removeChild : function(oldChild) {
-        if(!oldChild){
-            return null;
-        }
-        // throw Exception if NamedNodeMap is readonly
-        if (__ownerDocument__(this).implementation.errorChecking &&
-            (this._readonly || oldChild._readonly)) {
-            throw(new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR));
-        }
-
-        // get index of oldChild
-        var itemIndex = __findItemIndex__(this.childNodes, oldChild);
-
-        // throw Exception if there is no child node with this id
-        if (__ownerDocument__(this).implementation.errorChecking && (itemIndex < 0)) {
-            throw(new DOMException(DOMException.NOT_FOUND_ERR));
-        }
-
-        // remove oldChild from childNodes
-        __removeChild__(this.childNodes, itemIndex);
-
-        // do node pointer surgery
-        oldChild.parentNode = null;
-
-        if (oldChild.previousSibling) {
-            oldChild.previousSibling.nextSibling = oldChild.nextSibling;
-        }else {
-            this.firstChild = oldChild.nextSibling;
-        }
-        if (oldChild.nextSibling) {
-            oldChild.nextSibling.previousSibling = oldChild.previousSibling;
-        }else {
-            this.lastChild = oldChild.previousSibling;
-        }
-
-        oldChild.previousSibling = null;
-        oldChild.nextSibling = null;
-
-        return oldChild;
-    },
-    appendChild : function(newChild) {
-        if(!newChild){
-            return null;
-        }
-        // test for exceptions
-        if (__ownerDocument__(this).implementation.errorChecking) {
-            // throw Exception if Node is readonly
-            if (this._readonly) {
-                throw(new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR));
-            }
-
-            // throw Exception if arg was not created by this Document
-            if (__ownerDocument__(this) != __ownerDocument__(this)) {
-                throw(new DOMException(DOMException.WRONG_DOCUMENT_ERR));
-            }
-
-            // throw Exception if the node is an ancestor
-            if (__isAncestor__(this, newChild)) {
-              throw(new DOMException(DOMException.HIERARCHY_REQUEST_ERR));
-            }
-        }
-
-        // if the newChild is already in the tree,
-        var newChildParent = newChild.parentNode;
-        if (newChildParent) {
-            // remove it
-           //console.debug('removing node %s', newChild);
-            newChildParent.removeChild(newChild);
-        }
-
-        // add newChild to childNodes
-        __appendChild__(this.childNodes, newChild);
-
-        if (newChild.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {
-            // do node pointer surgery for DocumentFragment
-            if (newChild.childNodes.length > 0) {
-                for (var ind = 0; ind < newChild.childNodes.length; ind++) {
-                    newChild.childNodes[ind].parentNode = this;
-                }
-
-                if (this.lastChild) {
-                    this.lastChild.nextSibling = newChild.childNodes[0];
-                    newChild.childNodes[0].previousSibling = this.lastChild;
-                    this.lastChild = newChild.childNodes[newChild.childNodes.length-1];
-                } else {
-                    this.lastChild = newChild.childNodes[newChild.childNodes.length-1];
-                    this.firstChild = newChild.childNodes[0];
-                }
-            }
-        } else {
-            // do node pointer surgery for newChild
-            newChild.parentNode = this;
-            if (this.lastChild) {
-                this.lastChild.nextSibling = newChild;
-                newChild.previousSibling = this.lastChild;
-                this.lastChild = newChild;
-            } else {
-                this.lastChild = newChild;
-                this.firstChild = newChild;
-            }
-       }
-       return newChild;
-    },
-    hasChildNodes : function() {
-        return (this.childNodes.length > 0);
-    },
-    cloneNode: function(deep) {
-        // use importNode to clone this Node
-        //do not throw any exceptions
-        try {
-            return __ownerDocument__(this).importNode(this, deep);
-        } catch (e) {
-            //there shouldn't be any exceptions, but if there are, return null
-            // may want to warn: $debug("could not clone node: "+e.code);
-            return null;
-        }
-    },
-    normalize : function() {
-        var i;
-        var inode;
-        var nodesToRemove = new NodeList();
-
-        if (this.nodeType == Node.ELEMENT_NODE || this.nodeType == Node.DOCUMENT_NODE) {
-            var adjacentTextNode = null;
-
-            // loop through all childNodes
-            for(i = 0; i < this.childNodes.length; i++) {
-                inode = this.childNodes.item(i);
-
-                if (inode.nodeType == Node.TEXT_NODE) {
-                    // this node is a text node
-                    if (inode.length < 1) {
-                        // this text node is empty
-                        // add this node to the list of nodes to be remove
-                        __appendChild__(nodesToRemove, inode);
-                    }else {
-                        if (adjacentTextNode) {
-                            // previous node was also text
-                            adjacentTextNode.appendData(inode.data);
-                            // merge the data in adjacent text nodes
-                            // add this node to the list of nodes to be removed
-                            __appendChild__(nodesToRemove, inode);
-                        } else {
-                            // remember this node for next cycle
-                            adjacentTextNode = inode;
-                        }
-                    }
-                } else {
-                    // (soon to be) previous node is not a text node
-                    adjacentTextNode = null;
-                    // normalize non Text childNodes
-                    inode.normalize();
-                }
-            }
-
-            // remove redundant Text Nodes
-            for(i = 0; i < nodesToRemove.length; i++) {
-                inode = nodesToRemove.item(i);
-                inode.parentNode.removeChild(inode);
-            }
-        }
-    },
-    isSupported : function(feature, version) {
-        // use Implementation.hasFeature to determine if this feature is supported
-        return __ownerDocument__(this).implementation.hasFeature(feature, version);
-    },
-    getElementsByTagName : function(tagname) {
-        // delegate to _getElementsByTagNameRecursive
-        // recurse childNodes
-        var nodelist = new NodeList(__ownerDocument__(this));
-        for (var i = 0; i < this.childNodes.length; i++) {
-            __getElementsByTagNameRecursive__(this.childNodes.item(i),
-                                              tagname,
-                                              nodelist);
-        }
-        return nodelist;
-    },
-    getElementsByTagNameNS : function(namespaceURI, localName) {
-        // delegate to _getElementsByTagNameNSRecursive
-        return __getElementsByTagNameNSRecursive__(this, namespaceURI, localName,
-            new NodeList(__ownerDocument__(this)));
-    },
-    importNode : function(importedNode, deep) {
-        var i;
-        var importNode;
-
-        //there is no need to perform namespace checks since everything has already gone through them
-        //in order to have gotten into the DOM in the first place. The following line
-        //turns namespace checking off in ._isValidNamespace
-        __ownerDocument__(this).importing = true;
-
-        if (importedNode.nodeType == Node.ELEMENT_NODE) {
-            if (!__ownerDocument__(this).implementation.namespaceAware) {
-                // create a local Element (with the name of the importedNode)
-                importNode = __ownerDocument__(this).createElement(importedNode.tagName);
-
-                // create attributes matching those of the importedNode
-                for(i = 0; i < importedNode.attributes.length; i++) {
-                    importNode.setAttribute(importedNode.attributes.item(i).name, importedNode.attributes.item(i).value);
-                }
-            } else {
-                // create a local Element (with the name & namespaceURI of the importedNode)
-                importNode = __ownerDocument__(this).createElementNS(importedNode.namespaceURI, importedNode.nodeName);
-
-                // create attributes matching those of the importedNode
-                for(i = 0; i < importedNode.attributes.length; i++) {
-                    importNode.setAttributeNS(importedNode.attributes.item(i).namespaceURI,
-                        importedNode.attributes.item(i).name, importedNode.attributes.item(i).value);
-                }
-
-                // create namespace definitions matching those of the importedNode
-                for(i = 0; i < importedNode._namespaces.length; i++) {
-                    importNode._namespaces[i] = __ownerDocument__(this).createNamespace(importedNode._namespaces.item(i).localName);
-                    importNode._namespaces[i].value = importedNode._namespaces.item(i).value;
-                }
-            }
-        } else if (importedNode.nodeType == Node.ATTRIBUTE_NODE) {
-            if (!__ownerDocument__(this).implementation.namespaceAware) {
-                // create a local Attribute (with the name of the importedAttribute)
-                importNode = __ownerDocument__(this).createAttribute(importedNode.name);
-            } else {
-                // create a local Attribute (with the name & namespaceURI of the importedAttribute)
-                importNode = __ownerDocument__(this).createAttributeNS(importedNode.namespaceURI, importedNode.nodeName);
-
-                // create namespace definitions matching those of the importedAttribute
-                for(i = 0; i < importedNode._namespaces.length; i++) {
-                    importNode._namespaces[i] = __ownerDocument__(this).createNamespace(importedNode._namespaces.item(i).localName);
-                    importNode._namespaces[i].value = importedNode._namespaces.item(i).value;
-                }
-            }
-
-            // set the value of the local Attribute to match that of the importedAttribute
-            importNode.value = importedNode.value;
-
-        } else if (importedNode.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {
-            // create a local DocumentFragment
-            importNode = __ownerDocument__(this).createDocumentFragment();
-        } else if (importedNode.nodeType == Node.NAMESPACE_NODE) {
-            // create a local NamespaceNode (with the same name & value as the importedNode)
-            importNode = __ownerDocument__(this).createNamespace(importedNode.nodeName);
-            importNode.value = importedNode.value;
-        } else if (importedNode.nodeType == Node.TEXT_NODE) {
-            // create a local TextNode (with

<TRUNCATED>

[40/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/nodes.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/nodes.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/nodes.js
deleted file mode 100644
index 0edbcf6..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/nodes.js
+++ /dev/null
@@ -1,3048 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, CodeFragment, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, last, locationDataToString, merge, multident, some, starts, throwSyntaxError, unfoldSoak, utility, _ref, _ref1, _ref2, _ref3,
-    __hasProp = {}.hasOwnProperty,
-    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
-    __slice = [].slice;
-
-  Error.stackTraceLimit = Infinity;
-
-  Scope = require('./scope').Scope;
-
-  _ref = require('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED;
-
-  _ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last, some = _ref1.some, addLocationDataFn = _ref1.addLocationDataFn, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError;
-
-  exports.extend = extend;
-
-  exports.addLocationDataFn = addLocationDataFn;
-
-  YES = function() {
-    return true;
-  };
-
-  NO = function() {
-    return false;
-  };
-
-  THIS = function() {
-    return this;
-  };
-
-  NEGATE = function() {
-    this.negated = !this.negated;
-    return this;
-  };
-
-  exports.CodeFragment = CodeFragment = (function() {
-    function CodeFragment(parent, code) {
-      var _ref2;
-      this.code = "" + code;
-      this.locationData = parent != null ? parent.locationData : void 0;
-      this.type = (parent != null ? (_ref2 = parent.constructor) != null ? _ref2.name : void 0 : void 0) || 'unknown';
-    }
-
-    CodeFragment.prototype.toString = function() {
-      return "" + this.code + (this.locationData ? ": " + locationDataToString(this.locationData) : '');
-    };
-
-    return CodeFragment;
-
-  })();
-
-  fragmentsToText = function(fragments) {
-    var fragment;
-    return ((function() {
-      var _i, _len, _results;
-      _results = [];
-      for (_i = 0, _len = fragments.length; _i < _len; _i++) {
-        fragment = fragments[_i];
-        _results.push(fragment.code);
-      }
-      return _results;
-    })()).join('');
-  };
-
-  exports.Base = Base = (function() {
-    function Base() {}
-
-    Base.prototype.compile = function(o, lvl) {
-      return fragmentsToText(this.compileToFragments(o, lvl));
-    };
-
-    Base.prototype.compileToFragments = function(o, lvl) {
-      var node;
-      o = extend({}, o);
-      if (lvl) {
-        o.level = lvl;
-      }
-      node = this.unfoldSoak(o) || this;
-      node.tab = o.indent;
-      if (o.level === LEVEL_TOP || !node.isStatement(o)) {
-        return node.compileNode(o);
-      } else {
-        return node.compileClosure(o);
-      }
-    };
-
-    Base.prototype.compileClosure = function(o) {
-      var jumpNode;
-      if (jumpNode = this.jumps()) {
-        jumpNode.error('cannot use a pure statement in an expression');
-      }
-      o.sharedScope = true;
-      return Closure.wrap(this).compileNode(o);
-    };
-
-    Base.prototype.cache = function(o, level, reused) {
-      var ref, sub;
-      if (!this.isComplex()) {
-        ref = level ? this.compileToFragments(o, level) : this;
-        return [ref, ref];
-      } else {
-        ref = new Literal(reused || o.scope.freeVariable('ref'));
-        sub = new Assign(ref, this);
-        if (level) {
-          return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]];
-        } else {
-          return [sub, ref];
-        }
-      }
-    };
-
-    Base.prototype.cacheToCodeFragments = function(cacheValues) {
-      return [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])];
-    };
-
-    Base.prototype.makeReturn = function(res) {
-      var me;
-      me = this.unwrapAll();
-      if (res) {
-        return new Call(new Literal("" + res + ".push"), [me]);
-      } else {
-        return new Return(me);
-      }
-    };
-
-    Base.prototype.contains = function(pred) {
-      var node;
-      node = void 0;
-      this.traverseChildren(false, function(n) {
-        if (pred(n)) {
-          node = n;
-          return false;
-        }
-      });
-      return node;
-    };
-
-    Base.prototype.lastNonComment = function(list) {
-      var i;
-      i = list.length;
-      while (i--) {
-        if (!(list[i] instanceof Comment)) {
-          return list[i];
-        }
-      }
-      return null;
-    };
-
-    Base.prototype.toString = function(idt, name) {
-      var tree;
-      if (idt == null) {
-        idt = '';
-      }
-      if (name == null) {
-        name = this.constructor.name;
-      }
-      tree = '\n' + idt + name;
-      if (this.soak) {
-        tree += '?';
-      }
-      this.eachChild(function(node) {
-        return tree += node.toString(idt + TAB);
-      });
-      return tree;
-    };
-
-    Base.prototype.eachChild = function(func) {
-      var attr, child, _i, _j, _len, _len1, _ref2, _ref3;
-      if (!this.children) {
-        return this;
-      }
-      _ref2 = this.children;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        attr = _ref2[_i];
-        if (this[attr]) {
-          _ref3 = flatten([this[attr]]);
-          for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
-            child = _ref3[_j];
-            if (func(child) === false) {
-              return this;
-            }
-          }
-        }
-      }
-      return this;
-    };
-
-    Base.prototype.traverseChildren = function(crossScope, func) {
-      return this.eachChild(function(child) {
-        var recur;
-        recur = func(child);
-        if (recur !== false) {
-          return child.traverseChildren(crossScope, func);
-        }
-      });
-    };
-
-    Base.prototype.invert = function() {
-      return new Op('!', this);
-    };
-
-    Base.prototype.unwrapAll = function() {
-      var node;
-      node = this;
-      while (node !== (node = node.unwrap())) {
-        continue;
-      }
-      return node;
-    };
-
-    Base.prototype.children = [];
-
-    Base.prototype.isStatement = NO;
-
-    Base.prototype.jumps = NO;
-
-    Base.prototype.isComplex = YES;
-
-    Base.prototype.isChainable = NO;
-
-    Base.prototype.isAssignable = NO;
-
-    Base.prototype.unwrap = THIS;
-
-    Base.prototype.unfoldSoak = NO;
-
-    Base.prototype.assigns = NO;
-
-    Base.prototype.updateLocationDataIfMissing = function(locationData) {
-      this.locationData || (this.locationData = locationData);
-      return this.eachChild(function(child) {
-        return child.updateLocationDataIfMissing(locationData);
-      });
-    };
-
-    Base.prototype.error = function(message) {
-      return throwSyntaxError(message, this.locationData);
-    };
-
-    Base.prototype.makeCode = function(code) {
-      return new CodeFragment(this, code);
-    };
-
-    Base.prototype.wrapInBraces = function(fragments) {
-      return [].concat(this.makeCode('('), fragments, this.makeCode(')'));
-    };
-
-    Base.prototype.joinFragmentArrays = function(fragmentsList, joinStr) {
-      var answer, fragments, i, _i, _len;
-      answer = [];
-      for (i = _i = 0, _len = fragmentsList.length; _i < _len; i = ++_i) {
-        fragments = fragmentsList[i];
-        if (i) {
-          answer.push(this.makeCode(joinStr));
-        }
-        answer = answer.concat(fragments);
-      }
-      return answer;
-    };
-
-    return Base;
-
-  })();
-
-  exports.Block = Block = (function(_super) {
-    __extends(Block, _super);
-
-    function Block(nodes) {
-      this.expressions = compact(flatten(nodes || []));
-    }
-
-    Block.prototype.children = ['expressions'];
-
-    Block.prototype.push = function(node) {
-      this.expressions.push(node);
-      return this;
-    };
-
-    Block.prototype.pop = function() {
-      return this.expressions.pop();
-    };
-
-    Block.prototype.unshift = function(node) {
-      this.expressions.unshift(node);
-      return this;
-    };
-
-    Block.prototype.unwrap = function() {
-      if (this.expressions.length === 1) {
-        return this.expressions[0];
-      } else {
-        return this;
-      }
-    };
-
-    Block.prototype.isEmpty = function() {
-      return !this.expressions.length;
-    };
-
-    Block.prototype.isStatement = function(o) {
-      var exp, _i, _len, _ref2;
-      _ref2 = this.expressions;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        exp = _ref2[_i];
-        if (exp.isStatement(o)) {
-          return true;
-        }
-      }
-      return false;
-    };
-
-    Block.prototype.jumps = function(o) {
-      var exp, _i, _len, _ref2;
-      _ref2 = this.expressions;
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        exp = _ref2[_i];
-        if (exp.jumps(o)) {
-          return exp;
-        }
-      }
-    };
-
-    Block.prototype.makeReturn = function(res) {
-      var expr, len;
-      len = this.expressions.length;
-      while (len--) {
-        expr = this.expressions[len];
-        if (!(expr instanceof Comment)) {
-          this.expressions[len] = expr.makeReturn(res);
-          if (expr instanceof Return && !expr.expression) {
-            this.expressions.splice(len, 1);
-          }
-          break;
-        }
-      }
-      return this;
-    };
-
-    Block.prototype.compileToFragments = function(o, level) {
-      if (o == null) {
-        o = {};
-      }
-      if (o.scope) {
-        return Block.__super__.compileToFragments.call(this, o, level);
-      } else {
-        return this.compileRoot(o);
-      }
-    };
-
-    Block.prototype.compileNode = function(o) {
-      var answer, compiledNodes, fragments, index, node, top, _i, _len, _ref2;
-      this.tab = o.indent;
-      top = o.level === LEVEL_TOP;
-      compiledNodes = [];
-      _ref2 = this.expressions;
-      for (index = _i = 0, _len = _ref2.length; _i < _len; index = ++_i) {
-        node = _ref2[index];
-        node = node.unwrapAll();
-        node = node.unfoldSoak(o) || node;
-        if (node instanceof Block) {
-          compiledNodes.push(node.compileNode(o));
-        } else if (top) {
-          node.front = true;
-          fragments = node.compileToFragments(o);
-          if (!node.isStatement(o)) {
-            fragments.unshift(this.makeCode("" + this.tab));
-            fragments.push(this.makeCode(";"));
-          }
-          compiledNodes.push(fragments);
-        } else {
-          compiledNodes.push(node.compileToFragments(o, LEVEL_LIST));
-        }
-      }
-      if (top) {
-        if (this.spaced) {
-          return [].concat(this.joinFragmentArrays(compiledNodes, '\n\n'), this.makeCode("\n"));
-        } else {
-          return this.joinFragmentArrays(compiledNodes, '\n');
-        }
-      }
-      if (compiledNodes.length) {
-        answer = this.joinFragmentArrays(compiledNodes, ', ');
-      } else {
-        answer = [this.makeCode("void 0")];
-      }
-      if (compiledNodes.length > 1 && o.level >= LEVEL_LIST) {
-        return this.wrapInBraces(answer);
-      } else {
-        return answer;
-      }
-    };
-
-    Block.prototype.compileRoot = function(o) {
-      var exp, fragments, i, name, prelude, preludeExps, rest, _i, _len, _ref2;
-      o.indent = o.bare ? '' : TAB;
-      o.level = LEVEL_TOP;
-      this.spaced = true;
-      o.scope = new Scope(null, this, null);
-      _ref2 = o.locals || [];
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        name = _ref2[_i];
-        o.scope.parameter(name);
-      }
-      prelude = [];
-      if (!o.bare) {
-        preludeExps = (function() {
-          var _j, _len1, _ref3, _results;
-          _ref3 = this.expressions;
-          _results = [];
-          for (i = _j = 0, _len1 = _ref3.length; _j < _len1; i = ++_j) {
-            exp = _ref3[i];
-            if (!(exp.unwrap() instanceof Comment)) {
-              break;
-            }
-            _results.push(exp);
-          }
-          return _results;
-        }).call(this);
-        rest = this.expressions.slice(preludeExps.length);
-        this.expressions = preludeExps;
-        if (preludeExps.length) {
-          prelude = this.compileNode(merge(o, {
-            indent: ''
-          }));
-          prelude.push(this.makeCode("\n"));
-        }
-        this.expressions = rest;
-      }
-      fragments = this.compileWithDeclarations(o);
-      if (o.bare) {
-        return fragments;
-      }
-      return [].concat(prelude, this.makeCode("(function() {\n"), fragments, this.makeCode("\n}).call(this);\n"));
-    };
-
-    Block.prototype.compileWithDeclarations = function(o) {
-      var assigns, declars, exp, fragments, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4;
-      fragments = [];
-      post = [];
-      _ref2 = this.expressions;
-      for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
-        exp = _ref2[i];
-        exp = exp.unwrap();
-        if (!(exp instanceof Comment || exp instanceof Literal)) {
-          break;
-        }
-      }
-      o = merge(o, {
-        level: LEVEL_TOP
-      });
-      if (i) {
-        rest = this.expressions.splice(i, 9e9);
-        _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1];
-        _ref4 = [this.compileNode(o), spaced], fragments = _ref4[0], this.spaced = _ref4[1];
-        this.expressions = rest;
-      }
-      post = this.compileNode(o);
-      scope = o.scope;
-      if (scope.expressions === this) {
-        declars = o.scope.hasDeclarations();
-        assigns = scope.hasAssignments;
-        if (declars || assigns) {
-          if (i) {
-            fragments.push(this.makeCode('\n'));
-          }
-          fragments.push(this.makeCode("" + this.tab + "var "));
-          if (declars) {
-            fragments.push(this.makeCode(scope.declaredVariables().join(', ')));
-          }
-          if (assigns) {
-            if (declars) {
-              fragments.push(this.makeCode(",\n" + (this.tab + TAB)));
-            }
-            fragments.push(this.makeCode(scope.assignedVariables().join(",\n" + (this.tab + TAB))));
-          }
-          fragments.push(this.makeCode(";\n" + (this.spaced ? '\n' : '')));
-        } else if (fragments.length && post.length) {
-          fragments.push(this.makeCode("\n"));
-        }
-      }
-      return fragments.concat(post);
-    };
-
-    Block.wrap = function(nodes) {
-      if (nodes.length === 1 && nodes[0] instanceof Block) {
-        return nodes[0];
-      }
-      return new Block(nodes);
-    };
-
-    return Block;
-
-  })(Base);
-
-  exports.Literal = Literal = (function(_super) {
-    __extends(Literal, _super);
-
-    function Literal(value) {
-      this.value = value;
-    }
-
-    Literal.prototype.makeReturn = function() {
-      if (this.isStatement()) {
-        return this;
-      } else {
-        return Literal.__super__.makeReturn.apply(this, arguments);
-      }
-    };
-
-    Literal.prototype.isAssignable = function() {
-      return IDENTIFIER.test(this.value);
-    };
-
-    Literal.prototype.isStatement = function() {
-      var _ref2;
-      return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger';
-    };
-
-    Literal.prototype.isComplex = NO;
-
-    Literal.prototype.assigns = function(name) {
-      return name === this.value;
-    };
-
-    Literal.prototype.jumps = function(o) {
-      if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) {
-        return this;
-      }
-      if (this.value === 'continue' && !(o != null ? o.loop : void 0)) {
-        return this;
-      }
-    };
-
-    Literal.prototype.compileNode = function(o) {
-      var answer, code, _ref2;
-      code = this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value;
-      answer = this.isStatement() ? "" + this.tab + code + ";" : code;
-      return [this.makeCode(answer)];
-    };
-
-    Literal.prototype.toString = function() {
-      return ' "' + this.value + '"';
-    };
-
-    return Literal;
-
-  })(Base);
-
-  exports.Undefined = (function(_super) {
-    __extends(Undefined, _super);
-
-    function Undefined() {
-      _ref2 = Undefined.__super__.constructor.apply(this, arguments);
-      return _ref2;
-    }
-
-    Undefined.prototype.isAssignable = NO;
-
-    Undefined.prototype.isComplex = NO;
-
-    Undefined.prototype.compileNode = function(o) {
-      return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')];
-    };
-
-    return Undefined;
-
-  })(Base);
-
-  exports.Null = (function(_super) {
-    __extends(Null, _super);
-
-    function Null() {
-      _ref3 = Null.__super__.constructor.apply(this, arguments);
-      return _ref3;
-    }
-
-    Null.prototype.isAssignable = NO;
-
-    Null.prototype.isComplex = NO;
-
-    Null.prototype.compileNode = function() {
-      return [this.makeCode("null")];
-    };
-
-    return Null;
-
-  })(Base);
-
-  exports.Bool = (function(_super) {
-    __extends(Bool, _super);
-
-    Bool.prototype.isAssignable = NO;
-
-    Bool.prototype.isComplex = NO;
-
-    Bool.prototype.compileNode = function() {
-      return [this.makeCode(this.val)];
-    };
-
-    function Bool(val) {
-      this.val = val;
-    }
-
-    return Bool;
-
-  })(Base);
-
-  exports.Return = Return = (function(_super) {
-    __extends(Return, _super);
-
-    function Return(expr) {
-      if (expr && !expr.unwrap().isUndefined) {
-        this.expression = expr;
-      }
-    }
-
-    Return.prototype.children = ['expression'];
-
-    Return.prototype.isStatement = YES;
-
-    Return.prototype.makeReturn = THIS;
-
-    Return.prototype.jumps = THIS;
-
-    Return.prototype.compileToFragments = function(o, level) {
-      var expr, _ref4;
-      expr = (_ref4 = this.expression) != null ? _ref4.makeReturn() : void 0;
-      if (expr && !(expr instanceof Return)) {
-        return expr.compileToFragments(o, level);
-      } else {
-        return Return.__super__.compileToFragments.call(this, o, level);
-      }
-    };
-
-    Return.prototype.compileNode = function(o) {
-      var answer;
-      answer = [];
-      answer.push(this.makeCode(this.tab + ("return" + (this.expression ? " " : ""))));
-      if (this.expression) {
-        answer = answer.concat(this.expression.compileToFragments(o, LEVEL_PAREN));
-      }
-      answer.push(this.makeCode(";"));
-      return answer;
-    };
-
-    return Return;
-
-  })(Base);
-
-  exports.Value = Value = (function(_super) {
-    __extends(Value, _super);
-
-    function Value(base, props, tag) {
-      if (!props && base instanceof Value) {
-        return base;
-      }
-      this.base = base;
-      this.properties = props || [];
-      if (tag) {
-        this[tag] = true;
-      }
-      return this;
-    }
-
-    Value.prototype.children = ['base', 'properties'];
-
-    Value.prototype.add = function(props) {
-      this.properties = this.properties.concat(props);
-      return this;
-    };
-
-    Value.prototype.hasProperties = function() {
-      return !!this.properties.length;
-    };
-
-    Value.prototype.isArray = function() {
-      return !this.properties.length && this.base instanceof Arr;
-    };
-
-    Value.prototype.isComplex = function() {
-      return this.hasProperties() || this.base.isComplex();
-    };
-
-    Value.prototype.isAssignable = function() {
-      return this.hasProperties() || this.base.isAssignable();
-    };
-
-    Value.prototype.isSimpleNumber = function() {
-      return this.base instanceof Literal && SIMPLENUM.test(this.base.value);
-    };
-
-    Value.prototype.isString = function() {
-      return this.base instanceof Literal && IS_STRING.test(this.base.value);
-    };
-
-    Value.prototype.isAtomic = function() {
-      var node, _i, _len, _ref4;
-      _ref4 = this.properties.concat(this.base);
-      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-        node = _ref4[_i];
-        if (node.soak || node instanceof Call) {
-          return false;
-        }
-      }
-      return true;
-    };
-
-    Value.prototype.isStatement = function(o) {
-      return !this.properties.length && this.base.isStatement(o);
-    };
-
-    Value.prototype.assigns = function(name) {
-      return !this.properties.length && this.base.assigns(name);
-    };
-
-    Value.prototype.jumps = function(o) {
-      return !this.properties.length && this.base.jumps(o);
-    };
-
-    Value.prototype.isObject = function(onlyGenerated) {
-      if (this.properties.length) {
-        return false;
-      }
-      return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated);
-    };
-
-    Value.prototype.isSplice = function() {
-      return last(this.properties) instanceof Slice;
-    };
-
-    Value.prototype.unwrap = function() {
-      if (this.properties.length) {
-        return this;
-      } else {
-        return this.base;
-      }
-    };
-
-    Value.prototype.cacheReference = function(o) {
-      var base, bref, name, nref;
-      name = last(this.properties);
-      if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) {
-        return [this, this];
-      }
-      base = new Value(this.base, this.properties.slice(0, -1));
-      if (base.isComplex()) {
-        bref = new Literal(o.scope.freeVariable('base'));
-        base = new Value(new Parens(new Assign(bref, base)));
-      }
-      if (!name) {
-        return [base, bref];
-      }
-      if (name.isComplex()) {
-        nref = new Literal(o.scope.freeVariable('name'));
-        name = new Index(new Assign(nref, name.index));
-        nref = new Index(nref);
-      }
-      return [base.add(name), new Value(bref || base.base, [nref || name])];
-    };
-
-    Value.prototype.compileNode = function(o) {
-      var fragments, prop, props, _i, _len;
-      this.base.front = this.front;
-      props = this.properties;
-      fragments = this.base.compileToFragments(o, (props.length ? LEVEL_ACCESS : null));
-      if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(fragmentsToText(fragments))) {
-        fragments.push(this.makeCode('.'));
-      }
-      for (_i = 0, _len = props.length; _i < _len; _i++) {
-        prop = props[_i];
-        fragments.push.apply(fragments, prop.compileToFragments(o));
-      }
-      return fragments;
-    };
-
-    Value.prototype.unfoldSoak = function(o) {
-      var _this = this;
-      return this.unfoldedSoak != null ? this.unfoldedSoak : this.unfoldedSoak = (function() {
-        var fst, i, ifn, prop, ref, snd, _i, _len, _ref4, _ref5;
-        if (ifn = _this.base.unfoldSoak(o)) {
-          (_ref4 = ifn.body.properties).push.apply(_ref4, _this.properties);
-          return ifn;
-        }
-        _ref5 = _this.properties;
-        for (i = _i = 0, _len = _ref5.length; _i < _len; i = ++_i) {
-          prop = _ref5[i];
-          if (!prop.soak) {
-            continue;
-          }
-          prop.soak = false;
-          fst = new Value(_this.base, _this.properties.slice(0, i));
-          snd = new Value(_this.base, _this.properties.slice(i));
-          if (fst.isComplex()) {
-            ref = new Literal(o.scope.freeVariable('ref'));
-            fst = new Parens(new Assign(ref, fst));
-            snd.base = ref;
-          }
-          return new If(new Existence(fst), snd, {
-            soak: true
-          });
-        }
-        return false;
-      })();
-    };
-
-    return Value;
-
-  })(Base);
-
-  exports.Comment = Comment = (function(_super) {
-    __extends(Comment, _super);
-
-    function Comment(comment) {
-      this.comment = comment;
-    }
-
-    Comment.prototype.isStatement = YES;
-
-    Comment.prototype.makeReturn = THIS;
-
-    Comment.prototype.compileNode = function(o, level) {
-      var code;
-      code = "/*" + (multident(this.comment, this.tab)) + (__indexOf.call(this.comment, '\n') >= 0 ? "\n" + this.tab : '') + "*/\n";
-      if ((level || o.level) === LEVEL_TOP) {
-        code = o.indent + code;
-      }
-      return [this.makeCode(code)];
-    };
-
-    return Comment;
-
-  })(Base);
-
-  exports.Call = Call = (function(_super) {
-    __extends(Call, _super);
-
-    function Call(variable, args, soak) {
-      this.args = args != null ? args : [];
-      this.soak = soak;
-      this.isNew = false;
-      this.isSuper = variable === 'super';
-      this.variable = this.isSuper ? null : variable;
-    }
-
-    Call.prototype.children = ['variable', 'args'];
-
-    Call.prototype.newInstance = function() {
-      var base, _ref4;
-      base = ((_ref4 = this.variable) != null ? _ref4.base : void 0) || this.variable;
-      if (base instanceof Call && !base.isNew) {
-        base.newInstance();
-      } else {
-        this.isNew = true;
-      }
-      return this;
-    };
-
-    Call.prototype.superReference = function(o) {
-      var accesses, method;
-      method = o.scope.namedMethod();
-      if (method != null ? method.klass : void 0) {
-        accesses = [new Access(new Literal('__super__'))];
-        if (method["static"]) {
-          accesses.push(new Access(new Literal('constructor')));
-        }
-        accesses.push(new Access(new Literal(method.name)));
-        return (new Value(new Literal(method.klass), accesses)).compile(o);
-      } else if (method != null ? method.ctor : void 0) {
-        return "" + method.name + ".__super__.constructor";
-      } else {
-        return this.error('cannot call super outside of an instance method.');
-      }
-    };
-
-    Call.prototype.superThis = function(o) {
-      var method;
-      method = o.scope.method;
-      return (method && !method.klass && method.context) || "this";
-    };
-
-    Call.prototype.unfoldSoak = function(o) {
-      var call, ifn, left, list, rite, _i, _len, _ref4, _ref5;
-      if (this.soak) {
-        if (this.variable) {
-          if (ifn = unfoldSoak(o, this, 'variable')) {
-            return ifn;
-          }
-          _ref4 = new Value(this.variable).cacheReference(o), left = _ref4[0], rite = _ref4[1];
-        } else {
-          left = new Literal(this.superReference(o));
-          rite = new Value(left);
-        }
-        rite = new Call(rite, this.args);
-        rite.isNew = this.isNew;
-        left = new Literal("typeof " + (left.compile(o)) + " === \"function\"");
-        return new If(left, new Value(rite), {
-          soak: true
-        });
-      }
-      call = this;
-      list = [];
-      while (true) {
-        if (call.variable instanceof Call) {
-          list.push(call);
-          call = call.variable;
-          continue;
-        }
-        if (!(call.variable instanceof Value)) {
-          break;
-        }
-        list.push(call);
-        if (!((call = call.variable.base) instanceof Call)) {
-          break;
-        }
-      }
-      _ref5 = list.reverse();
-      for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
-        call = _ref5[_i];
-        if (ifn) {
-          if (call.variable instanceof Call) {
-            call.variable = ifn;
-          } else {
-            call.variable.base = ifn;
-          }
-        }
-        ifn = unfoldSoak(o, call, 'variable');
-      }
-      return ifn;
-    };
-
-    Call.prototype.compileNode = function(o) {
-      var arg, argIndex, compiledArgs, compiledArray, fragments, preface, _i, _len, _ref4, _ref5;
-      if ((_ref4 = this.variable) != null) {
-        _ref4.front = this.front;
-      }
-      compiledArray = Splat.compileSplattedArray(o, this.args, true);
-      if (compiledArray.length) {
-        return this.compileSplat(o, compiledArray);
-      }
-      compiledArgs = [];
-      _ref5 = this.args;
-      for (argIndex = _i = 0, _len = _ref5.length; _i < _len; argIndex = ++_i) {
-        arg = _ref5[argIndex];
-        if (argIndex) {
-          compiledArgs.push(this.makeCode(", "));
-        }
-        compiledArgs.push.apply(compiledArgs, arg.compileToFragments(o, LEVEL_LIST));
-      }
-      fragments = [];
-      if (this.isSuper) {
-        preface = this.superReference(o) + (".call(" + (this.superThis(o)));
-        if (compiledArgs.length) {
-          preface += ", ";
-        }
-        fragments.push(this.makeCode(preface));
-      } else {
-        if (this.isNew) {
-          fragments.push(this.makeCode('new '));
-        }
-        fragments.push.apply(fragments, this.variable.compileToFragments(o, LEVEL_ACCESS));
-        fragments.push(this.makeCode("("));
-      }
-      fragments.push.apply(fragments, compiledArgs);
-      fragments.push(this.makeCode(")"));
-      return fragments;
-    };
-
-    Call.prototype.compileSplat = function(o, splatArgs) {
-      var answer, base, fun, idt, name, ref;
-      if (this.isSuper) {
-        return [].concat(this.makeCode("" + (this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", "), splatArgs, this.makeCode(")"));
-      }
-      if (this.isNew) {
-        idt = this.tab + TAB;
-        return [].concat(this.makeCode("(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args);\n" + idt + "return Object(result) === result ? result : child;\n" + this.tab + "})("), this.variable.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), splatArgs, this.makeCode(", function(){})"));
-      }
-      answer = [];
-      base = new Value(this.variable);
-      if ((name = base.properties.pop()) && base.isComplex()) {
-        ref = o.scope.freeVariable('ref');
-        answer = answer.concat(this.makeCode("(" + ref + " = "), base.compileToFragments(o, LEVEL_LIST), this.makeCode(")"), name.compileToFragments(o));
-      } else {
-        fun = base.compileToFragments(o, LEVEL_ACCESS);
-        if (SIMPLENUM.test(fragmentsToText(fun))) {
-          fun = this.wrapInBraces(fun);
-        }
-        if (name) {
-          ref = fragmentsToText(fun);
-          fun.push.apply(fun, name.compileToFragments(o));
-        } else {
-          ref = 'null';
-        }
-        answer = answer.concat(fun);
-      }
-      return answer = answer.concat(this.makeCode(".apply(" + ref + ", "), splatArgs, this.makeCode(")"));
-    };
-
-    return Call;
-
-  })(Base);
-
-  exports.Extends = Extends = (function(_super) {
-    __extends(Extends, _super);
-
-    function Extends(child, parent) {
-      this.child = child;
-      this.parent = parent;
-    }
-
-    Extends.prototype.children = ['child', 'parent'];
-
-    Extends.prototype.compileToFragments = function(o) {
-      return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compileToFragments(o);
-    };
-
-    return Extends;
-
-  })(Base);
-
-  exports.Access = Access = (function(_super) {
-    __extends(Access, _super);
-
-    function Access(name, tag) {
-      this.name = name;
-      this.name.asKey = true;
-      this.soak = tag === 'soak';
-    }
-
-    Access.prototype.children = ['name'];
-
-    Access.prototype.compileToFragments = function(o) {
-      var name;
-      name = this.name.compileToFragments(o);
-      if (IDENTIFIER.test(fragmentsToText(name))) {
-        name.unshift(this.makeCode("."));
-      } else {
-        name.unshift(this.makeCode("["));
-        name.push(this.makeCode("]"));
-      }
-      return name;
-    };
-
-    Access.prototype.isComplex = NO;
-
-    return Access;
-
-  })(Base);
-
-  exports.Index = Index = (function(_super) {
-    __extends(Index, _super);
-
-    function Index(index) {
-      this.index = index;
-    }
-
-    Index.prototype.children = ['index'];
-
-    Index.prototype.compileToFragments = function(o) {
-      return [].concat(this.makeCode("["), this.index.compileToFragments(o, LEVEL_PAREN), this.makeCode("]"));
-    };
-
-    Index.prototype.isComplex = function() {
-      return this.index.isComplex();
-    };
-
-    return Index;
-
-  })(Base);
-
-  exports.Range = Range = (function(_super) {
-    __extends(Range, _super);
-
-    Range.prototype.children = ['from', 'to'];
-
-    function Range(from, to, tag) {
-      this.from = from;
-      this.to = to;
-      this.exclusive = tag === 'exclusive';
-      this.equals = this.exclusive ? '' : '=';
-    }
-
-    Range.prototype.compileVariables = function(o) {
-      var step, _ref4, _ref5, _ref6, _ref7;
-      o = merge(o, {
-        top: true
-      });
-      _ref4 = this.cacheToCodeFragments(this.from.cache(o, LEVEL_LIST)), this.fromC = _ref4[0], this.fromVar = _ref4[1];
-      _ref5 = this.cacheToCodeFragments(this.to.cache(o, LEVEL_LIST)), this.toC = _ref5[0], this.toVar = _ref5[1];
-      if (step = del(o, 'step')) {
-        _ref6 = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST)), this.step = _ref6[0], this.stepVar = _ref6[1];
-      }
-      _ref7 = [this.fromVar.match(SIMPLENUM), this.toVar.match(SIMPLENUM)], this.fromNum = _ref7[0], this.toNum = _ref7[1];
-      if (this.stepVar) {
-        return this.stepNum = this.stepVar.match(SIMPLENUM);
-      }
-    };
-
-    Range.prototype.compileNode = function(o) {
-      var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref4, _ref5;
-      if (!this.fromVar) {
-        this.compileVariables(o);
-      }
-      if (!o.index) {
-        return this.compileArray(o);
-      }
-      known = this.fromNum && this.toNum;
-      idx = del(o, 'index');
-      idxName = del(o, 'name');
-      namedIndex = idxName && idxName !== idx;
-      varPart = "" + idx + " = " + this.fromC;
-      if (this.toC !== this.toVar) {
-        varPart += ", " + this.toC;
-      }
-      if (this.step !== this.stepVar) {
-        varPart += ", " + this.step;
-      }
-      _ref4 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref4[0], gt = _ref4[1];
-      condPart = this.stepNum ? +this.stepNum > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref5 = [+this.fromNum, +this.toNum], from = _ref5[0], to = _ref5[1], _ref5), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = this.stepVar ? "" + this.stepVar + " > 0" : "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar);
-      stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--";
-      if (namedIndex) {
-        varPart = "" + idxName + " = " + varPart;
-      }
-      if (namedIndex) {
-        stepPart = "" + idxName + " = " + stepPart;
-      }
-      return [this.makeCode("" + varPart + "; " + condPart + "; " + stepPart)];
-    };
-
-    Range.prototype.compileArray = function(o) {
-      var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref4, _ref5, _results;
-      if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) {
-        range = (function() {
-          _results = [];
-          for (var _i = _ref4 = +this.fromNum, _ref5 = +this.toNum; _ref4 <= _ref5 ? _i <= _ref5 : _i >= _ref5; _ref4 <= _ref5 ? _i++ : _i--){ _results.push(_i); }
-          return _results;
-        }).apply(this);
-        if (this.exclusive) {
-          range.pop();
-        }
-        return [this.makeCode("[" + (range.join(', ')) + "]")];
-      }
-      idt = this.tab + TAB;
-      i = o.scope.freeVariable('i');
-      result = o.scope.freeVariable('results');
-      pre = "\n" + idt + result + " = [];";
-      if (this.fromNum && this.toNum) {
-        o.index = i;
-        body = fragmentsToText(this.compileNode(o));
-      } else {
-        vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : '');
-        cond = "" + this.fromVar + " <= " + this.toVar;
-        body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--";
-      }
-      post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent;
-      hasArgs = function(node) {
-        return node != null ? node.contains(function(n) {
-          return n instanceof Literal && n.value === 'arguments' && !n.asKey;
-        }) : void 0;
-      };
-      if (hasArgs(this.from) || hasArgs(this.to)) {
-        args = ', arguments';
-      }
-      return [this.makeCode("(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")")];
-    };
-
-    return Range;
-
-  })(Base);
-
-  exports.Slice = Slice = (function(_super) {
-    __extends(Slice, _super);
-
-    Slice.prototype.children = ['range'];
-
-    function Slice(range) {
-      this.range = range;
-      Slice.__super__.constructor.call(this);
-    }
-
-    Slice.prototype.compileNode = function(o) {
-      var compiled, compiledText, from, fromCompiled, to, toStr, _ref4;
-      _ref4 = this.range, to = _ref4.to, from = _ref4.from;
-      fromCompiled = from && from.compileToFragments(o, LEVEL_PAREN) || [this.makeCode('0')];
-      if (to) {
-        compiled = to.compileToFragments(o, LEVEL_PAREN);
-        compiledText = fragmentsToText(compiled);
-        if (!(!this.range.exclusive && +compiledText === -1)) {
-          toStr = ', ' + (this.range.exclusive ? compiledText : SIMPLENUM.test(compiledText) ? "" + (+compiledText + 1) : (compiled = to.compileToFragments(o, LEVEL_ACCESS), "+" + (fragmentsToText(compiled)) + " + 1 || 9e9"));
-        }
-      }
-      return [this.makeCode(".slice(" + (fragmentsToText(fromCompiled)) + (toStr || '') + ")")];
-    };
-
-    return Slice;
-
-  })(Base);
-
-  exports.Obj = Obj = (function(_super) {
-    __extends(Obj, _super);
-
-    function Obj(props, generated) {
-      this.generated = generated != null ? generated : false;
-      this.objects = this.properties = props || [];
-    }
-
-    Obj.prototype.children = ['properties'];
-
-    Obj.prototype.compileNode = function(o) {
-      var answer, i, idt, indent, join, lastNoncom, node, prop, props, _i, _j, _len, _len1;
-      props = this.properties;
-      if (!props.length) {
-        return [this.makeCode(this.front ? '({})' : '{}')];
-      }
-      if (this.generated) {
-        for (_i = 0, _len = props.length; _i < _len; _i++) {
-          node = props[_i];
-          if (node instanceof Value) {
-            node.error('cannot have an implicit value in an implicit object');
-          }
-        }
-      }
-      idt = o.indent += TAB;
-      lastNoncom = this.lastNonComment(this.properties);
-      answer = [];
-      for (i = _j = 0, _len1 = props.length; _j < _len1; i = ++_j) {
-        prop = props[i];
-        join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n';
-        indent = prop instanceof Comment ? '' : idt;
-        if (prop instanceof Assign && prop.variable instanceof Value && prop.variable.hasProperties()) {
-          prop.variable.error('Invalid object key');
-        }
-        if (prop instanceof Value && prop["this"]) {
-          prop = new Assign(prop.properties[0].name, prop, 'object');
-        }
-        if (!(prop instanceof Comment)) {
-          if (!(prop instanceof Assign)) {
-            prop = new Assign(prop, prop, 'object');
-          }
-          (prop.variable.base || prop.variable).asKey = true;
-        }
-        if (indent) {
-          answer.push(this.makeCode(indent));
-        }
-        answer.push.apply(answer, prop.compileToFragments(o, LEVEL_TOP));
-        if (join) {
-          answer.push(this.makeCode(join));
-        }
-      }
-      answer.unshift(this.makeCode("{" + (props.length && '\n')));
-      answer.push(this.makeCode("" + (props.length && '\n' + this.tab) + "}"));
-      if (this.front) {
-        return this.wrapInBraces(answer);
-      } else {
-        return answer;
-      }
-    };
-
-    Obj.prototype.assigns = function(name) {
-      var prop, _i, _len, _ref4;
-      _ref4 = this.properties;
-      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-        prop = _ref4[_i];
-        if (prop.assigns(name)) {
-          return true;
-        }
-      }
-      return false;
-    };
-
-    return Obj;
-
-  })(Base);
-
-  exports.Arr = Arr = (function(_super) {
-    __extends(Arr, _super);
-
-    function Arr(objs) {
-      this.objects = objs || [];
-    }
-
-    Arr.prototype.children = ['objects'];
-
-    Arr.prototype.compileNode = function(o) {
-      var answer, compiledObjs, fragments, index, obj, _i, _len;
-      if (!this.objects.length) {
-        return [this.makeCode('[]')];
-      }
-      o.indent += TAB;
-      answer = Splat.compileSplattedArray(o, this.objects);
-      if (answer.length) {
-        return answer;
-      }
-      answer = [];
-      compiledObjs = (function() {
-        var _i, _len, _ref4, _results;
-        _ref4 = this.objects;
-        _results = [];
-        for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-          obj = _ref4[_i];
-          _results.push(obj.compileToFragments(o, LEVEL_LIST));
-        }
-        return _results;
-      }).call(this);
-      for (index = _i = 0, _len = compiledObjs.length; _i < _len; index = ++_i) {
-        fragments = compiledObjs[index];
-        if (index) {
-          answer.push(this.makeCode(", "));
-        }
-        answer.push.apply(answer, fragments);
-      }
-      if (fragmentsToText(answer).indexOf('\n') >= 0) {
-        answer.unshift(this.makeCode("[\n" + o.indent));
-        answer.push(this.makeCode("\n" + this.tab + "]"));
-      } else {
-        answer.unshift(this.makeCode("["));
-        answer.push(this.makeCode("]"));
-      }
-      return answer;
-    };
-
-    Arr.prototype.assigns = function(name) {
-      var obj, _i, _len, _ref4;
-      _ref4 = this.objects;
-      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-        obj = _ref4[_i];
-        if (obj.assigns(name)) {
-          return true;
-        }
-      }
-      return false;
-    };
-
-    return Arr;
-
-  })(Base);
-
-  exports.Class = Class = (function(_super) {
-    __extends(Class, _super);
-
-    function Class(variable, parent, body) {
-      this.variable = variable;
-      this.parent = parent;
-      this.body = body != null ? body : new Block;
-      this.boundFuncs = [];
-      this.body.classBody = true;
-    }
-
-    Class.prototype.children = ['variable', 'parent', 'body'];
-
-    Class.prototype.determineName = function() {
-      var decl, tail;
-      if (!this.variable) {
-        return null;
-      }
-      decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value;
-      if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) {
-        this.variable.error("class variable name may not be " + decl);
-      }
-      return decl && (decl = IDENTIFIER.test(decl) && decl);
-    };
-
-    Class.prototype.setContext = function(name) {
-      return this.body.traverseChildren(false, function(node) {
-        if (node.classBody) {
-          return false;
-        }
-        if (node instanceof Literal && node.value === 'this') {
-          return node.value = name;
-        } else if (node instanceof Code) {
-          node.klass = name;
-          if (node.bound) {
-            return node.context = name;
-          }
-        }
-      });
-    };
-
-    Class.prototype.addBoundFunctions = function(o) {
-      var bvar, lhs, _i, _len, _ref4;
-      _ref4 = this.boundFuncs;
-      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-        bvar = _ref4[_i];
-        lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o);
-        this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)"));
-      }
-    };
-
-    Class.prototype.addProperties = function(node, name, o) {
-      var assign, base, exprs, func, props;
-      props = node.base.properties.slice(0);
-      exprs = (function() {
-        var _results;
-        _results = [];
-        while (assign = props.shift()) {
-          if (assign instanceof Assign) {
-            base = assign.variable.base;
-            delete assign.context;
-            func = assign.value;
-            if (base.value === 'constructor') {
-              if (this.ctor) {
-                assign.error('cannot define more than one constructor in a class');
-              }
-              if (func.bound) {
-                assign.error('cannot define a constructor as a bound function');
-              }
-              if (func instanceof Code) {
-                assign = this.ctor = func;
-              } else {
-                this.externalCtor = o.scope.freeVariable('class');
-                assign = new Assign(new Literal(this.externalCtor), func);
-              }
-            } else {
-              if (assign.variable["this"]) {
-                func["static"] = true;
-                if (func.bound) {
-                  func.context = name;
-                }
-              } else {
-                assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]);
-                if (func instanceof Code && func.bound) {
-                  this.boundFuncs.push(base);
-                  func.bound = false;
-                }
-              }
-            }
-          }
-          _results.push(assign);
-        }
-        return _results;
-      }).call(this);
-      return compact(exprs);
-    };
-
-    Class.prototype.walkBody = function(name, o) {
-      var _this = this;
-      return this.traverseChildren(false, function(child) {
-        var cont, exps, i, node, _i, _len, _ref4;
-        cont = true;
-        if (child instanceof Class) {
-          return false;
-        }
-        if (child instanceof Block) {
-          _ref4 = exps = child.expressions;
-          for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) {
-            node = _ref4[i];
-            if (node instanceof Value && node.isObject(true)) {
-              cont = false;
-              exps[i] = _this.addProperties(node, name, o);
-            }
-          }
-          child.expressions = exps = flatten(exps);
-        }
-        return cont && !(child instanceof Class);
-      });
-    };
-
-    Class.prototype.hoistDirectivePrologue = function() {
-      var expressions, index, node;
-      index = 0;
-      expressions = this.body.expressions;
-      while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) {
-        ++index;
-      }
-      return this.directives = expressions.splice(0, index);
-    };
-
-    Class.prototype.ensureConstructor = function(name, o) {
-      var missing, ref, superCall;
-      missing = !this.ctor;
-      this.ctor || (this.ctor = new Code);
-      this.ctor.ctor = this.ctor.name = name;
-      this.ctor.klass = null;
-      this.ctor.noReturn = true;
-      if (missing) {
-        if (this.parent) {
-          superCall = new Literal("" + name + ".__super__.constructor.apply(this, arguments)");
-        }
-        if (this.externalCtor) {
-          superCall = new Literal("" + this.externalCtor + ".apply(this, arguments)");
-        }
-        if (superCall) {
-          ref = new Literal(o.scope.freeVariable('ref'));
-          this.ctor.body.unshift(new Assign(ref, superCall));
-        }
-        this.addBoundFunctions(o);
-        if (superCall) {
-          this.ctor.body.push(ref);
-          this.ctor.body.makeReturn();
-        }
-        return this.body.expressions.unshift(this.ctor);
-      } else {
-        return this.addBoundFunctions(o);
-      }
-    };
-
-    Class.prototype.compileNode = function(o) {
-      var call, decl, klass, lname, name, params, _ref4;
-      decl = this.determineName();
-      name = decl || '_Class';
-      if (name.reserved) {
-        name = "_" + name;
-      }
-      lname = new Literal(name);
-      this.hoistDirectivePrologue();
-      this.setContext(name);
-      this.walkBody(name, o);
-      this.ensureConstructor(name, o);
-      this.body.spaced = true;
-      if (!(this.ctor instanceof Code)) {
-        this.body.expressions.unshift(this.ctor);
-      }
-      this.body.expressions.push(lname);
-      (_ref4 = this.body.expressions).unshift.apply(_ref4, this.directives);
-      call = Closure.wrap(this.body);
-      if (this.parent) {
-        this.superClass = new Literal(o.scope.freeVariable('super', false));
-        this.body.expressions.unshift(new Extends(lname, this.superClass));
-        call.args.push(this.parent);
-        params = call.variable.params || call.variable.base.params;
-        params.push(new Param(this.superClass));
-      }
-      klass = new Parens(call, true);
-      if (this.variable) {
-        klass = new Assign(this.variable, klass);
-      }
-      return klass.compileToFragments(o);
-    };
-
-    return Class;
-
-  })(Base);
-
-  exports.Assign = Assign = (function(_super) {
-    __extends(Assign, _super);
-
-    function Assign(variable, value, context, options) {
-      var forbidden, name, _ref4;
-      this.variable = variable;
-      this.value = value;
-      this.context = context;
-      this.param = options && options.param;
-      this.subpattern = options && options.subpattern;
-      forbidden = (_ref4 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref4) >= 0);
-      if (forbidden && this.context !== 'object') {
-        this.variable.error("variable name may not be \"" + name + "\"");
-      }
-    }
-
-    Assign.prototype.children = ['variable', 'value'];
-
-    Assign.prototype.isStatement = function(o) {
-      return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0;
-    };
-
-    Assign.prototype.assigns = function(name) {
-      return this[this.context === 'object' ? 'value' : 'variable'].assigns(name);
-    };
-
-    Assign.prototype.unfoldSoak = function(o) {
-      return unfoldSoak(o, this, 'variable');
-    };
-
-    Assign.prototype.compileNode = function(o) {
-      var answer, compiledName, isValue, match, name, val, varBase, _ref4, _ref5, _ref6, _ref7;
-      if (isValue = this.variable instanceof Value) {
-        if (this.variable.isArray() || this.variable.isObject()) {
-          return this.compilePatternMatch(o);
-        }
-        if (this.variable.isSplice()) {
-          return this.compileSplice(o);
-        }
-        if ((_ref4 = this.context) === '||=' || _ref4 === '&&=' || _ref4 === '?=') {
-          return this.compileConditional(o);
-        }
-      }
-      compiledName = this.variable.compileToFragments(o, LEVEL_LIST);
-      name = fragmentsToText(compiledName);
-      if (!this.context) {
-        varBase = this.variable.unwrapAll();
-        if (!varBase.isAssignable()) {
-          this.variable.error("\"" + (this.variable.compile(o)) + "\" cannot be assigned");
-        }
-        if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) {
-          if (this.param) {
-            o.scope.add(name, 'var');
-          } else {
-            o.scope.find(name);
-          }
-        }
-      }
-      if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) {
-        if (match[1]) {
-          this.value.klass = match[1];
-        }
-        this.value.name = (_ref5 = (_ref6 = (_ref7 = match[2]) != null ? _ref7 : match[3]) != null ? _ref6 : match[4]) != null ? _ref5 : match[5];
-      }
-      val = this.value.compileToFragments(o, LEVEL_LIST);
-      if (this.context === 'object') {
-        return compiledName.concat(this.makeCode(": "), val);
-      }
-      answer = compiledName.concat(this.makeCode(" " + (this.context || '=') + " "), val);
-      if (o.level <= LEVEL_LIST) {
-        return answer;
-      } else {
-        return this.wrapInBraces(answer);
-      }
-    };
-
-    Assign.prototype.compilePatternMatch = function(o) {
-      var acc, assigns, code, fragments, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, splat, top, val, value, vvar, vvarText, _i, _len, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
-      top = o.level === LEVEL_TOP;
-      value = this.value;
-      objects = this.variable.base.objects;
-      if (!(olen = objects.length)) {
-        code = value.compileToFragments(o);
-        if (o.level >= LEVEL_OP) {
-          return this.wrapInBraces(code);
-        } else {
-          return code;
-        }
-      }
-      isObject = this.variable.isObject();
-      if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) {
-        if (obj instanceof Assign) {
-          _ref4 = obj, (_ref5 = _ref4.variable, idx = _ref5.base), obj = _ref4.value;
-        } else {
-          idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0);
-        }
-        acc = IDENTIFIER.test(idx.unwrap().value || 0);
-        value = new Value(value);
-        value.properties.push(new (acc ? Access : Index)(idx));
-        if (_ref6 = obj.unwrap().value, __indexOf.call(RESERVED, _ref6) >= 0) {
-          obj.error("assignment to a reserved word: " + (obj.compile(o)));
-        }
-        return new Assign(obj, value, null, {
-          param: this.param
-        }).compileToFragments(o, LEVEL_TOP);
-      }
-      vvar = value.compileToFragments(o, LEVEL_LIST);
-      vvarText = fragmentsToText(vvar);
-      assigns = [];
-      splat = false;
-      if (!IDENTIFIER.test(vvarText) || this.variable.assigns(vvarText)) {
-        assigns.push([this.makeCode("" + (ref = o.scope.freeVariable('ref')) + " = ")].concat(__slice.call(vvar)));
-        vvar = [this.makeCode(ref)];
-        vvarText = ref;
-      }
-      for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) {
-        obj = objects[i];
-        idx = i;
-        if (isObject) {
-          if (obj instanceof Assign) {
-            _ref7 = obj, (_ref8 = _ref7.variable, idx = _ref8.base), obj = _ref7.value;
-          } else {
-            if (obj.base instanceof Parens) {
-              _ref9 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref9[0], idx = _ref9[1];
-            } else {
-              idx = obj["this"] ? obj.properties[0].name : obj;
-            }
-          }
-        }
-        if (!splat && obj instanceof Splat) {
-          name = obj.name.unwrap().value;
-          obj = obj.unwrap();
-          val = "" + olen + " <= " + vvarText + ".length ? " + (utility('slice')) + ".call(" + vvarText + ", " + i;
-          if (rest = olen - i - 1) {
-            ivar = o.scope.freeVariable('i');
-            val += ", " + ivar + " = " + vvarText + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])";
-          } else {
-            val += ") : []";
-          }
-          val = new Literal(val);
-          splat = "" + ivar + "++";
-        } else {
-          name = obj.unwrap().value;
-          if (obj instanceof Splat) {
-            obj.error("multiple splats are disallowed in an assignment");
-          }
-          if (typeof idx === 'number') {
-            idx = new Literal(splat || idx);
-            acc = false;
-          } else {
-            acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0);
-          }
-          val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]);
-        }
-        if ((name != null) && __indexOf.call(RESERVED, name) >= 0) {
-          obj.error("assignment to a reserved word: " + (obj.compile(o)));
-        }
-        assigns.push(new Assign(obj, val, null, {
-          param: this.param,
-          subpattern: true
-        }).compileToFragments(o, LEVEL_LIST));
-      }
-      if (!(top || this.subpattern)) {
-        assigns.push(vvar);
-      }
-      fragments = this.joinFragmentArrays(assigns, ', ');
-      if (o.level < LEVEL_LIST) {
-        return fragments;
-      } else {
-        return this.wrapInBraces(fragments);
-      }
-    };
-
-    Assign.prototype.compileConditional = function(o) {
-      var left, right, _ref4;
-      _ref4 = this.variable.cacheReference(o), left = _ref4[0], right = _ref4[1];
-      if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) {
-        this.variable.error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been declared before");
-      }
-      if (__indexOf.call(this.context, "?") >= 0) {
-        o.isExistentialEquals = true;
-      }
-      return new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compileToFragments(o);
-    };
-
-    Assign.prototype.compileSplice = function(o) {
-      var answer, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref4, _ref5, _ref6;
-      _ref4 = this.variable.properties.pop().range, from = _ref4.from, to = _ref4.to, exclusive = _ref4.exclusive;
-      name = this.variable.compile(o);
-      if (from) {
-        _ref5 = this.cacheToCodeFragments(from.cache(o, LEVEL_OP)), fromDecl = _ref5[0], fromRef = _ref5[1];
-      } else {
-        fromDecl = fromRef = '0';
-      }
-      if (to) {
-        if ((from != null ? from.isSimpleNumber() : void 0) && to.isSimpleNumber()) {
-          to = +to.compile(o) - +fromRef;
-          if (!exclusive) {
-            to += 1;
-          }
-        } else {
-          to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef;
-          if (!exclusive) {
-            to += ' + 1';
-          }
-        }
-      } else {
-        to = "9e9";
-      }
-      _ref6 = this.value.cache(o, LEVEL_LIST), valDef = _ref6[0], valRef = _ref6[1];
-      answer = [].concat(this.makeCode("[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat("), valDef, this.makeCode(")), "), valRef);
-      if (o.level > LEVEL_TOP) {
-        return this.wrapInBraces(answer);
-      } else {
-        return answer;
-      }
-    };
-
-    return Assign;
-
-  })(Base);
-
-  exports.Code = Code = (function(_super) {
-    __extends(Code, _super);
-
-    function Code(params, body, tag) {
-      this.params = params || [];
-      this.body = body || new Block;
-      this.bound = tag === 'boundfunc';
-      if (this.bound) {
-        this.context = '_this';
-      }
-    }
-
-    Code.prototype.children = ['params', 'body'];
-
-    Code.prototype.isStatement = function() {
-      return !!this.ctor;
-    };
-
-    Code.prototype.jumps = NO;
-
-    Code.prototype.compileNode = function(o) {
-      var answer, code, exprs, i, idt, lit, p, param, params, ref, splats, uniqs, val, wasEmpty, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref4, _ref5, _ref6, _ref7, _ref8;
-      o.scope = new Scope(o.scope, this.body, this);
-      o.scope.shared = del(o, 'sharedScope');
-      o.indent += TAB;
-      delete o.bare;
-      delete o.isExistentialEquals;
-      params = [];
-      exprs = [];
-      this.eachParamName(function(name) {
-        if (!o.scope.check(name)) {
-          return o.scope.parameter(name);
-        }
-      });
-      _ref4 = this.params;
-      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-        param = _ref4[_i];
-        if (!param.splat) {
-          continue;
-        }
-        _ref5 = this.params;
-        for (_j = 0, _len1 = _ref5.length; _j < _len1; _j++) {
-          p = _ref5[_j].name;
-          if (p["this"]) {
-            p = p.properties[0].name;
-          }
-          if (p.value) {
-            o.scope.add(p.value, 'var', true);
-          }
-        }
-        splats = new Assign(new Value(new Arr((function() {
-          var _k, _len2, _ref6, _results;
-          _ref6 = this.params;
-          _results = [];
-          for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) {
-            p = _ref6[_k];
-            _results.push(p.asReference(o));
-          }
-          return _results;
-        }).call(this))), new Value(new Literal('arguments')));
-        break;
-      }
-      _ref6 = this.params;
-      for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) {
-        param = _ref6[_k];
-        if (param.isComplex()) {
-          val = ref = param.asReference(o);
-          if (param.value) {
-            val = new Op('?', ref, param.value);
-          }
-          exprs.push(new Assign(new Value(param.name), val, '=', {
-            param: true
-          }));
-        } else {
-          ref = param;
-          if (param.value) {
-            lit = new Literal(ref.name.value + ' == null');
-            val = new Assign(new Value(param.name), param.value, '=');
-            exprs.push(new If(lit, val));
-          }
-        }
-        if (!splats) {
-          params.push(ref);
-        }
-      }
-      wasEmpty = this.body.isEmpty();
-      if (splats) {
-        exprs.unshift(splats);
-      }
-      if (exprs.length) {
-        (_ref7 = this.body.expressions).unshift.apply(_ref7, exprs);
-      }
-      for (i = _l = 0, _len3 = params.length; _l < _len3; i = ++_l) {
-        p = params[i];
-        params[i] = p.compileToFragments(o);
-        o.scope.parameter(fragmentsToText(params[i]));
-      }
-      uniqs = [];
-      this.eachParamName(function(name, node) {
-        if (__indexOf.call(uniqs, name) >= 0) {
-          node.error("multiple parameters named '" + name + "'");
-        }
-        return uniqs.push(name);
-      });
-      if (!(wasEmpty || this.noReturn)) {
-        this.body.makeReturn();
-      }
-      if (this.bound) {
-        if ((_ref8 = o.scope.parent.method) != null ? _ref8.bound : void 0) {
-          this.bound = this.context = o.scope.parent.method.context;
-        } else if (!this["static"]) {
-          o.scope.parent.assign('_this', 'this');
-        }
-      }
-      idt = o.indent;
-      code = 'function';
-      if (this.ctor) {
-        code += ' ' + this.name;
-      }
-      code += '(';
-      answer = [this.makeCode(code)];
-      for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) {
-        p = params[i];
-        if (i) {
-          answer.push(this.makeCode(", "));
-        }
-        answer.push.apply(answer, p);
-      }
-      answer.push(this.makeCode(') {'));
-      if (!this.body.isEmpty()) {
-        answer = answer.concat(this.makeCode("\n"), this.body.compileWithDeclarations(o), this.makeCode("\n" + this.tab));
-      }
-      answer.push(this.makeCode('}'));
-      if (this.ctor) {
-        return [this.makeCode(this.tab)].concat(__slice.call(answer));
-      }
-      if (this.front || (o.level >= LEVEL_ACCESS)) {
-        return this.wrapInBraces(answer);
-      } else {
-        return answer;
-      }
-    };
-
-    Code.prototype.eachParamName = function(iterator) {
-      var param, _i, _len, _ref4, _results;
-      _ref4 = this.params;
-      _results = [];
-      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-        param = _ref4[_i];
-        _results.push(param.eachName(iterator));
-      }
-      return _results;
-    };
-
-    Code.prototype.traverseChildren = function(crossScope, func) {
-      if (crossScope) {
-        return Code.__super__.traverseChildren.call(this, crossScope, func);
-      }
-    };
-
-    return Code;
-
-  })(Base);
-
-  exports.Param = Param = (function(_super) {
-    __extends(Param, _super);
-
-    function Param(name, value, splat) {
-      var _ref4;
-      this.name = name;
-      this.value = value;
-      this.splat = splat;
-      if (_ref4 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref4) >= 0) {
-        this.name.error("parameter name \"" + name + "\" is not allowed");
-      }
-    }
-
-    Param.prototype.children = ['name', 'value'];
-
-    Param.prototype.compileToFragments = function(o) {
-      return this.name.compileToFragments(o, LEVEL_LIST);
-    };
-
-    Param.prototype.asReference = function(o) {
-      var node;
-      if (this.reference) {
-        return this.reference;
-      }
-      node = this.name;
-      if (node["this"]) {
-        node = node.properties[0].name;
-        if (node.value.reserved) {
-          node = new Literal(o.scope.freeVariable(node.value));
-        }
-      } else if (node.isComplex()) {
-        node = new Literal(o.scope.freeVariable('arg'));
-      }
-      node = new Value(node);
-      if (this.splat) {
-        node = new Splat(node);
-      }
-      return this.reference = node;
-    };
-
-    Param.prototype.isComplex = function() {
-      return this.name.isComplex();
-    };
-
-    Param.prototype.eachName = function(iterator, name) {
-      var atParam, node, obj, _i, _len, _ref4;
-      if (name == null) {
-        name = this.name;
-      }
-      atParam = function(obj) {
-        var node;
-        node = obj.properties[0].name;
-        if (!node.value.reserved) {
-          return iterator(node.value, node);
-        }
-      };
-      if (name instanceof Literal) {
-        return iterator(name.value, name);
-      }
-      if (name instanceof Value) {
-        return atParam(name);
-      }
-      _ref4 = name.objects;
-      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-        obj = _ref4[_i];
-        if (obj instanceof Assign) {
-          this.eachName(iterator, obj.value.unwrap());
-        } else if (obj instanceof Splat) {
-          node = obj.name.unwrap();
-          iterator(node.value, node);
-        } else if (obj instanceof Value) {
-          if (obj.isArray() || obj.isObject()) {
-            this.eachName(iterator, obj.base);
-          } else if (obj["this"]) {
-            atParam(obj);
-          } else {
-            iterator(obj.base.value, obj.base);
-          }
-        } else {
-          obj.error("illegal parameter " + (obj.compile()));
-        }
-      }
-    };
-
-    return Param;
-
-  })(Base);
-
-  exports.Splat = Splat = (function(_super) {
-    __extends(Splat, _super);
-
-    Splat.prototype.children = ['name'];
-
-    Splat.prototype.isAssignable = YES;
-
-    function Splat(name) {
-      this.name = name.compile ? name : new Literal(name);
-    }
-
-    Splat.prototype.assigns = function(name) {
-      return this.name.assigns(name);
-    };
-
-    Splat.prototype.compileToFragments = function(o) {
-      return this.name.compileToFragments(o);
-    };
-
-    Splat.prototype.unwrap = function() {
-      return this.name;
-    };
-
-    Splat.compileSplattedArray = function(o, list, apply) {
-      var args, base, compiledNode, concatPart, fragments, i, index, node, _i, _len;
-      index = -1;
-      while ((node = list[++index]) && !(node instanceof Splat)) {
-        continue;
-      }
-      if (index >= list.length) {
-        return [];
-      }
-      if (list.length === 1) {
-        node = list[0];
-        fragments = node.compileToFragments(o, LEVEL_LIST);
-        if (apply) {
-          return fragments;
-        }
-        return [].concat(node.makeCode("" + (utility('slice')) + ".call("), fragments, node.makeCode(")"));
-      }
-      args = list.slice(index);
-      for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) {
-        node = args[i];
-        compiledNode = node.compileToFragments(o, LEVEL_LIST);
-        args[i] = node instanceof Splat ? [].concat(node.makeCode("" + (utility('slice')) + ".call("), compiledNode, node.makeCode(")")) : [].concat(node.makeCode("["), compiledNode, node.makeCode("]"));
-      }
-      if (index === 0) {
-        node = list[0];
-        concatPart = node.joinFragmentArrays(args.slice(1), ', ');
-        return args[0].concat(node.makeCode(".concat("), concatPart, node.makeCode(")"));
-      }
-      base = (function() {
-        var _j, _len1, _ref4, _results;
-        _ref4 = list.slice(0, index);
-        _results = [];
-        for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) {
-          node = _ref4[_j];
-          _results.push(node.compileToFragments(o, LEVEL_LIST));
-        }
-        return _results;
-      })();
-      base = list[0].joinFragmentArrays(base, ', ');
-      concatPart = list[index].joinFragmentArrays(args, ', ');
-      return [].concat(list[0].makeCode("["), base, list[index].makeCode("].concat("), concatPart, (last(list)).makeCode(")"));
-    };
-
-    return Splat;
-
-  })(Base);
-
-  exports.While = While = (function(_super) {
-    __extends(While, _super);
-
-    function While(condition, options) {
-      this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition;
-      this.guard = options != null ? options.guard : void 0;
-    }
-
-    While.prototype.children = ['condition', 'guard', 'body'];
-
-    While.prototype.isStatement = YES;
-
-    While.prototype.makeReturn = function(res) {
-      if (res) {
-        return While.__super__.makeReturn.apply(this, arguments);
-      } else {
-        this.returns = !this.jumps({
-          loop: true
-        });
-        return this;
-      }
-    };
-
-    While.prototype.addBody = function(body) {
-      this.body = body;
-      return this;
-    };
-
-    While.prototype.jumps = function() {
-      var expressions, node, _i, _len;
-      expressions = this.body.expressions;
-      if (!expressions.length) {
-        return false;
-      }
-      for (_i = 0, _len = expressions.length; _i < _len; _i++) {
-        node = expressions[_i];
-        if (node.jumps({
-          loop: true
-        })) {
-          return node;
-        }
-      }
-      return false;
-    };
-
-    While.prototype.compileNode = function(o) {
-      var answer, body, rvar, set;
-      o.indent += TAB;
-      set = '';
-      body = this.body;
-      if (body.isEmpty()) {
-        body = this.makeCode('');
-      } else {
-        if (this.returns) {
-          body.makeReturn(rvar = o.scope.freeVariable('results'));
-          set = "" + this.tab + rvar + " = [];\n";
-        }
-        if (this.guard) {
-          if (body.expressions.length > 1) {
-            body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
-          } else {
-            if (this.guard) {
-              body = Block.wrap([new If(this.guard, body)]);
-            }
-          }
-        }
-        body = [].concat(this.makeCode("\n"), body.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab));
-      }
-      answer = [].concat(this.makeCode(set + this.tab + "while ("), this.condition.compileToFragments(o, LEVEL_PAREN), this.makeCode(") {"), body, this.makeCode("}"));
-      if (this.returns) {
-        answer.push(this.makeCode("\n" + this.tab + "return " + rvar + ";"));
-      }
-      return answer;
-    };
-
-    return While;
-
-  })(Base);
-
-  exports.Op = Op = (function(_super) {
-    var CONVERSIONS, INVERSIONS;
-
-    __extends(Op, _super);
-
-    function Op(op, first, second, flip) {
-      if (op === 'in') {
-        return new In(first, second);
-      }
-      if (op === 'do') {
-        return this.generateDo(first);
-      }
-      if (op === 'new') {
-        if (first instanceof Call && !first["do"] && !first.isNew) {
-          return first.newInstance();
-        }
-        if (first instanceof Code && first.bound || first["do"]) {
-          first = new Parens(first);
-        }
-      }
-      this.operator = CONVERSIONS[op] || op;
-      this.first = first;
-      this.second = second;
-      this.flip = !!flip;
-      return this;
-    }
-
-    CONVERSIONS = {
-      '==': '===',
-      '!=': '!==',
-      'of': 'in'
-    };
-
-    INVERSIONS = {
-      '!==': '===',
-      '===': '!=='
-    };
-
-    Op.prototype.children = ['first', 'second'];
-
-    Op.prototype.isSimpleNumber = NO;
-
-    Op.prototype.isUnary = function() {
-      return !this.second;
-    };
-
-    Op.prototype.isComplex = function() {
-      var _ref4;
-      return !(this.isUnary() && ((_ref4 = this.operator) === '+' || _ref4 === '-')) || this.first.isComplex();
-    };
-
-    Op.prototype.isChainable = function() {
-      var _ref4;
-      return (_ref4 = this.operator) === '<' || _ref4 === '>' || _ref4 === '>=' || _ref4 === '<=' || _ref4 === '===' || _ref4 === '!==';
-    };
-
-    Op.prototype.invert = function() {
-      var allInvertable, curr, fst, op, _ref4;
-      if (this.isChainable() && this.first.isChainable()) {
-        allInvertable = true;
-        curr = this;
-        while (curr && curr.operator) {
-          allInvertable && (allInvertable = curr.operator in INVERSIONS);
-          curr = curr.first;
-        }
-        if (!allInvertable) {
-          return new Parens(this).invert();
-        }
-        curr = this;
-        while (curr && curr.operator) {
-          curr.invert = !curr.invert;
-          curr.operator = INVERSIONS[curr.operator];
-          curr = curr.first;
-        }
-        return this;
-      } else if (op = INVERSIONS[this.operator]) {
-        this.operator = op;
-        if (this.first.unwrap() instanceof Op) {
-          this.first.invert();
-        }
-        return this;
-      } else if (this.second) {
-        return new Parens(this).invert();
-      } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref4 = fst.operator) === '!' || _ref4 === 'in' || _ref4 === 'instanceof')) {
-        return fst;
-      } else {
-        return new Op('!', this);
-      }
-    };
-
-    Op.prototype.unfoldSoak = function(o) {
-      var _ref4;
-      return ((_ref4 = this.operator) === '++' || _ref4 === '--' || _ref4 === 'delete') && unfoldSoak(o, this, 'first');
-    };
-
-    Op.prototype.generateDo = function(exp) {
-      var call, func, param, passedParams, ref, _i, _len, _ref4;
-      passedParams = [];
-      func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp;
-      _ref4 = func.params || [];
-      for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-        param = _ref4[_i];
-        if (param.value) {
-          passedParams.push(param.value);
-          delete param.value;
-        } else {
-          passedParams.push(param);
-        }
-      }
-      call = new Call(exp, passedParams);
-      call["do"] = true;
-      return call;
-    };
-
-    Op.prototype.compileNode = function(o) {
-      var answer, isChain, _ref4, _ref5;
-      isChain = this.isChainable() && this.first.isChainable();
-      if (!isChain) {
-        this.first.front = this.front;
-      }
-      if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) {
-        this.error('delete operand may not be argument or var');
-      }
-      if (((_ref4 = this.operator) === '--' || _ref4 === '++') && (_ref5 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref5) >= 0)) {
-        this.error("cannot increment/decrement \"" + (this.first.unwrapAll().value) + "\"");
-      }
-      if (this.isUnary()) {
-        return this.compileUnary(o);
-      }
-      if (isChain) {
-        return this.compileChain(o);
-      }
-      if (this.operator === '?') {
-        return this.compileExistence(o);
-      }
-      answer = [].concat(this.first.compileToFragments(o, LEVEL_OP), this.makeCode(' ' + this.operator + ' '), this.second.compileToFragments(o, LEVEL_OP));
-      if (o.level <= LEVEL_OP) {
-        return answer;
-      } else {
-        return this.wrapInBraces(answer);
-      }
-    };
-
-    Op.prototype.compileChain = function(o) {
-      var fragments, fst, shared, _ref4;
-      _ref4 = this.first.second.cache(o), this.first.second = _ref4[0], shared = _ref4[1];
-      fst = this.first.compileToFragments(o, LEVEL_OP);
-      fragments = fst.concat(this.makeCode(" " + (this.invert ? '&&' : '||') + " "), shared.compileToFragments(o), this.makeCode(" " + this.operator + " "), this.second.compileToFragments(o, LEVEL_OP));
-      return this.wrapInBraces(fragments);
-    };
-
-    Op.prototype.compileExistence = function(o) {
-      var fst, ref;
-      if (!o.isExistentialEquals && this.first.isComplex()) {
-        ref = new Literal(o.scope.freeVariable('ref'));
-        fst = new Parens(new Assign(ref, this.first));
-      } else {
-        fst = this.first;
-        ref = fst;
-      }
-      return new If(new Existence(fst), ref, {
-        type: 'if'
-      }).addElse(this.second).compileToFragments(o);
-    };
-
-    Op.prototype.compileUnary = function(o) {
-      var op, parts, plusMinus;
-      parts = [];
-      op = this.operator;
-      parts.push([this.makeCode(op)]);
-      if (op === '!' && this.first instanceof Existence) {
-        this.first.negated = !this.first.negated;
-        return this.first.compileToFragments(o);
-      }
-      if (o.level >= LEVEL_ACCESS) {
-        return (new Parens(this)).compileToFragments(o);
-      }
-      plusMinus = op === '+' || op === '-';
-      if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) {
-        parts.push([this.makeCode(' ')]);
-      }
-      if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) {
-        this.first = new Parens(this.first);
-      }
-      parts.push(this.first.compileToFragments(o, LEVEL_OP));
-      if (this.flip) {
-        parts.reverse();
-      }
-      return this.joinFragmentArrays(parts, '');
-    };
-
-    Op.prototype.toString = function(idt) {
-      return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator);
-    };
-
-    return Op;
-
-  })(Base);
-
-  exports.In = In = (function(_super) {
-    __extends(In, _super);
-
-    function In(object, array) {
-      this.object = object;
-      this.array = array;
-    }
-
-    In.prototype.children = ['object', 'array'];
-
-    In.prototype.invert = NEGATE;
-
-    In.prototype.compileNode = function(o) {
-      var hasSplat, obj, _i, _len, _ref4;
-      if (this.array instanceof Value && this.array.isArray()) {
-        _ref4 = this.array.base.objects;
-        for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
-          obj = _ref4[_i];
-          if (!(obj instanceof Splat)) {
-            continue;
-          }
-          hasSplat = true;
-          break;
-        }
-        if (!hasSplat) {
-          return this.compileOrTest(o);
-        }
-      }
-      return this.compileLoopTest(o);
-    };
-
-    In.prototype.compileOrTest = function(o) {
-      var cmp, cnj, i, item, ref, sub, tests, _i, _len, _ref4, _ref5, _ref6;
-      if (this.array.base.objects.length === 0) {
-        return [this.makeCode("" + (!!this.negated))];
-      }
-      _ref4 = this.object.cache(o, LEVEL_OP), sub = _ref4[0], ref = _ref4[1];
-      _ref5 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref5[0], cnj = _ref5[1];
-      tests = [];
-      _ref6 = this.array.base.objects;
-      for (i = _i = 0, _len = _ref6.length; _i < _len; i = ++_i) {
-        item = _ref6[i];
-        if (i) {
-          tests.push(this.makeCode(cnj));
-        }
-        tests = tests.concat((i ? ref : sub), this.makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS));
-      }
-      if (o.level < LEVEL_OP) {
-        return tests;
-      } else {
-        return this.wrapInBraces(tests);
-      }
-    };
-
-    In.prototype.compileLoopTest = function(o) {
-      var fragments, ref, sub, _ref4;
-      _ref4 = this.object.cache(o, LEVEL_LIST), sub = _ref4[0], ref = _ref4[1];
-      fragments = [].concat(this.makeCode(utility('indexOf') + ".call("), this.array.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), ref, this.makeCode(") " + (this.negated ? '< 0' : '>= 0')));
-      if (fragmentsToText(sub) === fragmentsToText(ref)) {
-        return fragments;
-      }
-      fragments = sub.concat(this.makeCode(', '), fragments);
-      if (o.level < LEVEL_LIST) {
-        return fragments;
-      } else {
-        return this.wrapInBraces(fragments);
-      }
-    };
-
-    In.prototype.toString = function(idt) {
-      return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : ''));
-    };
-
-    return In;
-
-  })(Base);
-
-  exports.Try = Try = (function(_super) {
-    __extends(Try, _super);
-
-    function Try(attempt, errorVariable, recovery, ensure) {
-      this.attempt = attempt;
-      this.errorVariable = errorVariable;
-      this.recovery = recovery;
-      this.ensure = ensure;
-    }
-
-    Try.prototype.children = ['attempt', 'recovery', 'ensure'];
-
-    Try.prototype.isStatement = YES;
-
-    Try.prototype.jumps = function(o) {
-      var _ref4;
-      return this.attempt.jumps(o) || ((_ref4 = this.recovery) != null ? _ref4.jumps(o) : void 0);
-    };
-
-    Try.prototype.makeReturn = function(res) {
-      if (this.attempt) {
-        this.attempt = this.attempt.makeReturn(res);
-      }
-      if (this.recovery) {
-        this.recovery = this.recovery.makeReturn(res);
-      }
-      return this;
-    };
-
-    Try.prototype.compileNode = function(o) {
-      var catchPart, ensurePart, placeholder, tryPart;
-      o.indent += TAB;
-      tryPart = this.attempt.compileToFragments(o, LEVEL_TOP);
-      catchPart = this.recovery ? (placeholder = new Literal('_error'), this.errorVariable ? this.recovery.unshift(new Assign(this.errorVariable, placeholder)) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}"))) : !(this.ensure || this.recovery) ? [this.makeCode(' catch (_error) {}')] : [];
-      ensurePart = this.ensure ? [].concat(this.makeCode(" finally {\n"), this.ensure.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}")) : [];
-      return [].concat(this.makeCode("" + this.tab + "try {\n"), tryPart, this.makeCode("\n" + this.tab + "}"), catchPart, ensurePart);
-    };
-
-    return Try;
-
-  })(Base);
-
-  exports.Throw = Throw = (function(_super) {
-    __extends(Throw, _super);
-
-    function Throw(expression) {
-      this.expression = expression;
-    }
-
-    Throw.prototype.children = ['expression'];
-
-    Throw.prototype.isStatement = YES;
-
-    Throw.prototype.jumps = NO;
-
-    Throw.prototype.makeReturn = THIS;
-
-    Throw.prototype.compileNode = function(o) {
-      return [].concat(this.makeCode(this.tab + "throw "), this.expression.compileToFragments(o), this.makeCode(";"));
-    };
-
-    return Throw;
-
-  })(Base);
-
-  exports.Existence = Existence = (function(_super) {
-    __extends(Existence, _super);
-
-    function Existence(expression) {
-      this.expression = expression;
-    }
-
-    Existence.prototype.children = ['expression'];
-
-    Existence.prototype.invert = NEGATE;
-
-    Existence.prototype.compileNode = function(o) {
-      var cmp, cnj, code, _ref4;
-      this.expression.front = this.front;
-      code = this.expression.compile(o, LEVEL_OP);
-      if (IDENTIFIER.test(code) && !o.scope.check(code)) {
-        _ref4 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref4[0], cnj = _ref4[1];
-        code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null";
-      } else {
-        code = "" + code + " " + (this.negated ? '==' : '!=') + " null";
-      }
-      return [this.makeCode(o.level <= LEVEL_COND ? code : "(" + code + ")")];
-    };
-
-    return Existence;
-
-  })(Base);
-
-  exports.Parens = Parens = (function(_super) {
-    __extends(Parens, _super);
-
-    function Parens(body) {
-      this.body = body;
-    }
-
-    Parens.prototype.children = ['body'];
-
-    Parens.prototype.unwrap = function() {
-      return this.body;
-    };
-
-    Parens.prototype.isComplex = function() {
-      return this.body.isComplex();
-    };
-
-    Parens.prototype.compileNode = function(o) {
-      var bare, expr, fragments;
-      expr = this.body.unwrap();
-      if (expr instanceof Value && expr.isAtomic()) {
-        expr.front = this.front;
-        return expr.compileToFragments(o);
-      }
-      fragments = expr.compileToFragments(o, LEVEL_PAREN);
-      bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns));
-      if (bare) {
-        return fragments;
-      } else {
-        return this.wrapInBraces(fragments);
-      }
-    };
-
-    return Parens;
-
-  })(Base);
-
-  exports.For = For = (function(_super) {
-    __extends(For, _super);
-
-    function For(body, source) {
-      var _ref4;
-      this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index;
-      this.body = Block.wrap([body]);
-      this.own = !!source.own;
-      this.object = !!source.object;
-      if (this.object) {
-        _ref4 = [this.index, this.name], this.name = _ref4[0], this.index = _ref4[1];
-      }
-      if (this.index instanceof Value) {
-        this.index.error('index cannot be a pattern matching expression');
-      }
-      this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length;
-      this.pattern = this.name instanceof Value;
-      if (this.range && this.index) {
-        this.index.error('indexes do not apply to range loops');
-      }
-      if (this.range && this.pattern) {
-        this.name.error('cannot pattern match over range loops');
-      }
-      if (this.own && !this.object) {
-        this.index.error('cannot use own with for-in');
-      }
-      this.returns = false;
-    }
-
-    For.prototype.children = ['body', 'source', 'guard', 'step'];
-
-    For.prototype.compileNode = function(o) {
-      var body, bodyFragments, compare, compareDown, declare, declareDown, defPart, defPartFragments, down, forPartFragments, guardPart, idt1, increment, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, step, stepNum, stepVar, svar, varPart, _ref4, _ref5;
-      body = Block.wrap([this.body]);
-      lastJumps = (_ref4 = last(body.expressions)) != null ? _ref4.jumps() : void 0;
-      if (lastJumps && lastJumps instanceof Return) {
-        this.returns = false;
-      }
-      source = this.range ? this.source.base : this.source;
-      scope = o.scope;
-      name = this.name && (this.name.compile(o, LEVEL_LIST));
-      index = this.index && (this.index.compile(o, LEVEL_LIST));
-      if (name && !this.pattern) {
-        scope.find(name);
-      }
-      if (index) {
-        scope.find(index);
-      }
-      if (this.returns) {
-        rvar = scope.freeVariable('results');
-      }
-      ivar = (this.object && index) || scope.freeVariable('i');
-      kvar = (this.range && name) || index || ivar;
-      kvarAssign = kvar !== ivar ? "" + kvar + " = " : "";
-      if (this.step && !this.range) {
-        _ref5 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST)), step = _ref5[0], stepVar = _ref5[1];
-        stepNum = stepVar.match(SIMPLENUM);
-      }
-      if (this.pattern) {
-        name = ivar;
-      }
-      varPart = '';
-      guardPart = '';
-      defPart = '';
-      idt1 = this.tab + TAB;
-      if (this.range) {
-        forPartFragments = source.compileToFragments(merge(o, {
-          index: ivar,
-          name: name,
-          step: this.step
-        }));
-      } else {
-        svar = this.source.compile(o, LEVEL_LIST);
-        if ((name || this.own) && !IDENTIFIER.test(svar)) {
-          defPart += "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n";
-          svar = ref;
-        }
-        if (name && !this.pattern) {
-          namePart = "" + name + " = " + svar + "[" + kvar + "]";
-        }
-        if (!this.object) {
-          if (step !== stepVar) {
-            defPart += "" + this.tab + step + ";\n";
-          }
-          if (!(this.step && stepNum && (do

<TRUNCATED>

[24/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/package.json b/blackberry10/node_modules/net-ping/node_modules/raw-socket/package.json
deleted file mode 100644
index 2e9c16c..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "name": "raw-socket",
-  "version": "1.2.0",
-  "description": "Raw sockets for Node.js.",
-  "main": "index.js",
-  "directories": {
-    "example": "example"
-  },
-  "dependencies": {},
-  "contributors": [
-    {
-      "name": "Stephen Vickers",
-      "email": "stephen.vickers.sv@gmail.com"
-    }
-  ],
-  "repository": {
-    "type": "mercurial",
-    "url": "https://bitbucket.org/stephenwvickers/node-raw-socket"
-  },
-  "keywords": [
-    "checksum",
-    "checksums",
-    "htonl",
-    "htons",
-    "net",
-    "network",
-    "ntohl",
-    "ntohs",
-    "raw",
-    "raw-socket",
-    "raw-sockets",
-    "socket",
-    "sockets"
-  ],
-  "author": {
-    "name": "Stephen Vickers",
-    "email": "stephen.vickers.sv@gmail.com"
-  },
-  "license": "MIT",
-  "scripts": {
-    "install": "node-gyp rebuild"
-  },
-  "gypfile": true,
-  "readme": "\n# raw-socket - [homepage][homepage]\n\nThis module implements raw sockets for [Node.js][nodejs].\n\n*This module has been created primarily to facilitate implementation of the\n[net-ping][net-ping] module.*\n\nThis module is installed using [node package manager (npm)][npm]:\n\n    # This module contains C++ source code which will be compiled\n    # during installation using node-gyp.  A suitable build chain\n    # must be configured before installation.\n    \n    npm install raw-socket\n\nIt is loaded using the `require()` function:\n\n    var raw = require (\"raw-socket\");\n\nRaw sockets can then be created, and data sent using [Node.js][nodejs]\n`Buffer` objects:\n\n    var socket = raw.createSocket ({protocol: raw.Protocol.None});\n\n    socket.on (\"message\", function (buffer, source) {\n        console.log (\"received \" + buffer.length + \" bytes from \" + source);\n    });\n    \n    socket.send (buffer, 0, buffer.length, \"1.1.1.1\", function (error, bytes
 ) {\n        if (error)\n            console.log (error.toString ());\n    });\n\n[homepage]: http://re-tool.org \"Homepage\"\n[nodejs]: http://nodejs.org \"Node.js\"\n[net-ping]: https://npmjs.org/package/net-ping \"net-ping\"\n[npm]: https://npmjs.org/ \"npm\"\n\n# Network Protocol Support\n\nThe raw sockets exposed by this module support IPv4 and IPv6.\n\nRaw sockets are created using the operating systems `socket()` function, and\nthe socket type `SOCK_RAW` specified.\n\n# Raw Socket Behaviour\n\nRaw sockets behave in different ways depending on operating system and\nversion, and may support different socket options.\n\nSome operating system versions may restrict the use of raw sockets to\nprivileged users.  If this is the case an exception will be thrown on socket\ncreation using a message similar to `Operation not permitted` (this message\nis likely to be different depending on operating system version).\n\nThe appropriate operating system documentation should be consulted to\
 nunderstand how raw sockets will behave before attempting to use this module.\n\n# Keeping The [Node.js][nodejs] Event Loop Alive\n\nThis module uses the `libuv` library to integrate into the [Node.js][nodejs]\nevent loop - this library is also used by [Node.js][nodejs].  An underlying\n `libuv` library `poll_handle_t` event watcher is used to monitor the\nunderlying operating system raw socket used by a socket object.\n\nAll the while a socket object exists, and the sockets `close()` method has not\nbeen called, the raw socket will keep the [Node.js][nodejs] event loop alive\nwhich will prevent a program from exiting.\n\nThis module exports four methods which a program can use to control this\nbehaviour.\n\nThe `pauseRecv()` and `pauseSend()` methods stop the underlying `poll_handle_t`\nevent watcher used by a socket from monitoring for readable and writeable\nevents.  While the `resumeRecv()` and `resumeSend()` methods start the\nunderlying `poll_handle_t` event watcher used by a 
 socket allowing it to\nmonitor for readable and writeable events.\n\nEach socket object also exports the `recvPaused` and `sendPaused` boolean\nattributes to determine the state of the underlying `poll_handle_t` event\nwatcher used by a socket.\n\nSocket creation can be expensive on some platforms, and the above methods offer\nan alternative to closing and deleting a socket to prevent it from keeping the\n[Node.js][nodejs] event loop alive.\n\nThe [Node.js][nodejs] [net-ping][net-ping] module offers a concrete example\nof using these methods.  Since [Node.js][nodejs] offers no raw socket support\nthis module is used to implement ICMP echo (ping) support.  Once all ping\nrequests have been processed by the [net-ping][net-ping] module the\n`pauseRecv()` and `pauseSend()` methods are used to allow a program to exit if\nrequired.\n\nThe following example stops the underlying `poll_handle_t` event watcher used\nby a socket from generating writeable events, however since readable events\n
 will still be watched for the program will not exit immediately:\n\n    if (! socket.recvPaused)\n        socket.pauseRecv ();\n\nThe following can the be used to resume readable events:\n\n    if (socket.recvPaused)\n        socket.resumeRecv ();\n\nThe following example stops the underlying `poll_handle_t` event watcher used\nby a socket from generating both readable and writeable events, if no other\nevent watchers have been setup (e.g. `setTimeout()`) the program will exit.\n\n    if (! socket.recvPaused)\n        socket.pauseRecv ();\n    if (! socket.sendPaused)\n        socket.pauseSend ();\n\nThe following can the be used to resume both readable and writeable events:\n\n    if (socket.recvPaused)\n        socket.resumeRecv ();\n    if (socket.sendPaused)\n        socket.resumeSend ();\n\nWhen data is sent using a sockets `send()` method the `resumeSend()` method\nwill be called if the sockets `sendPaused` attribute is `true`, however the\n`resumeRecv()` method will not be ca
 lled regardless of whether the sockets\n`recvPaused` attribute is `true` or `false`.\n\n[nodejs]: http://nodejs.org \"Node.js\"\n[net-ping]: http://npmjs.org/package/net-ping \"net-ping\"\n\n# Constants\n\nThe following sections describe constants exported and used by this module.\n\n## raw.AddressFamily\n\nThis object contains constants which can be used for the `addressFamily`\noption to the `createSocket()` function exposed by this module.  This option\nspecifies the IP protocol version to use when creating the raw socket.\n\nThe following constants are defined in this object:\n\n * `IPv4` - IPv4 protocol\n * `IPv6` - IPv6 protocol\n\n## raw.Protocol\n\nThis object contains constants which can be used for the `protocol` option to\nthe `createSocket()` function exposed by this module.  This option specifies\nthe protocol number to place in the protocol field of IP headers generated by\nthe operating system.\n\nThe following constants are defined in this object:\n\n * `None` - prot
 ocol number 0\n * `ICMP` - protocol number 1\n * `TCP` - protocol number 6\n * `UDP` - protocol number 17\n * `ICMPv6` - protocol number 58\n\n## raw.SocketLevel\n\nThis object contains constants which can be used for the `level` parameter to\nthe `getOption()` and `setOption()` methods exposed by this module.\n\nThe following constants are defined in this object:\n\n * `SOL_SOCKET`\n * `IPPROTO_IP`\n * `IPPROTO_IPV6`\n\n## raw.SocketOption\n\nThis object contains constants which can be used for the `option` parameter to\nthe `getOption()` and `setOption()` methods exposed by this module.\n\nThe following constants are defined in this object:\n\n * `SO_RCVBUF`\n * `SO_RCVTIMEO`\n * `SO_SNDBUF`\n * `SO_SNDTIMEO`\n * `IP_HDRINCL`\n * `IP_OPTIONS`\n * `IP_TOS`\n * `IP_TTL`\n * `IPV6_TTL`\n * `IPV6_UNICAST_HOPS`\n * `IPV6_V6ONLY`\n\n*The `IPV6_TTL` socket option is not known to be defined by any operating\nsystem, it is provided in convenience to be synonymous with IPv4*\n\nFor Windows 
 platforms the following constant is also defined:\n\n * `IPV6_HDRINCL`\n\n# Using This Module\n\nRaw sockets are represented by an instance of the `Socket` class.  This\nmodule exports the `createSocket()` function which is used to create\ninstances of the `Socket` class.\n\nThe module also exports a number of stubs which call through to a number of\nfunctions provided by the operating system, i.e. `htonl()`.\n\nThis module also exports a function to generate protocol checksums.\n\n## raw.createChecksum (bufferOrObject, [bufferOrObject, ...])\n\nThe `createChecksum()` function creates and returns a 16 bit one's complement\nof the one's complement sum for all the data specified in one or more\n[Node.js][nodejs] `Buffer` objects.  This is useful for creating checksums for\nprotocols such as IP, TCP, UDP and ICMP.\n\nThe `bufferOrObject` parameter can be one of two types.  The first is a\n[Node.js][nodejs] `Buffer` object.  In this case a checksum is calculated from\nall the data it co
 ntains.  The `bufferOrObject` parameter can also be an\nobject which must contain the following attributes:\n\n * `buffer` - A [Node.js][nodejs] `Buffer` object which contains data which\n   to generate a checksum for\n * `offset` - Skip this number of bytes from the beginning of `buffer`\n * `length` - Only generate a checksum for this number of bytes in `buffer`\n   from `offset`\n\nThe second parameter type provides control over how much of the data in a\n[Node.js][nodejs] `Buffer` object a checksum should be generated for.\n\nWhen more than one parameter is passed a single checksum is calculated as if\nthe data in in all parameters were in a single buffer.  This is useful for\nwhen calulating checksums for TCP and UDP for example - where a psuedo header\nmust be created and used for checksum calculation.\n\nIn this case two buffers can be passed, the first containing the psuedo header\nand the second containing the real TCP packet, and the offset and length\nparameters used to s
 pecify the bounds of the TCP packet payload.\n\nThe following example generates a checksum for a TCP packet and its psuedo\nheader:\n\n    var sum = raw.createChecksum (pseudo_header, {buffer: tcp_packet,\n            offset: 20, length: tcp_packet.length - 20});\n\nBoth buffers will be treated as one, i.e. as if the data at offset `20` in\n`tcp_packet` had followed all data in `pseudo_header` - as if they were one\nbuffer.\n\n## raw.writeChecksum (buffer, offset, checksum)\n\nThe `writeChecksum()` function writes a checksum created by the\n`raw.createChecksum()` function to the [Node.js][nodejs] `Buffer` object \n`buffer` at offsets `offset` and `offset` + 1.\n\nThe following example generates and writes a checksum at offset `2` in a\n[Node.js][nodejs] `Buffer` object:\n\n    raw.writeChecksum (buffer, 2, raw.createChecksum (buffer));\n\n## raw.htonl (uint32)\n\nThe `htonl()` function converts a 32 bit unsigned integer from host byte\norder to network byte order and returns the res
 ult.  This function is simply\na stub through to the operating systems `htonl()` function.\n\n## raw.htons (uint16)\n\nThe `htons()` function converts a 16 bit unsigned integer from host byte\norder to network byte order and returns the result.  This function is simply\na stub through to the operating systems `htons()` function.\n\n## raw.ntohl (uint32)\n\nThe `ntohl()` function converts a 32 bit unsigned integer from network byte\norder to host byte order and returns the result.  This function is simply\na stub through to the operating systems `ntohl()` function.\n\n## raw.ntohs (uint16)\n\nThe `ntohs()` function converts a 16 bit unsigned integer from network byte\norder to host byte order and returns the result.  This function is simply\na stub through to the operating systems `ntohs()` function.\n\n## raw.createSocket ([options])\n\nThe `createSocket()` function instantiates and returns an instance of the\n`Socket` class:\n\n    // Default options\n    var options = {\n        a
 ddressFamily: raw.AddressFamily.IPv4,\n        protocol: raw.Protocol.None,\n        bufferSize: 4096,\n        generateChecksums: false,\n        checksumOffset: 0\n    };\n    \n    var socket = raw.createSocket (options);\n\nThe optional `options` parameter is an object, and can contain the following\nitems:\n\n * `addressFamily` - Either the constant `raw.AddressFamily.IPv4` or the\n   constant `raw.AddressFamily.IPv6`, defaults to the constant\n   `raw.AddressFamily.IPv4`\n * `protocol` - Either one of the constants defined in the `raw.Protocol`\n   object or the protocol number to use for the socket, defaults to the\n   consant `raw.Protocol.None`\n * `bufferSize` - Size, in bytes, of the sockets internal receive buffer,\n   defaults to 4096\n * `generateChecksums` - Either `true` or `false` to enable or disable the\n   automatic checksum generation feature, defaults to `false`\n * `checksumOffset` - When `generateChecksums` is `true` specifies how many\n   bytes to index into
  the send buffer to write automatically generated\n   checksums, defaults to `0`\n\nAn exception will be thrown if the underlying raw socket could not be created.\nThe error will be an instance of the `Error` class.\n\nThe `protocol` parameter, or its default value of the constant\n`raw.Protocol.None`, will be specified in the protocol field of each IP\nheader.\n\n## socket.on (\"close\", callback)\n\nThe `close` event is emitted by the socket when the underlying raw socket\nis closed.\n\nNo arguments are passed to the callback.\n\nThe following example prints a message to the console when the socket is\nclosed:\n\n    socket.on (\"close\", function () {\n        console.log (\"socket closed\");\n    });\n\n## socket.on (\"error\", callback)\n\nThe `error` event is emitted by the socket when an error occurs sending or\nreceiving data.\n\nThe following arguments will be passed to the `callback` function:\n\n * `error` - An instance of the `Error` class, the exposed `message` attribut
 e\n   will contain a detailed error message.\n\nThe following example prints a message to the console when an error occurs,\nafter which the socket is closed:\n\n    socket.on (\"error\", function (error) {\n        console.log (error.toString ());\n        socket.close ();\n    });\n\n## socket.on (\"message\", callback)\n\nThe `message` event is emitted by the socket when data has been received.\n\nThe following arguments will be passed to the `callback` function:\n\n * `buffer` - A [Node.js][nodejs] `Buffer` object containing the data\n   received, the buffer will be sized to fit the data received, that is the\n   `length` attribute of buffer will specify how many bytes were received\n * `address` - For IPv4 raw sockets the dotted quad formatted source IP\n   address of the message, e.g `192.168.1.254`, for IPv6 raw sockets the\n   compressed formatted source IP address of the message, e.g.\n   `fe80::a00:27ff:fe2a:3427`\n\nThe following example prints received messages in hexade
 cimal to the console:\n\n    socket.on (\"message\", function (buffer, address) {\n        console.log (\"received \" + buffer.length + \" bytes from \" + address\n                + \": \" + buffer.toString (\"hex\"));\n    });\n\n## socket.generateChecksums (generate, offset)\n\nThe `generateChecksums()` method is used to specify whether automatic checksum\ngeneration should be performed by the socket.\n\nThe `generate` parameter is either `true` or `false` to enable or disable the\nfeature.  The optional `offset` parameter specifies how many bytes to index\ninto the send buffer when writing the generated checksum to the send buffer.\n\nThe following example enables automatic checksum generation at offset 2\nresulting in checksums being written to byte 3 and 4 of the send buffer\n(offsets start from 0, meaning byte 1):\n\n    socket.generateChecksums (true, 2);\n\n## socket.getOption (level, option, buffer, length)\n\nThe `getOption()` method gets a socket option using the operatin
 g systems\n`getsockopt()` function.\n\nThe `level` parameter is one of the constants defined in the `raw.SocketLevel`\nobject.  The `option` parameter is one of the constants defined in the\n`raw.SocketOption` object.  The `buffer` parameter is a [Node.js][nodejs]\n`Buffer` object where the socket option value will be written.  The `length`\nparameter specifies the size of the `buffer` parameter.\n\nIf an error occurs an exception will be thrown, the exception will be an\ninstance of the `Error` class.\n\nThe number of bytes written into the `buffer` parameter is returned, and can\ndiffer from the amount of space available.\n\nThe following example retrieves the current value of `IP_TTL` socket option:\n\n    var level = raw.SocketLevel.IPPROTO_IP;\n    var option = raw.SocketOption.IP_TTL;\n    \n    # IP_TTL is a signed integer on some platforms so a 4 byte buffer is used\n    var buffer = new Buffer (4);\n    \n    var written = socket.getOption (level, option, buffer, buffer.len
 gth);\n    \n    console.log (buffer.toString (\"hex\"), 0, written);\n\n## socket.send (buffer, offset, length, address, beforeCallback, afterCallback)\n\nThe `send()` method sends data to a remote host.\n\nThe `buffer` parameter is a [Node.js][nodejs] `Buffer` object containing the\ndata to be sent.  The `length` parameter specifies how many bytes from\n`buffer`, beginning at offset `offset`, to send.  For IPv4 raw sockets the\n`address` parameter contains the dotted quad formatted IP address of the\nremote host to send the data to, e.g `192.168.1.254`, for IPv6 raw sockets the\n`address` parameter contains the compressed formatted IP address of the remote\nhost to send the data to, e.g. `fe80::a00:27ff:fe2a:3427`.  If provided the\noptional `beforeCallback` function is called right before the data is actually\nsent using the underlying raw socket, giving users the opportunity to perform\npre-send actions such as setting a socket option, e.g. the IP header TTL.  No\narguments are 
 passed to the `beforeCallback` function.  The `afterCallback`\nfunction is called once the data has been sent.  The following arguments will\nbe passed to the `afterCallback` function:\n\n * `error` - Instance of the `Error` class, or `null` if no error occurred\n * `bytes` - Number of bytes sent\n\nThe following example sends a ICMP ping message to a remote host, before the\nrequest is actually sent the IP header TTL is modified, and modified again\nafter the data has been sent:\n\n    // ICMP echo (ping) request, checksum should be ok\n    var buffer = new Buffer ([\n            0x08, 0x00, 0x43, 0x52, 0x00, 0x01, 0x0a, 0x09,\n            0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,\n            0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,\n            0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x61,\n            0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69]);\n\n    var socketLevel = raw.SocketLevel.IPPROTO_IP\n    var socketOption = raw.SocketOption.IP_TTL;\n\n    functio
 n beforeSend () {\n        socket.setOption (socketLevel, socketOption, 1);\n    }\n    \n    function afterSend (error, bytes) {\n        if (error)\n            console.log (error.toString ());\n        else\n            console.log (\"sent \" + bytes + \" bytes\");\n        \n        socket.setOption (socketLevel, socketOption, 1);\n    }\n\n    socket.send (buffer, 0, buffer.length, target, beforeSend, afterSend);\n\n## socket.setOption (level, option, buffer, length)\n\nThe `setOption()` method sets a socket option using the operating systems\n`setsockopt()` function.\n\nThe `level` parameter is one of the constants defined in the `raw.SocketLevel`\nobject.  The `option` parameter is one of the constants defined in the\n`raw.SocketOption` object.  The `buffer` parameter is a [Node.js][nodejs]\n`Buffer` object where the socket option value is specified.  The `length`\nparameter specifies how much space the option value occupies in the `buffer`\nparameter.\n\nIf an error occurs a
 n exception will be thrown, the exception will be an\ninstance of the `Error` class.\n\nThe following example sets the value of `IP_TTL` socket option to `1`:\n\n    var level = raw.SocketLevel.IPPROTO_IP;\n    var option = raw.SocketOption.IP_TTL;\n    \n    # IP_TTL is a signed integer on some platforms so a 4 byte buffer is used,\n    # x86 computers use little-endian format so specify bytes reverse order\n    var buffer = new Buffer ([0x01, 0x00, 0x00, 0x00]);\n    \n    socket.setOption (level, option, buffer, buffer.length);\n\nTo avoid dealing with endianess the `setOption()` method supports a three\nargument form which can be used for socket options requiring a 32bit unsigned\ninteger value (for example the `IP_TTL` socket option used in the previous\nexample).  Its signature is as follows:\n\n    socket.setOption (level, option, value)\n\nThe previous example can be re-written to use this form:\n\n    var level = raw.SocketLevel.IPPROTO_IP;\n    var option = raw.SocketOptio
 n.IP_TTL;\n\n    socket.setOption (level, option, 1);\n\n# Example Programs\n\nExample programs are included under the modules `example` directory.\n\n# Bugs & Known Issues\n\nNone, yet!\n\nBug reports should be sent to <st...@gmail.com>.\n\n# Changes\n\n## Version 1.0.0 - 29/01/2013\n\n * Initial release\n\n## Version 1.0.1 - 01/02/2013\n\n * Move `SOCKET_ERRNO` define from `raw.cc` to `raw.h`\n * Error in exception thrown by `SocketWrap::New` in `raw.cc` stated that two\n   arguments were required, this should be one\n * Corrections to the README.md\n * Missing includes causes compilation error on some systems (maybe Node\n   version dependant)\n\n## Version 1.0.2 - 02/02/2013\n\n * Support automatic checksum generation\n\n## Version 1.1.0 - 13/02/2013\n\n * The [net-ping][net-ping] module is now implemented so update the note about\n   it in the first section of the README.md\n * Support IPv6\n * Support the `IP_HDRINCL` socket option via the `noIpHeader` option to t
 he\n   `createSocket()` function and the `noIpHeader()` method exposed by the\n   `Socket` class\n\n## Version 1.1.1 - 14/02/2013\n\n * IP addresses not being validated\n\n## Version 1.1.2 - 15/02/2013\n\n * Default protocol option to `createSession()` was incorrect in the README.md\n * The `session.on(\"message\")` example used `message` instead of `buffer` in\n   the README.md\n\n## Version 1.1.3 - 04/03/2013\n\n * `raw.Socket.onSendReady()` emit's an error when `raw.SocketWrap.send()`\n   throws an exception when it should call the `req.callback` callback\n * Added the `pauseRecv()`, `resumeRecv()`, `pauseSend()` and `resumeSend()`\n   methods\n\n[net-ping]: https://npmjs.org/package/net-ping \"net-ping\"\n\n## Version 1.1.4 - 05/03/2013\n\n * Cleanup documentation for the `pauseSend()`, `pauseRecv()`, `resumeSend()`\n   and `resumeRecv()` methods in the README.md\n\n## Version 1.1.5 - 09/05/2013\n\n * Reformated lines in the README.md file inline with the rest of the file\n * Re
 moved the `noIpHeader()` method (the `setOption()` method should be\n   used to configure the `IP_HDRINCL` socket option - and possibly\n   `IPV6_HDRINCL` on Windows platforms), and removed the `Automatic IP Header\n   Generation` section from the README.md file\n * Added the `setOption()` and `getOption()` methods, and added the\n   `SocketLevel` and `SocketOption` constants\n * Tidied up the example program `ping-no-ip-header.js` (now uses the\n   `setOption()` method to configure the `IP_HDRINCL` socket option)\n * Tidied up the example program `ping6-no-ip-header.js` (now uses the\n   `setOption()` method to configure the `IPV6_HDRINCL` socket option)\n * Added the example program `get-option.js`\n * Added the example program `ping-set-option-ip-ttl.js`\n * Use MIT license instead of GPL\n\n## Version 1.1.6 - 18/05/2013\n\n * Added the `beforeCallback` parameter to the `send()` method, and renamed the\n   `callback` parameter to `afterCallback`\n * Fixed a few typos in the READM
 E.md file\n * Modified the example program `ping-set-option-ip-ttl.js` to use the\n   `beforeCallback` parameter to the `send()` method\n * The example program `ping6-no-ip-header.js` was not passing the correct\n   arguments to the `setOption()` method\n\n## Version 1.1.7 - 23/06/2013\n\n * Added the `htonl()`, `htons()`, `ntohl()`, and `ntohs()` functions, and\n   associated example programs\n * Added the `createChecksum()` function, and associated example program\n\n## Version 1.1.8 - 01/07/2013\n\n * Added the `writeChecksum()` function\n * Removed the \"Automated Checksum Generation\" feature - this has been\n   replaced with the `createChecksum()` and `writeChecksum()` functions\n\n## Version 1.2.0 - 02/07/2013\n\n * Up version number to 1.2.0 (we should have done this for 1.1.8 because it\n   introduced some API breaking changes)\n\n# Roadmap\n\nIn no particular order:\n\n * Enhance performance by moving the send queue into the C++ raw::SocketWrap\n   class\n\nSuggestions and
  requirements should be sent to <st...@gmail.com>.\n\n# License\n\nCopyright (c) 2013 Stephen Vickers\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIAB
 ILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n# Author\n\nStephen Vickers <st...@gmail.com>\n",
-  "readmeFilename": "README.md",
-  "_id": "raw-socket@1.2.0",
-  "dist": {
-    "shasum": "11c8512e44e98801bcd918956fc8905b60823c7e"
-  },
-  "_from": "raw-socket@*",
-  "_resolved": "https://registry.npmjs.org/raw-socket/-/raw-socket-1.2.0.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.cc
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.cc b/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.cc
deleted file mode 100644
index e712760..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.cc
+++ /dev/null
@@ -1,771 +0,0 @@
-#ifndef RAW_CC
-#define RAW_CC
-
-#include <node.h>
-#include <node_buffer.h>
-
-#include <stdio.h>
-#include <string.h>
-#include "raw.h"
-
-#ifdef _WIN32
-static char errbuf[1024];
-#endif
-const char* raw_strerror (int code) {
-#ifdef _WIN32
-	if (FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, 0, code, 0, errbuf,
-			1024, NULL)) {
-		return errbuf;
-	} else {
-		strcpy (errbuf, "Unknown error");
-		return errbuf;
-	}
-#else
-	return strerror (code);
-#endif
-}
-
-static uint16_t checksum (uint16_t start_with, unsigned char *buffer,
-		size_t length) {
-	unsigned i;
-	uint32_t sum = start_with > 0 ? ~start_with & 0xffff : 0;
-
-	for (i = 0; i < (length & ~1U); i += 2) {
-		sum += (uint16_t) ntohs (*((uint16_t *) (buffer + i)));
-		if (sum > 0xffff)
-			sum -= 0xffff;
-	}
-	if (i < length) {
-		sum += buffer [i] << 8;
-		if (sum > 0xffff)
-			sum -= 0xffff;
-	}
-	
-	return ~sum & 0xffff;
-}
-
-namespace raw {
-
-static Persistent<String> CloseSymbol;
-static Persistent<String> EmitSymbol;
-static Persistent<String> ErrorSymbol;
-static Persistent<String> RecvReadySymbol;
-static Persistent<String> SendReadySymbol;
-
-void InitAll (Handle<Object> target) {
-	CloseSymbol = NODE_PSYMBOL("close");
-	EmitSymbol = NODE_PSYMBOL("emit");
-	ErrorSymbol = NODE_PSYMBOL("error");
-	RecvReadySymbol = NODE_PSYMBOL("recvReady");
-	SendReadySymbol = NODE_PSYMBOL("sendReady");
-
-	ExportConstants (target);
-	ExportFunctions (target);
-
-	SocketWrap::Init (target);
-}
-
-NODE_MODULE(raw, InitAll)
-
-Handle<Value> CreateChecksum (const Arguments& args) {
-	HandleScope scope;
-	
-	if (args.Length () < 2) {
-		ThrowException (Exception::Error (String::New (
-				"At least one argument is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Start with argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	}
-	
-	uint16_t start_with = args[0]->ToUint32 ()->Value ();
-
-	if (start_with > 65535) {
-		ThrowException (Exception::TypeError (String::New (
-				"Start with argument cannot be larger than 65535")));
-		return scope.Close (args.This ());
-	}
-
-	if (! node::Buffer::HasInstance (args[1])) {
-		ThrowException (Exception::TypeError (String::New (
-				"Buffer argument must be a node Buffer object")));
-		return scope.Close (args.This ());
-	}
-	
-	Local<Object> buffer = args[1]->ToObject ();
-	char *data = node::Buffer::Data (buffer);
-	size_t length = node::Buffer::Length (buffer);
-	unsigned int offset = 0;
-	
-	if (args.Length () > 2) {
-		if (! args[2]->IsUint32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Offset argument must be an unsigned integer")));
-			return scope.Close (args.This ());
-		}
-		offset = args[2]->ToUint32 ()->Value ();
-		if (offset >= length) {
-			ThrowException (Exception::RangeError (String::New (
-					"Offset argument must be smaller than length of the buffer")));
-			return scope.Close (args.This ());
-		}
-	}
-	
-	if (args.Length () > 3) {
-		if (! args[3]->IsUint32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Length argument must be an unsigned integer")));
-			return scope.Close (args.This ());
-		}
-		unsigned int new_length = args[3]->ToUint32 ()->Value ();
-		if (new_length > length) {
-			ThrowException (Exception::RangeError (String::New (
-					"Length argument must be smaller than length of the buffer")));
-			return scope.Close (args.This ());
-		}
-		length = new_length;
-	}
-	
-	uint16_t sum = checksum (start_with, (unsigned char *) data + offset,
-			length);
-
-	Local<Integer> number = Integer::NewFromUnsigned (sum);
-	
-	return scope.Close (number);
-}
-
-Handle<Value> Htonl (const Arguments& args) {
-	HandleScope scope;
-
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One arguments is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Number must be a 32 unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	unsigned int number = args[0]->ToUint32 ()->Value ();
-	Local<Integer> converted = Integer::NewFromUnsigned (htonl (number));
-
-	return scope.Close (converted);
-}
-
-Handle<Value> Htons (const Arguments& args) {
-	HandleScope scope;
-	
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One arguments is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Number must be a 16 unsigned integer")));
-		return scope.Close (args.This ());
-	}
-	
-	unsigned int number = args[0]->ToUint32 ()->Value ();
-	if (number > 65535) {
-		ThrowException (Exception::RangeError (String::New (
-				"Number cannot be larger than 65535")));
-		return scope.Close (args.This ());
-	}
-	Local<Integer> converted = Integer::NewFromUnsigned (htons (number));
-
-	return scope.Close (converted);
-}
-
-Handle<Value> Ntohl (const Arguments& args) {
-	HandleScope scope;
-	
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One arguments is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Number must be a 32 unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	unsigned int number = args[0]->ToUint32 ()->Value ();
-	Local<Integer> converted = Integer::NewFromUnsigned (ntohl (number));
-
-	return scope.Close (converted);
-}
-
-Handle<Value> Ntohs (const Arguments& args) {
-	HandleScope scope;
-	
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One arguments is required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Number must be a 16 unsigned integer")));
-		return scope.Close (args.This ());
-	}
-	
-	unsigned int number = args[0]->ToUint32 ()->Value ();
-	if (number > 65535) {
-		ThrowException (Exception::RangeError (String::New (
-				"Number cannot be larger than 65535")));
-		return scope.Close (args.This ());
-	}
-	Local<Integer> converted = Integer::NewFromUnsigned (htons (number));
-
-	return scope.Close (converted);
-}
-
-void ExportConstants (Handle<Object> target) {
-	Local<Object> socket_level = Object::New ();
-	Local<Object> socket_option = Object::New ();
-
-	target->Set (String::NewSymbol ("SocketLevel"), socket_level);
-	target->Set (String::NewSymbol ("SocketOption"), socket_option);
-
-	socket_level->Set (String::NewSymbol ("SOL_SOCKET"), Number::New (SOL_SOCKET));
-	socket_level->Set (String::NewSymbol ("IPPROTO_IP"), Number::New (IPPROTO_IP));
-	socket_level->Set (String::NewSymbol ("IPPROTO_IPV6"), Number::New (IPPROTO_IPV6));
-
-	socket_option->Set (String::NewSymbol ("SO_BROADCAST"), Number::New (SO_BROADCAST));
-	socket_option->Set (String::NewSymbol ("SO_RCVBUF"), Number::New (SO_RCVBUF));
-	socket_option->Set (String::NewSymbol ("SO_RCVTIMEO"), Number::New (SO_RCVTIMEO));
-	socket_option->Set (String::NewSymbol ("SO_SNDBUF"), Number::New (SO_SNDBUF));
-	socket_option->Set (String::NewSymbol ("SO_SNDTIMEO"), Number::New (SO_SNDTIMEO));
-
-	socket_option->Set (String::NewSymbol ("IP_HDRINCL"), Number::New (IP_HDRINCL));
-	socket_option->Set (String::NewSymbol ("IP_OPTIONS"), Number::New (IP_OPTIONS));
-	socket_option->Set (String::NewSymbol ("IP_TOS"), Number::New (IP_TOS));
-	socket_option->Set (String::NewSymbol ("IP_TTL"), Number::New (IP_TTL));
-
-#ifdef _WIN32
-	socket_option->Set (String::NewSymbol ("IPV6_HDRINCL"), Number::New (IPV6_HDRINCL));
-#endif
-	socket_option->Set (String::NewSymbol ("IPV6_TTL"), Number::New (IPV6_UNICAST_HOPS));
-	socket_option->Set (String::NewSymbol ("IPV6_UNICAST_HOPS"), Number::New (IPV6_UNICAST_HOPS));
-	socket_option->Set (String::NewSymbol ("IPV6_V6ONLY"), Number::New (IPV6_V6ONLY));
-}
-
-void ExportFunctions (Handle<Object> target) {
-	target->Set (String::NewSymbol ("createChecksum"), FunctionTemplate::New (CreateChecksum)->GetFunction ());
-	
-	target->Set (String::NewSymbol ("htonl"), FunctionTemplate::New (Htonl)->GetFunction ());
-	target->Set (String::NewSymbol ("htons"), FunctionTemplate::New (Htons)->GetFunction ());
-	target->Set (String::NewSymbol ("ntohl"), FunctionTemplate::New (Ntohl)->GetFunction ());
-	target->Set (String::NewSymbol ("ntohs"), FunctionTemplate::New (Ntohs)->GetFunction ());
-}
-
-void SocketWrap::Init (Handle<Object> target) {
-	HandleScope scope;
-	
-	Local<FunctionTemplate> tpl = FunctionTemplate::New (New);
-	
-	tpl->InstanceTemplate ()->SetInternalFieldCount (1);
-	tpl->SetClassName (String::NewSymbol ("SocketWrap"));
-	
-	NODE_SET_PROTOTYPE_METHOD(tpl, "close", Close);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "getOption", GetOption);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "pause", Pause);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "recv", Recv);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "send", Send);
-	NODE_SET_PROTOTYPE_METHOD(tpl, "setOption", SetOption);
-
-	target->Set (String::NewSymbol ("SocketWrap"), tpl->GetFunction ());
-}
-
-SocketWrap::SocketWrap () {}
-
-SocketWrap::~SocketWrap () {
-	this->CloseSocket ();
-}
-
-Handle<Value> SocketWrap::Close (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	
-	socket->CloseSocket ();
-
-	return scope.Close (args.This ());
-}
-
-void SocketWrap::CloseSocket (void) {
-	HandleScope scope;
-	
-	if (this->poll_initialised_) {
-		uv_poll_stop (&this->poll_watcher_);
-		closesocket (this->poll_fd_);
-		this->poll_fd_ = INVALID_SOCKET;
-
-		uv_close ((uv_handle_t *) &this->poll_watcher_, OnClose);
-		this->poll_initialised_ = false;
-	}
-
-	Local<Value> emit = this->handle_->Get (EmitSymbol);
-	Local<Function> cb = emit.As<Function> ();
-
-	Local<Value> args[1];
-	args[0] = Local<Value>::New (CloseSymbol);
-
-	cb->Call (this->handle_, 1, args);
-}
-
-int SocketWrap::CreateSocket (void) {
-	if (this->poll_initialised_)
-		return 0;
-	
-	if ((this->poll_fd_ = socket (this->family_, SOCK_RAW, this->protocol_))
-			== INVALID_SOCKET)
-		return SOCKET_ERRNO;
-
-#ifdef _WIN32
-	unsigned long flag = 1;
-	if (ioctlsocket (this->poll_fd_, FIONBIO, &flag) == SOCKET_ERROR)
-		return SOCKET_ERRNO;
-#else
-	int flag = 1;
-	if ((flag = fcntl (this->poll_fd_, F_GETFL, 0)) == SOCKET_ERROR)
-		return SOCKET_ERRNO;
-	if (fcntl (this->poll_fd_, F_SETFL, flag | O_NONBLOCK) == SOCKET_ERROR)
-		return SOCKET_ERRNO;
-#endif
-
-	uv_poll_init_socket (uv_default_loop (), &this->poll_watcher_,
-			this->poll_fd_);
-	this->poll_watcher_.data = this;
-	uv_poll_start (&this->poll_watcher_, UV_READABLE, IoEvent);
-	
-	this->poll_initialised_ = true;
-	
-	return 0;
-}
-
-Handle<Value> SocketWrap::GetOption (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	
-	if (args.Length () < 3) {
-		ThrowException (Exception::Error (String::New (
-				"Three arguments are required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsNumber ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Level argument must be a number")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[1]->IsNumber ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Option argument must be a number")));
-		return scope.Close (args.This ());
-	}
-
-	int level = args[0]->ToInt32 ()->Value ();
-	int option = args[1]->ToInt32 ()->Value ();
-	SOCKET_OPT_TYPE val = NULL;
-	unsigned int ival = 0;
-	SOCKET_LEN_TYPE len;
-
-	if (! node::Buffer::HasInstance (args[2])) {
-		ThrowException (Exception::TypeError (String::New (
-				"Value argument must be a node Buffer object if length is "
-				"provided")));
-		return scope.Close (args.This ());
-	}
-	
-	Local<Object> buffer = args[2]->ToObject ();
-	val = node::Buffer::Data (buffer);
-
-	if (! args[3]->IsInt32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Length argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	len = (SOCKET_LEN_TYPE) node::Buffer::Length (buffer);
-
-	int rc = getsockopt (socket->poll_fd_, level, option,
-			(val ? val : (SOCKET_OPT_TYPE) &ival), &len);
-
-	if (rc == SOCKET_ERROR) {
-		ThrowException (Exception::Error (String::New (
-				raw_strerror (SOCKET_ERRNO))));
-		return scope.Close (args.This ());
-	}
-	
-	Local<Number> got = Integer::NewFromUnsigned (len);
-	return scope.Close (got);
-}
-
-void SocketWrap::HandleIOEvent (int status, int revents) {
-	HandleScope scope;
-
-	if (status) {
-		Local<Value> emit = this->handle_->Get (EmitSymbol);
-		Local<Function> cb = emit.As<Function> ();
-
-		Local<Value> args[2];
-		args[0] = Local<Value>::New (ErrorSymbol);
-		args[1] = Exception::Error (String::New (
-				raw_strerror (uv_last_error (uv_default_loop ()).code)));
-		
-		cb->Call (this->handle_, 2, args);
-	} else {
-		Local<Value> emit = this->handle_->Get (EmitSymbol);
-		Local<Function> cb = emit.As<Function> ();
-
-		Local<Value> args[1];
-		if (revents & UV_READABLE)
-			args[0] = Local<Value>::New (RecvReadySymbol);
-		else
-			args[0] = Local<Value>::New (SendReadySymbol);
-
-		cb->Call (this->handle_, 1, args);
-	}
-}
-
-Handle<Value> SocketWrap::New (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = new SocketWrap ();
-	int rc, family = AF_INET;
-	
-	if (args.Length () < 1) {
-		ThrowException (Exception::Error (String::New (
-				"One argument is required")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! args[0]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Protocol argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	} else {
-		socket->protocol_ = args[0]->ToUint32 ()->Value ();
-	}
-
-	if (args.Length () > 1) {
-		if (! args[1]->IsUint32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Address family argument must be an unsigned integer")));
-			return scope.Close (args.This ());
-		} else {
-			if (args[1]->ToUint32 ()->Value () == 2)
-				family = AF_INET6;
-		}
-	}
-	
-	socket->family_ = family;
-	
-	socket->poll_initialised_ = false;
-	
-	socket->no_ip_header_ = false;
-
-	rc = socket->CreateSocket ();
-	if (rc != 0) {
-		ThrowException (Exception::Error (String::New (raw_strerror (rc))));
-		return scope.Close (args.This ());
-	}
-
-	socket->Wrap (args.This ());
-
-	return scope.Close (args.This ());
-}
-
-void SocketWrap::OnClose (uv_handle_t *handle) {
-	// We can re-use the socket so we won't actually do anything here
-}
-
-Handle<Value> SocketWrap::Pause (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-
-	if (args.Length () < 2) {
-		ThrowException (Exception::Error (String::New (
-				"Two arguments are required")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! args[0]->IsBoolean ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Recv argument must be a boolean")));
-		return scope.Close (args.This ());
-	}
-	bool pause_recv = args[0]->ToBoolean ()->Value ();
-
-	if (! args[0]->IsBoolean ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Send argument must be a boolean")));
-		return scope.Close (args.This ());
-	}
-	bool pause_send = args[0]->ToBoolean ()->Value ();
-	
-	int events = (pause_recv ? 0 : UV_READABLE)
-			| (pause_send ? 0 : UV_WRITABLE);
-
-	uv_poll_stop (&socket->poll_watcher_);
-	uv_poll_start (&socket->poll_watcher_, events, IoEvent);
-	
-	return scope.Close (args.This ());
-}
-
-Handle<Value> SocketWrap::Recv (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	Local<Object> buffer;
-	sockaddr_in sin_address;
-	sockaddr_in6 sin6_address;
-	char addr[50];
-	int rc;
-#ifdef _WIN32
-	int sin_length = socket->family_ == AF_INET6
-			? sizeof (sin6_address)
-			: sizeof (sin_address);
-#else
-	socklen_t sin_length = socket->family_ == AF_INET6
-			? sizeof (sin6_address)
-			: sizeof (sin_address);
-#endif
-	
-	if (args.Length () < 2) {
-		ThrowException (Exception::Error (String::New (
-				"Five arguments are required")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! node::Buffer::HasInstance (args[0])) {
-		ThrowException (Exception::TypeError (String::New (
-				"Buffer argument must be a node Buffer object")));
-		return scope.Close (args.This ());
-	} else {
-		buffer = args[0]->ToObject ();
-	}
-
-	if (! args[1]->IsFunction ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Callback argument must be a function")));
-		return scope.Close (args.This ());
-	}
-
-	rc = socket->CreateSocket ();
-	if (rc != 0) {
-		ThrowException (Exception::Error (String::New (raw_strerror (errno))));
-		return scope.Close (args.This ());
-	}
-
-	if (socket->family_ == AF_INET6) {
-		memset (&sin6_address, 0, sizeof (sin6_address));
-		rc = recvfrom (socket->poll_fd_, node::Buffer::Data (buffer),
-				(int) node::Buffer::Length (buffer), 0, (sockaddr *) &sin6_address,
-				&sin_length);
-	} else {
-		memset (&sin_address, 0, sizeof (sin_address));
-		rc = recvfrom (socket->poll_fd_, node::Buffer::Data (buffer),
-				(int) node::Buffer::Length (buffer), 0, (sockaddr *) &sin_address,
-				&sin_length);
-	}
-	
-	if (rc == SOCKET_ERROR) {
-		ThrowException (Exception::Error (String::New (raw_strerror (
-				SOCKET_ERRNO))));
-		return scope.Close (args.This ());
-	}
-	
-	if (socket->family_ == AF_INET6)
-		uv_ip6_name (&sin6_address, addr, 50);
-	else
-		uv_ip4_name (&sin_address, addr, 50);
-	
-	Local<Function> cb = Local<Function>::Cast (args[1]);
-	const unsigned argc = 3;
-	Local<Value> argv[argc];
-	argv[0] = args[0];
-	argv[1] = Number::New (rc);
-	argv[2] = String::New (addr);
-	cb->Call (Context::GetCurrent ()->Global (), argc, argv);
-	
-	return scope.Close (args.This ());
-}
-
-Handle<Value> SocketWrap::Send (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	Local<Object> buffer;
-	uint32_t offset;
-	uint32_t length;
-	int rc;
-	char *data;
-	
-	if (args.Length () < 5) {
-		ThrowException (Exception::Error (String::New (
-				"Five arguments are required")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! node::Buffer::HasInstance (args[0])) {
-		ThrowException (Exception::TypeError (String::New (
-				"Buffer argument must be a node Buffer object")));
-		return scope.Close (args.This ());
-	}
-	
-	if (! args[1]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Offset argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[2]->IsUint32 ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Length argument must be an unsigned integer")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[3]->IsString ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Address argument must be a string")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[4]->IsFunction ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Callback argument must be a function")));
-		return scope.Close (args.This ());
-	}
-
-	rc = socket->CreateSocket ();
-	if (rc != 0) {
-		ThrowException (Exception::Error (String::New (raw_strerror (errno))));
-		return scope.Close (args.This ());
-	}
-	
-	buffer = args[0]->ToObject ();
-	offset = args[1]->ToUint32 ()->Value ();
-	length = args[2]->ToUint32 ()->Value ();
-	String::AsciiValue address (args[3]);
-
-	data = node::Buffer::Data (buffer) + offset;
-	
-	if (socket->family_ == AF_INET6) {
-		struct sockaddr_in6 addr = uv_ip6_addr (*address, 0);
-		rc = sendto (socket->poll_fd_, data, length, 0,
-				(struct sockaddr *) &addr, sizeof (addr));
-	} else {
-		struct sockaddr_in addr = uv_ip4_addr (*address, 0);
-		rc = sendto (socket->poll_fd_, data, length, 0,
-				(struct sockaddr *) &addr, sizeof (addr));
-	}
-	
-	if (rc == SOCKET_ERROR) {
-		ThrowException (Exception::Error (String::New (raw_strerror (
-				SOCKET_ERRNO))));
-		return scope.Close (args.This ());
-	}
-	
-	Local<Function> cb = Local<Function>::Cast (args[4]);
-	const unsigned argc = 1;
-	Local<Value> argv[argc];
-	argv[0] = Number::New (rc);
-	cb->Call (Context::GetCurrent ()->Global (), argc, argv);
-	
-	return scope.Close (args.This ());
-}
-
-Handle<Value> SocketWrap::SetOption (const Arguments& args) {
-	HandleScope scope;
-	SocketWrap* socket = SocketWrap::Unwrap<SocketWrap> (args.This ());
-	
-	if (args.Length () < 3) {
-		ThrowException (Exception::Error (String::New (
-				"Three or four arguments are required")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[0]->IsNumber ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Level argument must be a number")));
-		return scope.Close (args.This ());
-	}
-
-	if (! args[1]->IsNumber ()) {
-		ThrowException (Exception::TypeError (String::New (
-				"Option argument must be a number")));
-		return scope.Close (args.This ());
-	}
-
-	int level = args[0]->ToInt32 ()->Value ();
-	int option = args[1]->ToInt32 ()->Value ();
-	SOCKET_OPT_TYPE val = NULL;
-	unsigned int ival = 0;
-	SOCKET_LEN_TYPE len;
-
-	if (args.Length () > 3) {
-		if (! node::Buffer::HasInstance (args[2])) {
-			ThrowException (Exception::TypeError (String::New (
-					"Value argument must be a node Buffer object if length is "
-					"provided")));
-			return scope.Close (args.This ());
-		}
-		
-		Local<Object> buffer = args[2]->ToObject ();
-		val = node::Buffer::Data (buffer);
-
-		if (! args[3]->IsInt32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Length argument must be an unsigned integer")));
-			return scope.Close (args.This ());
-		}
-
-		len = args[3]->ToInt32 ()->Value ();
-
-		if (len > node::Buffer::Length (buffer)) {
-			ThrowException (Exception::TypeError (String::New (
-					"Length argument is larger than buffer length")));
-			return scope.Close (args.This ());
-		}
-	} else {
-		if (! args[2]->IsUint32 ()) {
-			ThrowException (Exception::TypeError (String::New (
-					"Value argument must be a unsigned integer")));
-			return scope.Close (args.This ());
-		}
-
-		ival = args[2]->ToUint32 ()->Value ();
-		len = 4;
-	}
-
-	int rc = setsockopt (socket->poll_fd_, level, option,
-			(val ? val : (SOCKET_OPT_TYPE) &ival), len);
-
-	if (rc == SOCKET_ERROR) {
-		ThrowException (Exception::Error (String::New (
-				raw_strerror (SOCKET_ERRNO))));
-		return scope.Close (args.This ());
-	}
-	
-	return scope.Close (args.This ());
-}
-
-static void IoEvent (uv_poll_t* watcher, int status, int revents) {
-	SocketWrap *socket = static_cast<SocketWrap*>(watcher->data);
-	socket->HandleIOEvent (status, revents);
-}
-
-}; /* namespace raw */
-
-#endif /* RAW_CC */

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.h
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.h b/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.h
deleted file mode 100644
index a446fe9..0000000
--- a/blackberry10/node_modules/net-ping/node_modules/raw-socket/src/raw.h
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef RAW_H
-#define RAW_H
-
-/**
- ** The following warnings are displayed during compilation on win32 platforms
- ** using node-gyp:
- **
- **  - C++ exception handler used, but unwind semantics are not enabled.
- **  - no definition for inline function 'v8::Persistent<T> \
- **       v8::Persistent<T>::New(v8::Handle<T>)'
- **
- ** There don't seem to be any issues which would suggest these are real
- ** problems, so we've disabled them for now.
- **/
-#ifdef _WIN32
-#pragma warning(disable:4506;disable:4530)
-#endif
-
-#include <string>
-
-#include <node.h>
-
-#ifdef _WIN32
-#include <winsock2.h>
-#include <Ws2tcpip.h>
-#define SOCKET_ERRNO WSAGetLastError()
-#define SOCKET_OPT_TYPE char *
-#define SOCKET_LEN_TYPE int
-#else
-#include <errno.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#define SOCKET int
-#define SOCKET_ERROR -1
-#define SOCKET_ERRNO errno
-#define INVALID_SOCKET -1
-#define closesocket close
-#define SOCKET_OPT_TYPE void *
-#define SOCKET_LEN_TYPE socklen_t
-#endif
-
-using namespace v8;
-
-namespace raw {
-
-Handle<Value> CreateChecksum (const Arguments& args);
-
-void ExportConstants (Handle<Object> target);
-void ExportFunctions (Handle<Object> target);
-
-Handle<Value> Htonl (const Arguments& args);
-Handle<Value> Htons (const Arguments& args);
-Handle<Value> Ntohl (const Arguments& args);
-Handle<Value> Ntohs (const Arguments& args);
-
-class SocketWrap : public node::ObjectWrap {
-public:
-	void HandleIOEvent (int status, int revents);
-	static void Init (Handle<Object> target);
-
-private:
-	SocketWrap ();
-	~SocketWrap ();
-
-	static Handle<Value> Close (const Arguments& args);
-
-	void CloseSocket (void);
-	
-	int CreateSocket (void);
-
-	static Handle<Value> GetOption (const Arguments& args);
-
-	static Handle<Value> New (const Arguments& args);
-
-	static void OnClose (uv_handle_t *handle);
-
-	static Handle<Value> Pause (const Arguments& args);
-	static Handle<Value> Recv (const Arguments& args);
-	static Handle<Value> Send (const Arguments& args);
-	static Handle<Value> SetOption (const Arguments& args);
-
-	bool no_ip_header_;
-
-	uint32_t family_;
-	uint32_t protocol_;
-
-	SOCKET poll_fd_;
-	uv_poll_t poll_watcher_;
-	bool poll_initialised_;
-};
-
-static void IoEvent (uv_poll_t* watcher, int status, int revents);
-
-}; /* namespace raw */
-
-#endif /* RAW_H */

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/package.json b/blackberry10/node_modules/net-ping/package.json
deleted file mode 100644
index 649fb17..0000000
--- a/blackberry10/node_modules/net-ping/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "name": "net-ping",
-  "version": "1.1.9",
-  "description": "Ping and trace route to many hosts at once.",
-  "main": "index.js",
-  "directories": {
-    "example": "example"
-  },
-  "dependencies": {
-    "raw-socket": "*"
-  },
-  "contributors": [
-    {
-      "name": "Stephen Vickers",
-      "email": "stephen.vickers.sv@gmail.com"
-    }
-  ],
-  "repository": {
-    "type": "mercurial",
-    "url": "https://bitbucket.org/stephenwvickers/node-net-ping"
-  },
-  "keywords": [
-    "echo",
-    "icmp",
-    "monitor",
-    "monitoring",
-    "net",
-    "network",
-    "ping",
-    "trace",
-    "trace-route",
-    "traceroute",
-    "tracert"
-  ],
-  "author": {
-    "name": "Stephen Vickers",
-    "email": "stephen.vickers.sv@gmail.com"
-  },
-  "license": "MIT",
-  "readme": "\n# net-ping - [homepage][homepage]\n\nThis module implements ICMP Echo (ping) support for [Node.js][nodejs].\n\nThis module is installed using [node package manager (npm)][npm]:\n\n    npm install net-ping\n\nIt is loaded using the `require()` function:\n\n    var ping = require (\"net-ping\");\n\nA ping session can then be created to ping or trace route to many hosts:\n\n    var session = ping.createSession ();\n\n    session.pingHost (target, function (error, target) {\n        if (error)\n            console.log (target + \": \" + error.toString ());\n        else\n            console.log (target + \": Alive\");\n    });\n\n[homepage]: http://re-tool.org \"Homepage\"\n[nodejs]: http://nodejs.org \"Node.js\"\n[npm]: https://npmjs.org/ \"npm\"\n\n# Network Protocol Support\n\nThis module supports IPv4 using the ICMP, and IPv6 using the ICMPv6.\n\n# Error Handling\n\nEach request exposed by this module requires one or more mandatory callback\nfunctions.  Callback funct
 ions are typically provided an `error` argument.\n\nAll errors are sub-classes of the `Error` class.  For timed out errors the\nerror passed to the callback function will be an instance of the\n`ping.RequestTimedOutError` class, with the exposed `message` attribute set\nto `Request timed out`.\n\nThis makes it easy to determine if a host responded, a time out occurred, or\nwhether an error response was received:\n\n    session.pingHost (\"1.2.3.4\", function (error, target) {\n        if (error)\n            if (error instanceof ping.RequestTimedOutError)\n                console.log (target + \": Not alive\");\n            else\n                console.log (target + \": \" + error.toString ());\n        else\n            console.log (target + \": Alive\");\n    });\n\nIn addition to the the `ping.RequestTimedOutError` class, the following errors\nare also exported by this module to wrap ICMP error responses:\n\n * `DestinationUnreachableError`\n * `PacketTooBigError`\n * `Parameter
 ProblemError`\n * `RedirectReceivedError`\n * `SourceQuenchError`\n * `TimeExceededError`\n\nThese errors are typically reported by hosts other than the intended target.\nIn all cases each class exposes a `source` attribute which will specify the\nhost who reported the error (which could be the intended target).  This will\nalso be included in the errors `message` attribute, i.e.:\n\n    $ sudo node example/ping-ttl.js 1 192.168.2.10 192.168.2.20 192.168.2.30\n    192.168.2.10: Alive\n    192.168.2.20: TimeExceededError: Time exceeded (source=192.168.1.1)\n    192.168.2.30: Not alive\n\nThe `Session` class will emit an `error` event for any other error not\ndirectly associated with a request.  This is typically an instance of the\n`Error` class with the errors `message` attribute specifying the reason.\n\n# Packet Size\n\nBy default ICMP echo request packets sent by this module are 16 bytes in size.\nSome implementations cannot cope with such small ICMP echo requests.  For\nexample,
  some implementations will return an ICMP echo reply, but will include\nan incorrect ICMP checksum.\n\nThis module exposes a `packetSize` option to the `createSession()` method which\nspecifies how big ICMP echo request packets should be:\n\n    var session = ping.createSession ({packetSize: 64});\n\n# Round Trip Times\n\nSome callbacks used by methods exposed by this module provide two instances of\nthe JavaScript `Date` class specifying when the first ping was sent for a\nrequest, and when a request completed.\n\nThese parameters are typically named `sent` and `rcvd`, and are provided to\nhelp round trip time calculation.\n\nA request can complete in one of two ways.  In the first, a ping response is\nreceived and `rcvd - sent` will yield the round trip time for the request in\nmilliseconds.\n\nIn the second, no ping response is received resulting in a request time out.\nIn this case `rcvd - sent` will yield the total time spent waiting for each\nretry to timeout if any.  For exam
 ple, if the `retries` option to the\n`createSession()` method was specified as `2` and `timeout` as `2000` then\n`rcvd - sent` will yield more than `6000` milliseconds.\n\nAlthough this module provides instances of the `Date` class to help round trip\ntime calculation the dates and times represented in each instance should not be\nconsidered 100% accurate.\n\nEnvironmental conditions can affect when a date and time is actually\ncalculated, e.g. garbage collection introducing a delay or the receipt of many\npackets at once.  There are also a number of functions through which received\npackets must pass, which can also introduce a slight variable delay.\n\nThroughout development experience has shown that, in general the smaller the\nround trip time the less accurate it will be - but the information is still\nuseful nonetheless.\n\n# Constants\n\nThe following sections describe constants exported and used by this module.\n\n## ping.NetworkProtocol\n\nThis object contains constants whic
 h can be used for the `networkProtocol`\noption to the `createSession()` function exposed by this module.  This option\nspecifies the IP protocol version to use when creating the raw socket.\n\nThe following constants are defined in this object:\n\n * `IPv4` - IPv4 protocol\n * `IPv6` - IPv6 protocol\n\n# Using This Module\n\nThe `Session` class is used to issue ping and trace route requests to many\nhosts.  This module exports the `createSession()` function which is used to\ncreate instances of the `Session` class.\n\n## ping.createSession ([options])\n\nThe `createSession()` function instantiates and returns an instance of the\n`Session` class:\n\n    // Default options\n    var options = {\n        networkProtocol: ping.NetworkProtocol.IPv4,\n        packetSize: 16,\n        retries: 1,\n        sessionId: (process.pid % 65535),\n        timeout: 2000,\n        ttl: 128\n    };\n    \n    var session = ping.createSession (options);\n\nThe optional `options` parameter is an object
 , and can contain the following\nitems:\n\n * `networkProtocol` - Either the constant `ping.NetworkProtocol.IPv4` or the\n   constant `ping.NetworkProtocol.IPv6`, defaults to the constant\n   `ping.NetworkProtocol.IPv4`\n * `packetSize` - How many bytes each ICMP echo request packet should be,\n   defaults to `16`, if the value specified is less that `12` then the value\n   `12` will be used (8 bytes are required for the ICMP packet itself, then 4\n   bytes are required to encode a unique session ID in the request and response\n   packets)\n * `retries` - Number of times to re-send a ping requests, defaults to `1`\n * `sessionId` - A unique ID used to identify request and response packets sent\n   by this instance of the `Session` class, valid numbers are in the range of\n   `1` to `65535`, defaults to the value of `process.pid % 65535`\n * `timeout` - Number of milliseconds to wait for a response before re-trying\n   or failing, defaults to `2000`\n * `ttl` - Value to use for the I
 P header time to live field, defaults to `128`\n\nAfter creating the ping `Session` object an underlying raw socket will be\ncreated.  If the underlying raw socket cannot be opened an exception with be\nthrown.  The error will be an instance of the `Error` class.\n\nSeperate instances of the `Session` class must be created for IPv4 and IPv6.\n\n## session.on (\"close\", callback)\n\nThe `close` event is emitted by the session when the underlying raw socket\nis closed.\n\nNo arguments are passed to the callback.\n\nThe following example prints a message to the console when the underlying raw\nsocket is closed:\n\n    session.on (\"close\", function () {\n        console.log (\"socket closed\");\n    });\n\n## session.on (\"error\", callback)\n\nThe `error` event is emitted by the session when the underlying raw socket\nemits an error.\n\nThe following arguments will be passed to the `callback` function:\n\n * `error` - An instance of the `Error` class, the exposed `message` attribute
 \n   will contain a detailed error message.\n\nThe following example prints a message to the console when an error occurs\nwith the underlying raw socket, the session is then closed:\n\n    session.on (\"error\", function (error) {\n        console.log (error.toString ());\n        session.close ();\n    });\n\n## session.close ()\n\nThe `close()` method closes the underlying raw socket, and cancels all\noutstanding requsts.\n\nThe calback function for each outstanding ping requests will be called.  The\nerror parameter will be an instance of the `Error` class, and the `message`\nattribute set to `Socket forcibly closed`.\n\nThe sessoin can be re-used simply by submitting more ping requests, a new raw\nsocket will be created to serve the new ping requests.  This is a way in which\nto clear outstanding requests.\n\nThe following example submits a ping request and prints the target which\nsuccessfully responded first, and then closes the session which will clear the\nother outstanding
  ping requests.\n\n    var targets = [\"1.1.1.1\", \"2.2.2.2\", \"3.3.3.3\"];\n    \n    for (var i = 0; i < targets.length; i++) {\n        session.pingHost (targets[i], function (error, target) {\n            if (! error) {\n                console.log (target);\n                session.close (); \n            }\n        });\n    }\n\n## session.pingHost (target, callback)\n\nThe `pingHost()` method sends a ping request to a remote host.\n\nThe `target` parameter is the dotted quad formatted IP address of the target\nhost for IPv4 sessions, or the compressed formatted IP address of the target\nhost for IPv6 sessions.\n\nThe `callback` function is called once the ping requests is complete.  The\nfollowing arguments will be passed to the `callback` function:\n\n * `error` - Instance of the `Error` class or a sub-class, or `null` if no\n   error occurred\n * `target` - The target parameter as specified in the request\n   still be the target host and NOT the responding gateway\n * `se
 nt` - An instance of the `Date` class specifying when the first ping\n   was sent for this request (refer to the Round Trip Time section for more\n   information)\n * `rcvd` - An instance of the `Date` class specifying when the request\n   completed (refer to the Round Trip Time section for more information)\n\nThe following example sends a ping request to a remote host:\n\n    var target = \"fe80::a00:27ff:fe2a:3427\";\n\n    session.pingHost (target, function (error, target, sent, rcvd) {\n        var ms = rcvd - sent;\n        if (error)\n            console.log (target + \": \" + error.toString ());\n        else\n            console.log (target + \": Alive (ms=\" + ms + \")\");\n    });\n\n## session.traceRoute (target, ttl, feedCallback, doneCallback)\n\nThe `traceRoute()` method provides similar functionality to the trace route\nutility typically provided with most networked operating systems.\n\nThe `target` parameter is the dotted quad formatted IP address of the target\nho
 st for IPv4 sessions, or the compressed formatted IP address of the target\nhost for IPv6 sessions.  The optional `ttl` parameter specifies the maximum\nnumber of hops used by the trace route and defaults to the `ttl` options\nparameter as defined by the `createSession()` method.\n\nSome hosts do not respond to ping requests when the time to live is `0`, that\nis they will not send back an time exceeded error response.  Instead of\nstopping the trace route at the first time out this method will move on to the\nnext hop, by increasing the time to live by 1.  It will do this 2 times,\nmeaning that a trace route will continue until the target host responds or at\nmost 3 request time outs are experienced.\n\nEach requst is subject to the `retries` and `timeout` option parameters to the\n`createSession()` method.  That is, requests will be retried per hop as per\nthese parameters.\n\nThis method will not call a single callback once the trace route is complete.\nInstead the `feedCallback`
  function will be called each time a ping response is\nreceived or a time out occurs. The following arguments will be passed to the\n`feedCallback` function:\n\n * `error` - Instance of the `Error` class or a sub-class, or `null` if no\n   error occurred\n * `target` - The target parameter as specified in the request\n * `ttl` - The time to live used in the request which triggered this respinse\n * `sent` - An instance of the `Date` class specifying when the first ping\n   was sent for this request (refer to the Round Trip Time section for more\n   information)\n * `rcvd` - An instance of the `Date` class specifying when the request\n   completed (refer to the Round Trip Time section for more information)\n\nOnce a ping response has been received from the target, or more than three\nrequest timed out errors are experienced, the `doneCallback` function will be\ncalled. The following arguments will be passed to the `doneCallback` function:\n\n * `error` - Instance of the `Error` class
  or a sub-class, or `null` if no\n   error occurred\n * `target` - The target parameter as specified in the request\n\nOnce the `doneCallback` function has been called the request is complete and\nthe `requestCallback` function will no longer be called.\n\nIf the `feedCallback` function returns a true value when called the trace route\nwill stop and the `doneCallback` will be called.\n\nThe following example initiates a trace route to a remote host:\n\n    function doneCb (error, target) {\n        if (error)\n            console.log (target + \": \" + error.toString ());\n        else\n            console.log (target + \": Done\");\n    }\n\n    function feedCb (error, target, ttl, sent, rcvd) {\n        var ms = rcvd - sent;\n        if (error) {\n            if (error instanceof ping.TimeExceededError) {\n                console.log (target + \": \" + error.source + \" (ttl=\"\n                        + ttl + \" ms=\" + ms +\")\");\n            } else {\n                console.l
 og (target + \": \" + error.toString ()\n                        + \" (ttl=\" + ttl + \" ms=\" + ms +\")\");\n            }\n        } else {\n            console.log (target + \": \" + target + \" (ttl=\" + ttl\n                    + \" ms=\" + ms +\")\");\n        }\n    }\n\n    session.traceRoute (\"192.168.10.10\", 10, feedCb, doneCb);\n\n# Example Programs\n\nExample programs are included under the modules `example` directory.\n\n# Bugs & Known Issues\n\nNone, yet!\n\nBug reports should be sent to <st...@gmail.com>.\n\n# Changes\n\n## Version 1.0.0 - 03/02/2013\n\n * Initial release\n\n## Version 1.0.1 - 04/02/2013\n\n * Minor corrections to the README.md\n * Add note to README.md about error handling\n * Timed out errors are now instances of the `ping.RequestTimedOutError`\n   object\n\n## Version 1.0.2 - 11/02/2013\n\n * The RequestTimedOutError class is not being exported\n\n## Version 1.1.0 - 13/02/2013\n\n * Support IPv6\n\n## Version 1.1.1 - 15/02/2013\n\n *
  The `ping.Session.close()` method was not undefining the sessions raw\n   socket after closing\n * Return self from the `pingHost()` method to chain method calls \n\n## Version 1.1.2 - 04/03/2013\n\n * Use the `raw.Socket.pauseRecv()` and `raw.Socket.resumeRecv()` methods\n   instead of closing a socket when there are no more outstanding requests\n\n## Version 1.1.3 - 07/03/2013\n\n * Sessions were limited to sending 65535 ping requests\n\n## Version 1.1.4 - 09/04/2013\n\n * Add the `packetSize` option to the `createSession()` method to specify how\n   many bytes each ICMP echo request packet should be\n\n## Version 1.1.5 - 17/05/2013\n\n * Incorrectly parsing ICMP error responses resulting in responses matching\n   the wrong request\n * Use a unique session ID per instance of the `Session` class to identify\n   requests and responses sent by a session\n * Added the (internal) `_debugRequest()` and `_debugResponse()` methods, and\n   the `_debug` option to the `createSession()` met
 hod\n * Added example programs `ping-ttl.js` and `ping6-ttl.js`\n * Use MIT license instead of GPL\n\n## Version 1.1.6 - 17/05/2013\n\n * Session IDs are now 2 bytes (previously 1 byte), and request IDs are also\n   now 2 bytes (previously 3 bytes)\n * Each ICMP error response now has an associated error class (e.g. the\n   `Time exceeded` response maps onto the `ping.TimeExceededError` class)\n * Call request callbacks with an error when there are no free request IDs\n   because of too many outstanding requests\n\n## Version 1.1.7 - 19/05/2013\n\n * Added the `traceRoute()` method\n * Added the `ttl` option parameter to the `createSession()` method, and\n   updated the example programs `ping-ttl.js` and `ping6-ttl.js` to use it\n * Response callback for `pingHost()` now includes two instances of the\n   `Date` class to specify when a request was sent and a response received\n\n## Version 1.1.8 - 01/07/2013\n\n * Use `raw.Socket.createChecksum()` instead of automatic checksum genera
 tion\n\n## Version 1.1.9 - 01/07/2013\n\n * Use `raw.Socket.writeChecksum()` instead of manually rendering checksums\n\n# Roadmap\n\nSuggestions and requirements should be sent to <st...@gmail.com>.\n\n# License\n\nCopyright (c) 2013 Stephen Vickers\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNE
 SS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n# Author\n\nStephen Vickers <st...@gmail.com>\n",
-  "readmeFilename": "README.md",
-  "_id": "net-ping@1.1.9",
-  "dist": {
-    "shasum": "7e70d3a2a766b060d281b17686e94ff4948e26c0"
-  },
-  "_from": "net-ping@",
-  "_resolved": "https://registry.npmjs.org/net-ping/-/net-ping-1.1.9.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/.npmignore b/blackberry10/node_modules/plugman/.npmignore
deleted file mode 100644
index 9daa824..0000000
--- a/blackberry10/node_modules/plugman/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/.reviewboardrc
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/.reviewboardrc b/blackberry10/node_modules/plugman/.reviewboardrc
deleted file mode 100644
index 30e9587..0000000
--- a/blackberry10/node_modules/plugman/.reviewboardrc
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Settings for post-review (used for uploading diffs to reviews.apache.org).
-#
-GUESS_FIELDS = True
-OPEN_BROWSER = True
-TARGET_GROUPS = 'cordova'
-REVIEWBOARD_URL = 'http://reviews.apache.org'
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/LICENSE b/blackberry10/node_modules/plugman/LICENSE
deleted file mode 100644
index 45f03a3..0000000
--- a/blackberry10/node_modules/plugman/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-   Copyright 2012 Andrew Lunny, Adobe Systems
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/README.md b/blackberry10/node_modules/plugman/README.md
deleted file mode 100644
index 5f366e4..0000000
--- a/blackberry10/node_modules/plugman/README.md
+++ /dev/null
@@ -1,163 +0,0 @@
-# plugman
-
-A command line tool to install and uninstall plugins for use with [Apache Cordova](http://cordova.io) projects.
-
-This document defines tool usage.
-
-## Plugin Specification
-
---&gt; [plugin_spec.md](plugin_spec.md) &lt;--
-
-## Quickstart
-
-    npm install -g plugman
-
-## Design Goals
-
-* Facilitate programmatic installation and manipulation of plugins
-* Detail the dependencies and components of individual plugins
-* Allow code reuse between different target platforms
-
-## Supported Platforms
-
-* iOS
-* Android
-* BlackBerry 10
-* Windows Phone (7+8)
-
-## Command Line Usage
-
-    plugman --platform <ios|android|blackberry10|wp7|wp8> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www <directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]
-    plugman --uninstall --platform <ios|android|blackberr10|wp7|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
-
-* Using minimum parameters, installs a plugin into a cordova project. You must specify a platform and cordova project location for that platform. You also must specify a plugin, with the different `--plugin` parameter forms being:
-  * `name`: The directory name where the plugin contents exist. This must be an existing directory under the `--plugins_dir` path (see below for more info).
-  * `url`: A URL starting with https:// or git://, pointing to a valid git repository that is clonable and contains a `plugin.xml` file. The contents of this repository would be copied into the `--plugins_dir`.
-  * `path`: A path to a directory containing a valid plugin which includes a `plugin.xml` file. This path's contents will be copied into the `--plugins_dir`.
-* `--uninstall`: Uninstalls an already-`--install`'ed plugin from a cordova project. Specify the plugin ID.
-
-Other parameters: 
-
-* `--plugins_dir` defaults to `<project>/cordova/plugins`, but can be any directory containing a subdirectory for each fetched plugin.
-* `--www` defaults to the project's `www` folder location, but can be any directory that is to be used as cordova project application web assets.
-* `--variable` allows to specify certain variables at install time, necessary for certain plugins requiring API keys or other custom, user-defined parameters. Please see the [plugin specification](plugin_spec.md) for more information.
-
-## Node Module Usage
-
-    node
-    > require('plugman')
-    { install: [Function: installPlugin],
-      uninstall: [Function: uninstallPlugin],
-      fetch: [Function: fetchPlugin],
-      prepare: [Function: handlePrepare] }
-
-### `install` method
-
-    module.exports = function installPlugin(platform, project_dir, id, plugins_dir, subdir, cli_variables, www_dir, callback) {
-
-Installs a plugin into a specified cordova project of a specified platform.
-
- * `platform`: one of `android`, `ios`, `blackberry10`, `wp7` or `wp8`
- * `project_dir`: path to an instance of the above specified platform's cordova project
- * `id`: a string representing the `id` of the plugin, a path to a cordova plugin with a valid `plugin.xml` file, or an `https://` or `git://` url to a git repository of a valid cordova plugin
- * `plugins_dir`: path to directory where plugins will be stored, defaults to `<project_dir>/cordova/plugins`
- * `subdir`: subdirectory within the plugin directory to consider as plugin directory root, defaults to `.`
- * `cli_variables`: an object mapping cordova plugin specification variable namess (see [plugin specification](plugin_spec.md)) to values 
- * `www_dir`: path to directory where web assets are to be copied to, defaults to the specified project directory's `www` dir (dependent on platform)
- * `callback`: callback to invoke once complete. If specified, will pass in an error object as a first parameter if the action failed. If not and an error occurs, `plugman` will throw the error
-
-### `uninstall` method
-
-    module.exports = function uninstallPlugin(platform, project_dir, id, plugins_dir, cli_variables, www_dir, callback) {
-
-Uninstalls a previously-installed cordova plugin from a specified cordova project of a specified platform.
-
- * `platform`: one of `android`, `ios`, `blackberry10`, `wp7` or `wp8`
- * `project_dir`: path to an instance of the above specified platform's cordova project
- * `id`: a string representing the `id` of the plugin
- * `plugins_dir`: path to directory where plugins are stored, defaults to `<project_dir>/cordova/plugins`
- * `subdir`: subdirectory within the plugin directory to consider as plugin directory root, defaults to `.`
- * `cli_variables`: an object mapping cordova plugin specification variable namess (see [plugin specification](plugin_spec.md)) to values 
- * `www_dir`: path to directory where web assets are to be copied to, defaults to the specified project directory's `www` dir (dependent on platform)
- * `callback`: callback to invoke once complete. If specified, will pass in an error object as a first parameter if the action failed. If not and an error occurs, `plugman` will throw the error
-
-### `fetch` method
-
-Copies a cordova plugin into a single location that plugman uses to track which plugins are installed into a project.
-
-    module.exports = function fetchPlugin(plugin_dir, plugins_dir, link, subdir, git_ref, callback) {
-
- * `plugin_dir`: path or URL to a plugin directory/repository
- * `plugins_dir`: path housing all plugins used in this project
- * `link`: if `plugin_dir` points to a local path, will create a symbolic link to that folder instead of copying into `plugins_dir`, defaults to `false`
- * `subdir`: subdirectory within the plugin directory to consider as plugin directory root, defaults to `.`
- * `gitref`: if `plugin_dir` points to a URL, this value will be used to pass into `git checkout` after the repository is cloned, defaults to `HEAD`
- * `callback`: callback to invoke once complete. If specified, will pass in an error object as a first parameter if the action failed. If not and an error occurs, `plugman` will throw the error
-
-### `prepare` method
-
-Finalizes plugin installation by making configuration file changes and setting up a JavaScript loader for js-module support.
-
-    module.exports = function handlePrepare(project_dir, platform, plugins_dir) {
-
- * `project_dir`: path to an instance of the above specified platform's cordova project
- * `platform`: one of `android`, `ios`, `blackberry10`, `wp7` or `wp8`
- * `plugins_dir`: path housing all plugins used in this project
-
-## Example Plugins
-
-- Google has a [bunch of plugins](https://github.com/MobileChromeApps/chrome-cordova/tree/master/plugins) which are maintained actively by a contributor to plugman
-- Adobe maintains plugins for its Build cloud service, which are open sourced and [available on GitHub](https://github.com/phonegap-build)
-- BlackBerry has a [bunch of plugins](https://github.com/blackberry/cordova-blackberry/tree/master/blackberry10/plugins) offering deep platform integration
-
-## Development
-
-Basic installation:
-
-    git clone https://git-wip-us.apache.org/repos/asf/cordova-plugman.git
-    cd cordova-plugman
-    npm install -g
-
-Linking the global executable to the git repo:
-
-    git clone https://git-wip-us.apache.org/repos/asf/cordova-plugman.git
-    cd cordova-plugman
-    npm install
-    sudo npm link
-
-### Running Tests
-
-    npm test
-
-## Plugin Directory Structure
-
-A plugin is typically a combination of some web/www code, and some native code.
-However, plugins may have only one of these things - a plugin could be a single
-JavaScript file, or some native code with no corresponding JavaScript.
-
-Here is a sample plugin named foo with android and ios platforms support, and 2 www assets.
-
-```
-foo-plugin/
-|- plugin.xml     # xml-based manifest
-|- src/           # native source for each platform
-|  |- android/
-|  |  `- Foo.java
-|  `- ios/
-|     |- CDVFoo.h
-|     `- CDVFoo.m
-|- README.md
-`- www/
-   |- foo.js
-   `- foo.png
-```
-
-This structure is suggested, but not required.
-
-## Contributors
-
-See the [package.json](package.json) file for attribution notes.
-
-## License
-
-Apache License 2.0

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/doc/help.txt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/doc/help.txt b/blackberry10/node_modules/plugman/doc/help.txt
deleted file mode 100644
index 412b3ba..0000000
--- a/blackberry10/node_modules/plugman/doc/help.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-plugman installs and uninstalls plugin.xml-compatible cordova plugins into cordova-generated projects.
-
-Usage
-=====
-
-Install a plugin
-----------------
-
-    $ plugman --platform <platform> --project <directory> --plugin <plugin> [--variable NAME=VALUE]
-
-Parameters: 
-
- - <platform>: One of android, ios, blackberry10, wp7 or wp8
- - project <directory>: Path reference to a cordova-generated project of the platform you specify
- - plugin <plugin>: One of a path reference to a local copy of a plugin, or a remote https: or git: URL pointing to a cordova plugin
- - variable NAME=VALUE: Some plugins require install-time variables to be defined. These could be things like API keys/tokens or other app-specific variables.
-
-Uninstall a plugin
-------------------
-
-    $ plugman --uninstall --platform <platform> --project <directory> --plugin <plugin-id>
-
-Parameters:
- - plugin <plugin-id>: The plugin to remove, identified by its id (see the plugin.xml's <plugin id> attribute)
-
-Optional parameters
--------------------
-
- - www <directory>: www assets for the plugin will be installed into this directory. Default is to install into the standard www directory for the platform specified
- - plugins_dir <directory>: a copy of the plugin will be stored in this directory. Default is to install into the <project directory>/plugins folder
-
-Optional flags
---------------
-
- --debug : Verbose mode


[12/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/iTunes-small.xml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/iTunes-small.xml b/blackberry10/node_modules/plugman/node_modules/plist/tests/iTunes-small.xml
deleted file mode 100644
index da0e6bc..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/iTunes-small.xml
+++ /dev/null
@@ -1,1704 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>Major Version</key><integer>1</integer>
-	<key>Minor Version</key><integer>1</integer>
-	<key>Application Version</key><string>9.0.3</string>
-	<key>Features</key><integer>5</integer>
-	<key>Show Content Ratings</key><true/>
-	<key>Music Folder</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/</string>
-	<key>Library Persistent ID</key><string>6F81D37F95101437</string>
-	<key>Tracks</key>
-	<dict>
-		<key>96</key>
-		<dict>
-			<key>Track ID</key><integer>96</integer>
-			<key>Name</key><string>EXP</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>2317095</integer>
-			<key>Total Time</key><integer>115617</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T04:42:36Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Skip Count</key><integer>1</integer>
-			<key>Skip Date</key><date>2010-02-22T23:30:15Z</date>
-			<key>Persistent ID</key><string>E4A63A7D3E89DBDF</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/01%20EXP.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>98</key>
-		<dict>
-			<key>Track ID</key><integer>98</integer>
-			<key>Name</key><string>Up From The Skies</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3552687</integer>
-			<key>Total Time</key><integer>177397</integer>
-			<key>Track Number</key><integer>2</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T14:22:57Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>3</integer>
-			<key>Play Date</key><integer>3349908136</integer>
-			<key>Play Date UTC</key><date>2010-02-25T09:02:16Z</date>
-			<key>Persistent ID</key><string>91D3875329AE6FAE</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/02%20Up%20From%20The%20Skies.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>100</key>
-		<dict>
-			<key>Track ID</key><integer>100</integer>
-			<key>Name</key><string>Spanish Castle Magic</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3718303</integer>
-			<key>Total Time</key><integer>185678</integer>
-			<key>Track Number</key><integer>3</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T04:36:55Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3349701378</integer>
-			<key>Play Date UTC</key><date>2010-02-22T23:36:18Z</date>
-			<key>Persistent ID</key><string>85E821CD210991D4</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/03%20Spanish%20Castle%20Magic.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>102</key>
-		<dict>
-			<key>Track ID</key><integer>102</integer>
-			<key>Name</key><string>Wait Until Tomorrow</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3644116</integer>
-			<key>Total Time</key><integer>181968</integer>
-			<key>Track Number</key><integer>4</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T14:22:31Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3349701560</integer>
-			<key>Play Date UTC</key><date>2010-02-22T23:39:20Z</date>
-			<key>Persistent ID</key><string>E08451DAFE2C4CDB</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/04%20Wait%20Until%20Tomorrow.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>104</key>
-		<dict>
-			<key>Track ID</key><integer>104</integer>
-			<key>Name</key><string>Ain't No Telling</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>2197454</integer>
-			<key>Total Time</key><integer>109635</integer>
-			<key>Track Number</key><integer>5</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T04:42:49Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3349701670</integer>
-			<key>Play Date UTC</key><date>2010-02-22T23:41:10Z</date>
-			<key>Persistent ID</key><string>532B79B4E0A7FEDB</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/05%20Ain't%20No%20Telling.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>106</key>
-		<dict>
-			<key>Track ID</key><integer>106</integer>
-			<key>Name</key><string>Little Wing</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>2952393</integer>
-			<key>Total Time</key><integer>147382</integer>
-			<key>Track Number</key><integer>6</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T10:06:03Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3349908296</integer>
-			<key>Play Date UTC</key><date>2010-02-25T09:04:56Z</date>
-			<key>Persistent ID</key><string>77D07266F04B6994</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/06%20Little%20Wing.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>108</key>
-		<dict>
-			<key>Track ID</key><integer>108</integer>
-			<key>Name</key><string>If 6 Was 9</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>6674842</integer>
-			<key>Total Time</key><integer>333505</integer>
-			<key>Track Number</key><integer>7</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T06:39:09Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Persistent ID</key><string>3E7764A9FF51A43E</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/07%20If%206%20Was%209.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>110</key>
-		<dict>
-			<key>Track ID</key><integer>110</integer>
-			<key>Name</key><string>You Got Me Floatin'</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3354679</integer>
-			<key>Total Time</key><integer>167497</integer>
-			<key>Track Number</key><integer>8</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T09:53:19Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Persistent ID</key><string>77F9E16E1A27D117</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/08%20You%20Got%20Me%20Floatin'.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>112</key>
-		<dict>
-			<key>Track ID</key><integer>112</integer>
-			<key>Name</key><string>Castles Made Of Sand</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3346842</integer>
-			<key>Total Time</key><integer>167105</integer>
-			<key>Track Number</key><integer>9</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T09:59:58Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348245334</integer>
-			<key>Play Date UTC</key><date>2010-02-06T03:08:54Z</date>
-			<key>Persistent ID</key><string>CC85AD893315D8F3</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/09%20Castles%20Made%20Of%20Sand.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>114</key>
-		<dict>
-			<key>Track ID</key><integer>114</integer>
-			<key>Name</key><string>She's So Fine</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Noel Redding</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3186450</integer>
-			<key>Total Time</key><integer>159085</integer>
-			<key>Track Number</key><integer>10</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T10:06:13Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Persistent ID</key><string>40F80094B78C21A9</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/10%20She's%20So%20Fine.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>116</key>
-		<dict>
-			<key>Track ID</key><integer>116</integer>
-			<key>Name</key><string>One Rainy Wish</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4453912</integer>
-			<key>Total Time</key><integer>222458</integer>
-			<key>Track Number</key><integer>11</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T04:34:42Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3349908789</integer>
-			<key>Play Date UTC</key><date>2010-02-25T09:13:09Z</date>
-			<key>Persistent ID</key><string>1EF98FE4F90860E3</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/11%20One%20Rainy%20Wish.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>118</key>
-		<dict>
-			<key>Track ID</key><integer>118</integer>
-			<key>Name</key><string>Little Miss Lover</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>2883430</integer>
-			<key>Total Time</key><integer>143934</integer>
-			<key>Track Number</key><integer>12</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T04:40:43Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:30Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3349700454</integer>
-			<key>Play Date UTC</key><date>2010-02-22T23:20:54Z</date>
-			<key>Persistent ID</key><string>979BB1910DF12FA4</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/12%20Little%20Miss%20Lover.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>120</key>
-		<dict>
-			<key>Track ID</key><integer>120</integer>
-			<key>Name</key><string>Bold As Love</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Axis: Bold As Love</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>5048458</integer>
-			<key>Total Time</key><integer>252186</integer>
-			<key>Track Number</key><integer>13</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T03:15:02Z</date>
-			<key>Date Added</key><date>2010-02-06T03:05:31Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3349700706</integer>
-			<key>Play Date UTC</key><date>2010-02-22T23:25:06Z</date>
-			<key>Persistent ID</key><string>ABB6C4EB0AD99BE4</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Axis_%20Bold%20As%20Love/13%20Bold%20As%20Love.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>122</key>
-		<dict>
-			<key>Track ID</key><integer>122</integer>
-			<key>Name</key><string>The Wind Cries Mary</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4041927</integer>
-			<key>Total Time</key><integer>202083</integer>
-			<key>Track Number</key><integer>3</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-27T02:55:57Z</date>
-			<key>Date Added</key><date>2010-02-06T03:10:33Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348245637</integer>
-			<key>Play Date UTC</key><date>2010-02-06T03:13:57Z</date>
-			<key>Sort Name</key><string>Wind Cries Mary</string>
-			<key>Persistent ID</key><string>80197A45473F89EC</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/03%20The%20Wind%20Cries%20Mary.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>124</key>
-		<dict>
-			<key>Track ID</key><integer>124</integer>
-			<key>Name</key><string>Purple Haze</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Genre</key><string>Pop</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3443729</integer>
-			<key>Total Time</key><integer>172173</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-27T02:56:23Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Persistent ID</key><string>06456C5D35DB482D</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/01%20Purple%20Haze.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>126</key>
-		<dict>
-			<key>Track ID</key><integer>126</integer>
-			<key>Name</key><string>Fire</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3311006</integer>
-			<key>Total Time</key><integer>165537</integer>
-			<key>Track Number</key><integer>2</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T07:00:16Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Persistent ID</key><string>C16EBCC5CAEBE9D4</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/02%20Fire.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>128</key>
-		<dict>
-			<key>Track ID</key><integer>128</integer>
-			<key>Name</key><string>Can You See Me</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3058151</integer>
-			<key>Total Time</key><integer>152894</integer>
-			<key>Track Number</key><integer>4</integer>
-			<key>Year</key><integer>1966</integer>
-			<key>Date Modified</key><date>2010-01-25T19:29:01Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348245962</integer>
-			<key>Play Date UTC</key><date>2010-02-06T03:19:22Z</date>
-			<key>Persistent ID</key><string>CD3CFEF2544357DF</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/04%20Can%20You%20See%20Me.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>130</key>
-		<dict>
-			<key>Track ID</key><integer>130</integer>
-			<key>Name</key><string>51st Anniversary</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3910267</integer>
-			<key>Total Time</key><integer>195500</integer>
-			<key>Track Number</key><integer>5</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-27T02:57:16Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348246157</integer>
-			<key>Play Date UTC</key><date>2010-02-06T03:22:37Z</date>
-			<key>Persistent ID</key><string>B256307FB73DFD2B</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/05%2051st%20Anniversary.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>132</key>
-		<dict>
-			<key>Track ID</key><integer>132</integer>
-			<key>Name</key><string>Hey Joe</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4198128</integer>
-			<key>Total Time</key><integer>209893</integer>
-			<key>Track Number</key><integer>6</integer>
-			<key>Year</key><integer>1966</integer>
-			<key>Date Modified</key><date>2010-01-27T02:58:39Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348246367</integer>
-			<key>Play Date UTC</key><date>2010-02-06T03:26:07Z</date>
-			<key>Persistent ID</key><string>EFE7766FA7E1B8F7</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/06%20Hey%20Joe.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>134</key>
-		<dict>
-			<key>Track ID</key><integer>134</integer>
-			<key>Name</key><string>Stone Free</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4325608</integer>
-			<key>Total Time</key><integer>216267</integer>
-			<key>Track Number</key><integer>7</integer>
-			<key>Year</key><integer>1966</integer>
-			<key>Date Modified</key><date>2010-01-26T16:48:43Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348246583</integer>
-			<key>Play Date UTC</key><date>2010-02-06T03:29:43Z</date>
-			<key>Persistent ID</key><string>B0A50C38343929B5</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/07%20Stone%20Free.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>136</key>
-		<dict>
-			<key>Track ID</key><integer>136</integer>
-			<key>Name</key><string>The Stars That Play With Laugh</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Genre</key><string>Pop</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>5151112</integer>
-			<key>Total Time</key><integer>257541</integer>
-			<key>Track Number</key><integer>8</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-27T02:54:02Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Sort Name</key><string>Stars That Play With Laugh</string>
-			<key>Persistent ID</key><string>891984D14152F8B4</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/08%20The%20Stars%20That%20Play%20With%20Laugh.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>138</key>
-		<dict>
-			<key>Track ID</key><integer>138</integer>
-			<key>Name</key><string>Manic Depression</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4457794</integer>
-			<key>Total Time</key><integer>222876</integer>
-			<key>Track Number</key><integer>9</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-25T04:58:22Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Persistent ID</key><string>2C5DA25ED3188C12</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/09%20Manic%20Depression.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>140</key>
-		<dict>
-			<key>Track ID</key><integer>140</integer>
-			<key>Name</key><string>Highway Chile</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4258216</integer>
-			<key>Total Time</key><integer>212897</integer>
-			<key>Track Number</key><integer>10</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-27T02:58:37Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:01Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Persistent ID</key><string>23C0537D7A558987</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/10%20Highway%20Chile.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>142</key>
-		<dict>
-			<key>Track ID</key><integer>142</integer>
-			<key>Name</key><string>Burning Of The Midnight Lamp</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4364811</integer>
-			<key>Total Time</key><integer>218226</integer>
-			<key>Track Number</key><integer>11</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T16:36:15Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:02Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Persistent ID</key><string>655489D0C55F6B6F</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/11%20Burning%20Of%20The%20Midnight%20Lamp.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>144</key>
-		<dict>
-			<key>Track ID</key><integer>144</integer>
-			<key>Name</key><string>Foxy Lady</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>SMASH HITS</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4032514</integer>
-			<key>Total Time</key><integer>201613</integer>
-			<key>Track Number</key><integer>12</integer>
-			<key>Year</key><integer>1966</integer>
-			<key>Date Modified</key><date>2010-01-27T02:57:08Z</date>
-			<key>Date Added</key><date>2010-02-06T03:14:02Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Persistent ID</key><string>A5449F6016FF8603</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/SMASH%20HITS/12%20Foxy%20Lady.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>194</key>
-		<dict>
-			<key>Track ID</key><integer>194</integer>
-			<key>Name</key><string>Foxy Lady</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3998135</integer>
-			<key>Total Time</key><integer>199888</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T09:24:49Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3348665607</integer>
-			<key>Play Date UTC</key><date>2010-02-10T23:53:27Z</date>
-			<key>Persistent ID</key><string>7E8EE581B46E9C72</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/01%20Foxy%20Lady.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>196</key>
-		<dict>
-			<key>Track ID</key><integer>196</integer>
-			<key>Name</key><string>Manic Depresion</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4450581</integer>
-			<key>Total Time</key><integer>222511</integer>
-			<key>Track Number</key><integer>2</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T10:19:06Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>3</integer>
-			<key>Play Date</key><integer>3348665830</integer>
-			<key>Play Date UTC</key><date>2010-02-10T23:57:10Z</date>
-			<key>Persistent ID</key><string>B5761B106C80D283</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/02%20Manic%20Depresion.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>198</key>
-		<dict>
-			<key>Track ID</key><integer>198</integer>
-			<key>Name</key><string>Red House</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4483691</integer>
-			<key>Total Time</key><integer>223947</integer>
-			<key>Track Number</key><integer>3</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T10:12:52Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3348488681</integer>
-			<key>Play Date UTC</key><date>2010-02-08T22:44:41Z</date>
-			<key>Persistent ID</key><string>EC7FEFA14DBBB959</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/03%20Red%20House.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>200</key>
-		<dict>
-			<key>Track ID</key><integer>200</integer>
-			<key>Name</key><string>Can You See Me</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3057209</integer>
-			<key>Total Time</key><integer>152842</integer>
-			<key>Track Number</key><integer>4</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-25T07:23:09Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3348488833</integer>
-			<key>Play Date UTC</key><date>2010-02-08T22:47:13Z</date>
-			<key>Persistent ID</key><string>410549558954A8A3</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/04%20Can%20You%20See%20Me.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>202</key>
-		<dict>
-			<key>Track ID</key><integer>202</integer>
-			<key>Name</key><string>Love Or Confusion</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3867530</integer>
-			<key>Total Time</key><integer>193358</integer>
-			<key>Track Number</key><integer>5</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T01:16:40Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348486108</integer>
-			<key>Play Date UTC</key><date>2010-02-08T22:01:48Z</date>
-			<key>Persistent ID</key><string>A98A811BB24C6DDB</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/05%20Love%20Or%20Confusion.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>204</key>
-		<dict>
-			<key>Track ID</key><integer>204</integer>
-			<key>Name</key><string>I Don't Like Today</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4703972</integer>
-			<key>Total Time</key><integer>235180</integer>
-			<key>Track Number</key><integer>6</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T10:12:25Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348486344</integer>
-			<key>Play Date UTC</key><date>2010-02-08T22:05:44Z</date>
-			<key>Persistent ID</key><string>BBFE0155E2F879AE</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/06%20I%20Don't%20Like%20Today.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>206</key>
-		<dict>
-			<key>Track ID</key><integer>206</integer>
-			<key>Name</key><string>May This Be Love</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3822599</integer>
-			<key>Total Time</key><integer>191111</integer>
-			<key>Track Number</key><integer>7</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T01:15:51Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>3</integer>
-			<key>Play Date</key><integer>3348666177</integer>
-			<key>Play Date UTC</key><date>2010-02-11T00:02:57Z</date>
-			<key>Persistent ID</key><string>78223889FB353BDC</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/07%20May%20This%20Be%20Love.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>208</key>
-		<dict>
-			<key>Track ID</key><integer>208</integer>
-			<key>Name</key><string>Fire</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3300127</integer>
-			<key>Total Time</key><integer>164989</integer>
-			<key>Track Number</key><integer>8</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T10:19:03Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348666342</integer>
-			<key>Play Date UTC</key><date>2010-02-11T00:05:42Z</date>
-			<key>Persistent ID</key><string>5B469154D5C9EF15</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/08%20Fire.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>210</key>
-		<dict>
-			<key>Track ID</key><integer>210</integer>
-			<key>Name</key><string>Third Stone From The Sun</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>8086499</integer>
-			<key>Total Time</key><integer>404088</integer>
-			<key>Track Number</key><integer>9</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T09:46:24Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Persistent ID</key><string>A4BE1B2AF07ACFA7</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/09%20Third%20Stone%20From%20The%20Sun.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>212</key>
-		<dict>
-			<key>Track ID</key><integer>212</integer>
-			<key>Name</key><string>Remember</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3372442</integer>
-			<key>Total Time</key><integer>168385</integer>
-			<key>Track Number</key><integer>10</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T10:18:49Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3348666822</integer>
-			<key>Play Date UTC</key><date>2010-02-11T00:13:42Z</date>
-			<key>Persistent ID</key><string>0A0880195A74A800</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/10%20Remember.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>214</key>
-		<dict>
-			<key>Track ID</key><integer>214</integer>
-			<key>Name</key><string>Are You Experienced</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>5094188</integer>
-			<key>Total Time</key><integer>254693</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T09:50:18Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348668074</integer>
-			<key>Play Date UTC</key><date>2010-02-11T00:34:34Z</date>
-			<key>Persistent ID</key><string>481A059078D4EFDF</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/Are%20You%20Experienced.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>216</key>
-		<dict>
-			<key>Track ID</key><integer>216</integer>
-			<key>Name</key><string>Hey Joe</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Composer</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4207838</integer>
-			<key>Total Time</key><integer>210155</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-24T04:32:51Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:23Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>EAC-Lame3.92-Extreme</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3348665407</integer>
-			<key>Play Date UTC</key><date>2010-02-10T23:50:07Z</date>
-			<key>Persistent ID</key><string>D8CA36FCF4A8BBA3</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/01%20Hey%20Joe.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>218</key>
-		<dict>
-			<key>Track ID</key><integer>218</integer>
-			<key>Name</key><string>Stone Free</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4327746</integer>
-			<key>Total Time</key><integer>216372</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-24T04:27:53Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:24Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348667436</integer>
-			<key>Play Date UTC</key><date>2010-02-11T00:23:56Z</date>
-			<key>Persistent ID</key><string>237FA7D9D9AD6E7F</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/Stone%20Free.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>220</key>
-		<dict>
-			<key>Track ID</key><integer>220</integer>
-			<key>Name</key><string>Purple Haze</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3431224</integer>
-			<key>Total Time</key><integer>171546</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-25T07:20:51Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:24Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348667607</integer>
-			<key>Play Date UTC</key><date>2010-02-11T00:26:47Z</date>
-			<key>Persistent ID</key><string>D2960E190F8D85B1</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/Purple%20Haze.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>222</key>
-		<dict>
-			<key>Track ID</key><integer>222</integer>
-			<key>Name</key><string>51ST Anniversary</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>3925989</integer>
-			<key>Total Time</key><integer>196284</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-25T23:59:37Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:24Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>4</integer>
-			<key>Play Date</key><integer>3355116022</integer>
-			<key>Play Date UTC</key><date>2010-04-26T15:40:22Z</date>
-			<key>Persistent ID</key><string>0ECCDE0449BB37BA</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/51ST%20Anniversary.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>224</key>
-		<dict>
-			<key>Track ID</key><integer>224</integer>
-			<key>Name</key><string>The Wind Cries Mary</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4016375</integer>
-			<key>Total Time</key><integer>200803</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-26T09:20:34Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:24Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>5</integer>
-			<key>Play Date</key><integer>3355115826</integer>
-			<key>Play Date UTC</key><date>2010-04-26T15:37:06Z</date>
-			<key>Sort Name</key><string>Wind Cries Mary</string>
-			<key>Persistent ID</key><string>C843C532021E12D8</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/The%20Wind%20Cries%20Mary.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>226</key>
-		<dict>
-			<key>Track ID</key><integer>226</integer>
-			<key>Name</key><string>Hightway Chile</string>
-			<key>Artist</key><string>Jimi Hendrix</string>
-			<key>Album Artist</key><string>Jimi Hendrix</string>
-			<key>Album</key><string>Are You Experienced?</string>
-			<key>Genre</key><string>Rock</string>
-			<key>Kind</key><string>MPEG audio file</string>
-			<key>Size</key><integer>4250950</integer>
-			<key>Total Time</key><integer>212532</integer>
-			<key>Year</key><integer>1967</integer>
-			<key>Date Modified</key><date>2010-01-24T04:31:03Z</date>
-			<key>Date Added</key><date>2010-02-08T21:41:24Z</date>
-			<key>Bit Rate</key><integer>160</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3348667820</integer>
-			<key>Play Date UTC</key><date>2010-02-11T00:30:20Z</date>
-			<key>Persistent ID</key><string>0571292CC8452E1E</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/Jimi%20Hendrix/Are%20You%20Experienced_/Hightway%20Chile.mp3</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-	</dict>
-	<key>Playlists</key>
-	<array>
-		<dict>
-			<key>Name</key><string>Library</string>
-			<key>Master</key><true/>
-			<key>Playlist ID</key><integer>230</integer>
-			<key>Playlist Persistent ID</key><string>A69C1BD116F1FECB</string>
-			<key>Visible</key><false/>
-			<key>All Items</key><true/>
-			<key>Playlist Items</key>
-			<array>
-				<dict>
-					<key>Track ID</key><integer>214</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>226</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>220</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>218</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>224</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>222</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>194</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>216</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>196</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>198</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>200</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>202</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>204</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>206</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>208</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>210</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>212</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>96</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>98</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>100</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>102</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>104</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>106</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>108</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>110</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>112</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>114</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>116</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>118</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>120</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>124</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>126</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>122</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>128</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>130</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>132</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>134</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>136</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>138</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>140</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>142</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>144</integer>
-				</dict>
-			</array>
-		</dict>
-		<dict>
-			<key>Name</key><string>Music</string>
-			<key>Playlist ID</key><integer>360</integer>
-			<key>Playlist Persistent ID</key><string>CBEA1F13379F04CD</string>
-			<key>Distinguished Kind</key><integer>4</integer>
-			<key>Music</key><true/>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAQIbEAAAAAAAAAAAAAAAAAAAAB
-			AAAAAAAQIbEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AgAIAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAACAE
-			AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAPAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAEQAAAAAACAgAAAAAAAAAAAAAAAAAAAAAAEAAAAAACAAAAAAAAAAAAAAAAAAAAAA
-			AAEAAAAAAAAAAAAAAAAAAAAAAAAAAA==
-			</data>
-			<key>Playlist Items</key>
-			<array>
-				<dict>
-					<key>Track ID</key><integer>214</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>226</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>220</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>218</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>224</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>222</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>194</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>216</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>196</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>198</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>200</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>202</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>204</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>206</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>208</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>210</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>212</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>96</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>98</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>100</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>102</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>104</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>106</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>108</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>110</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>112</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>114</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>116</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>118</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>120</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>124</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>126</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>122</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>128</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>130</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>132</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>134</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>136</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>138</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>140</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>142</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>144</integer>
-				</dict>
-			</array>
-		</dict>
-		<dict>
-			<key>Name</key><string>Movies</string>
-			<key>Playlist ID</key><integer>430</integer>
-			<key>Playlist Persistent ID</key><string>619F42A5429501E0</string>
-			<key>Distinguished Kind</key><integer>2</integer>
-			<key>Movies</key><true/>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAgAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAggAYAAAAAAAAAAAAAAAAAAAAB
-			AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAA=
-			</data>
-		</dict>
-		<dict>
-			<key>Name</key><string>TV Shows</string>
-			<key>Playlist ID</key><integer>433</integer>
-			<key>Playlist Persistent ID</key><string>2A3B4D9E7DF7E1DC</string>
-			<key>Distinguished Kind</key><integer>3</integer>
-			<key>TV Shows</key><true/>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAgAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAggEQAAAAAAAAAAAAAAAAAAAAB
-			AAAAAAAAAEAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAA=
-			</data>
-		</dict>
-		<dict>
-			<key>Name</key><string>Podcasts</string>
-			<key>Playlist ID</key><integer>349</integer>
-			<key>Playlist Persistent ID</key><string>5893FA607639E850</string>
-			<key>Distinguished Kind</key><integer>10</integer>
-			<key>Podcasts</key><true/>
-			<key>All Items</key><true/>
-		</dict>
-		<dict>
-			<key>Name</key><string>iTunes DJ</string>
-			<key>Playlist ID</key><integer>346</integer>
-			<key>Playlist Persistent ID</key><string>60C45B0A657E0FC9</string>
-			<key>Distinguished Kind</key><integer>22</integer>
-			<key>Party Shuffle</key><true/>
-			<key>All Items</key><true/>
-		</dict>
-		<dict>
-			<key>Name</key><string>90’s Music</string>
-			<key>Playlist ID</key><integer>300</integer>
-			<key>Playlist Persistent ID</key><string>F6C03EFBF4BEB1F4</string>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAB8YAAAAAAAAAAAAAAAAAAAAB
-			AAAAAAAAB88AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgFNMc3QAAQAB
-			AAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAB
-			AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAABAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAIAAAAAAAAAAA
-			AAAAAAAAAAEAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA==
-			</data>
-		</dict>
-		<dict>
-			<key>Name</key><string>Classical Music</string>
-			<key>Playlist ID</key><integer>343</integer>
-			<key>Playlist Persistent ID</key><string>9501F232E8586901</string>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAU0xzdAABAAEAAAACAAAAAQAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAADwAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAABEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAB
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAg
-			AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnpTTHN0AAEAAQAAAAcAAAAB
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAACAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAABIAQwBsAGEAcwBzAGkAYwBhAGwAAAAIAQAAAQAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEABLAGwAYQBzAHMAaQBlAGsAAAAI
-			AQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgBD
-			AGwAYQBzAHMAaQBxAHUAZQAAAAgBAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAOAEsAbABhAHMAcwBpAGsAAAAIAQAAAQAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEABDAGwAYQBzAHMAaQBjAGEAAAAI
-			AQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjCv
-			MOkwtzDDMK8AAAAIAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAADgBDAGwA4QBzAGkAYwBh
-			</data>
-		</dict>
-		<dict>
-			<key>Name</key><string>Music Videos</string>
-			<key>Playlist ID</key><integer>340</integer>
-			<key>Playlist Persistent ID</key><string>8E2AFE4E1C2ABB13</string>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAB
-			AAAAAAAAACAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAA=
-			</data>
-		</dict>
-		<dict>
-			<key>Name</key><string>My Top Rated</string>
-			<key>Playlist ID</key><integer>303</integer>
-			<key>Playlist Persistent ID</key><string>CCC0C1B6CCEA8937</string>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAQAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAB
-			AAAAAAAAADwAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAA=
-			</data>
-		</dict>
-		<dict>
-			<key>Name</key><string>Recently Added</string>
-			<key>Playlist ID</key><integer>337</integer>
-			<key>Playlist Persistent ID</key><string>3440763CBB97D6F6</string>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABELa4tri2uLa7//////////gAAAAAACTqA
-			La4tri2uLa4AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AgAAAQAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAB
-			AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA
-			AAAAAAAA
-			</data>
-		</dict>
-		<dict>
-			<key>Name</key><string>Recently Played</string>
-			<key>Playlist ID</key><integer>334</integer>
-			<key>Playlist Persistent ID</key><string>9C418444F8C06D46</string>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEAAwAAAAIAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAIAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABELa4tri2uLa7//////////gAAAAAACTqA
-			La4tri2uLa4AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AgAAAQAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAB
-			AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA
-			AAAAAAAA
-			</data>
-		</dict>
-		<dict>
-			<key>Name</key><string>Top 25 Most Played</string>
-			<key>Playlist ID</key><integer>306</integer>
-			<key>Playlist Persistent ID</key><string>B8A41A971A08EFE9</string>
-			<key>All Items</key><true/>
-			<key>Smart Info</key>
-			<data>
-			AQEBAwAAABkAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAA==
-			</data>
-			<key>Smart Criteria</key>
-			<data>
-			U0xzdAABAAEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkCAAABAAAAAAAAAAAAAAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAB
-			AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAEAAA
-			AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAA
-			AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA
-			AAAAAAAA
-			</data>
-			<key>Playlist Items</key>
-			<array>
-				<dict>
-					<key>Track ID</key><integer>224</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>222</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>196</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>206</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>98</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>194</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>216</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>198</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>200</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>212</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>100</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>102</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>104</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>106</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>116</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>214</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>226</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>220</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>218</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>202</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>204</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>208</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>112</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>118</integer>
-				</dict>
-				<dict>
-					<key>Track ID</key><integer>120</integer>
-				</dict>
-			</array>
-		</dict>
-	</array>
-</dict>
-</plist>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/sample1.plist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/sample1.plist b/blackberry10/node_modules/plugman/node_modules/plist/tests/sample1.plist
deleted file mode 100644
index 183592b..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/sample1.plist
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.apple.dictionary.MySample</string>
-	<key>CFBundleName</key>
-	<string>MyDictionary</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>DCSDictionaryCopyright</key>
-	<string>Copyright © 2007 Apple Inc.</string>
-	<key>DCSDictionaryManufacturerName</key>
-	<string>Apple Inc.</string>
-	<key>DCSDictionaryFrontMatterReferenceID</key>
-	<string>front_back_matter</string>
-	<key>DCSDictionaryPrefsHTML</key>
-	<string>MyDictionary_prefs.html</string>
-	<key>DCSDictionaryXSL</key>
-	<string>MyDictionary.xsl</string>
-	<key>DCSDictionaryDefaultPrefs</key>
-	<dict>
-		<key>pronunciation</key>
-		<string>0</string>
-		<key>display-column</key>
-		<string>1</string>
-		<key>display-picture</key>
-		<string>1</string>
-		<key>version</key>
-		<string>1</string>
-	</dict>
-</dict>
-</plist>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/sample2.plist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/sample2.plist b/blackberry10/node_modules/plugman/node_modules/plist/tests/sample2.plist
deleted file mode 100644
index 0cabe9c..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/sample2.plist
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>OptionsLabel</key>
-	<string>Product</string>
-	<key>PopupMenu</key>
-	<array>
-		<dict>
-			<key>Key</key>
-			<string>iPhone</string>
-			<key>Title</key>
-			<string>iPhone</string>
-		</dict>
-		<dict>
-			<key>Key</key>
-			<string>iPad</string>
-			<key>Title</key>
-			<string>iPad</string>
-		</dict>
-		<dict>
-			<key>Key</key>
-      <string>
-        <![CDATA[
-        #import &lt;Cocoa/Cocoa.h&gt;
-
-#import &lt;MacRuby/MacRuby.h&gt;
-
-int main(int argc, char *argv[])
-{
-  return macruby_main("rb_main.rb", argc, argv);
-}
-]]>
-</string>
-		</dict>
-	</array>
-	<key>TemplateSelection</key>
-	<dict>
-		<key>iPhone</key>
-		<string>Tab Bar iPhone Application</string>
-		<key>iPad</key>
-		<string>Tab Bar iPad Application</string>
-	</dict>
-</dict>
-</plist>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/test-base64.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-base64.js b/blackberry10/node_modules/plugman/node_modules/plist/tests/test-base64.js
deleted file mode 100644
index fd94b65..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-base64.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * tests for base64 encoding and decoding, used in <data> elements
- */
-
-var path = require('path')
-  , plist = require('../');
-
-exports.testDecodeBase64 = function(test) {
-  var file = path.join(__dirname, 'utf8data.xml');
-  var p = plist.parseFileSync(file);
-  test.equal(p['Smart Info'], '✓ à la mode');
-  test.done();
-}
-
-exports.testDecodeBase64WithNewlines = function(test) {
-  var file = path.join(__dirname, 'utf8data.xml');
-  var p = plist.parseFileSync(file);
-  test.equal(p['Newlines'], '✓ à la mode');
-  test.done();
-}
-
-exports.testBase64Encode = function(test) {
-  var to_write = { yay: '✓ à la mode' };
-  var out = plist.build(to_write);
-  var p = plist.parseStringSync(out);
-  test.equal(p['yay'], '✓ à la mode');
-  test.done();
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/test-big-xml.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-big-xml.js b/blackberry10/node_modules/plugman/node_modules/plist/tests/test-big-xml.js
deleted file mode 100644
index 0be8012..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-big-xml.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var path = require('path')
-  , plist = require('../')
-  , file = path.join(__dirname, 'iTunes-BIG.xml')
-  , startTime = new Date();
-
-exports.textBigXML = function(test) {
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-
-    test.ifError(err);
-
-    test.equal(dicts.length, 1);
-    test.equal(dict['Application Version'], '9.2.1');
-    test.deepEqual(Object.keys(dict), [
-        'Major Version'
-      , 'Minor Version'
-      , 'Application Version'
-      , 'Features'
-      , 'Show Content Ratings'
-      , 'Music Folder'
-      , 'Library Persistent ID'
-      , 'Tracks'
-      , 'Playlists'
-    ]);
-
-    test.done();
-  });
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/test-build.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-build.js b/blackberry10/node_modules/plugman/node_modules/plist/tests/test-build.js
deleted file mode 100644
index f8b2fd4..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-build.js
+++ /dev/null
@@ -1,171 +0,0 @@
-var path = require('path')
-  , fs = require('fs')
-  , plist = require('../');
- 
-/*
-// TODO These assertions fail because CDATA entities get converted in the process
-exports.testBuildFromPlistFile = function(test) {
-  var file = path.join(__dirname, 'sample2.plist');
-
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-    test.ifError(err);
-
-    // Try re-stringifying and re-parsing
-    plist.parseString(plist.build(dict), function(err, dicts2) {
-      test.ifError(err);
-      test.deepEqual(dicts,dicts2);
-      test.done();
-    });
-  });
-}
-*/
-
-
-exports.testNonBase64StringsAsData = function(test) {
-  var test_object = { 'a': 'test stringy thingy', 'b': 'this contains non base64 ✔ ' };
-
-  var result = plist.build(test_object);
-  var DOMParser = require('xmldom').DOMParser;
-  var doc = new DOMParser().parseFromString(result);
-
-  test.equal('a', doc.documentElement.childNodes[1].childNodes[1].childNodes[0].nodeValue);
-  test.equal('string',              doc.documentElement.childNodes[1].childNodes[3].nodeName);
-  test.equal('test stringy thingy', doc.documentElement.childNodes[1].childNodes[3].childNodes[0].nodeValue);
-
-  test.equal('b', doc.documentElement.childNodes[1].childNodes[5].childNodes[0].nodeValue);
-  test.equal ('string', doc.documentElement.childNodes[1].childNodes[7].nodeName);
-  test.equal ('this contains non base64 ✔ ', doc.documentElement.childNodes[1].childNodes[7].childNodes[0].nodeValue);
-
-  test.done();
-}
-
-
-
-exports.testBuildFromObjectWithFunctions = function(test) {
-  var test_object = { 'a': 'test stringy thingy', 'b': function(c, d){ return 'neat'; } };
-
-  // Try stringifying
-  plist.parseString(plist.build(test_object), function(err, dicts) {
-    test.equal(dicts[0].b, undefined);
-    test.equal(dicts[0].a, 'test stringy thingy');
-    test.done();
-  });
-}
-
-
-exports.testBuildFromSmallItunesXML = function(test) {
-  var file = path.join(__dirname, 'iTunes-small.xml');
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-
-    test.ifError(err);
-
-    // Try re-stringifying and re-parsing
-    plist.parseString(plist.build(dict), function(err, dicts2) {
-      test.ifError(err);
-      test.deepEqual(dicts,dicts2);
-      test.done();
-    });
-  });
-}
-
-exports.testBuildAirplayXML = function(test) {
-  var file = path.join(__dirname, 'airplay.xml');
-
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-    test.ifError(err);
-    
-    // Try re-stringifying and re-parsing
-    plist.parseString(plist.build(dict), function(err, dicts2) {
-      test.ifError(err);
-      test.deepEqual(dicts,dicts2);
-      test.done();
-    });
-  });
-}
-
-exports.testCordovaPlist = function(test) {
-  var file = path.join(__dirname, 'Cordova.plist');
-
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-    test.ifError(err);
-    test.equal(dict['TopActivityIndicator'], 'gray');
-    test.equal(dict['Plugins']['Device'], 'CDVDevice');
-
-    // Try re-stringifying and re-parsing
-    plist.parseString(plist.build(dict), function(err, dicts2) {
-      test.ifError(err);
-      test.deepEqual(dicts,dicts2);
-      test.done();
-    });
-  });
-}
-
-exports.testBuildPhoneGapPlist = function(test) {
-  var file = path.join(__dirname, 'Xcode-PhoneGap.plist');
-
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-    test.ifError(err);
-  
-    test.equal(dict['ExternalHosts'][0], "*");
-    test.equal(dict['Plugins']['com.phonegap.accelerometer'], "PGAccelerometer");
-
-    //console.log('like they were', dict);
-    //console.log('hmm', plist.build(dict));
-    // Try re-stringifying and re-parsing
-    plist.parseString(plist.build(dict), function(err, dicts2) {
-      test.ifError(err);
-      test.deepEqual(dicts,dicts2);
-      test.done();
-    });
-  });
-}
-
-exports.testBuildXcodeInfoPlist = function(test) {
-  var file = path.join(__dirname, 'Xcode-Info.plist');
-
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-    test.ifError(err);
-    
-    test.equal(dict['CFBundleAllowMixedLocalizations'], true);
-    test.equal(dict['CFBundleExecutable'], "${EXECUTABLE_NAME}");
-    test.equal(dict['UISupportedInterfaceOrientations~ipad'][0], "UIInterfaceOrientationPortrait");
-
-    // Try re-stringifying and re-parsing
-    plist.parseString(plist.build(dict), function(err, dicts2) {
-      test.ifError(err);
-      test.deepEqual(dicts,dicts2);
-      test.done();
-    });
-  });
-}
-
-
-// this code does a string to string comparison. It's not very useful right 
-// now because CDATA sections arent supported. save for later I guess
-/*
-function flattenXMLForAssert(instr) {
-    return instr.replace(/\s/g,'');
-}
-
-// Builder test B - build plist from JS object, then compare flattened XML against original plist *file* content 
-function testBuildAgainstFile(test, dict, infile) {
-    var doc = plist.build(dict)
-      , fileContent = fs.readFileSync(infile)
-      , s1 = flattenXMLForAssert(doc.toString())
-      , s2 = flattenXMLForAssert(fileContent.toString())
-      , mismatch = '';
-
-    for (var i=0;i<s1.length; i++) {
-        if (s1[i]!==s2[i]) {
-            mismatch = '" at char '+ i;
-            break;
-        }
-    }
-    test.equal(s1, s2, 'file mismatch in "' + infile + mismatch);
-}*/


[05/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/README.md b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/README.md
deleted file mode 100644
index 7a4c17e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/README.md
+++ /dev/null
@@ -1,226 +0,0 @@
-PEG.js
-======
-
-PEG.js is a simple parser generator for JavaScript that produces fast parsers with excellent error reporting. You can use it to process complex data or computer languages and build transformers, interpreters, compilers and other tools easily.
-
-Features
---------
-
-  * Simple and expressive grammar syntax
-  * Integrates both lexical and syntactical analysis
-  * Parsers have excellent error reporting out of the box
-  * Based on [parsing expression grammar](http://en.wikipedia.org/wiki/Parsing_expression_grammar) formalism — more powerful than traditional LL(*k*) and LR(*k*) parsers
-  * Usable [from your browser](http://pegjs.majda.cz/online), from the command line, or via JavaScript API
-
-Getting Started
----------------
-
-[Online version](http://pegjs.majda.cz/online) is the easiest way to generate a parser. Just enter your grammar, try parsing few inputs, and download generated parser code.
-
-Installation
-------------
-
-### Command Line / Server-side
-
-To use command-line version, install [Node.js](http://nodejs.org/) and [npm](http://npmjs.org/) first. You can then install PEG.js:
-
-    $ npm install pegjs
-
-Once installed, you can use the `pegjs` command to generate your parser from a grammar and use the JavaScript API from Node.js.
-
-### Browser
-
-[Download](http://pegjs.majda.cz/#download) the PEG.js library (regular or minified version) and include it in your web page or application using the `<script>` tag.
-
-Generating a Parser
--------------------
-
-PEG.js generates parser from a grammar that describes expected input and can specify what the parser returns (using semantic actions on matched parts of the input). Generated parser itself is a JavaScript object with a simple API.
-
-### Command Line
-
-To generate a parser from your grammar, use the `pegjs` command:
-
-    $ pegjs arithmetics.pegjs
-
-This writes parser source code into a file with the same name as the grammar file but with “.js” extension. You can also specify the output file explicitly:
-
-    $ pegjs arithmetics.pegjs arithmetics-parser.js
-
-If you omit both input and ouptut file, standard input and output are used.
-
-By default, the parser object is assigned to `module.exports`, which makes the output a Node.js module. You can assign it to another variable by passing a variable name using the `-e`/`--export-var` option. This may be helpful if you want to use the parser in browser environment.
-
-### JavaScript API
-
-In Node.js, require the PEG.js parser generator module:
-
-    var PEG = require("pegjs");
-
-In browser, include the PEG.js library in your web page or application using the `<script>` tag. The API will be available through the `PEG` global object.
-
-To generate a parser, call the `PEG.buildParser` method and pass your grammar as a parameter:
-
-    var parser = PEG.buildParser("start = ('a' / 'b')+");
-
-The method will return generated parser object or throw an exception if the grammar is invalid. The exception will contain `message` property with more details about the error.
-
-To get parser’s source code, call the `toSource` method on the parser.
-
-Using the Parser
-----------------
-
-Using the generated parser is simple — just call its `parse` method and pass an input string as a parameter. The method will return a parse result (the exact value depends on the grammar used to build the parser) or throw an exception if the input is invalid. The exception will contain `line`, `column` and `message` properties with more details about the error.
-
-    parser.parse("abba"); // returns ["a", "b", "b", "a"]
-
-    parser.parse("abcd"); // throws an exception
-
-You can also start parsing from a specific rule in the grammar. Just pass the rule name to the `parse` method as a second parameter.
-
-Grammar Syntax and Semantics
-----------------------------
-
-The grammar syntax is similar to JavaScript in that it is not line-oriented and ignores whitespace between tokens. You can also use JavaScript-style comments (`// ...` and `/* ... */`).
-
-Let's look at example grammar that recognizes simple arithmetic expressions like `2*(3+4)`. A parser generated from this grammar computes their values.
-
-    start
-      = additive
-
-    additive
-      = left:multiplicative "+" right:additive { return left + right; }
-      / multiplicative
-
-    multiplicative
-      = left:primary "*" right:multiplicative { return left * right; }
-      / primary
-
-    primary
-      = integer
-      / "(" additive:additive ")" { return additive; }
-
-    integer "integer"
-      = digits:[0-9]+ { return parseInt(digits.join(""), 10); }
-
-On the top level, the grammar consists of *rules* (in our example, there are five of them). Each rule has a *name* (e.g. `integer`) that identifies the rule, and a *parsing expression* (e.g. `digits:[0-9]+ { return parseInt(digits.join(""), 10); }`) that defines a pattern to match against the input text and possibly contains some JavaScript code that determines what happens when the pattern matches successfully. A rule can also contain *human-readable name* that is used in error messages (in our example, only the `integer` rule has a human-readable name). The parsing starts at the first rule, which is also called the *start rule*.
-
-A rule name must be a JavaScript identifier. It is followed by an equality sign (“=”) and a parsing expression. If the rule has a human-readable name, it is written as a JavaScript string between the name and separating equality sign. Rules need to be separated only by whitespace (their beginning is easily recognizable), but a semicolon (“;”) after the parsing expression is allowed.
-
-Rules can be preceded by an *initializer* — a piece of JavaScript code in curly braces (“{” and “}”). This code is executed before the generated parser starts parsing. All variables and functions defined in the initializer are accessible in rule actions and semantic predicates. Curly braces in the initializer code must be balanced.
-
-The parsing expressions of the rules are used to match the input text to the grammar. There are various types of expressions — matching characters or character classes, indicating optional parts and repetition, etc. Expressions can also contain references to other rules. See detailed description below.
-
-If an expression successfully matches a part of the text when running the generated parser, it produces a *match result*, which is a JavaScript value. For example:
-
-  * An expression matching a literal string produces a JavaScript string containing matched part of the input.
-  * An expression matching repeated occurrence of some subexpression produces a JavaScript array with all the matches.
-
-The match results propagate through the rules when the rule names are used in expressions, up to the start rule. The generated parser returns start rule's match result when parsing is successful.
-
-One special case of parser expression is a *parser action* — a piece of JavaScript code inside curly braces (“{” and “}”) that takes match results of some of the the preceding expressions and returns a JavaScript value. This value is considered match result of the preceding expression (in other words, the parser action is a match result transformer).
-
-In our arithmetics example, there are many parser actions. Consider the action in expression `digits:[0-9]+ { return parseInt(digits.join(""), 10); }`. It takes the match result of the expression [0-9]+, which is an array of strings containing digits, as its parameter. It joins the digits together to form a number and converts it to a JavaScript `number` object.
-
-### Parsing Expression Types
-
-There are several types of parsing expressions, some of them containing subexpressions and thus forming a recursive structure:
-
-#### "*literal*"<br>'*literal*'
-
-Match exact literal string and return it. The string syntax is the same as in JavaScript.
-
-#### .
-
-Match exactly one character and return it as a string.
-
-#### [*characters*]
-
-Match one character from a set and return it as a string. The characters in the list can be escaped in exactly the same way as in JavaScript string. The list of characters can also contain ranges (e.g. `[a-z]` means “all lowercase letters”). Preceding the characters with `^` inverts the matched set (e.g. `[^a-z]` means “all character but lowercase letters”).
-
-#### *rule*
-
-Match a parsing expression of a rule recursively and return its match result.
-
-#### ( *expression* )
-
-Match a subexpression and return its match result.
-
-#### *expression* \*
-
-Match zero or more repetitions of the expression and return their match results in an array. The matching is greedy, i.e. the parser tries to match the expression as many times as possible.
-
-#### *expression* +
-
-Match one or more repetitions of the expression and return their match results in an array. The matching is greedy, i.e. the parser tries to match the expression as many times as possible.
-
-#### *expression* ?
-
-Try to match the expression. If the match succeeds, return its match result, otherwise return an empty string.
-
-#### & *expression*
-
-Try to match the expression. If the match succeeds, just return an empty string and do not advance the parser position, otherwise consider the match failed.
-
-#### ! *expression*
-
-Try to match the expression and. If the match does not succeed, just return an empty string and do not advance the parser position, otherwise consider the match failed.
-
-#### & { *predicate* }
-
-The predicate is a piece of JavaScript code that is executed as if it was inside a function. It should return some JavaScript value using the `return` statement. If the returned value evaluates to `true` in boolean context, just return an empty string and do not advance the parser position; otherwise consider the match failed.
-
-The code inside the predicate has access to all variables and functions defined in the initializer at the beginning of the grammar. Curly braces in the predicate code must be balanced.
-
-#### ! { *predicate* }
-
-The predicate is a piece of JavaScript code that is executed as if it was inside a function. It should return some JavaScript value using the `return` statement. If the returned value evaluates to `false` in boolean context, just return an empty string and do not advance the parser position; otherwise consider the match failed.
-
-The code inside the predicate has access to all variables and functions defined in the initializer at the beginning of the grammar. Curly braces in the predicate code must be balanced.
-
-#### *label* : *expression*
-
-Match the expression and remember its match result under given lablel. The label must be a JavaScript identifier.
-
-Labeled expressions are useful together with actions, where saved match results can be accessed by action's JavaScript code.
-
-#### *expression<sub>1</sub>* *expression<sub>2</sub>* ... *expression<sub>n</sub>*
-
-Match a sequence of expressions and return their match results in an array.
-
-#### *expression* { *action* }
-
-Match the expression. If the match is successful, run the action, otherwise consider the match failed.
-
-The action is a piece of JavaScript code that is executed as if it was inside a function. It gets the match results of labeled expressions in preceding expression as its arguments. The action should return some JavaScript value using the `return` statement. This value is considered match result of the preceding expression. The action can return `null` to indicate a match failure.
-
-The code inside the action has access to all variables and functions defined in the initializer at the beginning of the grammar. Curly braces in the action code must be balanced.
-
-#### *expression<sub>1</sub>* / *expression<sub>2</sub>* / ... / *expression<sub>n</sub>*
-
-Try to match the first expression, if it does not succeed, try the second one, etc. Return the match result of the first successfully matched expression. If no expression matches, consider the match failed.
-
-Compatibility
--------------
-
-Both the parser generator and generated parsers should run well in the following environments:
-
-  * Node.js 0.4.4+
-  * IE 6+
-  * Firefox
-  * Chrome
-  * Safari
-  * Opera
-
-Development
------------
-
-  * [Project website](https://pegjs.majda.cz/)
-  * [Source code](https://github.com/dmajda/pegjs)
-  * [Issue tracker](https://github.com/dmajda/pegjs/issues)
-  * [Google Group](http://groups.google.com/group/pegjs)
-  * [Twitter](http://twitter.com/peg_js)
-
-PEG.js is developed by [David Majda](http://majda.cz/) ([@dmajda](http://twitter.com/dmajda)). You are welcome to contribute code. Unless your contribution is really trivial you should get in touch with me first — this can prevent wasted effort on both sides. You can send code both as patch or GitHub pull request.
-
-Note that PEG.js is still very much work in progress. There are no compatibility guarantees until version 1.0.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/VERSION
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/VERSION b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/VERSION
deleted file mode 100644
index b616048..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-0.6.2

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/bin/pegjs
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/bin/pegjs b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/bin/pegjs
deleted file mode 100755
index c24246e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/bin/pegjs
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/env node
-
-var sys = require("sys");
-var fs  = require("fs");
-var PEG = require("../lib/peg");
-
-/* Helpers */
-
-function printVersion() {
-  sys.puts("PEG.js " + PEG.VERSION);
-}
-
-function printHelp() {
-  sys.puts("Usage: pegjs [options] [--] [<input_file>] [<output_file>]");
-  sys.puts("");
-  sys.puts("Generates a parser from the PEG grammar specified in the <input_file> and");
-  sys.puts("writes it to the <output_file>.");
-  sys.puts("");
-  sys.puts("If the <output_file> is omitted, its name is generated by changing the");
-  sys.puts("<input_file> extension to \".js\". If both <input_file> and <output_file> are");
-  sys.puts("omitted, standard input and output are used.");
-  sys.puts("");
-  sys.puts("Options:");
-  sys.puts("  -e, --export-var <variable>  name of the variable where the parser object");
-  sys.puts("                               will be stored (default: \"module.exports\")");
-  sys.puts("  -v, --version                print version information and exit");
-  sys.puts("  -h, --help                   print help and exit");
-}
-
-function exitSuccess() {
-  process.exit(0);
-}
-
-function exitFailure() {
-  process.exit(1);
-}
-
-function abort(message) {
-  sys.error(message);
-  exitFailure();
-}
-
-/* Arguments */
-
-var args = process.argv.slice(2); // Trim "node" and the script path.
-
-function isOption(arg) {
-  return /-.+/.test(arg);
-}
-
-function nextArg() {
-  args.shift();
-}
-
-/* Files */
-
-function readStream(inputStream, callback) {
-  var input = "";
-  inputStream.on("data", function(data) { input += data; });
-  inputStream.on("end", function() { callback(input); });
-}
-
-/* Main */
-
-/* This makes the generated parser a CommonJS module by default. */
-var exportVar = "module.exports";
-
-while (args.length > 0 && isOption(args[0])) {
-  switch (args[0]) {
-    case "-e":
-    case "--export-var":
-      nextArg();
-      if (args.length === 0) {
-        abort("Missing parameter of the -e/--export-var option.");
-      }
-      exportVar = args[0];
-      break;
-
-    case "-v":
-    case "--version":
-      printVersion();
-      exitSuccess();
-      break;
-
-    case "-h":
-    case "--help":
-      printHelp();
-      exitSuccess();
-      break;
-
-    case "--":
-      nextArg();
-      break;
-
-    default:
-      abort("Unknown option: " + args[0] + ".");
-  }
-  nextArg();
-}
-
-switch (args.length) {
-  case 0:
-    var inputStream = process.openStdin();
-    var outputStream = process.stdout;
-    break;
-
-  case 1:
-  case 2:
-    var inputFile = args[0];
-    var inputStream = fs.createReadStream(inputFile);
-    inputStream.on("error", function() {
-      abort("Can't read from file \"" + inputFile + "\".");
-    });
-
-    var outputFile = args.length == 1
-      ? args[0].replace(/\.[^.]*$/, ".js")
-      : args[1];
-    var outputStream = fs.createWriteStream(outputFile);
-    outputStream.on("error", function() {
-      abort("Can't write to file \"" + outputFile + "\".");
-    });
-
-    break;
-
-  default:
-    abort("Too many arguments.");
-}
-
-readStream(inputStream, function(input) {
-  try {
-    var parser = PEG.buildParser(input);
-  } catch (e) {
-    if (e.line !== undefined && e.column !== undefined) {
-      abort(e.line + ":" + e.column + ": " + e.message);
-    } else {
-      abort(e.message);
-    }
-  }
-
-  outputStream.write(exportVar + " = " + parser.toSource() + ";\n");
-  outputStream.end();
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/arithmetics.pegjs
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/arithmetics.pegjs b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/arithmetics.pegjs
deleted file mode 100644
index 52fae2a..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/arithmetics.pegjs
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Classic example grammar, which recognizes simple arithmetic expressions like
- * "2*(3+4)". The parser generated from this grammar then computes their value.
- */
-
-start
-  = additive
-
-additive
-  = left:multiplicative "+" right:additive { return left + right; }
-  / multiplicative
-
-multiplicative
-  = left:primary "*" right:multiplicative { return left * right; }
-  / primary
-
-primary
-  = integer
-  / "(" additive:additive ")" { return additive; }
-
-integer "integer"
-  = digits:[0-9]+ { return parseInt(digits.join(""), 10); }

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/css.pegjs
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/css.pegjs b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/css.pegjs
deleted file mode 100644
index 5593d3c..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/css.pegjs
+++ /dev/null
@@ -1,554 +0,0 @@
-/*
- * CSS parser based on the grammar described at http://www.w3.org/TR/CSS2/grammar.html.
- *
- * The parser builds a tree representing the parsed CSS, composed of basic
- * JavaScript values, arrays and objects (basically JSON). It can be easily
- * used by various CSS processors, transformers, etc.
- *
- * Note that the parser does not handle errors in CSS according to the
- * specification -- many errors which it should recover from (e.g. malformed
- * declarations or unexpected end of stylesheet) are simply fatal. This is a
- * result of straightforward rewrite of the CSS grammar to PEG.js and it should
- * be fixed sometimes.
- */
-
-/* ===== Syntactical Elements ===== */
-
-start
-  = stylesheet:stylesheet comment* { return stylesheet; }
-
-stylesheet
-  = charset:(CHARSET_SYM STRING ";")? (S / CDO / CDC)*
-    imports:(import (CDO S* / CDC S*)*)*
-    rules:((ruleset / media / page) (CDO S* / CDC S*)*)* {
-      var importsConverted = [];
-      for (var i = 0; i < imports.length; i++) {
-        importsConverted.push(imports[i][0]);
-      }
-
-      var rulesConverted = [];
-      for (i = 0; i < rules.length; i++) {
-        rulesConverted.push(rules[i][0]);
-      }
-
-      return {
-        type:    "stylesheet",
-        charset: charset !== "" ? charset[1] : null,
-        imports: importsConverted,
-        rules:   rulesConverted
-      };
-    }
-
-import
-  = IMPORT_SYM S* href:(STRING / URI) S* media:media_list? ";" S* {
-      return {
-        type:  "import_rule",
-        href:  href,
-        media: media !== "" ? media : []
-      };
-    }
-
-media
-  = MEDIA_SYM S* media:media_list "{" S* rules:ruleset* "}" S* {
-      return {
-        type:  "media_rule",
-        media: media,
-        rules: rules
-      };
-    }
-
-media_list
-  = head:medium tail:("," S* medium)* {
-      var result = [head];
-      for (var i = 0; i < tail.length; i++) {
-        result.push(tail[i][2]);
-      }
-      return result;
-    }
-
-medium
-  = ident:IDENT S* { return ident; }
-
-page
-  = PAGE_SYM S* qualifier:pseudo_page?
-    "{" S*
-    declarationsHead:declaration?
-    declarationsTail:(";" S* declaration?)*
-    "}" S* {
-      var declarations = declarationsHead !== "" ? [declarationsHead] : [];
-      for (var i = 0; i < declarationsTail.length; i++) {
-        if (declarationsTail[i][2] !== "") {
-          declarations.push(declarationsTail[i][2]);
-        }
-      }
-
-      return {
-        type:         "page_rule",
-        qualifier:    qualifier !== "" ? qualifier : null,
-        declarations: declarations
-      };
-    }
-
-pseudo_page
-  = ":" ident:IDENT S* { return ident; }
-
-operator
-  = "/" S* { return "/"; }
-  / "," S* { return ","; }
-
-combinator
-  = "+" S* { return "+"; }
-  / ">" S* { return ">"; }
-
-unary_operator
-  = "+"
-  / "-"
-
-property
-  = ident:IDENT S* { return ident; }
-
-ruleset
-  = selectorsHead:selector
-    selectorsTail:("," S* selector)*
-    "{" S*
-    declarationsHead:declaration?
-    declarationsTail:(";" S* declaration?)*
-    "}" S* {
-      var selectors = [selectorsHead];
-      for (var i = 0; i < selectorsTail.length; i++) {
-        selectors.push(selectorsTail[i][2]);
-      }
-
-      var declarations = declarationsHead !== "" ? [declarationsHead] : [];
-      for (i = 0; i < declarationsTail.length; i++) {
-        if (declarationsTail[i][2] !== "") {
-          declarations.push(declarationsTail[i][2]);
-        }
-      }
-
-      return {
-        type:         "ruleset",
-        selectors:    selectors,
-        declarations: declarations
-      };
-    }
-
-selector
-  = left:simple_selector S* combinator:combinator right:selector {
-      return {
-        type:       "selector",
-        combinator: combinator,
-        left:       left,
-        right:      right
-      };
-    }
-  / left:simple_selector S* right:selector {
-      return {
-        type:       "selector",
-        combinator: " ",
-        left:       left,
-        right:      right
-      };
-    }
-  / selector:simple_selector S* { return selector; }
-
-simple_selector
-  = element:element_name
-    qualifiers:(
-        id:HASH { return { type: "ID selector", id: id.substr(1) }; }
-      / class
-      / attrib
-      / pseudo
-    )* {
-      return {
-        type:       "simple_selector",
-        element:    element,
-        qualifiers: qualifiers
-      };
-    }
-  / qualifiers:(
-        id:HASH { return { type: "ID selector", id: id.substr(1) }; }
-      / class
-      / attrib
-      / pseudo
-    )+ {
-      return {
-        type:       "simple_selector",
-        element:    "*",
-        qualifiers: qualifiers
-      };
-    }
-
-class
-  = "." class_:IDENT { return { type: "class_selector", "class": class_ }; }
-
-element_name
-  = IDENT / '*'
-
-attrib
-  = "[" S*
-    attribute:IDENT S*
-    operatorAndValue:(
-      ('=' / INCLUDES / DASHMATCH) S*
-      (IDENT / STRING) S*
-    )?
-    "]" {
-      return {
-        type:      "attribute_selector",
-        attribute: attribute,
-        operator:  operatorAndValue !== "" ? operatorAndValue[0] : null,
-        value:     operatorAndValue !== "" ? operatorAndValue[2] : null
-      };
-    }
-
-pseudo
-  = ":"
-    value:(
-        name:FUNCTION S* params:(IDENT S*)? ")" {
-          return {
-            type:   "function",
-            name:   name,
-            params: params !== "" ? [params[0]] : []
-          };
-        }
-      / IDENT
-    ) {
-      /*
-       * The returned object has somewhat vague property names and values because
-       * the rule matches both pseudo-classes and pseudo-elements (they look the
-       * same at the syntactic level).
-       */
-      return {
-        type:  "pseudo_selector",
-        value: value
-      };
-    }
-
-declaration
-  = property:property ":" S* expression:expr important:prio? {
-      return {
-        type:       "declaration",
-        property:   property,
-        expression: expression,
-        important:  important !== "" ? true : false
-      };
-    }
-
-prio
-  = IMPORTANT_SYM S*
-
-expr
-  = head:term tail:(operator? term)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "expression",
-          operator: tail[i][0],
-          left:     result,
-          right:    tail[i][1]
-        };
-      }
-      return result;
-    }
-
-term
-  = operator:unary_operator?
-    value:(
-        EMS S*
-      / EXS S*
-      / LENGTH S*
-      / ANGLE S*
-      / TIME S*
-      / FREQ S*
-      / PERCENTAGE S*
-      / NUMBER S*
-    )               { return { type: "value",  value: operator + value[0] }; }
-  / value:URI S*    { return { type: "uri",    value: value               }; }
-  / function
-  / hexcolor
-  / value:STRING S* { return { type: "string", value: value               }; }
-  / value:IDENT S*  { return { type: "ident",  value: value               }; }
-
-function
-  = name:FUNCTION S* params:expr ")" S* {
-      return {
-        type:   "function",
-        name:   name,
-        params: params
-      };
-    }
-
-hexcolor
-  = value:HASH S* { return { type: "hexcolor", value: value}; }
-
-/* ===== Lexical Elements ===== */
-
-/* Macros */
-
-h
-  = [0-9a-fA-F]
-
-nonascii
-  = [\x80-\xFF]
-
-unicode
-  = "\\" h1:h h2:h? h3:h? h4:h? h5:h? h6:h? ("\r\n" / [ \t\r\n\f])? {
-      return String.fromCharCode(parseInt("0x" + h1 + h2 + h3 + h4 + h5 + h6));
-    }
-
-escape
-  = unicode
-  / "\\" char_:[^\r\n\f0-9a-fA-F] { return char_; }
-
-nmstart
-  = [_a-zA-Z]
-  / nonascii
-  / escape
-
-nmchar
-  = [_a-zA-Z0-9-]
-  / nonascii
-  / escape
-
-integer
-  = digits:[0-9]+ { return parseInt(digits.join("")); }
-
-float
-  = before:[0-9]* "." after:[0-9]+ {
-      return parseFloat(before.join("") + "." + after.join(""));
-    }
-
-string1
-  = '"' chars:([^\n\r\f\\"] / "\\" nl:nl { return nl } / escape)* '"' {
-      return chars.join("");
-    }
-
-string2
-  = "'" chars:([^\n\r\f\\'] / "\\" nl:nl { return nl } / escape)* "'" {
-      return chars.join("");
-    }
-
-comment
-  = "/*" [^*]* "*"+ ([^/*] [^*]* "*"+)* "/"
-
-ident
-  = dash:"-"? nmstart:nmstart nmchars:nmchar* {
-      return dash + nmstart + nmchars.join("");
-    }
-
-name
-  = nmchars:nmchar+ { return nmchars.join(""); }
-
-num
-  = float
-  / integer
-
-string
-  = string1
-  / string2
-
-url
-  = chars:([!#$%&*-~] / nonascii / escape)* { return chars.join(""); }
-
-s
-  = [ \t\r\n\f]+
-
-w
-  = s?
-
-nl
-  = "\n"
-  / "\r\n"
-  / "\r"
-  / "\f"
-
-A
-  = [aA]
-  / "\\" "0"? "0"? "0"? "0"? "41" ("\r\n" / [ \t\r\n\f])? { return "A"; }
-  / "\\" "0"? "0"? "0"? "0"? "61" ("\r\n" / [ \t\r\n\f])? { return "a"; }
-
-C
-  = [cC]
-  / "\\" "0"? "0"? "0"? "0"? "43" ("\r\n" / [ \t\r\n\f])? { return "C"; }
-  / "\\" "0"? "0"? "0"? "0"? "63" ("\r\n" / [ \t\r\n\f])? { return "c"; }
-
-D
-  = [dD]
-  / "\\" "0"? "0"? "0"? "0"? "44" ("\r\n" / [ \t\r\n\f])? { return "D"; }
-  / "\\" "0"? "0"? "0"? "0"? "64" ("\r\n" / [ \t\r\n\f])? { return "d"; }
-
-E
-  = [eE]
-  / "\\" "0"? "0"? "0"? "0"? "45" ("\r\n" / [ \t\r\n\f])? { return "E"; }
-  / "\\" "0"? "0"? "0"? "0"? "65" ("\r\n" / [ \t\r\n\f])? { return "e"; }
-
-G
-  = [gG]
-  / "\\" "0"? "0"? "0"? "0"? "47" ("\r\n" / [ \t\r\n\f])? { return "G"; }
-  / "\\" "0"? "0"? "0"? "0"? "67" ("\r\n" / [ \t\r\n\f])? { return "g"; }
-  / "\\" char_:[gG] { return char_; }
-
-H
-  = h:[hH]
-  / "\\" "0"? "0"? "0"? "0"? "48" ("\r\n" / [ \t\r\n\f])? { return "H"; }
-  / "\\" "0"? "0"? "0"? "0"? "68" ("\r\n" / [ \t\r\n\f])? { return "h"; }
-  / "\\" char_:[hH] { return char_; }
-
-I
-  = i:[iI]
-  / "\\" "0"? "0"? "0"? "0"? "49" ("\r\n" / [ \t\r\n\f])? { return "I"; }
-  / "\\" "0"? "0"? "0"? "0"? "69" ("\r\n" / [ \t\r\n\f])? { return "i"; }
-  / "\\" char_:[iI] { return char_; }
-
-K
-  = [kK]
-  / "\\" "0"? "0"? "0"? "0"? "4" [bB] ("\r\n" / [ \t\r\n\f])? { return "K"; }
-  / "\\" "0"? "0"? "0"? "0"? "6" [bB] ("\r\n" / [ \t\r\n\f])? { return "k"; }
-  / "\\" char_:[kK] { return char_; }
-
-L
-  = [lL]
-  / "\\" "0"? "0"? "0"? "0"? "4" [cC] ("\r\n" / [ \t\r\n\f])? { return "L"; }
-  / "\\" "0"? "0"? "0"? "0"? "6" [cC] ("\r\n" / [ \t\r\n\f])? { return "l"; }
-  / "\\" char_:[lL] { return char_; }
-
-M
-  = [mM]
-  / "\\" "0"? "0"? "0"? "0"? "4" [dD] ("\r\n" / [ \t\r\n\f])? { return "M"; }
-  / "\\" "0"? "0"? "0"? "0"? "6" [dD] ("\r\n" / [ \t\r\n\f])? { return "m"; }
-  / "\\" char_:[mM] { return char_; }
-
-N
-  = [nN]
-  / "\\" "0"? "0"? "0"? "0"? "4" [eE] ("\r\n" / [ \t\r\n\f])? { return "N"; }
-  / "\\" "0"? "0"? "0"? "0"? "6" [eE] ("\r\n" / [ \t\r\n\f])? { return "n"; }
-  / "\\" char_:[nN] { return char_; }
-
-O
-  = [oO]
-  / "\\" "0"? "0"? "0"? "0"? "4" [fF] ("\r\n" / [ \t\r\n\f])? { return "O"; }
-  / "\\" "0"? "0"? "0"? "0"? "6" [fF] ("\r\n" / [ \t\r\n\f])? { return "o"; }
-  / "\\" char_:[oO] { return char_; }
-
-P
-  = [pP]
-  / "\\" "0"? "0"? "0"? "0"? "50" ("\r\n" / [ \t\r\n\f])? { return "P"; }
-  / "\\" "0"? "0"? "0"? "0"? "70" ("\r\n" / [ \t\r\n\f])? { return "p"; }
-  / "\\" char_:[pP] { return char_; }
-
-R
-  = [rR]
-  / "\\" "0"? "0"? "0"? "0"? "52" ("\r\n" / [ \t\r\n\f])? { return "R"; }
-  / "\\" "0"? "0"? "0"? "0"? "72" ("\r\n" / [ \t\r\n\f])? { return "r"; }
-  / "\\" char_:[rR] { return char_; }
-
-S_
-  = [sS]
-  / "\\" "0"? "0"? "0"? "0"? "53" ("\r\n" / [ \t\r\n\f])? { return "S"; }
-  / "\\" "0"? "0"? "0"? "0"? "73" ("\r\n" / [ \t\r\n\f])? { return "s"; }
-  / "\\" char_:[sS] { return char_; }
-
-T
-  = [tT]
-  / "\\" "0"? "0"? "0"? "0"? "54" ("\r\n" / [ \t\r\n\f])? { return "T"; }
-  / "\\" "0"? "0"? "0"? "0"? "74" ("\r\n" / [ \t\r\n\f])? { return "t"; }
-  / "\\" char_:[tT] { return char_; }
-
-U
-  = [uU]
-  / "\\" "0"? "0"? "0"? "0"? "55" ("\r\n" / [ \t\r\n\f])? { return "U"; }
-  / "\\" "0"? "0"? "0"? "0"? "75" ("\r\n" / [ \t\r\n\f])? { return "u"; }
-  / "\\" char_:[uU] { return char_; }
-
-X
-  = [xX]
-  / "\\" "0"? "0"? "0"? "0"? "58" ("\r\n" / [ \t\r\n\f])? { return "X"; }
-  / "\\" "0"? "0"? "0"? "0"? "78" ("\r\n" / [ \t\r\n\f])? { return "x"; }
-  / "\\" char_:[xX] { return char_; }
-
-Z
-  = [zZ]
-  / "\\" "0"? "0"? "0"? "0"? "5" [aA] ("\r\n" / [ \t\r\n\f])? { return "Z"; }
-  / "\\" "0"? "0"? "0"? "0"? "7" [aA] ("\r\n" / [ \t\r\n\f])? { return "z"; }
-  / "\\" char_:[zZ] { return char_; }
-
-/* Tokens */
-
-S "whitespace"
-  = comment* s
-
-CDO "<!--"
-  = comment* "<!--"
-
-CDC "-->"
-  = comment* "-->"
-
-INCLUDES "~="
-  = comment* "~="
-
-DASHMATCH "|="
-  = comment* "|="
-
-STRING "string"
-  = comment* string:string { return string; }
-
-IDENT "identifier"
-  = comment* ident:ident { return ident; }
-
-HASH "hash"
-  = comment* "#" name:name { return "#" + name; }
-
-IMPORT_SYM "@import"
-  = comment* "@" I M P O R T
-
-PAGE_SYM "@page"
-  = comment* "@" P A G E
-
-MEDIA_SYM "@media"
-  = comment* "@" M E D I A
-
-CHARSET_SYM "@charset"
-  = comment* "@charset "
-
-/* Note: We replace "w" with "s" here to avoid infinite recursion. */
-IMPORTANT_SYM "!important"
-  = comment* "!" (s / comment)* I M P O R T A N T { return "!important"; }
-
-EMS "length"
-  = comment* num:num e:E m:M { return num + e + m; }
-
-EXS "length"
-  = comment* num:num e:E x:X { return num + e + x; }
-
-LENGTH "length"
-  = comment* num:num unit:(P X / C M / M M / I N / P T / P C) {
-      return num + unit.join("");
-    }
-
-ANGLE "angle"
-  = comment* num:num unit:(D E G / R A D / G R A D) {
-      return num + unit.join("");
-    }
-
-TIME "time"
-  = comment* num:num unit:(m:M s:S_ { return m + s; } / S_) {
-      return num + unit;
-    }
-
-FREQ "frequency"
-  = comment* num:num unit:(H Z / K H Z) { return num + unit.join(""); }
-
-DIMENSION "dimension"
-  = comment* num:num unit:ident { return num + unit; }
-
-PERCENTAGE "percentage"
-  = comment* num:num "%" { return num + "%"; }
-
-NUMBER "number"
-  = comment* num:num { return num; }
-
-URI "uri"
-  = comment* U R L "(" w value:(string / url) w ")" { return value; }
-
-FUNCTION "function"
-  = comment* name:ident "(" { return name; }


[53/53] [abbrv] webworks commit: CB-6440 Move utils.js from bin to template

Posted by bh...@apache.org.
CB-6440 Move utils.js from bin to template


Project: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/commit/942b81e7
Tree: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/tree/942b81e7
Diff: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/diff/942b81e7

Branch: refs/heads/master
Commit: 942b81e70e978f225e187c566dfb9b7885c15973
Parents: 84f8308
Author: Bryan Higgins <bh...@blackberry.com>
Authored: Sat Apr 12 20:53:45 2014 -0400
Committer: Bryan Higgins <bh...@blackberry.com>
Committed: Sat Apr 12 21:04:26 2014 -0400

----------------------------------------------------------------------
 blackberry10/.gitignore                         |   1 -
 blackberry10/.jshintignore                      |   2 -
 blackberry10/bin/lib/create.js                  |   1 -
 blackberry10/bin/lib/localize.js                |  26 --
 blackberry10/bin/lib/update.js                  |   1 -
 blackberry10/bin/lib/utils.js                   | 386 -------------------
 .../bin/templates/project/cordova/lib/utils.js  | 385 ++++++++++++++++++
 .../bin/test/cordova/integration/create.js      |   2 +-
 .../bin/test/cordova/integration/target.js      |   2 +-
 blackberry10/scripts/test.js                    |   1 -
 10 files changed, 387 insertions(+), 420 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/.gitignore
----------------------------------------------------------------------
diff --git a/blackberry10/.gitignore b/blackberry10/.gitignore
index 152fd68..bd024b8 100644
--- a/blackberry10/.gitignore
+++ b/blackberry10/.gitignore
@@ -17,6 +17,5 @@ deliverables/
 build/
 dist/
 bin/templates/project/lib
-bin/templates/project/cordova/lib/utils.js
 example/
 .tmp

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/.jshintignore
----------------------------------------------------------------------
diff --git a/blackberry10/.jshintignore b/blackberry10/.jshintignore
index 0c74354..5a8fb35 100644
--- a/blackberry10/.jshintignore
+++ b/blackberry10/.jshintignore
@@ -3,5 +3,3 @@ bin/test/cordova/unit/params-bad.json
 bin/templates/project/cordova/lib/xml-helpers.js
 bin/templates/project/cordova/third_party/*
 bin/templates/project/lib/*
-bin/templates/project/cordova/lib/utils.js
-bin/templates/project/cordova/lib/signing-utils.js

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/bin/lib/create.js
----------------------------------------------------------------------
diff --git a/blackberry10/bin/lib/create.js b/blackberry10/bin/lib/create.js
index d4623b1..01bad98 100644
--- a/blackberry10/bin/lib/create.js
+++ b/blackberry10/bin/lib/create.js
@@ -125,7 +125,6 @@ function copyFilesToProject() {
     shell.cp(path.join(BIN_DIR, "target"), path.join(project_path, "cordova"));
     shell.cp(path.join(BIN_DIR, "target.bat"), path.join(project_path, "cordova"));
     shell.cp(path.join(BIN_DIR, "lib", "target.js"), path.join(project_path, "cordova", "lib"));
-    shell.cp(path.join(BIN_DIR, "lib", "utils.js"), path.join(project_path, "cordova", "lib"));
 
     // copy repo level init script to project
     shell.cp(path.join(BIN_DIR, "whereis.cmd"), path.join(project_path, "cordova"));

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/bin/lib/localize.js
----------------------------------------------------------------------
diff --git a/blackberry10/bin/lib/localize.js b/blackberry10/bin/lib/localize.js
deleted file mode 100644
index 66bddfa..0000000
--- a/blackberry10/bin/lib/localize.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- *  Copyright 2012 Research In Motion Limited.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var Localize = require("localize"),
-    loc = new Localize({
-        "SOME_WARNING": {
-            "en": "You have disabled all web security in this WebWorks application"
-        }
-    }, "", ""); // TODO maybe a bug in localize, must set default locale to "" in order get it to work
-
-loc.setLocale("en");
-
-module.exports = loc;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/bin/lib/update.js
----------------------------------------------------------------------
diff --git a/blackberry10/bin/lib/update.js b/blackberry10/bin/lib/update.js
old mode 100755
new mode 100644
index 9e66bd1..a089691
--- a/blackberry10/bin/lib/update.js
+++ b/blackberry10/bin/lib/update.js
@@ -56,7 +56,6 @@ function updateTargetTool(projectpath) {
     shell.cp('-f', path.join(ROOT, 'bin', 'target'), path.join(projectpath, 'cordova'));
     shell.cp('-f', path.join(ROOT, 'bin', 'target.bat'), path.join(projectpath, 'cordova'));
     shell.cp('-f', path.join(ROOT, 'bin', 'lib', 'target.js'), path.join(projectpath, 'cordova', 'lib'));
-    shell.cp('-f', path.join(ROOT, 'bin', 'lib', 'utils.js'), path.join(projectpath, 'cordova', 'lib'));
 }
 
 function updateInitTool(projectpath) {

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/bin/lib/utils.js
----------------------------------------------------------------------
diff --git a/blackberry10/bin/lib/utils.js b/blackberry10/bin/lib/utils.js
deleted file mode 100644
index b05e3d7..0000000
--- a/blackberry10/bin/lib/utils.js
+++ /dev/null
@@ -1,386 +0,0 @@
-/*
- *  Copyright 2012 Research In Motion Limited.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* globals Buffer */
-
-var fs = require('fs'),
-    exit = require('exit'),
-    async = require('async'),
-    path = require('path'),
-    childProcess = require('child_process'),
-    wrench = require('wrench'),
-    localize = require("./localize"),
-    os = require('os'),
-    promptLib = require("prompt"),
-    DEFAULT_BAR_NAME = "bb10app",
-    PROPERTY_FILE_NAME = 'blackberry10.json',
-    CORDOVA_DIR = '.cordova',
-    ERROR_VALUE = 2,
-    DEFAULT_PROPERTY_FILE = {
-        targets: {
-        }
-    },
-    _self;
-
-function swapBytes(buffer) {
-    var l = buffer.length,
-        i,
-        a;
-
-    if (l % 2 === 0x01) {
-        throw localize.translate("EXCEPTION_BUFFER_ERROR");
-    }
-
-    for (i = 0; i < l; i += 2) {
-        a = buffer[i];
-        buffer[i] = buffer[i + 1];
-        buffer[i + 1] = a;
-    }
-
-    return buffer;
-}
-
-_self = {
-    writeFile: function (fileLocation, fileName, fileData) {
-        //If directory does not exist, create it.
-        if (!fs.existsSync(fileLocation)) {
-            wrench.mkdirSyncRecursive(fileLocation, "0755");
-        }
-
-        fs.writeFile(path.join(fileLocation, fileName), fileData, function (err) {
-            if (err) throw err;
-        });
-    },
-
-    copyFile: function (srcFile, destDir, baseDir) {
-        var filename = path.basename(srcFile),
-            fileBuffer = fs.readFileSync(srcFile),
-            fileLocation;
-
-        //if a base directory was provided, determine
-        //folder structure from the relative path of the base folder
-        if (baseDir && srcFile.indexOf(baseDir) === 0) {
-            fileLocation = srcFile.replace(baseDir, destDir);
-            wrench.mkdirSyncRecursive(path.dirname(fileLocation), "0755");
-            fs.writeFileSync(fileLocation, fileBuffer);
-        } else {
-            if (!fs.existsSync(destDir)) {
-                wrench.mkdirSyncRecursive(destDir, "0755");
-            }
-
-            fs.writeFileSync(path.join(destDir, filename), fileBuffer);
-        }
-    },
-
-    listFiles: function (directory, filter) {
-        var files = wrench.readdirSyncRecursive(directory),
-            filteredFiles = [];
-
-        files.forEach(function (file) {
-            //On mac wrench.readdirSyncRecursive does not return absolute paths, so resolve one.
-            file = path.resolve(directory, file);
-
-            if (filter(file)) {
-                filteredFiles.push(file);
-            }
-        });
-
-        return filteredFiles;
-    },
-
-    readdirSyncRecursive: function (baseDir) {
-        var files = [],
-            curFiles = [],
-            nextDirs,
-            isDir = function (f) {
-                return fs.statSync(f).isDirectory();
-            },
-            isFile = function (f) {
-                return !isDir(f);
-            },
-            prependBaseDir = function (fname) {
-                return path.join(baseDir, fname);
-            };
-
-        try {
-            curFiles = fs.readdirSync(baseDir);
-
-            if (curFiles && curFiles.length > 0) {
-                curFiles = curFiles.map(prependBaseDir);
-                nextDirs = curFiles.filter(isDir);
-                curFiles = curFiles.filter(isFile);
-
-                files = files.concat(curFiles);
-
-                while (nextDirs.length) {
-                    files = files.concat(_self.readdirSyncRecursive(nextDirs.shift()));
-                }
-            }
-        } catch (e) {
-        }
-
-        return files;
-    },
-
-    isWindows: function () {
-        return os.type().toLowerCase().indexOf("windows") >= 0;
-    },
-
-    isOSX: function () {
-        return os.type().toLowerCase().indexOf("darwin") >= 0;
-    },
-
-    isArray: function (obj) {
-        return obj.constructor.toString().indexOf("Array") !== -1;
-    },
-
-    isEmpty : function (obj) {
-        for (var prop in obj) {
-            if (obj.hasOwnProperty(prop))
-                return false;
-        }
-        return true;
-    },
-
-    toBoolean: function (myString, defaultVal) {
-        // if defaultVal is not passed, default value is undefined
-        return myString === "true" ? true : myString === "false" ? false : defaultVal;
-    },
-
-    parseUri : function (str) {
-        var i, uri = {},
-            key = [ "source", "scheme", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor" ],
-            matcher = /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(str);
-
-        for (i = key.length - 1; i >= 0; i--) {
-            uri[key[i]] = matcher[i] || "";
-        }
-
-        return uri;
-    },
-
-    // uri - output from parseUri
-    isAbsoluteURI : function (uri) {
-        if (uri && uri.source) {
-            return uri.relative !== uri.source;
-        }
-
-        return false;
-    },
-
-    isLocalURI : function (uri) {
-        return uri && uri.scheme && uri.scheme.toLowerCase() === "local";
-    },
-
-    // Convert node.js Buffer data (encoded) to String
-    bufferToString : function (data) {
-        var s = "";
-        if (Buffer.isBuffer(data)) {
-            if (data.length >= 2 && data[0] === 0xFF && data[1] === 0xFE) {
-                s = data.toString("ucs2", 2);
-            } else if (data.length >= 2 && data[0] === 0xFE && data[1] === 0xFF) {
-                swapBytes(data);
-                s = data.toString("ucs2", 2);
-            } else if (data.length >= 3 && data[0] === 0xEF && data[1] === 0xBB && data[2] === 0xBF) {
-                s = data.toString("utf8", 3);
-            } else {
-                s = data.toString("ascii");
-            }
-        }
-
-        return s;
-    },
-
-    // Wrap object property in an Array if the property is defined and it is not an Array
-    wrapPropertyInArray : function (obj, property) {
-        if (obj && obj[property] && !(obj[property] instanceof Array)) {
-            obj[property] = [ obj[property] ];
-        }
-    },
-
-    inQuotes : function (property) {
-        //wrap in quotes if it's not already wrapped
-        if (property.indexOf("\"") === -1) {
-            return "\"" + property + "\"";
-        } else {
-            return property;
-        }
-    },
-
-    exec : function (command, args, options, callback) {
-        //Optional params handling [args, options]
-        if (typeof args === "object" && !Array.isArray(args)) {
-            callback = options;
-            options = args;
-            args = [];
-        } else if (typeof args === "function") {
-            callback = args;
-            options = {};
-            args = [];
-        } else if (typeof options === "function") {
-            callback = options;
-            options = {};
-        }
-
-        //insert executable portion at beginning of arg array
-        args.splice(0, 0, command);
-
-        var pkgrUtils = require("./packager-utils"),
-            customOptions = options._customOptions,
-            proc,
-            i;
-
-        for (i = 0; i < args.length; i++) {
-            if (args[i] && args[i].indexOf(" ") !== -1) {
-                if (!_self.isWindows()) {
-                    //remove any escaped spaces on non-Windows platforms and simply use quotes
-                    args[i] = args[i].replace(/\\ /g, " ");
-                }
-
-                //put any args with spaces in quotes
-                args[i] = _self.inQuotes(args[i]);
-            }
-        }
-
-        //delete _customOptions from options object before sending to exec
-        delete options._customOptions;
-        //Use the process env by default
-        options.env = options.env || process.env;
-
-        proc = childProcess.exec(args.join(" "), options, callback);
-
-        if (!customOptions || !customOptions.silent) {
-            proc.stdout.on("data", pkgrUtils.handleProcessOutput);
-            proc.stderr.on("data", pkgrUtils.handleProcessOutput);
-        }
-    },
-
-    loadModule: function (path) {
-        return require(path);
-    },
-
-    findHomePath : function () {
-        return process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'];
-    },
-
-    getCordovaDir: function () {
-        var cordovaPath = path.join(_self.findHomePath(), CORDOVA_DIR);
-
-        if (!fs.existsSync(cordovaPath)) {
-            fs.mkdirSync(cordovaPath);
-        }
-
-        return cordovaPath;
-    },
-
-    getPropertiesFilePath: function () {
-        var propertiesFile = path.join(_self.getCordovaDir(), PROPERTY_FILE_NAME);
-
-        if (!fs.existsSync(propertiesFile)) {
-            _self.writeToPropertiesFile(DEFAULT_PROPERTY_FILE);
-        }
-
-        return propertiesFile;
-    },
-
-    getPropertiesFileName: function () {
-        return PROPERTY_FILE_NAME;
-    },
-
-    getProperties: function () {
-        var props =  require(_self.getPropertiesFilePath());
-        if (!props.targets) {
-            props.targets = {};
-        }
-        return props;
-    },
-
-    writeToPropertiesFile: function (data) {
-        var contents = JSON.stringify(data, null, 4) + "\n",
-            propertiesFile = path.join(_self.getCordovaDir(), PROPERTY_FILE_NAME);
-
-        fs.writeFileSync(propertiesFile, contents, 'utf-8');
-    },
-
-    genBarName: function () {
-        return DEFAULT_BAR_NAME;
-    },
-
-    clone: function (original) {
-        var clone = {},
-            prop;
-        if (typeof original !== "object") {
-            clone = original;
-        } else if (Array.isArray(original)) {
-            clone = original.slice();
-        } else {
-            /* jshint ignore:start */
-            for (prop in original) {
-                clone[prop] = original[prop];
-            }
-            /* jshint ignore:end */
-        }
-
-        return clone;
-    },
-    prompt: function (options, done) {
-        var promptSchema = {
-                properties: {
-                    "property": options
-                }
-            };
-        promptLib.start();
-        promptLib.colors = false;
-        promptLib.message = "";
-        promptLib.delimiter = "";
-        promptLib.get(promptSchema, function (err, results) {
-            done(err, !err && results.property);
-        });
-    },
-
-    mixin: function (mixin, to) {
-        Object.getOwnPropertyNames(mixin).forEach(function (prop) {
-            if (Object.hasOwnProperty.call(mixin, prop)) {
-                Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(mixin, prop));
-            }
-        });
-        return to;
-    },
-
-    series: function (steps) {
-        async.series(steps, this.exit_handler);
-    },
-
-    waterfall: function (steps) { 
-        async.waterfall(steps, this.exit_handler);
-    },
-
-    exit_handler: function (err) {
-        if (err) {
-            if (typeof err === "string") {
-                console.error(err);
-            } else {
-                console.error("An error has occurred");
-            }
-            exit(ERROR_VALUE);
-        } else {
-            exit(0);
-        }
-    }
-
-};
-
-module.exports = _self;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/bin/templates/project/cordova/lib/utils.js
----------------------------------------------------------------------
diff --git a/blackberry10/bin/templates/project/cordova/lib/utils.js b/blackberry10/bin/templates/project/cordova/lib/utils.js
new file mode 100644
index 0000000..df5e9b7
--- /dev/null
+++ b/blackberry10/bin/templates/project/cordova/lib/utils.js
@@ -0,0 +1,385 @@
+/*
+ *  Copyright 2012 Research In Motion Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* globals Buffer */
+
+var fs = require('fs'),
+    exit = require('exit'),
+    async = require('async'),
+    path = require('path'),
+    childProcess = require('child_process'),
+    wrench = require('wrench'),
+    os = require('os'),
+    promptLib = require("prompt"),
+    DEFAULT_BAR_NAME = "bb10app",
+    PROPERTY_FILE_NAME = 'blackberry10.json',
+    CORDOVA_DIR = '.cordova',
+    ERROR_VALUE = 2,
+    DEFAULT_PROPERTY_FILE = {
+        targets: {
+        }
+    },
+    _self;
+
+function swapBytes(buffer) {
+    var l = buffer.length,
+        i,
+        a;
+
+    if (l % 2 === 0x01) {
+        throw new Exception("Buffer error");
+    }
+
+    for (i = 0; i < l; i += 2) {
+        a = buffer[i];
+        buffer[i] = buffer[i + 1];
+        buffer[i + 1] = a;
+    }
+
+    return buffer;
+}
+
+_self = {
+    writeFile: function (fileLocation, fileName, fileData) {
+        //If directory does not exist, create it.
+        if (!fs.existsSync(fileLocation)) {
+            wrench.mkdirSyncRecursive(fileLocation, "0755");
+        }
+
+        fs.writeFile(path.join(fileLocation, fileName), fileData, function (err) {
+            if (err) throw err;
+        });
+    },
+
+    copyFile: function (srcFile, destDir, baseDir) {
+        var filename = path.basename(srcFile),
+            fileBuffer = fs.readFileSync(srcFile),
+            fileLocation;
+
+        //if a base directory was provided, determine
+        //folder structure from the relative path of the base folder
+        if (baseDir && srcFile.indexOf(baseDir) === 0) {
+            fileLocation = srcFile.replace(baseDir, destDir);
+            wrench.mkdirSyncRecursive(path.dirname(fileLocation), "0755");
+            fs.writeFileSync(fileLocation, fileBuffer);
+        } else {
+            if (!fs.existsSync(destDir)) {
+                wrench.mkdirSyncRecursive(destDir, "0755");
+            }
+
+            fs.writeFileSync(path.join(destDir, filename), fileBuffer);
+        }
+    },
+
+    listFiles: function (directory, filter) {
+        var files = wrench.readdirSyncRecursive(directory),
+            filteredFiles = [];
+
+        files.forEach(function (file) {
+            //On mac wrench.readdirSyncRecursive does not return absolute paths, so resolve one.
+            file = path.resolve(directory, file);
+
+            if (filter(file)) {
+                filteredFiles.push(file);
+            }
+        });
+
+        return filteredFiles;
+    },
+
+    readdirSyncRecursive: function (baseDir) {
+        var files = [],
+            curFiles = [],
+            nextDirs,
+            isDir = function (f) {
+                return fs.statSync(f).isDirectory();
+            },
+            isFile = function (f) {
+                return !isDir(f);
+            },
+            prependBaseDir = function (fname) {
+                return path.join(baseDir, fname);
+            };
+
+        try {
+            curFiles = fs.readdirSync(baseDir);
+
+            if (curFiles && curFiles.length > 0) {
+                curFiles = curFiles.map(prependBaseDir);
+                nextDirs = curFiles.filter(isDir);
+                curFiles = curFiles.filter(isFile);
+
+                files = files.concat(curFiles);
+
+                while (nextDirs.length) {
+                    files = files.concat(_self.readdirSyncRecursive(nextDirs.shift()));
+                }
+            }
+        } catch (e) {
+        }
+
+        return files;
+    },
+
+    isWindows: function () {
+        return os.type().toLowerCase().indexOf("windows") >= 0;
+    },
+
+    isOSX: function () {
+        return os.type().toLowerCase().indexOf("darwin") >= 0;
+    },
+
+    isArray: function (obj) {
+        return obj.constructor.toString().indexOf("Array") !== -1;
+    },
+
+    isEmpty : function (obj) {
+        for (var prop in obj) {
+            if (obj.hasOwnProperty(prop))
+                return false;
+        }
+        return true;
+    },
+
+    toBoolean: function (myString, defaultVal) {
+        // if defaultVal is not passed, default value is undefined
+        return myString === "true" ? true : myString === "false" ? false : defaultVal;
+    },
+
+    parseUri : function (str) {
+        var i, uri = {},
+            key = [ "source", "scheme", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor" ],
+            matcher = /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(str);
+
+        for (i = key.length - 1; i >= 0; i--) {
+            uri[key[i]] = matcher[i] || "";
+        }
+
+        return uri;
+    },
+
+    // uri - output from parseUri
+    isAbsoluteURI : function (uri) {
+        if (uri && uri.source) {
+            return uri.relative !== uri.source;
+        }
+
+        return false;
+    },
+
+    isLocalURI : function (uri) {
+        return uri && uri.scheme && uri.scheme.toLowerCase() === "local";
+    },
+
+    // Convert node.js Buffer data (encoded) to String
+    bufferToString : function (data) {
+        var s = "";
+        if (Buffer.isBuffer(data)) {
+            if (data.length >= 2 && data[0] === 0xFF && data[1] === 0xFE) {
+                s = data.toString("ucs2", 2);
+            } else if (data.length >= 2 && data[0] === 0xFE && data[1] === 0xFF) {
+                swapBytes(data);
+                s = data.toString("ucs2", 2);
+            } else if (data.length >= 3 && data[0] === 0xEF && data[1] === 0xBB && data[2] === 0xBF) {
+                s = data.toString("utf8", 3);
+            } else {
+                s = data.toString("ascii");
+            }
+        }
+
+        return s;
+    },
+
+    // Wrap object property in an Array if the property is defined and it is not an Array
+    wrapPropertyInArray : function (obj, property) {
+        if (obj && obj[property] && !(obj[property] instanceof Array)) {
+            obj[property] = [ obj[property] ];
+        }
+    },
+
+    inQuotes : function (property) {
+        //wrap in quotes if it's not already wrapped
+        if (property.indexOf("\"") === -1) {
+            return "\"" + property + "\"";
+        } else {
+            return property;
+        }
+    },
+
+    exec : function (command, args, options, callback) {
+        //Optional params handling [args, options]
+        if (typeof args === "object" && !Array.isArray(args)) {
+            callback = options;
+            options = args;
+            args = [];
+        } else if (typeof args === "function") {
+            callback = args;
+            options = {};
+            args = [];
+        } else if (typeof options === "function") {
+            callback = options;
+            options = {};
+        }
+
+        //insert executable portion at beginning of arg array
+        args.splice(0, 0, command);
+
+        var pkgrUtils = require("./packager-utils"),
+            customOptions = options._customOptions,
+            proc,
+            i;
+
+        for (i = 0; i < args.length; i++) {
+            if (args[i] && args[i].indexOf(" ") !== -1) {
+                if (!_self.isWindows()) {
+                    //remove any escaped spaces on non-Windows platforms and simply use quotes
+                    args[i] = args[i].replace(/\\ /g, " ");
+                }
+
+                //put any args with spaces in quotes
+                args[i] = _self.inQuotes(args[i]);
+            }
+        }
+
+        //delete _customOptions from options object before sending to exec
+        delete options._customOptions;
+        //Use the process env by default
+        options.env = options.env || process.env;
+
+        proc = childProcess.exec(args.join(" "), options, callback);
+
+        if (!customOptions || !customOptions.silent) {
+            proc.stdout.on("data", pkgrUtils.handleProcessOutput);
+            proc.stderr.on("data", pkgrUtils.handleProcessOutput);
+        }
+    },
+
+    loadModule: function (path) {
+        return require(path);
+    },
+
+    findHomePath : function () {
+        return process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'];
+    },
+
+    getCordovaDir: function () {
+        var cordovaPath = path.join(_self.findHomePath(), CORDOVA_DIR);
+
+        if (!fs.existsSync(cordovaPath)) {
+            fs.mkdirSync(cordovaPath);
+        }
+
+        return cordovaPath;
+    },
+
+    getPropertiesFilePath: function () {
+        var propertiesFile = path.join(_self.getCordovaDir(), PROPERTY_FILE_NAME);
+
+        if (!fs.existsSync(propertiesFile)) {
+            _self.writeToPropertiesFile(DEFAULT_PROPERTY_FILE);
+        }
+
+        return propertiesFile;
+    },
+
+    getPropertiesFileName: function () {
+        return PROPERTY_FILE_NAME;
+    },
+
+    getProperties: function () {
+        var props =  require(_self.getPropertiesFilePath());
+        if (!props.targets) {
+            props.targets = {};
+        }
+        return props;
+    },
+
+    writeToPropertiesFile: function (data) {
+        var contents = JSON.stringify(data, null, 4) + "\n",
+            propertiesFile = path.join(_self.getCordovaDir(), PROPERTY_FILE_NAME);
+
+        fs.writeFileSync(propertiesFile, contents, 'utf-8');
+    },
+
+    genBarName: function () {
+        return DEFAULT_BAR_NAME;
+    },
+
+    clone: function (original) {
+        var clone = {},
+            prop;
+        if (typeof original !== "object") {
+            clone = original;
+        } else if (Array.isArray(original)) {
+            clone = original.slice();
+        } else {
+            /* jshint ignore:start */
+            for (prop in original) {
+                clone[prop] = original[prop];
+            }
+            /* jshint ignore:end */
+        }
+
+        return clone;
+    },
+    prompt: function (options, done) {
+        var promptSchema = {
+                properties: {
+                    "property": options
+                }
+            };
+        promptLib.start();
+        promptLib.colors = false;
+        promptLib.message = "";
+        promptLib.delimiter = "";
+        promptLib.get(promptSchema, function (err, results) {
+            done(err, !err && results.property);
+        });
+    },
+
+    mixin: function (mixin, to) {
+        Object.getOwnPropertyNames(mixin).forEach(function (prop) {
+            if (Object.hasOwnProperty.call(mixin, prop)) {
+                Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(mixin, prop));
+            }
+        });
+        return to;
+    },
+
+    series: function (steps) {
+        async.series(steps, this.exit_handler);
+    },
+
+    waterfall: function (steps) { 
+        async.waterfall(steps, this.exit_handler);
+    },
+
+    exit_handler: function (err) {
+        if (err) {
+            if (typeof err === "string") {
+                console.error(err);
+            } else {
+                console.error("An error has occurred");
+            }
+            exit(ERROR_VALUE);
+        } else {
+            exit(0);
+        }
+    }
+
+};
+
+module.exports = _self;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/bin/test/cordova/integration/create.js
----------------------------------------------------------------------
diff --git a/blackberry10/bin/test/cordova/integration/create.js b/blackberry10/bin/test/cordova/integration/create.js
index d454b78..84f0805 100644
--- a/blackberry10/bin/test/cordova/integration/create.js
+++ b/blackberry10/bin/test/cordova/integration/create.js
@@ -21,7 +21,7 @@ var childProcess = require('child_process'),
     tempFolder = '.tmp/',
     appFolder = tempFolder + 'tempCordovaApp/',
     wrench = require('wrench'),
-    utils = require('../../../lib/utils'),
+    utils = require('../../../templates/project/cordova/lib/utils'),
     path = require('path'),
     fs = require('fs'),
     shell = require("shelljs"),

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/bin/test/cordova/integration/target.js
----------------------------------------------------------------------
diff --git a/blackberry10/bin/test/cordova/integration/target.js b/blackberry10/bin/test/cordova/integration/target.js
index f74d648..5da16a3 100644
--- a/blackberry10/bin/test/cordova/integration/target.js
+++ b/blackberry10/bin/test/cordova/integration/target.js
@@ -21,7 +21,7 @@ var childProcess = require('child_process'),
     tempFolder = '.tmp/',
     appFolder = tempFolder + 'tempCordovaApp/',
     wrench = require('wrench'),
-    utils = require('../../../lib/utils'),
+    utils = require('../../../templates/project/cordova/lib/utils'),
     fs = require('fs'),
     path = require('path'),
     shell = require("shelljs"),

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/942b81e7/blackberry10/scripts/test.js
----------------------------------------------------------------------
diff --git a/blackberry10/scripts/test.js b/blackberry10/scripts/test.js
index 537652c..a50e34e 100644
--- a/blackberry10/scripts/test.js
+++ b/blackberry10/scripts/test.js
@@ -24,7 +24,6 @@ module.exports = function (done, custom) {
                 "bin/test/cordova/integration",
                 "bin/test/cordova/unit"
             ];
-    utils.copyFile('bin/lib/utils.js', 'bin/templates/project/cordova/lib/', '../');
     jasmine.executeSpecsInFolder({
         'specFolders': specs,
         'onComplete': function (runner) {


[29/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/requirejs/bin/r.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/requirejs/bin/r.js b/blackberry10/node_modules/jasmine-node/node_modules/requirejs/bin/r.js
deleted file mode 100755
index c396de4..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/requirejs/bin/r.js
+++ /dev/null
@@ -1,25757 +0,0 @@
-#!/usr/bin/env node
-/**
- * @license r.js 2.1.8 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
- * Available via the MIT or new BSD license.
- * see: http://github.com/jrburke/requirejs for details
- */
-
-/*
- * This is a bootstrap script to allow running RequireJS in the command line
- * in either a Java/Rhino or Node environment. It is modified by the top-level
- * dist.js file to inject other files to completely enable this file. It is
- * the shell of the r.js file.
- */
-
-/*jslint evil: true, nomen: true, sloppy: true */
-/*global readFile: true, process: false, Packages: false, print: false,
-console: false, java: false, module: false, requirejsVars, navigator,
-document, importScripts, self, location, Components, FileUtils */
-
-var requirejs, require, define, xpcUtil;
-(function (console, args, readFileFunc) {
-    var fileName, env, fs, vm, path, exec, rhinoContext, dir, nodeRequire,
-        nodeDefine, exists, reqMain, loadedOptimizedLib, existsForNode, Cc, Ci,
-        version = '2.1.8',
-        jsSuffixRegExp = /\.js$/,
-        commandOption = '',
-        useLibLoaded = {},
-        //Used by jslib/rhino/args.js
-        rhinoArgs = args,
-        //Used by jslib/xpconnect/args.js
-        xpconnectArgs = args,
-        readFile = typeof readFileFunc !== 'undefined' ? readFileFunc : null;
-
-    function showHelp() {
-        console.log('See https://github.com/jrburke/r.js for usage.');
-    }
-
-    if ((typeof navigator !== 'undefined' && typeof document !== 'undefined') ||
-            (typeof importScripts !== 'undefined' && typeof self !== 'undefined')) {
-        env = 'browser';
-
-        readFile = function (path) {
-            return fs.readFileSync(path, 'utf8');
-        };
-
-        exec = function (string) {
-            return eval(string);
-        };
-
-        exists = function () {
-            console.log('x.js exists not applicable in browser env');
-            return false;
-        };
-
-    } else if (typeof Packages !== 'undefined') {
-        env = 'rhino';
-
-        fileName = args[0];
-
-        if (fileName && fileName.indexOf('-') === 0) {
-            commandOption = fileName.substring(1);
-            fileName = args[1];
-        }
-
-        //Set up execution context.
-        rhinoContext = Packages.org.mozilla.javascript.ContextFactory.getGlobal().enterContext();
-
-        exec = function (string, name) {
-            return rhinoContext.evaluateString(this, string, name, 0, null);
-        };
-
-        exists = function (fileName) {
-            return (new java.io.File(fileName)).exists();
-        };
-
-        //Define a console.log for easier logging. Don't
-        //get fancy though.
-        if (typeof console === 'undefined') {
-            console = {
-                log: function () {
-                    print.apply(undefined, arguments);
-                }
-            };
-        }
-    } else if (typeof process !== 'undefined' && process.versions && !!process.versions.node) {
-        env = 'node';
-
-        //Get the fs module via Node's require before it
-        //gets replaced. Used in require/node.js
-        fs = require('fs');
-        vm = require('vm');
-        path = require('path');
-        //In Node 0.7+ existsSync is on fs.
-        existsForNode = fs.existsSync || path.existsSync;
-
-        nodeRequire = require;
-        nodeDefine = define;
-        reqMain = require.main;
-
-        //Temporarily hide require and define to allow require.js to define
-        //them.
-        require = undefined;
-        define = undefined;
-
-        readFile = function (path) {
-            return fs.readFileSync(path, 'utf8');
-        };
-
-        exec = function (string, name) {
-            return vm.runInThisContext(this.requirejsVars.require.makeNodeWrapper(string),
-                                       name ? fs.realpathSync(name) : '');
-        };
-
-        exists = function (fileName) {
-            return existsForNode(fileName);
-        };
-
-
-        fileName = process.argv[2];
-
-        if (fileName && fileName.indexOf('-') === 0) {
-            commandOption = fileName.substring(1);
-            fileName = process.argv[3];
-        }
-    } else if (typeof Components !== 'undefined' && Components.classes && Components.interfaces) {
-        env = 'xpconnect';
-
-        Components.utils['import']('resource://gre/modules/FileUtils.jsm');
-        Cc = Components.classes;
-        Ci = Components.interfaces;
-
-        fileName = args[0];
-
-        if (fileName && fileName.indexOf('-') === 0) {
-            commandOption = fileName.substring(1);
-            fileName = args[1];
-        }
-
-        xpcUtil = {
-            cwd: function () {
-                return FileUtils.getFile("CurWorkD", []).path;
-            },
-
-            //Remove . and .. from paths, normalize on front slashes
-            normalize: function (path) {
-                //There has to be an easier way to do this.
-                var i, part, ary,
-                    firstChar = path.charAt(0);
-
-                if (firstChar !== '/' &&
-                        firstChar !== '\\' &&
-                        path.indexOf(':') === -1) {
-                    //A relative path. Use the current working directory.
-                    path = xpcUtil.cwd() + '/' + path;
-                }
-
-                ary = path.replace(/\\/g, '/').split('/');
-
-                for (i = 0; i < ary.length; i += 1) {
-                    part = ary[i];
-                    if (part === '.') {
-                        ary.splice(i, 1);
-                        i -= 1;
-                    } else if (part === '..') {
-                        ary.splice(i - 1, 2);
-                        i -= 2;
-                    }
-                }
-                return ary.join('/');
-            },
-
-            xpfile: function (path) {
-                try {
-                    return new FileUtils.File(xpcUtil.normalize(path));
-                } catch (e) {
-                    throw new Error(path + ' failed: ' + e);
-                }
-            },
-
-            readFile: function (/*String*/path, /*String?*/encoding) {
-                //A file read function that can deal with BOMs
-                encoding = encoding || "utf-8";
-
-                var inStream, convertStream,
-                    readData = {},
-                    fileObj = xpcUtil.xpfile(path);
-
-                //XPCOM, you so crazy
-                try {
-                    inStream = Cc['@mozilla.org/network/file-input-stream;1']
-                               .createInstance(Ci.nsIFileInputStream);
-                    inStream.init(fileObj, 1, 0, false);
-
-                    convertStream = Cc['@mozilla.org/intl/converter-input-stream;1']
-                                    .createInstance(Ci.nsIConverterInputStream);
-                    convertStream.init(inStream, encoding, inStream.available(),
-                    Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
-
-                    convertStream.readString(inStream.available(), readData);
-                    return readData.value;
-                } catch (e) {
-                    throw new Error((fileObj && fileObj.path || '') + ': ' + e);
-                } finally {
-                    if (convertStream) {
-                        convertStream.close();
-                    }
-                    if (inStream) {
-                        inStream.close();
-                    }
-                }
-            }
-        };
-
-        readFile = xpcUtil.readFile;
-
-        exec = function (string) {
-            return eval(string);
-        };
-
-        exists = function (fileName) {
-            return xpcUtil.xpfile(fileName).exists();
-        };
-
-        //Define a console.log for easier logging. Don't
-        //get fancy though.
-        if (typeof console === 'undefined') {
-            console = {
-                log: function () {
-                    print.apply(undefined, arguments);
-                }
-            };
-        }
-    }
-
-    /** vim: et:ts=4:sw=4:sts=4
- * @license RequireJS 2.1.8 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
- * Available via the MIT or new BSD license.
- * see: http://github.com/jrburke/requirejs for details
- */
-//Not using strict: uneven strict support in browsers, #392, and causes
-//problems with requirejs.exec()/transpiler plugins that may not be strict.
-/*jslint regexp: true, nomen: true, sloppy: true */
-/*global window, navigator, document, importScripts, setTimeout, opera */
-
-
-(function (global) {
-    var req, s, head, baseElement, dataMain, src,
-        interactiveScript, currentlyAddingScript, mainScript, subPath,
-        version = '2.1.8',
-        commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
-        cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
-        jsSuffixRegExp = /\.js$/,
-        currDirRegExp = /^\.\//,
-        op = Object.prototype,
-        ostring = op.toString,
-        hasOwn = op.hasOwnProperty,
-        ap = Array.prototype,
-        apsp = ap.splice,
-        isBrowser = !!(typeof window !== 'undefined' && navigator && window.document),
-        isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
-        //PS3 indicates loaded and complete, but need to wait for complete
-        //specifically. Sequence is 'loading', 'loaded', execution,
-        // then 'complete'. The UA check is unfortunate, but not sure how
-        //to feature test w/o causing perf issues.
-        readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ?
-                      /^complete$/ : /^(complete|loaded)$/,
-        defContextName = '_',
-        //Oh the tragedy, detecting opera. See the usage of isOpera for reason.
-        isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]',
-        contexts = {},
-        cfg = {},
-        globalDefQueue = [],
-        useInteractive = false;
-
-    function isFunction(it) {
-        return ostring.call(it) === '[object Function]';
-    }
-
-    function isArray(it) {
-        return ostring.call(it) === '[object Array]';
-    }
-
-    /**
-     * Helper function for iterating over an array. If the func returns
-     * a true value, it will break out of the loop.
-     */
-    function each(ary, func) {
-        if (ary) {
-            var i;
-            for (i = 0; i < ary.length; i += 1) {
-                if (ary[i] && func(ary[i], i, ary)) {
-                    break;
-                }
-            }
-        }
-    }
-
-    /**
-     * Helper function for iterating over an array backwards. If the func
-     * returns a true value, it will break out of the loop.
-     */
-    function eachReverse(ary, func) {
-        if (ary) {
-            var i;
-            for (i = ary.length - 1; i > -1; i -= 1) {
-                if (ary[i] && func(ary[i], i, ary)) {
-                    break;
-                }
-            }
-        }
-    }
-
-    function hasProp(obj, prop) {
-        return hasOwn.call(obj, prop);
-    }
-
-    function getOwn(obj, prop) {
-        return hasProp(obj, prop) && obj[prop];
-    }
-
-    /**
-     * Cycles over properties in an object and calls a function for each
-     * property value. If the function returns a truthy value, then the
-     * iteration is stopped.
-     */
-    function eachProp(obj, func) {
-        var prop;
-        for (prop in obj) {
-            if (hasProp(obj, prop)) {
-                if (func(obj[prop], prop)) {
-                    break;
-                }
-            }
-        }
-    }
-
-    /**
-     * Simple function to mix in properties from source into target,
-     * but only if target does not already have a property of the same name.
-     */
-    function mixin(target, source, force, deepStringMixin) {
-        if (source) {
-            eachProp(source, function (value, prop) {
-                if (force || !hasProp(target, prop)) {
-                    if (deepStringMixin && typeof value !== 'string') {
-                        if (!target[prop]) {
-                            target[prop] = {};
-                        }
-                        mixin(target[prop], value, force, deepStringMixin);
-                    } else {
-                        target[prop] = value;
-                    }
-                }
-            });
-        }
-        return target;
-    }
-
-    //Similar to Function.prototype.bind, but the 'this' object is specified
-    //first, since it is easier to read/figure out what 'this' will be.
-    function bind(obj, fn) {
-        return function () {
-            return fn.apply(obj, arguments);
-        };
-    }
-
-    function scripts() {
-        return document.getElementsByTagName('script');
-    }
-
-    function defaultOnError(err) {
-        throw err;
-    }
-
-    //Allow getting a global that expressed in
-    //dot notation, like 'a.b.c'.
-    function getGlobal(value) {
-        if (!value) {
-            return value;
-        }
-        var g = global;
-        each(value.split('.'), function (part) {
-            g = g[part];
-        });
-        return g;
-    }
-
-    /**
-     * Constructs an error with a pointer to an URL with more information.
-     * @param {String} id the error ID that maps to an ID on a web page.
-     * @param {String} message human readable error.
-     * @param {Error} [err] the original error, if there is one.
-     *
-     * @returns {Error}
-     */
-    function makeError(id, msg, err, requireModules) {
-        var e = new Error(msg + '\nhttp://requirejs.org/docs/errors.html#' + id);
-        e.requireType = id;
-        e.requireModules = requireModules;
-        if (err) {
-            e.originalError = err;
-        }
-        return e;
-    }
-
-    if (typeof define !== 'undefined') {
-        //If a define is already in play via another AMD loader,
-        //do not overwrite.
-        return;
-    }
-
-    if (typeof requirejs !== 'undefined') {
-        if (isFunction(requirejs)) {
-            //Do not overwrite and existing requirejs instance.
-            return;
-        }
-        cfg = requirejs;
-        requirejs = undefined;
-    }
-
-    //Allow for a require config object
-    if (typeof require !== 'undefined' && !isFunction(require)) {
-        //assume it is a config object.
-        cfg = require;
-        require = undefined;
-    }
-
-    function newContext(contextName) {
-        var inCheckLoaded, Module, context, handlers,
-            checkLoadedTimeoutId,
-            config = {
-                //Defaults. Do not set a default for map
-                //config to speed up normalize(), which
-                //will run faster if there is no default.
-                waitSeconds: 7,
-                baseUrl: './',
-                paths: {},
-                pkgs: {},
-                shim: {},
-                config: {}
-            },
-            registry = {},
-            //registry of just enabled modules, to speed
-            //cycle breaking code when lots of modules
-            //are registered, but not activated.
-            enabledRegistry = {},
-            undefEvents = {},
-            defQueue = [],
-            defined = {},
-            urlFetched = {},
-            requireCounter = 1,
-            unnormalizedCounter = 1;
-
-        /**
-         * Trims the . and .. from an array of path segments.
-         * It will keep a leading path segment if a .. will become
-         * the first path segment, to help with module name lookups,
-         * which act like paths, but can be remapped. But the end result,
-         * all paths that use this function should look normalized.
-         * NOTE: this method MODIFIES the input array.
-         * @param {Array} ary the array of path segments.
-         */
-        function trimDots(ary) {
-            var i, part;
-            for (i = 0; ary[i]; i += 1) {
-                part = ary[i];
-                if (part === '.') {
-                    ary.splice(i, 1);
-                    i -= 1;
-                } else if (part === '..') {
-                    if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {
-                        //End of the line. Keep at least one non-dot
-                        //path segment at the front so it can be mapped
-                        //correctly to disk. Otherwise, there is likely
-                        //no path mapping for a path starting with '..'.
-                        //This can still fail, but catches the most reasonable
-                        //uses of ..
-                        break;
-                    } else if (i > 0) {
-                        ary.splice(i - 1, 2);
-                        i -= 2;
-                    }
-                }
-            }
-        }
-
-        /**
-         * Given a relative module name, like ./something, normalize it to
-         * a real name that can be mapped to a path.
-         * @param {String} name the relative name
-         * @param {String} baseName a real name that the name arg is relative
-         * to.
-         * @param {Boolean} applyMap apply the map config to the value. Should
-         * only be done if this normalization is for a dependency ID.
-         * @returns {String} normalized name
-         */
-        function normalize(name, baseName, applyMap) {
-            var pkgName, pkgConfig, mapValue, nameParts, i, j, nameSegment,
-                foundMap, foundI, foundStarMap, starI,
-                baseParts = baseName && baseName.split('/'),
-                normalizedBaseParts = baseParts,
-                map = config.map,
-                starMap = map && map['*'];
-
-            //Adjust any relative paths.
-            if (name && name.charAt(0) === '.') {
-                //If have a base name, try to normalize against it,
-                //otherwise, assume it is a top-level require that will
-                //be relative to baseUrl in the end.
-                if (baseName) {
-                    if (getOwn(config.pkgs, baseName)) {
-                        //If the baseName is a package name, then just treat it as one
-                        //name to concat the name with.
-                        normalizedBaseParts = baseParts = [baseName];
-                    } else {
-                        //Convert baseName to array, and lop off the last part,
-                        //so that . matches that 'directory' and not name of the baseName's
-                        //module. For instance, baseName of 'one/two/three', maps to
-                        //'one/two/three.js', but we want the directory, 'one/two' for
-                        //this normalization.
-                        normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
-                    }
-
-                    name = normalizedBaseParts.concat(name.split('/'));
-                    trimDots(name);
-
-                    //Some use of packages may use a . path to reference the
-                    //'main' module name, so normalize for that.
-                    pkgConfig = getOwn(config.pkgs, (pkgName = name[0]));
-                    name = name.join('/');
-                    if (pkgConfig && name === pkgName + '/' + pkgConfig.main) {
-                        name = pkgName;
-                    }
-                } else if (name.indexOf('./') === 0) {
-                    // No baseName, so this is ID is resolved relative
-                    // to baseUrl, pull off the leading dot.
-                    name = name.substring(2);
-                }
-            }
-
-            //Apply map config if available.
-            if (applyMap && map && (baseParts || starMap)) {
-                nameParts = name.split('/');
-
-                for (i = nameParts.length; i > 0; i -= 1) {
-                    nameSegment = nameParts.slice(0, i).join('/');
-
-                    if (baseParts) {
-                        //Find the longest baseName segment match in the config.
-                        //So, do joins on the biggest to smallest lengths of baseParts.
-                        for (j = baseParts.length; j > 0; j -= 1) {
-                            mapValue = getOwn(map, baseParts.slice(0, j).join('/'));
-
-                            //baseName segment has config, find if it has one for
-                            //this name.
-                            if (mapValue) {
-                                mapValue = getOwn(mapValue, nameSegment);
-                                if (mapValue) {
-                                    //Match, update name to the new value.
-                                    foundMap = mapValue;
-                                    foundI = i;
-                                    break;
-                                }
-                            }
-                        }
-                    }
-
-                    if (foundMap) {
-                        break;
-                    }
-
-                    //Check for a star map match, but just hold on to it,
-                    //if there is a shorter segment match later in a matching
-                    //config, then favor over this star map.
-                    if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {
-                        foundStarMap = getOwn(starMap, nameSegment);
-                        starI = i;
-                    }
-                }
-
-                if (!foundMap && foundStarMap) {
-                    foundMap = foundStarMap;
-                    foundI = starI;
-                }
-
-                if (foundMap) {
-                    nameParts.splice(0, foundI, foundMap);
-                    name = nameParts.join('/');
-                }
-            }
-
-            return name;
-        }
-
-        function removeScript(name) {
-            if (isBrowser) {
-                each(scripts(), function (scriptNode) {
-                    if (scriptNode.getAttribute('data-requiremodule') === name &&
-                            scriptNode.getAttribute('data-requirecontext') === context.contextName) {
-                        scriptNode.parentNode.removeChild(scriptNode);
-                        return true;
-                    }
-                });
-            }
-        }
-
-        function hasPathFallback(id) {
-            var pathConfig = getOwn(config.paths, id);
-            if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {
-                removeScript(id);
-                //Pop off the first array value, since it failed, and
-                //retry
-                pathConfig.shift();
-                context.require.undef(id);
-                context.require([id]);
-                return true;
-            }
-        }
-
-        //Turns a plugin!resource to [plugin, resource]
-        //with the plugin being undefined if the name
-        //did not have a plugin prefix.
-        function splitPrefix(name) {
-            var prefix,
-                index = name ? name.indexOf('!') : -1;
-            if (index > -1) {
-                prefix = name.substring(0, index);
-                name = name.substring(index + 1, name.length);
-            }
-            return [prefix, name];
-        }
-
-        /**
-         * Creates a module mapping that includes plugin prefix, module
-         * name, and path. If parentModuleMap is provided it will
-         * also normalize the name via require.normalize()
-         *
-         * @param {String} name the module name
-         * @param {String} [parentModuleMap] parent module map
-         * for the module name, used to resolve relative names.
-         * @param {Boolean} isNormalized: is the ID already normalized.
-         * This is true if this call is done for a define() module ID.
-         * @param {Boolean} applyMap: apply the map config to the ID.
-         * Should only be true if this map is for a dependency.
-         *
-         * @returns {Object}
-         */
-        function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {
-            var url, pluginModule, suffix, nameParts,
-                prefix = null,
-                parentName = parentModuleMap ? parentModuleMap.name : null,
-                originalName = name,
-                isDefine = true,
-                normalizedName = '';
-
-            //If no name, then it means it is a require call, generate an
-            //internal name.
-            if (!name) {
-                isDefine = false;
-                name = '_@r' + (requireCounter += 1);
-            }
-
-            nameParts = splitPrefix(name);
-            prefix = nameParts[0];
-            name = nameParts[1];
-
-            if (prefix) {
-                prefix = normalize(prefix, parentName, applyMap);
-                pluginModule = getOwn(defined, prefix);
-            }
-
-            //Account for relative paths if there is a base name.
-            if (name) {
-                if (prefix) {
-                    if (pluginModule && pluginModule.normalize) {
-                        //Plugin is loaded, use its normalize method.
-                        normalizedName = pluginModule.normalize(name, function (name) {
-                            return normalize(name, parentName, applyMap);
-                        });
-                    } else {
-                        normalizedName = normalize(name, parentName, applyMap);
-                    }
-                } else {
-                    //A regular module.
-                    normalizedName = normalize(name, parentName, applyMap);
-
-                    //Normalized name may be a plugin ID due to map config
-                    //application in normalize. The map config values must
-                    //already be normalized, so do not need to redo that part.
-                    nameParts = splitPrefix(normalizedName);
-                    prefix = nameParts[0];
-                    normalizedName = nameParts[1];
-                    isNormalized = true;
-
-                    url = context.nameToUrl(normalizedName);
-                }
-            }
-
-            //If the id is a plugin id that cannot be determined if it needs
-            //normalization, stamp it with a unique ID so two matching relative
-            //ids that may conflict can be separate.
-            suffix = prefix && !pluginModule && !isNormalized ?
-                     '_unnormalized' + (unnormalizedCounter += 1) :
-                     '';
-
-            return {
-                prefix: prefix,
-                name: normalizedName,
-                parentMap: parentModuleMap,
-                unnormalized: !!suffix,
-                url: url,
-                originalName: originalName,
-                isDefine: isDefine,
-                id: (prefix ?
-                        prefix + '!' + normalizedName :
-                        normalizedName) + suffix
-            };
-        }
-
-        function getModule(depMap) {
-            var id = depMap.id,
-                mod = getOwn(registry, id);
-
-            if (!mod) {
-                mod = registry[id] = new context.Module(depMap);
-            }
-
-            return mod;
-        }
-
-        function on(depMap, name, fn) {
-            var id = depMap.id,
-                mod = getOwn(registry, id);
-
-            if (hasProp(defined, id) &&
-                    (!mod || mod.defineEmitComplete)) {
-                if (name === 'defined') {
-                    fn(defined[id]);
-                }
-            } else {
-                mod = getModule(depMap);
-                if (mod.error && name === 'error') {
-                    fn(mod.error);
-                } else {
-                    mod.on(name, fn);
-                }
-            }
-        }
-
-        function onError(err, errback) {
-            var ids = err.requireModules,
-                notified = false;
-
-            if (errback) {
-                errback(err);
-            } else {
-                each(ids, function (id) {
-                    var mod = getOwn(registry, id);
-                    if (mod) {
-                        //Set error on module, so it skips timeout checks.
-                        mod.error = err;
-                        if (mod.events.error) {
-                            notified = true;
-                            mod.emit('error', err);
-                        }
-                    }
-                });
-
-                if (!notified) {
-                    req.onError(err);
-                }
-            }
-        }
-
-        /**
-         * Internal method to transfer globalQueue items to this context's
-         * defQueue.
-         */
-        function takeGlobalQueue() {
-            //Push all the globalDefQueue items into the context's defQueue
-            if (globalDefQueue.length) {
-                //Array splice in the values since the context code has a
-                //local var ref to defQueue, so cannot just reassign the one
-                //on context.
-                apsp.apply(defQueue,
-                           [defQueue.length - 1, 0].concat(globalDefQueue));
-                globalDefQueue = [];
-            }
-        }
-
-        handlers = {
-            'require': function (mod) {
-                if (mod.require) {
-                    return mod.require;
-                } else {
-                    return (mod.require = context.makeRequire(mod.map));
-                }
-            },
-            'exports': function (mod) {
-                mod.usingExports = true;
-                if (mod.map.isDefine) {
-                    if (mod.exports) {
-                        return mod.exports;
-                    } else {
-                        return (mod.exports = defined[mod.map.id] = {});
-                    }
-                }
-            },
-            'module': function (mod) {
-                if (mod.module) {
-                    return mod.module;
-                } else {
-                    return (mod.module = {
-                        id: mod.map.id,
-                        uri: mod.map.url,
-                        config: function () {
-                            var c,
-                                pkg = getOwn(config.pkgs, mod.map.id);
-                            // For packages, only support config targeted
-                            // at the main module.
-                            c = pkg ? getOwn(config.config, mod.map.id + '/' + pkg.main) :
-                                      getOwn(config.config, mod.map.id);
-                            return  c || {};
-                        },
-                        exports: defined[mod.map.id]
-                    });
-                }
-            }
-        };
-
-        function cleanRegistry(id) {
-            //Clean up machinery used for waiting modules.
-            delete registry[id];
-            delete enabledRegistry[id];
-        }
-
-        function breakCycle(mod, traced, processed) {
-            var id = mod.map.id;
-
-            if (mod.error) {
-                mod.emit('error', mod.error);
-            } else {
-                traced[id] = true;
-                each(mod.depMaps, function (depMap, i) {
-                    var depId = depMap.id,
-                        dep = getOwn(registry, depId);
-
-                    //Only force things that have not completed
-                    //being defined, so still in the registry,
-                    //and only if it has not been matched up
-                    //in the module already.
-                    if (dep && !mod.depMatched[i] && !processed[depId]) {
-                        if (getOwn(traced, depId)) {
-                            mod.defineDep(i, defined[depId]);
-                            mod.check(); //pass false?
-                        } else {
-                            breakCycle(dep, traced, processed);
-                        }
-                    }
-                });
-                processed[id] = true;
-            }
-        }
-
-        function checkLoaded() {
-            var map, modId, err, usingPathFallback,
-                waitInterval = config.waitSeconds * 1000,
-                //It is possible to disable the wait interval by using waitSeconds of 0.
-                expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),
-                noLoads = [],
-                reqCalls = [],
-                stillLoading = false,
-                needCycleCheck = true;
-
-            //Do not bother if this call was a result of a cycle break.
-            if (inCheckLoaded) {
-                return;
-            }
-
-            inCheckLoaded = true;
-
-            //Figure out the state of all the modules.
-            eachProp(enabledRegistry, function (mod) {
-                map = mod.map;
-                modId = map.id;
-
-                //Skip things that are not enabled or in error state.
-                if (!mod.enabled) {
-                    return;
-                }
-
-                if (!map.isDefine) {
-                    reqCalls.push(mod);
-                }
-
-                if (!mod.error) {
-                    //If the module should be executed, and it has not
-                    //been inited and time is up, remember it.
-                    if (!mod.inited && expired) {
-                        if (hasPathFallback(modId)) {
-                            usingPathFallback = true;
-                            stillLoading = true;
-                        } else {
-                            noLoads.push(modId);
-                            removeScript(modId);
-                        }
-                    } else if (!mod.inited && mod.fetched && map.isDefine) {
-                        stillLoading = true;
-                        if (!map.prefix) {
-                            //No reason to keep looking for unfinished
-                            //loading. If the only stillLoading is a
-                            //plugin resource though, keep going,
-                            //because it may be that a plugin resource
-                            //is waiting on a non-plugin cycle.
-                            return (needCycleCheck = false);
-                        }
-                    }
-                }
-            });
-
-            if (expired && noLoads.length) {
-                //If wait time expired, throw error of unloaded modules.
-                err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads);
-                err.contextName = context.contextName;
-                return onError(err);
-            }
-
-            //Not expired, check for a cycle.
-            if (needCycleCheck) {
-                each(reqCalls, function (mod) {
-                    breakCycle(mod, {}, {});
-                });
-            }
-
-            //If still waiting on loads, and the waiting load is something
-            //other than a plugin resource, or there are still outstanding
-            //scripts, then just try back later.
-            if ((!expired || usingPathFallback) && stillLoading) {
-                //Something is still waiting to load. Wait for it, but only
-                //if a timeout is not already in effect.
-                if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {
-                    checkLoadedTimeoutId = setTimeout(function () {
-                        checkLoadedTimeoutId = 0;
-                        checkLoaded();
-                    }, 50);
-                }
-            }
-
-            inCheckLoaded = false;
-        }
-
-        Module = function (map) {
-            this.events = getOwn(undefEvents, map.id) || {};
-            this.map = map;
-            this.shim = getOwn(config.shim, map.id);
-            this.depExports = [];
-            this.depMaps = [];
-            this.depMatched = [];
-            this.pluginMaps = {};
-            this.depCount = 0;
-
-            /* this.exports this.factory
-               this.depMaps = [],
-               this.enabled, this.fetched
-            */
-        };
-
-        Module.prototype = {
-            init: function (depMaps, factory, errback, options) {
-                options = options || {};
-
-                //Do not do more inits if already done. Can happen if there
-                //are multiple define calls for the same module. That is not
-                //a normal, common case, but it is also not unexpected.
-                if (this.inited) {
-                    return;
-                }
-
-                this.factory = factory;
-
-                if (errback) {
-                    //Register for errors on this module.
-                    this.on('error', errback);
-                } else if (this.events.error) {
-                    //If no errback already, but there are error listeners
-                    //on this module, set up an errback to pass to the deps.
-                    errback = bind(this, function (err) {
-                        this.emit('error', err);
-                    });
-                }
-
-                //Do a copy of the dependency array, so that
-                //source inputs are not modified. For example
-                //"shim" deps are passed in here directly, and
-                //doing a direct modification of the depMaps array
-                //would affect that config.
-                this.depMaps = depMaps && depMaps.slice(0);
-
-                this.errback = errback;
-
-                //Indicate this module has be initialized
-                this.inited = true;
-
-                this.ignore = options.ignore;
-
-                //Could have option to init this module in enabled mode,
-                //or could have been previously marked as enabled. However,
-                //the dependencies are not known until init is called. So
-                //if enabled previously, now trigger dependencies as enabled.
-                if (options.enabled || this.enabled) {
-                    //Enable this module and dependencies.
-                    //Will call this.check()
-                    this.enable();
-                } else {
-                    this.check();
-                }
-            },
-
-            defineDep: function (i, depExports) {
-                //Because of cycles, defined callback for a given
-                //export can be called more than once.
-                if (!this.depMatched[i]) {
-                    this.depMatched[i] = true;
-                    this.depCount -= 1;
-                    this.depExports[i] = depExports;
-                }
-            },
-
-            fetch: function () {
-                if (this.fetched) {
-                    return;
-                }
-                this.fetched = true;
-
-                context.startTime = (new Date()).getTime();
-
-                var map = this.map;
-
-                //If the manager is for a plugin managed resource,
-                //ask the plugin to load it now.
-                if (this.shim) {
-                    context.makeRequire(this.map, {
-                        enableBuildCallback: true
-                    })(this.shim.deps || [], bind(this, function () {
-                        return map.prefix ? this.callPlugin() : this.load();
-                    }));
-                } else {
-                    //Regular dependency.
-                    return map.prefix ? this.callPlugin() : this.load();
-                }
-            },
-
-            load: function () {
-                var url = this.map.url;
-
-                //Regular dependency.
-                if (!urlFetched[url]) {
-                    urlFetched[url] = true;
-                    context.load(this.map.id, url);
-                }
-            },
-
-            /**
-             * Checks if the module is ready to define itself, and if so,
-             * define it.
-             */
-            check: function () {
-                if (!this.enabled || this.enabling) {
-                    return;
-                }
-
-                var err, cjsModule,
-                    id = this.map.id,
-                    depExports = this.depExports,
-                    exports = this.exports,
-                    factory = this.factory;
-
-                if (!this.inited) {
-                    this.fetch();
-                } else if (this.error) {
-                    this.emit('error', this.error);
-                } else if (!this.defining) {
-                    //The factory could trigger another require call
-                    //that would result in checking this module to
-                    //define itself again. If already in the process
-                    //of doing that, skip this work.
-                    this.defining = true;
-
-                    if (this.depCount < 1 && !this.defined) {
-                        if (isFunction(factory)) {
-                            //If there is an error listener, favor passing
-                            //to that instead of throwing an error. However,
-                            //only do it for define()'d  modules. require
-                            //errbacks should not be called for failures in
-                            //their callbacks (#699). However if a global
-                            //onError is set, use that.
-                            if ((this.events.error && this.map.isDefine) ||
-                                req.onError !== defaultOnError) {
-                                try {
-                                    exports = context.execCb(id, factory, depExports, exports);
-                                } catch (e) {
-                                    err = e;
-                                }
-                            } else {
-                                exports = context.execCb(id, factory, depExports, exports);
-                            }
-
-                            if (this.map.isDefine) {
-                                //If setting exports via 'module' is in play,
-                                //favor that over return value and exports. After that,
-                                //favor a non-undefined return value over exports use.
-                                cjsModule = this.module;
-                                if (cjsModule &&
-                                        cjsModule.exports !== undefined &&
-                                        //Make sure it is not already the exports value
-                                        cjsModule.exports !== this.exports) {
-                                    exports = cjsModule.exports;
-                                } else if (exports === undefined && this.usingExports) {
-                                    //exports already set the defined value.
-                                    exports = this.exports;
-                                }
-                            }
-
-                            if (err) {
-                                err.requireMap = this.map;
-                                err.requireModules = this.map.isDefine ? [this.map.id] : null;
-                                err.requireType = this.map.isDefine ? 'define' : 'require';
-                                return onError((this.error = err));
-                            }
-
-                        } else {
-                            //Just a literal value
-                            exports = factory;
-                        }
-
-                        this.exports = exports;
-
-                        if (this.map.isDefine && !this.ignore) {
-                            defined[id] = exports;
-
-                            if (req.onResourceLoad) {
-                                req.onResourceLoad(context, this.map, this.depMaps);
-                            }
-                        }
-
-                        //Clean up
-                        cleanRegistry(id);
-
-                        this.defined = true;
-                    }
-
-                    //Finished the define stage. Allow calling check again
-                    //to allow define notifications below in the case of a
-                    //cycle.
-                    this.defining = false;
-
-                    if (this.defined && !this.defineEmitted) {
-                        this.defineEmitted = true;
-                        this.emit('defined', this.exports);
-                        this.defineEmitComplete = true;
-                    }
-
-                }
-            },
-
-            callPlugin: function () {
-                var map = this.map,
-                    id = map.id,
-                    //Map already normalized the prefix.
-                    pluginMap = makeModuleMap(map.prefix);
-
-                //Mark this as a dependency for this plugin, so it
-                //can be traced for cycles.
-                this.depMaps.push(pluginMap);
-
-                on(pluginMap, 'defined', bind(this, function (plugin) {
-                    var load, normalizedMap, normalizedMod,
-                        name = this.map.name,
-                        parentName = this.map.parentMap ? this.map.parentMap.name : null,
-                        localRequire = context.makeRequire(map.parentMap, {
-                            enableBuildCallback: true
-                        });
-
-                    //If current map is not normalized, wait for that
-                    //normalized name to load instead of continuing.
-                    if (this.map.unnormalized) {
-                        //Normalize the ID if the plugin allows it.
-                        if (plugin.normalize) {
-                            name = plugin.normalize(name, function (name) {
-                                return normalize(name, parentName, true);
-                            }) || '';
-                        }
-
-                        //prefix and name should already be normalized, no need
-                        //for applying map config again either.
-                        normalizedMap = makeModuleMap(map.prefix + '!' + name,
-                                                      this.map.parentMap);
-                        on(normalizedMap,
-                            'defined', bind(this, function (value) {
-                                this.init([], function () { return value; }, null, {
-                                    enabled: true,
-                                    ignore: true
-                                });
-                            }));
-
-                        normalizedMod = getOwn(registry, normalizedMap.id);
-                        if (normalizedMod) {
-                            //Mark this as a dependency for this plugin, so it
-                            //can be traced for cycles.
-                            this.depMaps.push(normalizedMap);
-
-                            if (this.events.error) {
-                                normalizedMod.on('error', bind(this, function (err) {
-                                    this.emit('error', err);
-                                }));
-                            }
-                            normalizedMod.enable();
-                        }
-
-                        return;
-                    }
-
-                    load = bind(this, function (value) {
-                        this.init([], function () { return value; }, null, {
-                            enabled: true
-                        });
-                    });
-
-                    load.error = bind(this, function (err) {
-                        this.inited = true;
-                        this.error = err;
-                        err.requireModules = [id];
-
-                        //Remove temp unnormalized modules for this module,
-                        //since they will never be resolved otherwise now.
-                        eachProp(registry, function (mod) {
-                            if (mod.map.id.indexOf(id + '_unnormalized') === 0) {
-                                cleanRegistry(mod.map.id);
-                            }
-                        });
-
-                        onError(err);
-                    });
-
-                    //Allow plugins to load other code without having to know the
-                    //context or how to 'complete' the load.
-                    load.fromText = bind(this, function (text, textAlt) {
-                        /*jslint evil: true */
-                        var moduleName = map.name,
-                            moduleMap = makeModuleMap(moduleName),
-                            hasInteractive = useInteractive;
-
-                        //As of 2.1.0, support just passing the text, to reinforce
-                        //fromText only being called once per resource. Still
-                        //support old style of passing moduleName but discard
-                        //that moduleName in favor of the internal ref.
-                        if (textAlt) {
-                            text = textAlt;
-                        }
-
-                        //Turn off interactive script matching for IE for any define
-                        //calls in the text, then turn it back on at the end.
-                        if (hasInteractive) {
-                            useInteractive = false;
-                        }
-
-                        //Prime the system by creating a module instance for
-                        //it.
-                        getModule(moduleMap);
-
-                        //Transfer any config to this other module.
-                        if (hasProp(config.config, id)) {
-                            config.config[moduleName] = config.config[id];
-                        }
-
-                        try {
-                            req.exec(text);
-                        } catch (e) {
-                            return onError(makeError('fromtexteval',
-                                             'fromText eval for ' + id +
-                                            ' failed: ' + e,
-                                             e,
-                                             [id]));
-                        }
-
-                        if (hasInteractive) {
-                            useInteractive = true;
-                        }
-
-                        //Mark this as a dependency for the plugin
-                        //resource
-                        this.depMaps.push(moduleMap);
-
-                        //Support anonymous modules.
-                        context.completeLoad(moduleName);
-
-                        //Bind the value of that module to the value for this
-                        //resource ID.
-                        localRequire([moduleName], load);
-                    });
-
-                    //Use parentName here since the plugin's name is not reliable,
-                    //could be some weird string with no path that actually wants to
-                    //reference the parentName's path.
-                    plugin.load(map.name, localRequire, load, config);
-                }));
-
-                context.enable(pluginMap, this);
-                this.pluginMaps[pluginMap.id] = pluginMap;
-            },
-
-            enable: function () {
-                enabledRegistry[this.map.id] = this;
-                this.enabled = true;
-
-                //Set flag mentioning that the module is enabling,
-                //so that immediate calls to the defined callbacks
-                //for dependencies do not trigger inadvertent load
-                //with the depCount still being zero.
-                this.enabling = true;
-
-                //Enable each dependency
-                each(this.depMaps, bind(this, function (depMap, i) {
-                    var id, mod, handler;
-
-                    if (typeof depMap === 'string') {
-                        //Dependency needs to be converted to a depMap
-                        //and wired up to this module.
-                        depMap = makeModuleMap(depMap,
-                                               (this.map.isDefine ? this.map : this.map.parentMap),
-                                               false,
-                                               !this.skipMap);
-                        this.depMaps[i] = depMap;
-
-                        handler = getOwn(handlers, depMap.id);
-
-                        if (handler) {
-                            this.depExports[i] = handler(this);
-                            return;
-                        }
-
-                        this.depCount += 1;
-
-                        on(depMap, 'defined', bind(this, function (depExports) {
-                            this.defineDep(i, depExports);
-                            this.check();
-                        }));
-
-                        if (this.errback) {
-                            on(depMap, 'error', bind(this, this.errback));
-                        }
-                    }
-
-                    id = depMap.id;
-                    mod = registry[id];
-
-                    //Skip special modules like 'require', 'exports', 'module'
-                    //Also, don't call enable if it is already enabled,
-                    //important in circular dependency cases.
-                    if (!hasProp(handlers, id) && mod && !mod.enabled) {
-                        context.enable(depMap, this);
-                    }
-                }));
-
-                //Enable each plugin that is used in
-                //a dependency
-                eachProp(this.pluginMaps, bind(this, function (pluginMap) {
-                    var mod = getOwn(registry, pluginMap.id);
-                    if (mod && !mod.enabled) {
-                        context.enable(pluginMap, this);
-                    }
-                }));
-
-                this.enabling = false;
-
-                this.check();
-            },
-
-            on: function (name, cb) {
-                var cbs = this.events[name];
-                if (!cbs) {
-                    cbs = this.events[name] = [];
-                }
-                cbs.push(cb);
-            },
-
-            emit: function (name, evt) {
-                each(this.events[name], function (cb) {
-                    cb(evt);
-                });
-                if (name === 'error') {
-                    //Now that the error handler was triggered, remove
-                    //the listeners, since this broken Module instance
-                    //can stay around for a while in the registry.
-                    delete this.events[name];
-                }
-            }
-        };
-
-        function callGetModule(args) {
-            //Skip modules already defined.
-            if (!hasProp(defined, args[0])) {
-                getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);
-            }
-        }
-
-        function removeListener(node, func, name, ieName) {
-            //Favor detachEvent because of IE9
-            //issue, see attachEvent/addEventListener comment elsewhere
-            //in this file.
-            if (node.detachEvent && !isOpera) {
-                //Probably IE. If not it will throw an error, which will be
-                //useful to know.
-                if (ieName) {
-                    node.detachEvent(ieName, func);
-                }
-            } else {
-                node.removeEventListener(name, func, false);
-            }
-        }
-
-        /**
-         * Given an event from a script node, get the requirejs info from it,
-         * and then removes the event listeners on the node.
-         * @param {Event} evt
-         * @returns {Object}
-         */
-        function getScriptData(evt) {
-            //Using currentTarget instead of target for Firefox 2.0's sake. Not
-            //all old browsers will be supported, but this one was easy enough
-            //to support and still makes sense.
-            var node = evt.currentTarget || evt.srcElement;
-
-            //Remove the listeners once here.
-            removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange');
-            removeListener(node, context.onScriptError, 'error');
-
-            return {
-                node: node,
-                id: node && node.getAttribute('data-requiremodule')
-            };
-        }
-
-        function intakeDefines() {
-            var args;
-
-            //Any defined modules in the global queue, intake them now.
-            takeGlobalQueue();
-
-            //Make sure any remaining defQueue items get properly processed.
-            while (defQueue.length) {
-                args = defQueue.shift();
-                if (args[0] === null) {
-                    return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' + args[args.length - 1]));
-                } else {
-                    //args are id, deps, factory. Should be normalized by the
-                    //define() function.
-                    callGetModule(args);
-                }
-            }
-        }
-
-        context = {
-            config: config,
-            contextName: contextName,
-            registry: registry,
-            defined: defined,
-            urlFetched: urlFetched,
-            defQueue: defQueue,
-            Module: Module,
-            makeModuleMap: makeModuleMap,
-            nextTick: req.nextTick,
-            onError: onError,
-
-            /**
-             * Set a configuration for the context.
-             * @param {Object} cfg config object to integrate.
-             */
-            configure: function (cfg) {
-                //Make sure the baseUrl ends in a slash.
-                if (cfg.baseUrl) {
-                    if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
-                        cfg.baseUrl += '/';
-                    }
-                }
-
-                //Save off the paths and packages since they require special processing,
-                //they are additive.
-                var pkgs = config.pkgs,
-                    shim = config.shim,
-                    objs = {
-                        paths: true,
-                        config: true,
-                        map: true
-                    };
-
-                eachProp(cfg, function (value, prop) {
-                    if (objs[prop]) {
-                        if (prop === 'map') {
-                            if (!config.map) {
-                                config.map = {};
-                            }
-                            mixin(config[prop], value, true, true);
-                        } else {
-                            mixin(config[prop], value, true);
-                        }
-                    } else {
-                        config[prop] = value;
-                    }
-                });
-
-                //Merge shim
-                if (cfg.shim) {
-                    eachProp(cfg.shim, function (value, id) {
-                        //Normalize the structure
-                        if (isArray(value)) {
-                            value = {
-                                deps: value
-                            };
-                        }
-                        if ((value.exports || value.init) && !value.exportsFn) {
-                            value.exportsFn = context.makeShimExports(value);
-                        }
-                        shim[id] = value;
-                    });
-                    config.shim = shim;
-                }
-
-                //Adjust packages if necessary.
-                if (cfg.packages) {
-                    each(cfg.packages, function (pkgObj) {
-                        var location;
-
-                        pkgObj = typeof pkgObj === 'string' ? { name: pkgObj } : pkgObj;
-                        location = pkgObj.location;
-
-                        //Create a brand new object on pkgs, since currentPackages can
-                        //be passed in again, and config.pkgs is the internal transformed
-                        //state for all package configs.
-                        pkgs[pkgObj.name] = {
-                            name: pkgObj.name,
-                            location: location || pkgObj.name,
-                            //Remove leading dot in main, so main paths are normalized,
-                            //and remove any trailing .js, since different package
-                            //envs have different conventions: some use a module name,
-                            //some use a file name.
-                            main: (pkgObj.main || 'main')
-                                  .replace(currDirRegExp, '')
-                                  .replace(jsSuffixRegExp, '')
-                        };
-                    });
-
-                    //Done with modifications, assing packages back to context config
-                    config.pkgs = pkgs;
-                }
-
-                //If there are any "waiting to execute" modules in the registry,
-                //update the maps for them, since their info, like URLs to load,
-                //may have changed.
-                eachProp(registry, function (mod, id) {
-                    //If module already has init called, since it is too
-                    //late to modify them, and ignore unnormalized ones
-                    //since they are transient.
-                    if (!mod.inited && !mod.map.unnormalized) {
-                        mod.map = makeModuleMap(id);
-                    }
-                });
-
-                //If a deps array or a config callback is specified, then call
-                //require with those args. This is useful when require is defined as a
-                //config object before require.js is loaded.
-                if (cfg.deps || cfg.callback) {
-                    context.require(cfg.deps || [], cfg.callback);
-                }
-            },
-
-            makeShimExports: function (value) {
-                function fn() {
-                    var ret;
-                    if (value.init) {
-                        ret = value.init.apply(global, arguments);
-                    }
-                    return ret || (value.exports && getGlobal(value.exports));
-                }
-                return fn;
-            },
-
-            makeRequire: function (relMap, options) {
-                options = options || {};
-
-                function localRequire(deps, callback, errback) {
-                    var id, map, requireMod;
-
-                    if (options.enableBuildCallback && callback && isFunction(callback)) {
-                        callback.__requireJsBuild = true;
-                    }
-
-                    if (typeof deps === 'string') {
-                        if (isFunction(callback)) {
-                            //Invalid call
-                            return onError(makeError('requireargs', 'Invalid require call'), errback);
-                        }
-
-                        //If require|exports|module are requested, get the
-                        //value for them from the special handlers. Caveat:
-                        //this only works while module is being defined.
-                        if (relMap && hasProp(handlers, deps)) {
-                            return handlers[deps](registry[relMap.id]);
-                        }
-
-                        //Synchronous access to one module. If require.get is
-                        //available (as in the Node adapter), prefer that.
-                        if (req.get) {
-                            return req.get(context, deps, relMap, localRequire);
-                        }
-
-                        //Normalize module name, if it contains . or ..
-                        map = makeModuleMap(deps, relMap, false, true);
-                        id = map.id;
-
-                        if (!hasProp(defined, id)) {
-                            return onError(makeError('notloaded', 'Module name "' +
-                                        id +
-                                        '" has not been loaded yet for context: ' +
-                                        contextName +
-                                        (relMap ? '' : '. Use require([])')));
-                        }
-                        return defined[id];
-                    }
-
-                    //Grab defines waiting in the global queue.
-                    intakeDefines();
-
-                    //Mark all the dependencies as needing to be loaded.
-                    context.nextTick(function () {
-                        //Some defines could have been added since the
-                        //require call, collect them.
-                        intakeDefines();
-
-                        requireMod = getModule(makeModuleMap(null, relMap));
-
-                        //Store if map config should be applied to this require
-                        //call for dependencies.
-                        requireMod.skipMap = options.skipMap;
-
-                        requireMod.init(deps, callback, errback, {
-                            enabled: true
-                        });
-
-                        checkLoaded();
-                    });
-
-                    return localRequire;
-                }
-
-                mixin(localRequire, {
-                    isBrowser: isBrowser,
-
-                    /**
-                     * Converts a module name + .extension into an URL path.
-                     * *Requires* the use of a module name. It does not support using
-                     * plain URLs like nameToUrl.
-                     */
-                    toUrl: function (moduleNamePlusExt) {
-                        var ext,
-                            index = moduleNamePlusExt.lastIndexOf('.'),
-                            segment = moduleNamePlusExt.split('/')[0],
-                            isRelative = segment === '.' || segment === '..';
-
-                        //Have a file extension alias, and it is not the
-                        //dots from a relative path.
-                        if (index !== -1 && (!isRelative || index > 1)) {
-                            ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);
-                            moduleNamePlusExt = moduleNamePlusExt.substring(0, index);
-                        }
-
-                        return context.nameToUrl(normalize(moduleNamePlusExt,
-                                                relMap && relMap.id, true), ext,  true);
-                    },
-
-                    defined: function (id) {
-                        return hasProp(defined, makeModuleMap(id, relMap, false, true).id);
-                    },
-
-                    specified: function (id) {
-                        id = makeModuleMap(id, relMap, false, true).id;
-                        return hasProp(defined, id) || hasProp(registry, id);
-                    }
-                });
-
-                //Only allow undef on top level require calls
-                if (!relMap) {
-                    localRequire.undef = function (id) {
-                        //Bind any waiting define() calls to this context,
-                        //fix for #408
-                        takeGlobalQueue();
-
-                        var map = makeModuleMap(id, relMap, true),
-                            mod = getOwn(registry, id);
-
-                        delete defined[id];
-                        delete urlFetched[map.url];
-                        delete undefEvents[id];
-
-                        if (mod) {
-                            //Hold on to listeners in case the
-                            //module will be attempted to be reloaded
-                            //using a different config.
-                            if (mod.events.defined) {
-                                undefEvents[id] = mod.events;
-                            }
-
-                            cleanRegistry(id);
-                        }
-                    };
-                }
-
-                return localRequire;
-            },
-
-            /**
-             * Called to enable a module if it is still in the registry
-             * awaiting enablement. A second arg, parent, the parent module,
-             * is passed in for context, when this method is overriden by
-             * the optimizer. Not shown here to keep code compact.
-             */
-            enable: function (depMap) {
-                var mod = getOwn(registry, depMap.id);
-                if (mod) {
-                    getModule(depMap).enable();
-                }
-            },
-
-            /**
-             * Internal method used by environment adapters to complete a load event.
-             * A load event could be a script load or just a load pass from a synchronous
-             * load call.
-             * @param {String} moduleName the name of the module to potentially complete.
-             */
-            completeLoad: function (moduleName) {
-                var found, args, mod,
-                    shim = getOwn(config.shim, moduleName) || {},
-                    shExports = shim.exports;
-
-                takeGlobalQueue();
-
-                while (defQueue.length) {
-                    args = defQueue.shift();
-                    if (args[0] === null) {
-                        args[0] = moduleName;
-                        //If already found an anonymous module and bound it
-                        //to this name, then this is some other anon module
-                        //waiting for its completeLoad to fire.
-                        if (found) {
-                            break;
-                        }
-                        found = true;
-                    } else if (args[0] === moduleName) {
-                        //Found matching define call for this script!
-                        found = true;
-                    }
-
-                    callGetModule(args);
-                }
-
-                //Do this after the cycle of callGetModule in case the result
-                //of those calls/init calls changes the registry.
-                mod = getOwn(registry, moduleName);
-
-                if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {
-                    if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {
-                        if (hasPathFallback(moduleName)) {
-                            return;
-                        } else {
-                            return onError(makeError('nodefine',
-                                             'No define call for ' + moduleName,
-                                             null,
-                                             [moduleName]));
-                        }
-                    } else {
-                        //A script that does not call define(), so just simulate
-                        //the call for it.
-                        callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);
-                    }
-                }
-
-                checkLoaded();
-            },
-
-            /**
-             * Converts a module name to a file path. Supports cases where
-             * moduleName may actually be just an URL.
-             * Note that it **does not** call normalize on the moduleName,
-             * it is assumed to have already been normalized. This is an
-             * internal API, not a public one. Use toUrl for the public API.
-             */
-            nameToUrl: function (moduleName, ext, skipExt) {
-                var paths, pkgs, pkg, pkgPath, syms, i, parentModule, url,
-                    parentPath;
-
-                //If a colon is in the URL, it indicates a protocol is used and it is just
-                //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)
-                //or ends with .js, then assume the user meant to use an url and not a module id.
-                //The slash is important for protocol-less URLs as well as full paths.
-                if (req.jsExtRegExp.test(moduleName)) {
-                    //Just a plain path, not module name lookup, so just return it.
-                    //Add extension if it is included. This is a bit wonky, only non-.js things pass
-                    //an extension, this method probably needs to be reworked.
-                    url = moduleName + (ext || '');
-                } else {
-                    //A module that needs to be converted to a path.
-                    paths = config.paths;
-                    pkgs = config.pkgs;
-
-                    syms = moduleName.split('/');
-                    //For each module name segment, see if there is a path
-                    //registered for it. Start with most specific name
-                    //and work up from it.
-                    for (i = syms.length; i > 0; i -= 1) {
-                        parentModule = syms.slice(0, i).join('/');
-                        pkg = getOwn(pkgs, parentModule);
-                        parentPath = getOwn(paths, parentModule);
-                        if (parentPath) {
-                            //If an array, it means there are a few choices,
-                            //Choose the one that is desired
-                            if (isArray(parentPath)) {
-                                parentPath = parentPath[0];
-                            }
-                            syms.splice(0, i, parentPath);
-                            break;
-                        } else if (pkg) {
-                            //If module name is just the package name, then looking
-                            //for the main module.
-                            if (moduleName === pkg.name) {
-                                pkgPath = pkg.location + '/' + pkg.main;
-                            } else {
-                                pkgPath = pkg.location;
-                            }
-                            syms.splice(0, i, pkgPath);
-                            break;
-                        }
-                    }
-
-                    //Join the path parts together, then figure out if baseUrl is needed.
-                    url = syms.join('/');
-                    url += (ext || (/\?/.test(url) || skipExt ? '' : '.js'));
-                    url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url;
-                }
-
-                return config.urlArgs ? url +
-                                        ((url.indexOf('?') === -1 ? '?' : '&') +
-                                         config.urlArgs) : url;
-            },
-
-            //Delegates to req.load. Broken out as a separate function to
-            //allow overriding in the optimizer.
-            load: function (id, url) {
-                req.load(context, id, url);
-            },
-
-            /**
-             * Executes a module callback function. Broken out as a separate function
-             * solely to allow the build system to sequence the files in the built
-             * layer in the right sequence.
-             *
-             * @private
-             */
-            execCb: function (name, callback, args, exports) {
-                return callback.apply(exports, args);
-            },
-
-            /**
-             * callback for script loads, used to check status of loading.
-             *
-             * @param {Event} evt the event from the browser for the script
-             * that was loaded.
-             */
-            onScriptLoad: function (evt) {
-                //Using currentTarget instead of target for Firefox 2.0's sake. Not
-                //all old browsers will be supported, but this one was easy enough
-                //to support and still makes sense.
-                if (evt.type === 'load' ||
-                        (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {
-                    //Reset interactive script so a script node is not held onto for
-                    //to long.
-                    interactiveScript = null;
-
-                    //Pull out the name of the module and the context.
-                    var data = getScriptData(evt);
-                    context.completeLoad(data.id);
-                }
-            },
-
-            /**
-             * Callback for script errors.
-             */
-            onScriptError: function (evt) {
-                var data = getScriptData(evt);
-                if (!hasPathFallback(data.id)) {
-                    return onError(makeError('scripterror', 'Script error for: ' + data.id, evt, [data.id]));
-                }
-            }
-        };
-
-        context.require = context.makeRequire();
-        return context;
-    }
-
-    /**
-     * Main entry point.
-     *
-     * If the only argument to require is a string, then the module that
-     * is represented by that string is fetched for the appropriate context.
-     *
-     * If the first argument is an array, then it will be treated as an array
-     * of dependency string names to fetch. An optional function callback can
-     * be specified to execute when all of those dependencies are available.
-     *
-     * Make a local req variable to help Caja compliance (it assumes things
-     * on a require that are not standardized), and to give a short
-     * name for minification/local scope use.
-     */
-    req = requirejs = function (deps, callback, errback, optional) {
-
-        //Find the right context, use default
-        var context, config,
-            contextName = defContextName;
-
-        // Determine if have config object in the call.
-        if (!isArray(deps) && typeof deps !== 'string') {
-            // deps is a config object
-            config = deps;
-            if (isArray(callback)) {
-                // Adjust args if there are dependencies
-                deps = callback;
-                callback = errback;
-                errback = optional;
-            } else {
-                deps = [];
-            }
-        }
-
-        if (config && config.context) {
-            contextName = config.context;
-        }
-
-        context = getOwn(contexts, contextName);
-        if (!context) {
-            context = contexts[contextName] = req.s.newContext(contextName);
-        }
-
-        if (config) {
-            context.configure(config);
-        }
-
-        return context.require(deps, callback, errback);
-    };
-
-    /**
-     * Support require.config() to make it easier to cooperate with other
-     * AMD loaders on globally agreed names.
-     */
-    req.config = function (config) {
-        return req(config);
-    };
-
-    /**
-     * Execute something after the current tick
-     * of the event loop. Override for other envs
-     * that have a better solution than setTimeout.
-     * @param  {Function} fn function to execute later.
-     */
-    req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
-        setTimeout(fn, 4);
-    } : function (fn) { fn(); };
-
-    /**
-     * Export require as a global, but only if it does not already exist.
-     */
-    if (!require) {
-        require = req;
-    }
-
-    req.version = version;
-
-    //Used to filter out dependencies that are already paths.
-    req.jsExtRegExp = /^\/|:|\?|\.js$/;
-    req.isBrowser = isBrowser;
-    s = req.s = {
-        contexts: contexts,
-        newContext: newContext
-    };
-
-    //Create default context.
-    req({});
-
-    //Exports some context-sensitive methods on global require.
-    each([
-        'toUrl',
-        'undef',
-        'defined',
-        'specified'
-    ], function (prop) {
-        //Reference from contexts instead of early binding to default context,
-        //so that during builds, the latest instance of the default context
-        //with its config gets used.
-        req[prop] = function () {
-            var ctx = contexts[defContextName];
-            return ctx.require[prop].apply(ctx, arguments);
-        };
-    });
-
-    if (isBrowser) {
-        head = s.head = document.getElementsByTagName('head')[0];
-        //If BASE tag is in play, using appendChild is a problem for IE6.
-        //When that browser dies, this can be removed. Details in this jQuery bug:
-        //http://dev.jquery.com/ticket/2709
-        baseElement = document.getElementsByTagName('base')[0];
-        if (baseElement) {
-            head = s.head = baseElement.parentNode;
-        }
-    }
-
-    /**
-     * Any errors that require explicitly generates will be passed to this
-     * function. Intercept/override it if you want custom error handling.
-     * @param {Error} err the error object.
-     */
-    req.onError = defaultOnError;
-
-    /**
-     * Creates the node for the load command. Only used in browser envs.
-     */
-    req.createNode = function (config, moduleName, url) {
-        var node = config.xhtml ?
-                document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') :
-                document.createElement('script');
-        node.type = config.scriptType || 'text/javascript';
-        node.charset = 'utf-8';
-        node.async = true;
-        return node;
-    };
-
-    /**
-     * Does the request to load a module for the browser case.
-     * Make this a separate function to allow other environments
-     * to override it.
-     *
-     * @param {Object} context the require context to find state.
-     * @param {String} moduleName the name of the module.
-     * @param {Object} url the URL to the module.
-     */
-    req.load = function (context, moduleName, url) {
-        var config = (context && context.config) || {},
-            node;
-        if (isBrowser) {
-            //In the browser so use a script tag
-            node = req.createNode(config, moduleName, url);
-
-            node.setAttribute('data-requirecontext', context.contextName);
-            node.setAttribute('data-requiremodule', moduleName);
-
-            //Set up load listener. Test attachEvent first because IE9 has
-            //a subtle issue in its addEventListener and script onload firings
-            //that do not match the behavior of all other browsers with
-            //addEventListener support, which fire the onload event for a
-            //script right after the script execution. See:
-            //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution
-            //UNFORTUNATELY Opera implements attachEvent but does not follow the script
-            //script execution mode.
-            if (node.attachEvent &&
-                    //Check if node.attachEvent is artificially added by custom script or
-                    //natively supported by browser
-                    //read https://github.com/jrburke/requirejs/issues/187
-                    //if we can NOT find [native code] then it must NOT natively supported.
-                    //in IE8, node.attachEvent does not have toString()
-                    //Note the test for "[native code" with no closing brace, see:
-                    //https://github.com/jrburke/requirejs/issues/273
-                    !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&
-                    !isOpera) {
-                //Probably IE. IE (at least 6-8) do not fire
-                //script onload right after executing the script, so
-                //we cannot tie the anonymous define call to a name.
-                //However, IE reports the script as being in 'interactive'
-                //readyState at the time of the define call.
-                useInteractive = true;
-
-                node.attachEvent('onreadystatechange', context.onScriptLoad);
-                //It would be great to add an error handler here to catch
-                //404s in IE9+. However, onreadystatechange will fire before
-                //the error handler, so that does not help. If addEventListener
-                //is used, then IE will fire error before load, but we cannot
-                //use that pathway given the connect.microsoft.com issue
-                //mentioned above about not doing the 'script execute,
-                //then fire the script load event listener before execute
-                //next script' that other browsers do.
-                //Best hope: IE10 fixes the issues,
-                //and then destroys all installs of IE 6-9.
-                //node.attachEvent('onerror', context.onScriptError);
-            } else {
-                node.addEventListener('load', context.onScriptLoad, false);
-                node.addEventListener('error', context.onScriptError, false);
-            }
-            node.src = url;
-
-            //For some cache cases in IE 6-8, the script executes before the end
-            //of the appendChild execution, so to tie an anonymous define
-            //call to the module name (which is stored on the node), hold on
-            //to a reference to this node, but clear after the DOM insertion.
-            currentlyAddingScript = node;
-            if (baseElement) {
-                head.insertBefore(node, baseElement);
-            } else {
-                head.appendChild(node);
-            }
-            currentlyAddingScript = null;
-
-            return node;
-        } else if (isWebWorker) {
-            try {
-                //In a web worker, use importScripts. This is not a very
-                //efficient use of importScripts, importScripts will block until
-                //its script is downloaded and evaluated. However, if web workers
-                //are in play, the expectation that a build has been done so that
-                //only one script needs to be loaded anyway. This may need to be
-                //reevaluated if other use cases become common.
-                importScripts(url);
-
-                //Account for anonymous modules
-                context.completeLoad(moduleName);
-            } catch (e) {
-                context.onError(makeError('importscripts',
-                                'importScripts failed for ' +
-                                    moduleName + ' at ' + url,
-                                e,
-                                [moduleName]));
-            }
-        }
-    };
-
-    function getInteractiveScript() {
-        if (interactiveScript && interactiveScript.readyState === 'interactive') {
-            return interactiveScript;
-        }
-
-        eachReverse(scripts(), function (script) {
-            if (script.readyState === 'interactive') {
-                return (interactiveScript = script);
-            }
-        });
-        return interactiveScript;
-    }
-
-    //Look for a data-main script attribute, which could also adjust the baseUrl.
-    if (isBrowser) {
-        //Figure out baseUrl. Get it from the script tag with require.js in it.
-        eachReverse(scripts(), function (script) {
-            //Set the 'head' where we can append children by
-            //using the script's parent.
-            if (!head) {
-                head = script.parentNode;
-            }
-
-            //Look for a data-main attribute to set main script for the page
-            //to load. If it is there, the path to data main becomes the
-            //baseUrl, if it is not already set.
-            dataMain = script.getAttribute('data-main');
-            if (dataMain) {
-                //Preserve dataMain in case it is a path (i.e. contains '?')
-                mainScript = dataMain;
-
-                //Set final baseUrl if there is not already an explicit one.
-                if (!cfg.baseUrl) {
-                    //Pull off the directory of data-main for use as the
-                    //baseUrl.
-                    src = mainScript.split('/');
-                    mainScript = src.pop();
-                    subPath = src.length ? src.join('/')  + '/' : './';
-
-                    cfg.baseUrl = subPath;
-                }
-
-                //Strip off any trailing .js since mainScript is now
-                //like a module name.
-                mainSc

<TRUNCATED>

[22/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/index.html
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/index.html b/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/index.html
deleted file mode 100644
index 8c8e7c9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/index.html
+++ /dev/null
@@ -1,1726 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
-  <meta http-equiv="X-UA-Compatible" content="chrome=1">
-  <title>Underscore.js</title>
-  <style>
-    body {
-      font-size: 16px;
-      line-height: 24px;
-      background: #f0f0e5;
-      color: #252519;
-      font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-    }
-    div.container {
-      width: 720px;
-      margin: 50px 0 50px 50px;
-    }
-    p {
-      width: 550px;
-    }
-      #documentation p {
-        margin-bottom: 4px;
-      }
-    a, a:visited {
-      padding: 0 2px;
-      text-decoration: none;
-      background: #dadaba;
-      color: #252519;
-    }
-    a:active, a:hover {
-      color: #000;
-      background: #f0c095;
-    }
-    h1, h2, h3, h4, h5, h6 {
-      margin-top: 40px;
-    }
-    b.header {
-      font-size: 18px;
-    }
-    span.alias {
-      font-size: 14px;
-      font-style: italic;
-      margin-left: 20px;
-    }
-    table, tr, td {
-      margin: 0; padding: 0;
-    }
-      td {
-        padding: 2px 12px 2px 0;
-      }
-    ul {
-      list-style-type: circle;
-      padding: 0 0 0 20px;
-    }
-      li {
-        width: 500px;
-        margin-bottom: 10px;
-      }
-    code, pre, tt {
-      font-family: Monaco, Consolas, "Lucida Console", monospace;
-      font-size: 12px;
-      line-height: 18px;
-      color: #555529;
-    }
-      code {
-        margin-left: 20px;
-      }
-      pre {
-        font-size: 12px;
-        padding: 2px 0 2px 12px;
-        border-left: 6px solid #aaaa99;
-        margin: 0px 0 30px;
-      }
-  </style>
-</head>
-<body>
-
-  <div class="container">
-
-    <h1>Underscore.js</h1>
-
-    <p>
-      <a href="http://github.com/documentcloud/underscore/">Underscore</a> is a
-      utility-belt library for JavaScript that provides a lot of the
-      functional programming support that you would expect in
-      <a href="http://prototypejs.org/api">Prototype.js</a>
-      (or <a href="http://www.ruby-doc.org/core/classes/Enumerable.html">Ruby</a>),
-      but without extending any of the built-in JavaScript objects. It's the
-      tie to go along with <a href="http://docs.jquery.com">jQuery</a>'s tux.
-    </p>
-
-    <p>
-      Underscore provides 60-odd functions that support both the usual
-      functional suspects: <b>map</b>, <b>select</b>, <b>invoke</b> &mdash;
-      as well as more specialized helpers: function binding, javascript
-      templating, deep equality testing, and so on. It delegates to built-in
-      functions, if present, so modern browsers will use the
-      native implementations of <b>forEach</b>, <b>map</b>, <b>reduce</b>,
-      <b>filter</b>, <b>every</b>, <b>some</b> and <b>indexOf</b>.
-    </p>
-
-    <p>
-      A complete <a href="test/test.html">Test &amp; Benchmark Suite</a>
-      is included for your perusal.
-    </p>
-    
-    <p>
-      You may also read through the <a href="docs/underscore.html">annotated source code</a>.
-    </p>
-
-    <p>
-      The project is
-      <a href="http://github.com/documentcloud/underscore/">hosted on GitHub</a>.
-      You can report bugs and discuss features on the
-      <a href="http://github.com/documentcloud/underscore/issues">issues page</a>,
-      on Freenode in the <tt>#documentcloud</tt> channel,
-      or send tweets to <a href="http://twitter.com/documentcloud">@documentcloud</a>.
-    </p>
-
-    <p>
-      <i>Underscore is an open-source component of <a href="http://documentcloud.org/">DocumentCloud</a>.</i>
-    </p>
-
-    <h2>Downloads <i style="padding-left: 12px; font-size:12px;">(Right-click, and use "Save As")</i></h2>
-
-    <table>
-      <tr>
-        <td><a href="underscore.js">Development Version (1.2.1)</a></td>
-        <td><i>33kb, Uncompressed with Comments</i></td>
-      </tr>
-      <tr>
-        <td><a href="underscore-min.js">Production Version (1.2.1)</a></td>
-        <td><i>&lt; 4kb, Minified and Gzipped</i></td>
-      </tr>
-    </table>
-
-    <h2>Table of Contents</h2>
-    
-    <a href="#styles">Object-Oriented and Functional Styles</a>
-
-    <p>
-      <b>Collections</b>
-      <br />
-      <span class="methods"><a href="#each">each</a>, <a href="#map">map</a>,
-      <a href="#reduce">reduce</a>, <a href="#reduceRight">reduceRight</a>,
-      <a href="#find">find</a>, <a href="#filter">filter</a>,
-      <a href="#reject">reject</a>, <a href="#all">all</a>,
-      <a href="#any">any</a>, <a href="#include">include</a>,
-      <a href="#invoke">invoke</a>, <a href="#pluck">pluck</a>,
-      <a href="#max">max</a>, <a href="#min">min</a>,
-      <a href="#sortBy">sortBy</a>, <a href="#groupBy">groupBy</a>,
-      <a href="#sortedIndex">sortedIndex</a>, <a href="#shuffle">shuffle</a>,
-      <a href="#toArray">toArray</a>, <a href="#size">size</a></span>
-    </p>
-
-    <p>
-      <b>Arrays</b>
-      <br />
-      <span class="methods"><a href="#first">first</a>, <a href="#initial">initial</a>, <a href="#last">last</a>, <a href="#rest">rest</a>,
-      <a href="#compact">compact</a>, <a href="#flatten">flatten</a>, <a href="#without">without</a>, 
-      <a href="#union">union</a>, <a href="#intersection">intersection</a>, <a href="#difference">difference</a>, 
-      <a href="#uniq">uniq</a>, <a href="#zip">zip</a>, <a href="#indexOf">indexOf</a>,
-      <a href="#lastIndexOf">lastIndexOf</a>, <a href="#range">range</a></span>
-    </p>
-
-    <p>
-      <b>Functions</b>
-      <br />
-      <span class="methods"><a href="#bind">bind</a>, <a href="#bindAll">bindAll</a>, 
-      <a href="#memoize">memoize</a>, <a href="#delay">delay</a>, <a href="#defer">defer</a>, 
-      <a href="#throttle">throttle</a>, <a href="#debounce">debounce</a>, 
-      <a href="#once">once</a>, <a href="#after">after</a>, <a href="#wrap">wrap</a>, <a href="#compose">compose</a></span>
-    </p>
-
-    <p>
-      <b>Objects</b>
-      <br />
-      <span class="methods"><a href="#keys">keys</a>, <a href="#values">values</a>,
-      <a href="#functions">functions</a>, <a href="#extend">extend</a>, <a href="#defaults">defaults</a>, <a href="#clone">clone</a>, <a href="#tap">tap</a>,
-      <a href="#isEqual">isEqual</a>, <a href="#isEmpty">isEmpty</a>, <a href="#isElement">isElement</a>,
-      <a href="#isArray">isArray</a>, <a href="#isArguments">isArguments</a>, <a href="#isFunction">isFunction</a>, <a href="#isString">isString</a>,
-      <a href="#isNumber">isNumber</a>, <a href="#isBoolean">isBoolean</a>, <a href="#isDate">isDate</a>, <a href="#isRegExp">isRegExp</a>
-      <a href="#isNaN">isNaN</a>, <a href="#isNull">isNull</a>,
-      <a href="#isUndefined">isUndefined</a>
-      </span>
-    </p>
-
-    <p>
-      <b>Utility</b>
-      <br />
-      <span class="methods"><a href="#noConflict">noConflict</a>,
-      <a href="#identity">identity</a>, <a href="#times">times</a>, 
-      <a href="#mixin">mixin</a>, <a href="#uniqueId">uniqueId</a>, 
-      <a href="#template">template</a></span>
-    </p>
-
-    <p>
-      <b>Chaining</b>
-      <br />
-      <span class="methods"><a href="#chain">chain</a>, <a href="#value">value</a>
-    </p>
-
-    <div id="documentation">
-      
-      <h2 id="styles">Object-Oriented and Functional Styles</h2>
-
-      <p>
-        You can use Underscore in either an object-oriented or a functional style,
-        depending on your preference. The following two lines of code are
-        identical ways to double a list of numbers.
-      </p>
-
-    <pre>
-_.map([1, 2, 3], function(n){ return n * 2; });
-_([1, 2, 3]).map(function(n){ return n * 2; });</pre>
-
-      <p>
-        Using the object-oriented style allows you to chain together methods. Calling
-        <tt>chain</tt> on a wrapped object will cause all future method calls to
-        return wrapped objects as well. When you've finished the computation,
-        use <tt>value</tt> to retrieve the final value. Here's an example of chaining
-        together a <b>map/flatten/reduce</b>, in order to get the word count of
-        every word in a song.
-      </p>
-
-<pre>
-var lyrics = [
-  {line : 1, words : "I'm a lumberjack and I'm okay"},
-  {line : 2, words : "I sleep all night and I work all day"},
-  {line : 3, words : "He's a lumberjack and he's okay"},
-  {line : 4, words : "He sleeps all night and he works all day"}
-];
-
-_(lyrics).chain()
-  .map(function(line) { return line.words.split(' '); })
-  .flatten()
-  .reduce(function(counts, word) {
-    counts[word] = (counts[word] || 0) + 1;
-    return counts;
-}, {}).value();
-
-=&gt; {lumberjack : 2, all : 4, night : 2 ... }</pre>
-
-      <p>
-        In addition, the
-        <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/prototype">Array prototype's methods</a>
-        are proxied through the chained Underscore object, so you can slip a
-        <tt>reverse</tt> or a <tt>push</tt> into your chain, and continue to
-        modify the array.
-      </p>
-
-      <h2>Collection Functions (Arrays or Objects)</h2>
-
-      <p id="each">
-        <b class="header">each</b><code>_.each(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>forEach</b></span>
-        <br />
-        Iterates over a <b>list</b> of elements, yielding each in turn to an <b>iterator</b>
-        function. The <b>iterator</b> is bound to the <b>context</b> object, if one is
-        passed. Each invocation of <b>iterator</b> is called with three arguments:
-        <tt>(element, index, list)</tt>. If <b>list</b> is a JavaScript object, <b>iterator</b>'s
-        arguments will be <tt>(value, key, list)</tt>. Delegates to the native
-        <b>forEach</b> function if it exists.
-      </p>
-      <pre>
-_.each([1, 2, 3], function(num){ alert(num); });
-=&gt; alerts each number in turn...
-_.each({one : 1, two : 2, three : 3}, function(num, key){ alert(num); });
-=&gt; alerts each number in turn...</pre>
-
-      <p id="map">
-        <b class="header">map</b><code>_.map(list, iterator, [context])</code>
-        <br />
-        Produces a new array of values by mapping each value in <b>list</b>
-        through a transformation function (<b>iterator</b>). If the native <b>map</b> method
-        exists, it will be used instead. If <b>list</b> is a JavaScript object,
-        <b>iterator</b>'s arguments will be <tt>(value, key, list)</tt>.
-      </p>
-      <pre>
-_.map([1, 2, 3], function(num){ return num * 3; });
-=&gt; [3, 6, 9]
-_.map({one : 1, two : 2, three : 3}, function(num, key){ return num * 3; });
-=&gt; [3, 6, 9]</pre>
-
-      <p id="reduce">
-        <b class="header">reduce</b><code>_.reduce(list, iterator, memo, [context])</code>
-        <span class="alias">Aliases: <b>inject, foldl</b></span>
-        <br />
-        Also known as <b>inject</b> and <b>foldl</b>, <b>reduce</b> boils down a
-        <b>list</b> of values into a single value. <b>Memo</b> is the initial state
-        of the reduction, and each successive step of it should be returned by
-        <b>iterator</b>.
-      </p>
-      <pre>
-var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);
-=&gt; 6
-</pre>
-
-      <p id="reduceRight">
-        <b class="header">reduceRight</b><code>_.reduceRight(list, iterator, memo, [context])</code>
-        <span class="alias">Alias: <b>foldr</b></span>
-        <br />
-        The right-associative version of <b>reduce</b>. Delegates to the
-        JavaScript 1.8 version of <b>reduceRight</b>, if it exists. <b>Foldr</b>
-        is not as useful in JavaScript as it would be in a language with lazy
-        evaluation.
-      </p>
-      <pre>
-var list = [[0, 1], [2, 3], [4, 5]];
-var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);
-=&gt; [4, 5, 2, 3, 0, 1]
-</pre>
-
-      <p id="find">
-        <b class="header">find</b><code>_.find(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>detect</b></span>
-        <br />
-        Looks through each value in the <b>list</b>, returning the first one that
-        passes a truth test (<b>iterator</b>). The function returns as
-        soon as it finds an acceptable element, and doesn't traverse the
-        entire list.
-      </p>
-      <pre>
-var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
-=&gt; 2
-</pre>
-
-      <p id="filter">
-        <b class="header">filter</b><code>_.filter(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>select</b></span>
-        <br />
-        Looks through each value in the <b>list</b>, returning an array of all
-        the values that pass a truth test (<b>iterator</b>). Delegates to the
-        native <b>filter</b> method, if it exists.
-      </p>
-      <pre>
-var evens = _.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
-=&gt; [2, 4, 6]
-</pre>
-
-      <p id="reject">
-        <b class="header">reject</b><code>_.reject(list, iterator, [context])</code>
-        <br />
-        Returns the values in <b>list</b> without the elements that the truth
-        test (<b>iterator</b>) passes. The opposite of <b>filter</b>.
-      </p>
-      <pre>
-var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });
-=&gt; [1, 3, 5]
-</pre>
-
-      <p id="all">
-        <b class="header">all</b><code>_.all(list, iterator, [context])</code>
-        <span class="alias">Alias: <b>every</b></span>
-        <br />
-        Returns <i>true</i> if all of the values in the <b>list</b> pass the <b>iterator</b>
-        truth test. Delegates to the native method <b>every</b>, if present.
-      </p>
-      <pre>
-_.all([true, 1, null, 'yes'], _.identity);
-=&gt; false
-</pre>
-
-      <p id="any">
-        <b class="header">any</b><code>_.any(list, [iterator], [context])</code>
-        <span class="alias">Alias: <b>some</b></span>
-        <br />
-        Returns <i>true</i> if any of the values in the <b>list</b> pass the
-        <b>iterator</b> truth test. Short-circuits and stops traversing the list
-        if a true element is found. Delegates to the native method <b>some</b>,
-        if present.
-      </p>
-      <pre>
-_.any([null, 0, 'yes', false]);
-=&gt; true
-</pre>
-
-      <p id="include">
-        <b class="header">include</b><code>_.include(list, value)</code>
-        <span class="alias">Alias: <b>contains</b></span>
-        <br />
-        Returns <i>true</i> if the <b>value</b> is present in the <b>list</b>, using
-        <i>===</i> to test equality. Uses <b>indexOf</b> internally, if <b>list</b>
-        is an Array.
-      </p>
-      <pre>
-_.include([1, 2, 3], 3);
-=&gt; true
-</pre>
-
-      <p id="invoke">
-        <b class="header">invoke</b><code>_.invoke(list, methodName, [*arguments])</code>
-        <br />
-        Calls the method named by <b>methodName</b> on each value in the <b>list</b>.
-        Any extra arguments passed to <b>invoke</b> will be forwarded on to the
-        method invocation.
-      </p>
-      <pre>
-_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
-=&gt; [[1, 5, 7], [1, 2, 3]]
-</pre>
-
-      <p id="pluck">
-        <b class="header">pluck</b><code>_.pluck(list, propertyName)</code>
-        <br />
-        A convenient version of what is perhaps the most common use-case for
-        <b>map</b>: extracting a list of property values.
-      </p>
-      <pre>
-var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
-_.pluck(stooges, 'name');
-=&gt; ["moe", "larry", "curly"]
-</pre>
-
-      <p id="max">
-        <b class="header">max</b><code>_.max(list, [iterator], [context])</code>
-        <br />
-        Returns the maximum value in <b>list</b>. If <b>iterator</b> is passed,
-        it will be used on each value to generate the criterion by which the
-        value is ranked.
-      </p>
-      <pre>
-var stooges = [{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}];
-_.max(stooges, function(stooge){ return stooge.age; });
-=&gt; {name : 'curly', age : 60};
-</pre>
-
-      <p id="min">
-        <b class="header">min</b><code>_.min(list, [iterator], [context])</code>
-        <br />
-        Returns the minimum value in <b>list</b>. If <b>iterator</b> is passed,
-        it will be used on each value to generate the criterion by which the
-        value is ranked.
-      </p>
-      <pre>
-var numbers = [10, 5, 100, 2, 1000];
-_.min(numbers);
-=&gt; 2
-</pre>
-
-      <p id="sortBy">
-        <b class="header">sortBy</b><code>_.sortBy(list, iterator, [context])</code>
-        <br />
-        Returns a sorted copy of <b>list</b>, ranked by the results of running 
-        each value through <b>iterator</b>.
-      </p>
-      <pre>
-_.sortBy([1, 2, 3, 4, 5, 6], function(num){ return Math.sin(num); });
-=&gt; [5, 4, 6, 3, 1, 2]
-</pre>
-
-      <p id="groupBy">
-        <b class="header">groupBy</b><code>_.groupBy(list, iterator)</code>
-        <br />
-        Splits a collection into sets, grouped by the result of running each
-        value through <b>iterator</b>. If <b>iterator</b> is a string instead of
-        a function, groups by the property named by <b>iterator</b> on each of
-        the values.
-      </p>
-      <pre>
-_.groupBy([1.3, 2.1, 2.4], function(num){ return Math.floor(num); });
-=&gt; {1: [1.3], 2: [2.1, 2.4]}
-
-_.groupBy(['one', 'two', 'three'], 'length');
-=&gt; {3: ["one", "two"], 5: ["three"]}
-</pre>
-
-      <p id="sortedIndex">
-        <b class="header">sortedIndex</b><code>_.sortedIndex(list, value, [iterator])</code>
-        <br />
-        Uses a binary search to determine the index at which the <b>value</b>
-        <i>should</i> be inserted into the <b>list</b> in order to maintain the <b>list</b>'s
-        sorted order. If an <b>iterator</b> is passed, it will be used to compute
-        the sort ranking of each value.
-      </p>
-      <pre>
-_.sortedIndex([10, 20, 30, 40, 50], 35);
-=&gt; 3
-</pre>
-
-      <p id="shuffle">
-        <b class="header">shuffle</b><code>_.shuffle(list)</code>
-        <br />
-        Returns a shuffled copy of the <b>list</b>, using a version of the 
-        <a href="http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle">Fisher-Yates shuffle</a>.
-      </p>
-      <pre>
-_.shuffle([1, 2, 3, 4, 5, 6]);
-=&gt; [4, 1, 6, 3, 5, 2]
-</pre>
-
-      <p id="toArray">
-        <b class="header">toArray</b><code>_.toArray(list)</code>
-        <br />
-        Converts the <b>list</b> (anything that can be iterated over), into a
-        real Array. Useful for transmuting the <b>arguments</b> object.
-      </p>
-      <pre>
-(function(){ return _.toArray(arguments).slice(0); })(1, 2, 3);
-=&gt; [1, 2, 3]
-</pre>
-
-      <p id="size">
-        <b class="header">size</b><code>_.size(list)</code>
-        <br />
-        Return the number of values in the <b>list</b>.
-      </p>
-      <pre>
-_.size({one : 1, two : 2, three : 3});
-=&gt; 3
-</pre>
-
-      <h2>Array Functions</h2>
-
-      <p>
-        <i>Note: All array functions will also work on the <b>arguments</b> object.</i>
-      </p>
-
-      <p id="first">
-        <b class="header">first</b><code>_.first(array, [n])</code>
-        <span class="alias">Alias: <b>head</b></span>
-        <br />
-        Returns the first element of an <b>array</b>. Passing <b>n</b> will
-        return the first <b>n</b> elements of the array.
-      </p>
-      <pre>
-_.first([5, 4, 3, 2, 1]);
-=&gt; 5
-</pre>
-
-      <p id="initial">
-        <b class="header">initial</b><code>_.initial(array, [n])</code>
-        <br />
-        Returns everything but the last entry of the array. Especially useful on
-        the arguments object. Pass <b>n</b> to exclude the last <b>n</b> elements
-        from the result.
-      </p>
-      <pre>
-_.initial([5, 4, 3, 2, 1]);
-=&gt; [5, 4, 3, 2]
-</pre>
-
-      <p id="last">
-        <b class="header">last</b><code>_.last(array, [n])</code>
-        <br />
-        Returns the last element of an <b>array</b>. Passing <b>n</b> will return
-        the last <b>n</b> elements of the array.
-      </p>
-      <pre>
-_.last([5, 4, 3, 2, 1]);
-=&gt; 1
-</pre>
-
-      <p id="rest">
-        <b class="header">rest</b><code>_.rest(array, [index])</code>
-        <span class="alias">Alias: <b>tail</b></span>
-        <br />
-        Returns the <b>rest</b> of the elements in an array. Pass an <b>index</b>
-        to return the values of the array from that index onward.
-      </p>
-      <pre>
-_.rest([5, 4, 3, 2, 1]);
-=&gt; [4, 3, 2, 1]
-</pre>
-
-      <p id="compact">
-        <b class="header">compact</b><code>_.compact(array)</code>
-        <br />
-        Returns a copy of the <b>array</b> with all falsy values removed.
-        In JavaScript, <i>false</i>, <i>null</i>, <i>0</i>, <i>""</i>,
-        <i>undefined</i> and <i>NaN</i> are all falsy.
-      </p>
-      <pre>
-_.compact([0, 1, false, 2, '', 3]);
-=&gt; [1, 2, 3]
-</pre>
-
-      <p id="flatten">
-        <b class="header">flatten</b><code>_.flatten(array)</code>
-        <br />
-        Flattens a nested <b>array</b> (the nesting can be to any depth).
-      </p>
-      <pre>
-_.flatten([1, [2], [3, [[[4]]]]]);
-=&gt; [1, 2, 3, 4];
-</pre>
-
-      <p id="without">
-        <b class="header">without</b><code>_.without(array, [*values])</code>
-        <br />
-        Returns a copy of the <b>array</b> with all instances of the <b>values</b>
-        removed. <i>===</i> is used for the equality test.
-      </p>
-      <pre>
-_.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
-=&gt; [2, 3, 4]
-</pre>
-
-      <p id="union">
-        <b class="header">union</b><code>_.union(*arrays)</code>
-        <br />
-        Computes the union of the passed-in <b>arrays</b>: the list of unique items,
-        in order, that are present in one or more of the <b>arrays</b>.
-      </p>
-      <pre>
-_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
-=&gt; [1, 2, 3, 101, 10]
-</pre>
-
-      <p id="intersection">
-        <b class="header">intersection</b><code>_.intersection(*arrays)</code>
-        <br />
-        Computes the list of values that are the intersection of all the <b>arrays</b>.
-        Each value in the result is present in each of the <b>arrays</b>.
-      </p>
-      <pre>
-_.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]);
-=&gt; [1, 2]
-</pre>
-
-      <p id="difference">
-        <b class="header">difference</b><code>_.difference(array, other)</code>
-        <br />
-        Similar to <b>without</b>, but returns the values from <b>array</b> that
-        are not present in <b>other</b>.
-      </p>
-      <pre>
-_.difference([1, 2, 3, 4, 5], [5, 2, 10]);
-=&gt; [1, 3, 4]
-</pre>
-
-      <p id="uniq">
-        <b class="header">uniq</b><code>_.uniq(array, [isSorted], [iterator])</code>
-        <span class="alias">Alias: <b>unique</b></span>
-        <br />
-        Produces a duplicate-free version of the <b>array</b>, using <i>===</i> to test
-        object equality. If you know in advance that the <b>array</b> is sorted,
-        passing <i>true</i> for <b>isSorted</b> will run a much faster algorithm.
-        If you want to compute unique items based on a transformation, pass an
-        <b>iterator</b> function.
-      </p>
-      <pre>
-_.uniq([1, 2, 1, 3, 1, 4]);
-=&gt; [1, 2, 3, 4]
-</pre>
-
-      <p id="zip">
-        <b class="header">zip</b><code>_.zip(*arrays)</code>
-        <br />
-        Merges together the values of each of the <b>arrays</b> with the
-        values at the corresponding position. Useful when you have separate
-        data sources that are coordinated through matching array indexes.
-        If you're working with a matrix of nested arrays, <b>zip.apply</b>
-        can transpose the matrix in a similar fashion.
-      </p>
-      <pre>
-_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
-=&gt; [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]
-</pre>
-
-      <p id="indexOf">
-        <b class="header">indexOf</b><code>_.indexOf(array, value, [isSorted])</code>
-        <br />
-        Returns the index at which <b>value</b> can be found in the <b>array</b>,
-        or <i>-1</i> if value is not present in the <b>array</b>. Uses the native
-        <b>indexOf</b> function unless it's missing. If you're working with a 
-        large array, and you know that the array is already sorted, pass <tt>true</tt>
-        for <b>isSorted</b> to use a faster binary search.
-      </p>
-      <pre>
-_.indexOf([1, 2, 3], 2);
-=&gt; 1
-</pre>
-
-      <p id="lastIndexOf">
-        <b class="header">lastIndexOf</b><code>_.lastIndexOf(array, value)</code>
-        <br />
-        Returns the index of the last occurrence of <b>value</b> in the <b>array</b>,
-        or <i>-1</i> if value is not present. Uses the native <b>lastIndexOf</b>
-        function if possible.
-      </p>
-      <pre>
-_.lastIndexOf([1, 2, 3, 1, 2, 3], 2);
-=&gt; 4
-</pre>
-
-      <p id="range">
-        <b class="header">range</b><code>_.range([start], stop, [step])</code>
-        <br />
-        A function to create flexibly-numbered lists of integers, handy for
-        <tt>each</tt> and <tt>map</tt> loops. <b>start</b>, if omitted, defaults
-        to <i>0</i>; <b>step</b> defaults to <i>1</i>. Returns a list of integers
-        from <b>start</b> to <b>stop</b>, incremented (or decremented) by <b>step</b>,
-        exclusive.
-      </p>
-      <pre>
-_.range(10);
-=&gt; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
-_.range(1, 11);
-=&gt; [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-_.range(0, 30, 5);
-=&gt; [0, 5, 10, 15, 20, 25]
-_.range(0, -10, -1);
-=&gt; [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
-_.range(0);
-=&gt; []
-</pre>
-
-      <h2>Function (uh, ahem) Functions</h2>
-
-      <p id="bind">
-        <b class="header">bind</b><code>_.bind(function, object, [*arguments])</code>
-        <br />
-        Bind a <b>function</b> to an <b>object</b>, meaning that whenever
-        the function is called, the value of <i>this</i> will be the <b>object</b>.
-        Optionally, bind <b>arguments</b> to the <b>function</b> to pre-fill them,
-        also known as <b>currying</b>.
-      </p>
-      <pre>
-var func = function(greeting){ return greeting + ': ' + this.name };
-func = _.bind(func, {name : 'moe'}, 'hi');
-func();
-=&gt; 'hi: moe'
-</pre>
-
-      <p id="bindAll">
-        <b class="header">bindAll</b><code>_.bindAll(object, [*methodNames])</code>
-        <br />
-        Binds a number of methods on the <b>object</b>, specified by
-        <b>methodNames</b>, to be run in the context of that object whenever they
-        are invoked. Very handy for binding functions that are going to be used
-        as event handlers, which would otherwise be invoked with a fairly useless
-        <i>this</i>. If no <b>methodNames</b> are provided, all of the object's
-        function properties will be bound to it.
-      </p>
-      <pre>
-var buttonView = {
-  label   : 'underscore',
-  onClick : function(){ alert('clicked: ' + this.label); },
-  onHover : function(){ console.log('hovering: ' + this.label); }
-};
-_.bindAll(buttonView);
-jQuery('#underscore_button').bind('click', buttonView.onClick);
-=&gt; When the button is clicked, this.label will have the correct value...
-</pre>
-
-      <p id="memoize">
-        <b class="header">memoize</b><code>_.memoize(function, [hashFunction])</code>
-        <br />
-        Memoizes a given <b>function</b> by caching the computed result. Useful
-        for speeding up slow-running computations. If passed an optional 
-        <b>hashFunction</b>, it will be used to compute the hash key for storing
-        the result, based on the arguments to the original function. The default
-        <b>hashFunction</b> just uses the first argument to the memoized function
-        as the key.
-      </p>
-      <pre>
-var fibonacci = _.memoize(function(n) {
-  return n &lt; 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
-});
-</pre>
-
-      <p id="delay">
-        <b class="header">delay</b><code>_.delay(function, wait, [*arguments])</code>
-        <br />
-        Much like <b>setTimeout</b>, invokes <b>function</b> after <b>wait</b>
-        milliseconds. If you pass the optional <b>arguments</b>, they will be
-        forwarded on to the <b>function</b> when it is invoked.
-      </p>
-      <pre>
-var log = _.bind(console.log, console);
-_.delay(log, 1000, 'logged later');
-=&gt; 'logged later' // Appears after one second.
-</pre>
-
-      <p id="defer">
-        <b class="header">defer</b><code>_.defer(function)</code>
-        <br />
-        Defers invoking the <b>function</b> until the current call stack has cleared,
-        similar to using <b>setTimeout</b> with a delay of 0. Useful for performing
-        expensive computations or HTML rendering in chunks without blocking the UI thread
-        from updating.
-      </p>
-      <pre>
-_.defer(function(){ alert('deferred'); });
-// Returns from the function before the alert runs.
-</pre>
-
-      <p id="throttle">
-        <b class="header">throttle</b><code>_.throttle(function, wait)</code>
-        <br />
-        Returns a throttled version of the function, that, when invoked repeatedly, 
-        will only actually call the wrapped function at most once per every <b>wait</b>
-        milliseconds. Useful for rate-limiting events that occur faster than you
-        can keep up with.
-      </p>
-      <pre>
-var throttled = _.throttle(updatePosition, 100);
-$(window).scroll(throttled);
-</pre>
-
-      <p id="debounce">
-        <b class="header">debounce</b><code>_.debounce(function, wait)</code>
-        <br />
-        Calling a debounced function will postpone its execution until after 
-        <b>wait</b> milliseconds have elapsed since the last time the function 
-        was invoked. Useful for implementing behavior that should only happen 
-        <i>after</i> the input has stopped arriving. For example: rendering a 
-        preview of a Markdown comment, recalculating a layout after the window 
-        has stopped being resized...
-      </p>
-      <pre>
-var lazyLayout = _.debounce(calculateLayout, 300);
-$(window).resize(lazyLayout);
-</pre>
-
-      <p id="once">
-        <b class="header">once</b><code>_.once(function)</code>
-        <br />
-        Creates a version of the function that can only be called one time. 
-        Repeated calls to the modified function will have no effect, returning
-        the value from the original call. Useful for initialization functions,
-        instead of having to set a boolean flag and then check it later.
-      </p>
-      <pre>
-var initialize = _.once(createApplication);
-initialize();
-initialize();
-// Application is only created once.
-</pre>
-
-      <p id="after">
-        <b class="header">after</b><code>_.after(count, function)</code>
-        <br />
-        Creates a version of the function that will only be run after first 
-        being called <b>count</b> times. Useful for grouping asynchronous responses,
-        where you want to be sure that all the async calls have finished, before
-        proceeding.
-      </p>
-      <pre>
-var renderNotes = _.after(notes.length, render);
-_.each(notes, function(note) {
-  note.asyncSave({success: renderNotes}); 
-});
-// renderNotes is run once, after all notes have saved.
-</pre>
-
-      <p id="wrap">
-        <b class="header">wrap</b><code>_.wrap(function, wrapper)</code>
-        <br />
-        Wraps the first <b>function</b> inside of the <b>wrapper</b> function,
-        passing it as the first argument. This allows the <b>wrapper</b> to
-        execute code before and after the <b>function</b> runs, adjust the arguments,
-        and execute it conditionally.
-      </p>
-      <pre>
-var hello = function(name) { return "hello: " + name; };
-hello = _.wrap(hello, function(func) {
-  return "before, " + func("moe") + ", after";
-});
-hello();
-=&gt; 'before, hello: moe, after'
-</pre>
-
-      <p id="compose">
-        <b class="header">compose</b><code>_.compose(*functions)</code>
-        <br />
-        Returns the composition of a list of <b>functions</b>, where each function
-        consumes the return value of the function that follows. In math terms,
-        composing the functions <i>f()</i>, <i>g()</i>, and <i>h()</i> produces
-        <i>f(g(h()))</i>.
-      </p>
-      <pre>
-var greet    = function(name){ return "hi: " + name; };
-var exclaim  = function(statement){ return statement + "!"; };
-var welcome = _.compose(exclaim, greet);
-welcome('moe');
-=&gt; 'hi: moe!'
-</pre>
-
-      <h2>Object Functions</h2>
-
-      <p id="keys">
-        <b class="header">keys</b><code>_.keys(object)</code>
-        <br />
-        Retrieve all the names of the <b>object</b>'s properties.
-      </p>
-      <pre>
-_.keys({one : 1, two : 2, three : 3});
-=&gt; ["one", "two", "three"]
-</pre>
-
-      <p id="values">
-        <b class="header">values</b><code>_.values(object)</code>
-        <br />
-        Return all of the values of the <b>object</b>'s properties.
-      </p>
-      <pre>
-_.values({one : 1, two : 2, three : 3});
-=&gt; [1, 2, 3]
-</pre>
-
-      <p id="functions">
-        <b class="header">functions</b><code>_.functions(object)</code>
-        <span class="alias">Alias: <b>methods</b></span>
-        <br />
-        Returns a sorted list of the names of every method in an object &mdash;
-        that is to say, the name of every function property of the object.
-      </p>
-      <pre>
-_.functions(_);
-=&gt; ["all", "any", "bind", "bindAll", "clone", "compact", "compose" ...
-</pre>
-
-      <p id="extend">
-        <b class="header">extend</b><code>_.extend(destination, *sources)</code>
-        <br />
-        Copy all of the properties in the <b>source</b> objects over to the
-        <b>destination</b> object. It's in-order, so the last source will override
-        properties of the same name in previous arguments.
-      </p>
-      <pre>
-_.extend({name : 'moe'}, {age : 50});
-=&gt; {name : 'moe', age : 50}
-</pre>
-
-      <p id="defaults">
-        <b class="header">defaults</b><code>_.defaults(object, *defaults)</code>
-        <br />
-        Fill in missing properties in <b>object</b> with default values from the
-        <b>defaults</b> objects. As soon as the property is filled, further defaults
-        will have no effect.
-      </p>
-      <pre>
-var iceCream = {flavor : "chocolate"};
-_.defaults(iceCream, {flavor : "vanilla", sprinkles : "lots"});
-=&gt; {flavor : "chocolate", sprinkles : "lots"}
-</pre>
-
-      <p id="clone">
-        <b class="header">clone</b><code>_.clone(object)</code>
-        <br />
-        Create a shallow-copied clone of the <b>object</b>. Any nested objects
-        or arrays will be copied by reference, not duplicated.
-      </p>
-      <pre>
-_.clone({name : 'moe'});
-=&gt; {name : 'moe'};
-</pre>
-
-      <p id="tap">
-        <b class="header">tap</b><code>_.tap(object, interceptor)</code>
-        <br />
-        Invokes <b>interceptor</b> with the <b>object</b>, and then returns <b>object</b>.
-        The primary purpose of this method is to "tap into" a method chain, in order to perform operations on intermediate results within the chain.
-      </p>
-      <pre>
-_([1,2,3,200]).chain().
-  filter(function(num) { return num % 2 == 0; }).
-  tap(console.log).
-  map(function(num) { return num * num }).
-  value();
-=&gt; [2, 200]
-=&gt; [4, 40000]
-</pre>
-
-      <p id="isEqual">
-        <b class="header">isEqual</b><code>_.isEqual(object, other)</code>
-        <br />
-        Performs an optimized deep comparison between the two objects, to determine
-        if they should be considered equal.
-      </p>
-      <pre>
-var moe   = {name : 'moe', luckyNumbers : [13, 27, 34]};
-var clone = {name : 'moe', luckyNumbers : [13, 27, 34]};
-moe == clone;
-=&gt; false
-_.isEqual(moe, clone);
-=&gt; true
-</pre>
-
-      <p id="isEmpty">
-        <b class="header">isEmpty</b><code>_.isEmpty(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> contains no values.
-      </p>
-      <pre>
-_.isEmpty([1, 2, 3]);
-=&gt; false
-_.isEmpty({});
-=&gt; true
-</pre>
-
-      <p id="isElement">
-        <b class="header">isElement</b><code>_.isElement(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a DOM element.
-      </p>
-      <pre>
-_.isElement(jQuery('body')[0]);
-=&gt; true
-</pre>
-
-      <p id="isArray">
-        <b class="header">isArray</b><code>_.isArray(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is an Array.
-      </p>
-      <pre>
-(function(){ return _.isArray(arguments); })();
-=&gt; false
-_.isArray([1,2,3]);
-=&gt; true
-</pre>
-
-      <p id="isArguments">
-        <b class="header">isArguments</b><code>_.isArguments(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is an Arguments object.
-      </p>
-      <pre>
-(function(){ return _.isArguments(arguments); })(1, 2, 3);
-=&gt; true
-_.isArguments([1,2,3]);
-=&gt; false
-</pre>
-
-      <p id="isFunction">
-        <b class="header">isFunction</b><code>_.isFunction(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a Function.
-      </p>
-      <pre>
-_.isFunction(alert);
-=&gt; true
-</pre>
-
-      <p id="isString">
-        <b class="header">isString</b><code>_.isString(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a String.
-      </p>
-      <pre>
-_.isString("moe");
-=&gt; true
-</pre>
-
-      <p id="isNumber">
-        <b class="header">isNumber</b><code>_.isNumber(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a Number.
-      </p>
-      <pre>
-_.isNumber(8.4 * 5);
-=&gt; true
-</pre>
-
-      <p id="isBoolean">
-        <b class="header">isBoolean</b><code>_.isBoolean(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is either <i>true</i> or <i>false</i>.
-      </p>
-      <pre>
-_.isBoolean(null);
-=&gt; false
-</pre>
-
-      <p id="isDate">
-        <b class="header">isDate</b><code>_.isDate(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a Date.
-      </p>
-      <pre>
-_.isDate(new Date());
-=&gt; true
-</pre>
-
-      <p id="isRegExp">
-        <b class="header">isRegExp</b><code>_.isRegExp(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is a RegExp.
-      </p>
-      <pre>
-_.isRegExp(/moe/);
-=&gt; true
-</pre>
-
-      <p id="isNaN">
-        <b class="header">isNaN</b><code>_.isNaN(object)</code>
-        <br />
-        Returns <i>true</i> if <b>object</b> is <i>NaN</i>.<br /> Note: this is not
-        the same as the native <b>isNaN</b> function, which will also return
-        true if the variable is <i>undefined</i>.
-      </p>
-      <pre>
-_.isNaN(NaN);
-=&gt; true
-isNaN(undefined);
-=&gt; true
-_.isNaN(undefined);
-=&gt; false
-</pre>
-
-      <p id="isNull">
-        <b class="header">isNull</b><code>_.isNull(object)</code>
-        <br />
-        Returns <i>true</i> if the value of <b>object</b> is <i>null</i>.
-      </p>
-      <pre>
-_.isNull(null);
-=&gt; true
-_.isNull(undefined);
-=&gt; false
-</pre>
-
-      <p id="isUndefined">
-        <b class="header">isUndefined</b><code>_.isUndefined(variable)</code>
-        <br />
-        Returns <i>true</i> if <b>variable</b> is <i>undefined</i>.
-      </p>
-      <pre>
-_.isUndefined(window.missingVariable);
-=&gt; true
-</pre>
-
-      <h2>Utility Functions</h2>
-
-      <p id="noConflict">
-        <b class="header">noConflict</b><code>_.noConflict()</code>
-        <br />
-        Give control of the "_" variable back to its previous owner. Returns
-        a reference to the <b>Underscore</b> object.
-      </p>
-      <pre>
-var underscore = _.noConflict();</pre>
-
-      <p id="identity">
-        <b class="header">identity</b><code>_.identity(value)</code>
-        <br />
-        Returns the same value that is used as the argument. In math:
-        <tt>f(x) = x</tt><br />
-        This function looks useless, but is used throughout Underscore as
-        a default iterator.
-      </p>
-      <pre>
-var moe = {name : 'moe'};
-moe === _.identity(moe);
-=&gt; true</pre>
-
-      <p id="times">
-        <b class="header">times</b><code>_.times(n, iterator)</code>
-        <br />
-        Invokes the given iterator function <b>n</b> times.
-      </p>
-      <pre>
-_(3).times(function(){ genie.grantWish(); });</pre>
-
-      <p id="mixin">
-        <b class="header">mixin</b><code>_.mixin(object)</code>
-        <br />
-        Allows you to extend Underscore with your own utility functions. Pass
-        a hash of <tt>{name: function}</tt> definitions to have your functions 
-        added to the Underscore object, as well as the OOP wrapper.
-      </p>
-      <pre>
-_.mixin({
-  capitalize : function(string) {
-    return string.charAt(0).toUpperCase() + string.substring(1).toLowerCase();
-  }
-});
-_("fabio").capitalize();
-=&gt; "Fabio"
-</pre>
-
-      <p id="uniqueId">
-        <b class="header">uniqueId</b><code>_.uniqueId([prefix])</code>
-        <br />
-        Generate a globally-unique id for client-side models or DOM elements
-        that need one. If <b>prefix</b> is passed, the id will be appended to it.
-      </p>
-      <pre>
-_.uniqueId('contact_');
-=&gt; 'contact_104'</pre>
-
-      <p id="template">
-        <b class="header">template</b><code>_.template(templateString, [context])</code>
-        <br />
-        Compiles JavaScript templates into functions that can be evaluated
-        for rendering. Useful for rendering complicated bits of HTML from JSON
-        data sources. Template functions can both interpolate variables, using<br />
-        <tt>&lt;%= &hellip; %&gt;</tt>, as well as execute arbitrary JavaScript code, with
-        <tt>&lt;% &hellip; %&gt;</tt>. If you wish to interpolate a value, and have
-        it be HTML-escaped, use <tt>&lt;%- &hellip; %&gt;</tt> When you evaluate a template function, pass in a
-        <b>context</b> object that has properties corresponding to the template's free
-        variables. If you're writing a one-off, you can pass the <b>context</b>
-        object as the second parameter to <b>template</b> in order to render
-        immediately instead of returning a template function.
-      </p>
-      <pre>
-var compiled = _.template("hello: &lt;%= name %&gt;");
-compiled({name : 'moe'});
-=&gt; "hello: moe"
-
-var list = "&lt;% _.each(people, function(name) { %&gt; &lt;li&gt;&lt;%= name %&gt;&lt;/li&gt; &lt;% }); %&gt;";
-_.template(list, {people : ['moe', 'curly', 'larry']});
-=&gt; "&lt;li&gt;moe&lt;/li&gt;&lt;li&gt;curly&lt;/li&gt;&lt;li&gt;larry&lt;/li&gt;"
-
-var template = _.template("&lt;b&gt;&lt;%- value %&gt;&lt;/b&gt;");
-template({value : '&lt;script&gt;'});
-=&gt; "&lt;b&gt;&amp;lt;script&amp;gt;&lt;/b&gt;"</pre>
-
-      <p>
-        You can also use <tt>print</tt> from within JavaScript code.  This is
-        sometimes more convenient than using <tt>&lt;%= ... %&gt;</tt>.
-      </p>
-      
-      <pre>
-var compiled = _.template("&lt;% print('Hello ' + epithet); %&gt;");
-compiled({epithet: "stooge"});
-=&gt; "Hello stooge."</pre>
-
-      <p>
-        If ERB-style delimiters aren't your cup of tea, you can change Underscore's
-        template settings to use different symbols to set off interpolated code.
-        Define an <b>interpolate</b> regex, and an (optional) <b>evaluate</b> regex
-        to match expressions that should be inserted and evaluated, respectively.
-        If no <b>evaluate</b> regex is provided, your templates will only be 
-        capable of interpolating values. 
-        For example, to perform
-        <a href="http://github.com/janl/mustache.js#readme">Mustache.js</a>
-        style templating:
-      </p>
-
-      <pre>
-_.templateSettings = {
-  interpolate : /\{\{(.+?)\}\}/g
-};
-
-var template = _.template("Hello {{ name }}!");
-template({name : "Mustache"});
-=&gt; "Hello Mustache!"</pre>
-
-      <h2>Chaining</h2>
-
-      <p id="chain">
-        <b class="header">chain</b><code>_(obj).chain()</code>
-        <br />
-        Returns a wrapped object. Calling methods on this object will continue
-        to return wrapped objects until <tt>value</tt> is used. (
-        <a href="#styles">A more realistic example.</a>)
-      </p>
-      <pre>
-var stooges = [{name : 'curly', age : 25}, {name : 'moe', age : 21}, {name : 'larry', age : 23}];
-var youngest = _(stooges).chain()
-  .sortBy(function(stooge){ return stooge.age; })
-  .map(function(stooge){ return stooge.name + ' is ' + stooge.age; })
-  .first()
-  .value();
-=&gt; "moe is 21"
-</pre>
-
-      <p id="value">
-        <b class="header">value</b><code>_(obj).value()</code>
-        <br />
-        Extracts the value of a wrapped object.
-      </p>
-      <pre>
-_([1, 2, 3]).value();
-=&gt; [1, 2, 3]
-</pre>
-
-      <h2>Links &amp; Suggested Reading</h2>
-
-      <p>
-        <a href="http://mirven.github.com/underscore.lua/">Underscore.lua</a>,
-        a Lua port of the functions that are applicable in both languages.
-        Includes OOP-wrapping and chaining.
-        The <a href="http://github.com/mirven/underscore.lua">source</a> is
-        available on GitHub.
-      </p>
-      
-      <p>
-        <a href="http://brianhaveri.github.com/Underscore.php/">Underscore.php</a>,
-        a PHP port of the functions that are applicable in both languages.
-        Includes OOP-wrapping and chaining.
-        The <a href="http://github.com/brianhaveri/Underscore.php">source</a> is
-        available on GitHub.
-      </p>
-      
-      <p>
-        <a href="http://vti.github.com/underscore-perl/">Underscore-perl</a>,
-        a Perl port of many of the Underscore.js functions, 
-        aimed at on Perl hashes and arrays, also 
-        <a href="https://github.com/vti/underscore-perl/">available on GitHub</a>.
-      </p>
-      
-      <p>
-        <a href="https://github.com/edtsech/underscore.string">Underscore.string</a>,
-        an Underscore extension that adds functions for string-manipulation: 
-        <tt>trim</tt>, <tt>startsWith</tt>, <tt>contains</tt>, <tt>capitalize</tt>,
-        <tt>reverse</tt>, <tt>sprintf</tt>, and more.
-      </p>
-
-      <p>
-        Ruby's <a href="http://ruby-doc.org/core/classes/Enumerable.html">Enumerable</a> module.
-      </p>
-
-      <p>
-        <a href="http://www.prototypejs.org/">Prototype.js</a>, which provides
-        JavaScript with collection functions in the manner closest to Ruby's Enumerable.
-      </p>
-
-      <p>
-        Oliver Steele's
-        <a href="http://osteele.com/sources/javascript/functional/">Functional JavaScript</a>,
-        which includes comprehensive higher-order function support as well as string lambdas.
-      </p>
-      
-      <p>
-        Michael Aufreiter's <a href="http://substance.io/#michael/data-js">Data.js</a>,
-        a data manipulation + persistence library for JavaScript.
-      </p>
-
-      <p>
-        Python's <a href="http://docs.python.org/library/itertools.html">itertools</a>.
-      </p>
-
-      <h2 id="changelog">Change Log</h2>
-      
-      <p>
-        <b class="header">1.2.1</b> &mdash; <small><i>Oct. 24, 2011</i></small><br />
-        <ul>
-          <li>
-            Several important bug fixes for <tt>_.isEqual</tt>, which should now 
-            do better on mutated Arrays, and on non-Array objects with 
-            <tt>length</tt> properties. <small>(#329)</small>
-          </li>
-          <li>
-            <b>jrburke</b> contributed Underscore exporting for AMD module loaders,
-            and <b>tonylukasavage</b> for Appcelerator Titanium. 
-            <small>(#335, #338)</small>
-          </li>
-          <li>
-            You can now <tt>_.groupBy(list, 'property')</tt> as a shortcut for
-            grouping values by a particular common property.
-          </li>
-          <li>
-            <tt>_.throttle</tt>'d functions now fire immediately upon invocation, 
-            and are rate-limited thereafter <small>(#170, #266)</small>.
-          </li>
-          <li>
-            Most of the <tt>_.is[Type]</tt> checks no longer ducktype.
-          </li>
-          <li>
-            The <tt>_.bind</tt> function now also works on constructors, a-la
-            ES5 ... but you would never want to use <tt>_.bind</tt> on a 
-            constructor function.
-          </li>
-          <li>
-            <tt>_.clone</tt> no longer wraps non-object types in Objects.
-          </li>
-          <li>
-            <tt>_.find</tt> and <tt>_.filter</tt> are now the preferred names for
-            <tt>_.detect</tt> and <tt>_.select</tt>.
-          </li>
-        </ul>
-      </p>
-      
-      <p>
-        <b class="header">1.2.0</b> &mdash; <small><i>Oct. 5, 2011</i></small><br />
-        <ul>
-          <li>
-            The <tt>_.isEqual</tt> function now 
-            supports true deep equality comparisons, with checks for cyclic structures,
-            thanks to Kit Cambridge.
-          </li>
-          <li>
-            Underscore templates now support HTML escaping interpolations, using 
-            <tt>&lt;%- ... %&gt;</tt> syntax. 
-          </li>
-          <li>
-            Ryan Tenney contributed <tt>_.shuffle</tt>, which uses a modified 
-            Fisher-Yates to give you a shuffled copy of an array. 
-          </li>
-          <li>
-            <tt>_.uniq</tt> can now be passed an optional iterator, to determine by 
-            what criteria an object should be considered unique.
-          </li>
-          <li>
-            <tt>_.last</tt> now takes an optional argument which will return the last
-            N elements of the list.
-          </li>
-          <li>
-            A new <tt>_.initial</tt> function was added, as a mirror of <tt>_.rest</tt>,
-            which returns all the initial values of a list (except the last N). 
-          </li>
-        </ul>
-      </p>
-      
-      <p>
-        <b class="header">1.1.7</b> &mdash; <small><i>July 13, 2011</i></small><br />
-        Added <tt>_.groupBy</tt>, which aggregates a collection into groups of like items.
-        Added <tt>_.union</tt> and <tt>_.difference</tt>, to complement the 
-        (re-named) <tt>_.intersection</tt>.
-        Various improvements for support of sparse arrays.
-        <tt>_.toArray</tt> now returns a clone, if directly passed an array.
-        <tt>_.functions</tt> now also returns the names of functions that are present
-        in the prototype chain.
-      </p>
-            
-      <p>
-        <b class="header">1.1.6</b> &mdash; <small><i>April 18, 2011</i></small><br />
-        Added <tt>_.after</tt>, which will return a function that only runs after
-        first being called a specified number of times.
-        <tt>_.invoke</tt> can now take a direct function reference.
-        <tt>_.every</tt> now requires an iterator function to be passed, which
-        mirrors the ECMA5 API.
-        <tt>_.extend</tt> no longer copies keys when the value is undefined.
-        <tt>_.bind</tt> now errors when trying to bind an undefined value.
-      </p>
-      
-      <p>
-        <b class="header">1.1.5</b> &mdash; <small><i>Mar 20, 2011</i></small><br />
-        Added an <tt>_.defaults</tt> function, for use merging together JS objects
-        representing default options.
-        Added an <tt>_.once</tt> function, for manufacturing functions that should
-        only ever execute a single time.
-        <tt>_.bind</tt> now delegates to the native ECMAScript 5 version, 
-        where available.
-        <tt>_.keys</tt> now throws an error when used on non-Object values, as in
-        ECMAScript 5.
-        Fixed a bug with <tt>_.keys</tt> when used over sparse arrays.
-      </p>
-      
-      <p>
-        <b class="header">1.1.4</b> &mdash; <small><i>Jan 9, 2011</i></small><br />
-        Improved compliance with ES5's Array methods when passing <tt>null</tt> 
-        as a value. <tt>_.wrap</tt> now correctly sets <tt>this</tt> for the
-        wrapped function. <tt>_.indexOf</tt> now takes an optional flag for
-        finding the insertion index in an array that is guaranteed to already
-        be sorted. Avoiding the use of <tt>.callee</tt>, to allow <tt>_.isArray</tt>
-        to work properly in ES5's strict mode.
-      </p>
-      
-      <p>
-        <b class="header">1.1.3</b> &mdash; <small><i>Dec 1, 2010</i></small><br />
-        In CommonJS, Underscore may now be required with just: <br />
-        <tt>var _ = require("underscore")</tt>.
-        Added <tt>_.throttle</tt> and <tt>_.debounce</tt> functions.
-        Removed <tt>_.breakLoop</tt>, in favor of an ECMA5-style un-<i>break</i>-able
-        each implementation &mdash; this removes the try/catch, and you'll now have
-        better stack traces for exceptions that are thrown within an Underscore iterator.
-        Improved the <b>isType</b> family of functions for better interoperability
-        with Internet Explorer host objects.
-        <tt>_.template</tt> now correctly escapes backslashes in templates.
-        Improved <tt>_.reduce</tt> compatibility with the ECMA5 version: 
-        if you don't pass an initial value, the first item in the collection is used.
-        <tt>_.each</tt> no longer returns the iterated collection, for improved
-        consistency with ES5's <tt>forEach</tt>.
-      </p>
-      
-      <p>
-        <b class="header">1.1.2</b><br />
-        Fixed <tt>_.contains</tt>, which was mistakenly pointing at 
-        <tt>_.intersect</tt> instead of <tt>_.include</tt>, like it should 
-        have been. Added <tt>_.unique</tt> as an alias for <tt>_.uniq</tt>.
-      </p>
-      
-      <p>
-        <b class="header">1.1.1</b><br />
-        Improved the speed of <tt>_.template</tt>, and its handling of multiline
-        interpolations. Ryan Tenney contributed optimizations to many Underscore 
-        functions. An annotated version of the source code is now available.
-      </p>
-      
-      <p>
-        <b class="header">1.1.0</b><br />
-        The method signature of <tt>_.reduce</tt> has been changed to match
-        the ECMAScript 5 signature, instead of the Ruby/Prototype.js version.
-        This is a backwards-incompatible change. <tt>_.template</tt> may now be
-        called with no arguments, and preserves whitespace. <tt>_.contains</tt>
-        is a new alias for <tt>_.include</tt>.
-      </p>
-      
-      <p>
-        <b class="header">1.0.4</b><br />
-        <a href="http://themoell.com/">Andri Möll</a> contributed the <tt>_.memoize</tt> 
-        function, which can be used to speed up expensive repeated computations 
-        by caching the results.
-      </p>
-      
-      <p>
-        <b class="header">1.0.3</b><br />
-        Patch that makes <tt>_.isEqual</tt> return <tt>false</tt> if any property
-        of the compared object has a <tt>NaN</tt> value. Technically the correct
-        thing to do, but of questionable semantics. Watch out for NaN comparisons.
-      </p>
-      
-      <p>
-        <b class="header">1.0.2</b><br />
-        Fixes <tt>_.isArguments</tt> in recent versions of Opera, which have
-        arguments objects as real Arrays.
-      </p>
-      
-      <p>
-        <b class="header">1.0.1</b><br />
-        Bugfix for <tt>_.isEqual</tt>, when comparing two objects with the same 
-        number of undefined keys, but with different names.
-      </p>
-      
-      <p>
-        <b class="header">1.0.0</b><br />
-        Things have been stable for many months now, so Underscore is now
-        considered to be out of beta, at <b>1.0</b>. Improvements since <b>0.6</b>
-        include <tt>_.isBoolean</tt>, and the ability to have <tt>_.extend</tt>
-        take multiple source objects.
-      </p>
-      
-      <p>
-        <b class="header">0.6.0</b><br />
-        Major release. Incorporates a number of 
-        <a href="http://github.com/ratbeard">Mile Frawley's</a> refactors for
-        safer duck-typing on collection functions, and cleaner internals. A new
-        <tt>_.mixin</tt> method that allows you to extend Underscore with utility
-        functions of your own. Added <tt>_.times</tt>, which works the same as in 
-        Ruby or Prototype.js. Native support for ECMAScript 5's <tt>Array.isArray</tt>, 
-        and <tt>Object.keys</tt>.
-      </p>
-
-      <p>
-        <b class="header">0.5.8</b><br />
-        Fixed Underscore's collection functions to work on
-        <a href="https://developer.mozilla.org/En/DOM/NodeList">NodeLists</a> and
-        <a href="https://developer.mozilla.org/En/DOM/HTMLCollection">HTMLCollections</a>
-        once more, thanks to
-        <a href="http://github.com/jmtulloss">Justin Tulloss</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.7</b><br />
-        A safer implementation of <tt>_.isArguments</tt>, and a
-        faster <tt>_.isNumber</tt>,<br />thanks to
-        <a href="http://jedschmidt.com/">Jed Schmidt</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.6</b><br />
-        Customizable delimiters for <tt>_.template</tt>, contributed by
-        <a href="http://github.com/iamnoah">Noah Sloan</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.5</b><br />
-        Fix for a bug in MobileSafari's OOP-wrapper, with the arguments object.
-      </p>
-
-      <p>
-        <b class="header">0.5.4</b><br />
-        Fix for multiple single quotes within a template string for
-        <tt>_.template</tt>. See:
-        <a href="http://www.west-wind.com/Weblog/posts/509108.aspx">Rick Strahl's blog post</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.2</b><br />
-        New implementations of <tt>isArray</tt>, <tt>isDate</tt>, <tt>isFunction</tt>,
-        <tt>isNumber</tt>, <tt>isRegExp</tt>, and <tt>isString</tt>, thanks to
-        a suggestion from
-        <a href="http://www.broofa.com/">Robert Kieffer</a>.
-        Instead of doing <tt>Object#toString</tt>
-        comparisons, they now check for expected properties, which is less safe,
-        but more than an order of magnitude faster. Most other Underscore
-        functions saw minor speed improvements as a result.
-        <a href="http://dolzhenko.org/">Evgeniy Dolzhenko</a>
-        contributed <tt>_.tap</tt>,
-        <a href="http://ruby-doc.org/core-1.9/classes/Object.html#M000191">similar to Ruby 1.9's</a>,
-        which is handy for injecting side effects (like logging) into chained calls.
-      </p>
-
-      <p>
-        <b class="header">0.5.1</b><br />
-        Added an <tt>_.isArguments</tt> function. Lots of little safety checks
-        and optimizations contributed by
-        <a href="http://github.com/iamnoah/">Noah Sloan</a> and 
-        <a href="http://themoell.com/">Andri Möll</a>.
-      </p>
-
-      <p>
-        <b class="header">0.5.0</b><br />
-        <b>[API Changes]</b> <tt>_.bindAll</tt> now takes the context object as
-        its first parameter. If no method names are passed, all of the context
-        object's methods are bound to it, enabling chaining and easier binding.
-        <tt>_.functions</tt> now takes a single argument and returns the names
-        of its Function properties. Calling <tt>_.functions(_)</tt> will get you
-        the previous behavior.
-        Added <tt>_.isRegExp</tt> so that <tt>isEqual</tt> can now test for RegExp equality.
-        All of the "is" functions have been shrunk down into a single definition.
-        <a href="http://github.com/grayrest/">Karl Guertin</a> contributed patches.
-      </p>
-
-      <p>
-        <b class="header">0.4.7</b><br />
-        Added <tt>isDate</tt>, <tt>isNaN</tt>, and <tt>isNull</tt>, for completeness.
-        Optimizations for <tt>isEqual</tt> when checking equality between Arrays
-        or Dates. <tt>_.keys</tt> is now <small><i><b>25%&ndash;2X</b></i></small> faster (depending on your
-        browser) which speeds up the functions that rely on it, such as <tt>_.each</tt>.
-      </p>
-
-      <p>
-        <b class="header">0.4.6</b><br />
-        Added the <tt>range</tt> function, a port of the
-        <a href="http://docs.python.org/library/functions.html#range">Python
-        function of the same name</a>, for generating flexibly-numbered lists
-        of integers. Original patch contributed by
-        <a href="http://github.com/kylichuku">Kirill Ishanov</a>.
-      </p>
-
-      <p>
-        <b class="header">0.4.5</b><br />
-        Added <tt>rest</tt> for Arrays and arguments objects, and aliased
-        <tt>first</tt> as <tt>head</tt>, and <tt>rest</tt> as <tt>tail</tt>,
-        thanks to <a href="http://github.com/lukesutton/">Luke Sutton</a>'s patches.
-        Added tests ensuring that all Underscore Array functions also work on
-        <i>arguments</i> objects.
-      </p>
-
-      <p>
-        <b class="header">0.4.4</b><br />
-        Added <tt>isString</tt>, and <tt>isNumber</tt>, for consistency. Fixed
-        <tt>_.isEqual(NaN, NaN)</tt> to return <i>true</i> (which is debatable).
-      </p>
-
-      <p>
-        <b class="header">0.4.3</b><br />
-        Started using the native <tt>StopIteration</tt> object in browsers that support it.
-        Fixed Underscore setup for CommonJS environments.
-      </p>
-
-      <p>
-        <b class="header">0.4.2</b><br />
-        Renamed the unwrapping function to <tt>value</tt>, for clarity.
-      </p>
-
-      <p>
-        <b class="header">0.4.1</b><br />
-        Chained Underscore objects now support the Array prototype methods, so
-        that you can perform the full range of operations on a wrapped array
-        without having to break your chain. Added a <tt>breakLoop</tt> method
-        to <b>break</b> in the middle of any Underscore iteration. Added an
-        <tt>isEmpty</tt> function that works on arrays and objects.
-      </p>
-
-      <p>
-        <b class="header">0.4.0</b><br />
-        All Underscore functions can now be called in an object-oriented style,
-        like so: <tt>_([1, 2, 3]).map(...);</tt>. Original patch provided by
-        <a href="http://macournoyer.com/">Marc-André Cournoyer</a>.
-        Wrapped objects can be chained through multiple
-        method invocations. A <a href="#functions"><tt>functions</tt></a> method
-        was added, providing a sorted list of all the functions in Underscore.
-      </p>
-
-      <p>
-        <b class="header">0.3.3</b><br />
-        Added the JavaScript 1.8 function <tt>reduceRight</tt>. Aliased it
-        as <tt>foldr</tt>, and aliased <tt>reduce</tt> as <tt>foldl</tt>.
-      </p>
-
-      <p>
-        <b class="header">0.3.2</b><br />
-        Now runs on stock <a href="http://www.mozilla.org/rhino/">Rhino</a>
-        interpreters with: <tt>load("underscore.js")</tt>.
-        Added <a href="#identity"><tt>identity</tt></a> as a utility function.
-      </p>
-
-      <p>
-        <b class="header">0.3.1</b><br />
-        All iterators are now passed in the original collection as their third
-        argument, the same as JavaScript 1.6's <b>forEach</b>. Iterating over
-        objects is now called with <tt>(value, key, collection)</tt>, for details
-        see <a href="#each"><tt>_.each</tt></a>.
-      </p>
-
-      <p>
-        <b class="header">0.3.0</b><br />
-        Added <a href="http://github.com/dmitryBaranovskiy">Dmitry Baranovskiy</a>'s
-        comprehensive optimizations, merged in
-        <a href="http://github.com/kriskowal/">Kris Kowal</a>'s patches to make Underscore
-        <a href="http://wiki.commonjs.org/wiki/CommonJS">CommonJS</a> and
-        <a href="http://narwhaljs.org/">Narwhal</a> compliant.
-      </p>
-
-      <p>
-        <b class="header">0.2.0</b><br />
-        Added <tt>compose</tt> and <tt>lastIndexOf</tt>, renamed <tt>inject</tt> to
-        <tt>reduce</tt>, added aliases for <tt>inject</tt>, <tt>filter</tt>,
-        <tt>every</tt>, <tt>some</tt>, and <tt>forEach</tt>.
-      </p>
-
-      <p>
-        <b class="header">0.1.1</b><br />
-        Added <tt>noConflict</tt>, so that the "Underscore" object can be assigned to
-        other variables.
-      </p>
-
-      <p>
-        <b class="header">0.1.0</b><br />
-        Initial release of Underscore.js.
-      </p>
-
-      <p>
-        <a href="http://documentcloud.org/" title="A DocumentCloud Project" style="background:none;">
-          <img src="http://jashkenas.s3.amazonaws.com/images/a_documentcloud_project.png" alt="A DocumentCloud Project" />
-        </a>
-      </p>
-
-    </div>
-
-  </div>
-
-  <!-- Include Underscore, so you can play with it in the console. -->
-  <script type="text/javascript" src="underscore.js"></script>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/index.js b/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/index.js
deleted file mode 100644
index 2cf0ca5..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./underscore');

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/package.json b/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/package.json
deleted file mode 100644
index 1b8f583..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "name": "underscore",
-  "description": "JavaScript's functional programming helper library.",
-  "homepage": "http://documentcloud.github.com/underscore/",
-  "keywords": [
-    "util",
-    "functional",
-    "server",
-    "client",
-    "browser"
-  ],
-  "author": {
-    "name": "Jeremy Ashkenas",
-    "email": "jeremy@documentcloud.org"
-  },
-  "contributors": [],
-  "dependencies": {},
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/documentcloud/underscore.git"
-  },
-  "main": "underscore.js",
-  "version": "1.2.1",
-  "readme": "                   __                                                         \n                  /\\ \\                                                         __           \n __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____  \n/\\ \\/\\ \\ /' _ `\\  /'_  \\  /'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/'__`\\     \\/\\ \\  /',__\\ \n\\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n  \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/ \n                                                                              \\ \\____/      \n                                                                               \\/___/\n\nUnderscore is a utility-belt library for JavaSc
 ript that provides \nsupport for the usual functional suspects (each, map, reduce, filter...) \nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://documentcloud.github.com/underscore/\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n",
-  "readmeFilename": "README",
-  "bugs": {
-    "url": "https://github.com/documentcloud/underscore/issues"
-  },
-  "_id": "underscore@1.2.1",
-  "_from": "underscore@1.2.1"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/underscore-min.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/underscore-min.js b/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/underscore-min.js
deleted file mode 100644
index ad37560..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/underscore-min.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Underscore.js 1.2.1
-// (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
-// Underscore is freely distributable under the MIT license.
-// Portions of Underscore are inspired or borrowed from Prototype,
-// Oliver Steele's Functional, and John Resig's Micro-Templating.
-// For all details and documentation:
-// http://documentcloud.github.com/underscore
-(function(){function u(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(b.isFunction(a.isEqual))return a.isEqual(c);if(b.isFunction(c.isEqual))return c.isEqual(a);var e=typeof a;if(e!=typeof c)return false;if(!a!=!c)return false;if(b.isNaN(a))return b.isNaN(c);var g=b.isString(a),f=b.isString(c);if(g||f)return g&&f&&String(a)==String(c);g=b.isNumber(a);f=b.isNumber(c);if(g||f)return g&&f&&+a==+c;g=b.isBoolean(a);f=b.isBoolean(c);
-if(g||f)return g&&f&&+a==+c;g=b.isDate(a);f=b.isDate(c);if(g||f)return g&&f&&a.getTime()==c.getTime();g=b.isRegExp(a);f=b.isRegExp(c);if(g||f)return g&&f&&a.source==c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase;if(e!="object")return false;if(a.length!==c.length)return false;if(a.constructor!==c.constructor)return false;for(e=d.length;e--;)if(d[e]==a)return true;d.push(a);var e=0,g=true,h;for(h in a)if(m.call(a,h)&&(e++,!(g=m.call(c,h)&&u(a[h],c[h],d))))break;if(g){for(h in c)if(m.call(c,
-h)&&!e--)break;g=!e}d.pop();return g}var r=this,F=r._,o={},k=Array.prototype,p=Object.prototype,i=k.slice,G=k.unshift,l=p.toString,m=p.hasOwnProperty,v=k.forEach,w=k.map,x=k.reduce,y=k.reduceRight,z=k.filter,A=k.every,B=k.some,q=k.indexOf,C=k.lastIndexOf,p=Array.isArray,H=Object.keys,s=Function.prototype.bind,b=function(a){return new n(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else typeof define==="function"&&define.amd?
-define("underscore",function(){return b}):r._=b;b.VERSION="1.2.1";var j=b.each=b.forEach=function(a,c,b){if(a!=null)if(v&&a.forEach===v)a.forEach(c,b);else if(a.length===+a.length)for(var e=0,g=a.length;e<g;e++){if(e in a&&c.call(b,a[e],e,a)===o)break}else for(e in a)if(m.call(a,e)&&c.call(b,a[e],e,a)===o)break};b.map=function(a,c,b){var e=[];if(a==null)return e;if(w&&a.map===w)return a.map(c,b);j(a,function(a,f,h){e[e.length]=c.call(b,a,f,h)});return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var g=
-d!==void 0;a==null&&(a=[]);if(x&&a.reduce===x)return e&&(c=b.bind(c,e)),g?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){g?d=c.call(e,d,a,b,i):(d=a,g=true)});if(!g)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){a==null&&(a=[]);if(y&&a.reduceRight===y)return e&&(c=b.bind(c,e)),d!==void 0?a.reduceRight(c,d):a.reduceRight(c);a=(b.isArray(a)?a.slice():b.toArray(a)).reverse();return b.reduce(a,c,d,e)};b.find=b.detect=function(a,c,b){var e;
-D(a,function(a,f,h){if(c.call(b,a,f,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(z&&a.filter===z)return a.filter(c,b);j(a,function(a,f,h){c.call(b,a,f,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,f,h){c.call(b,a,f,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(A&&a.every===A)return a.every(c,b);j(a,function(a,f,h){if(!(e=e&&c.call(b,a,f,h)))return o});
-return e};var D=b.some=b.any=function(a,c,d){var c=c||b.identity,e=false;if(a==null)return e;if(B&&a.some===B)return a.some(c,d);j(a,function(a,b,h){if(e|=c.call(d,a,b,h))return o});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return q&&a.indexOf===q?a.indexOf(c)!=-1:b=D(a,function(a){if(a===c)return true})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(c.call?c||a:a[c]).apply(a,d)})};b.pluck=function(a,c){return b.map(a,function(a){return a[c]})};
-b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a,computed:b})});return e.value};b.shuffle=function(a){var b=[],d;
-j(a,function(a,g){g==0?b[0]=a:(d=Math.floor(Math.random()*(g+1)),b[g]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,f){return{value:a,criteria:c.call(d,a,b,f)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d||(d=b.identity);for(var e=0,g=a.length;e<
-g;){var f=e+g>>1;d(a[f])<d(c)?e=f+1:g=f}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,a.length-b):a[a.length-1]};b.rest=b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=
-function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,f,h){if(0==h||(c===true?b.last(d)!=f:!b.include(d,f)))d[d.length]=f,e[e.length]=a[h];return d},[]);return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};
-b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a,c){return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(q&&a.indexOf===q)return a.indexOf(c);
-for(d=0,e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(C&&a.lastIndexOf===C)return a.lastIndexOf(b);for(var d=a.length;d--;)if(a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),g=0,f=Array(e);g<e;)f[g++]=a,a+=d;return f};var E=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;
-e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));E.prototype=a.prototype;var b=new E,f=a.apply(b,e.concat(i.call(arguments)));return Object(f)===f?f:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var b=c.apply(this,arguments);return m.call(d,b)?d[b]:d[b]=a.apply(this,arguments)}};b.delay=
-function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,g,f,h;h=b.debounce(function(){f=false},c);return function(){e=this;g=arguments;var b;d||(d=setTimeout(function(){d=null;a.apply(e,g);h()},c));f||a.apply(e,g);h&&h();f=true}};b.debounce=function(a,b){var d;return function(){var e=this,g=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,
-g)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments));return b.apply(this,d)}};b.compose=function(){var a=i.call(arguments);return function(){for(var b=i.call(arguments),d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=function(a,b){return function(){if(--a<1)return b.apply(this,arguments)}};b.keys=H||function(a){if(a!==Object(a))throw new TypeError("Invalid object");
-var b=[],d;for(d in a)m.call(a,d)&&(b[b.length]=d);return b};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)b[d]!==void 0&&(a[d]=b[d])});return a};b.defaults=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},
-a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return u(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(m.call(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=p||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=l.call(arguments)=="[object Arguments]"?function(a){return l.call(a)=="[object Arguments]"}:function(a){return!(!a||!m.call(a,
-"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===
-void 0};b.noConflict=function(){r._=F;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&(?!\w+;|#\d+;|#x[\da-f]+;)/gi,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.mixin=function(a){j(b.functions(a),function(c){I(c,b[c]=a[c])})};var J=0;b.uniqueId=function(a){var b=J++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,
-interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape,function(a,b){return"',_.escape("+b.replace(/\\'/g,"'")+"),'"}).replace(d.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(d.evaluate||null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,
-"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",d=new Function("obj",d);return c?d(c):d};var n=function(a){this._wrapped=a};b.prototype=n.prototype;var t=function(a,c){return c?b(a).chain():a},I=function(a,c){n.prototype[a]=function(){var a=i.call(arguments);G.call(a,this._wrapped);return t(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];n.prototype[a]=function(){b.apply(this._wrapped,arguments);return t(this._wrapped,
-this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];n.prototype[a]=function(){return t(b.apply(this._wrapped,arguments),this._chain)}});n.prototype.chain=function(){this._chain=true;return this};n.prototype.value=function(){return this._wrapped}})();


[45/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/xml.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/xml.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/xml.js
deleted file mode 100644
index 42b0f39..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/xml.js
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var core = require('./core')
-  , inflection = require('./inflection')
-
-/**
-  @name xml
-  @namespace xml
-*/
-
-exports.XML = new (function () {
-
-  // Default indention level
-  var indentLevel = 4
-    , tagFromType
-    , obj2xml;
-
-  tagFromType = function (item, prev) {
-    var ret
-      , type
-      , types;
-
-    if (item instanceof Array) {
-      ret = 'array';
-    } else {
-      types = ['string', 'number', 'boolean', 'object'];
-      for (var i = 0, ii = types.length; i < ii; i++) {
-        type = types[i];
-        if (typeof item == type) {
-          ret = type;
-        }
-      }
-    }
-
-    if (prev && ret != prev) {
-      return 'record'
-    } else {
-      return ret;
-    }
-  };
-
-  obj2xml = function (o, opts) {
-    var name = opts.name
-      , level = opts.level
-      , arrayRoot = opts.arrayRoot
-      , pack
-      , item
-      , n
-      , currentIndent = (new Array(level * indentLevel)).join(' ')
-      , nextIndent = (new Array((level + 1) * indentLevel)).join(' ')
-      , xml = '';
-
-    switch (typeof o) {
-      case 'string':
-      case 'number':
-      case 'boolean':
-        xml = o.toString();
-        break;
-      case 'object':
-        // Arrays
-        if (o instanceof Array) {
-
-          // Pack the processed version of each item into an array that
-          // can be turned into a tag-list with a `join` method below
-          // As the list gets iterated, if all items are the same type,
-          // that's the tag-name for the individual tags. If the items are
-          // a mixed, the tag-name is 'record'
-          pack = [];
-          for (var i = 0, ii = o.length; i < ii; i++) {
-            item = o[i];
-            if (!name) {
-              // Pass any previous tag-name, so it's possible to know if
-              // all items are the same type, or it's mixed types
-              n = tagFromType(item, n);
-            }
-            pack.push(obj2xml(item, {
-              name: name
-            , level: level + 1
-            , arrayRoot: arrayRoot
-            }));
-          }
-
-          // If this thing is attached to a named property on an object,
-          // use the name for the containing tag-name
-          if (name) {
-            n = name;
-          }
-
-          // If this is a top-level item, wrap in a top-level containing tag
-          if (level == 0) {
-            xml += currentIndent + '<' + inflection.pluralize(n) + ' type="array">\n'
-          }
-          xml += nextIndent + '<' + n + '>' +
-              pack.join('</' + n + '>\n' + nextIndent +
-                  '<' + n + '>') + '</' + n + '>\n';
-
-          // If this is a top-level item, close the top-level containing tag
-          if (level == 0) {
-            xml += currentIndent + '</' + inflection.pluralize(n) + '>';
-          }
-        }
-        // Generic objects
-        else {
-          n = name || 'object';
-
-          // If this is a top-level item, wrap in a top-level containing tag
-          if (level == 0) {
-            xml += currentIndent + '<' + n;
-            // Lookahead hack to allow tags to have attributes
-            for (var p in o) {
-              if (p.indexOf('attr:') == 0) {
-                xml += ' ' + p.replace(/^attr:/, '') + '="' +
-                    o[p] + '"'
-              }
-            }
-            xml += '>\n';
-          }
-          for (var p in o) {
-            item = o[p];
-
-            // Data properties only
-            if (typeof item == 'function') {
-              continue;
-            }
-            // No attr hack properties
-            if (p.indexOf('attr:') == 0) {
-              continue;
-            }
-
-            xml += nextIndent;
-
-            if (p == '#cdata') {
-              xml += '<![CDATA[' + item + ']]>\n';
-            }
-            else {
-
-              // Complex values, going to have items with multiple tags
-              // inside
-              if (typeof item == 'object') {
-                if (item instanceof Array) {
-                  if (arrayRoot) {
-                    xml += '<' + p + ' type="array">\n'
-                  }
-                }
-                else {
-                  xml += '<' + p;
-                  // Lookahead hack to allow tags to have attributes
-                  for (var q in item) {
-                    if (q.indexOf('attr:') == 0) {
-                      xml += ' ' + q.replace(/^attr:/, '') + '="' +
-                          item[q] + '"'
-                    }
-                  }
-                  xml += '>\n';
-                }
-              }
-              // Scalars, just a value and closing tag
-              else {
-                xml += '<' + p + '>'
-              }
-              xml += obj2xml(item, {
-                name: p
-              , level: level + 1
-              , arrayRoot: arrayRoot
-              });
-
-              // Objects and Arrays, need indentation before closing tag
-              if (typeof item == 'object') {
-                if (item instanceof Array) {
-                  if (arrayRoot) {
-                    xml += nextIndent;
-                    xml += '</' + p + '>\n';
-                  }
-                }
-                else {
-                  xml += nextIndent;
-                  xml += '</' + p + '>\n';
-                }
-              }
-              // Scalars, just close
-              else {
-                xml += '</' + p + '>\n';
-              }
-            }
-          }
-          // If this is a top-level item, close the top-level containing tag
-          if (level == 0) {
-            xml += currentIndent + '</' + n + '>\n';
-          }
-        }
-        break;
-      default:
-        // No default
-    }
-    return xml;
-  }
-
-  /*
-   * XML configuration
-   *
-  */
-  this.config = {
-      whitespace: true
-    , name: null
-    , fragment: false
-    , level: 0
-    , arrayRoot: true
-  };
-
-  /**
-    @name xml#setIndentLevel
-    @public
-    @function
-    @return {Number} Return the given `level`
-    @description SetIndentLevel changes the indent level for XML.stringify and returns it
-    @param {Number} level The indent level to use
-  */
-  this.setIndentLevel = function (level) {
-    if(!level) {
-      return;
-    }
-
-    return indentLevel = level;
-  };
-
-  /**
-    @name xml#stringify
-    @public
-    @function
-    @return {String} Return the XML entities of the given `obj`
-    @description Stringify returns an XML representation of the given `obj`
-    @param {Object} obj The object containing the XML entities to use
-    @param {Object} opts
-      @param {Boolean} [opts.whitespace=true] Don't insert indents and newlines after xml entities
-      @param {String} [opts.name=typeof obj] Use custom name as global namespace
-      @param {Boolean} [opts.fragment=false] If true no header fragment is added to the top
-      @param {Number} [opts.level=0] Remove this many levels from the output
-      @param {Boolean} [opts.arrayRoot=true]
-  */
-  this.stringify = function (obj, opts) {
-    var config = core.mixin({}, this.config)
-      , xml = '';
-    core.mixin(config, (opts || {}));
-
-    if (!config.whitespace) {
-      indentLevel = 0;
-    }
-
-    if (!config.fragment) {
-      xml += '<?xml version="1.0" encoding="UTF-8"?>\n';
-    }
-
-    xml += obj2xml(obj, {
-      name: config.name
-    , level: config.level
-    , arrayRoot: config.arrayRoot
-    });
-
-    if (!config.whitespace) {
-      xml = xml.replace(/>\n/g, '>');
-    }
-
-    return xml;
-  };
-
-})();
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/package.json b/blackberry10/node_modules/jake/node_modules/utilities/package.json
deleted file mode 100644
index ee68c2a..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "name": "utilities",
-  "description": "A classic collection of JavaScript utilities",
-  "keywords": [
-    "utilities",
-    "utils",
-    "jake",
-    "geddy"
-  ],
-  "version": "0.0.24",
-  "author": {
-    "name": "Matthew Eernisse",
-    "email": "mde@fleegix.org",
-    "url": "http://fleegix.org"
-  },
-  "main": "./lib/index.js",
-  "scripts": {
-    "test": "jake test"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/mde/utilities.git"
-  },
-  "engines": {
-    "node": "*"
-  },
-  "readme": "utilities\n=========\n\n[![build status](https://secure.travis-ci.org/mde/utilities.png)](http://travis-ci.org/mde/utilities)\n\nA classic collection of JavaScript utilities",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/mde/utilities/issues"
-  },
-  "_id": "utilities@0.0.24",
-  "_from": "utilities@0.0.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/array.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/array.js b/blackberry10/node_modules/jake/node_modules/utilities/test/array.js
deleted file mode 100644
index 07ad592..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/array.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var assert = require('assert')
-  , array = require('../lib/array')
-  , tests;
-
-tests = {
-
-  'test basic humanize for array': function () {
-    var actual = array.humanize(["array", "array", "array"])
-      , expected = "array, array and array";
-    assert.equal(expected, actual);
-  }
-
-, 'test humanize with two items for array': function () {
-    var actual = array.humanize(["array", "array"])
-      , expected = "array and array";
-    assert.equal(expected, actual);
-  }
-
-, 'test humanize with a single item for array': function () {
-    var actual = array.humanize(["array"])
-      , expected = "array";
-    assert.equal(expected, actual);
-  }
-
-, 'test humanize with no items for array': function () {
-    var actual = array.humanize([])
-      , expected = "";
-    assert.equal(expected, actual);
-  }
-
-, 'test basic include for array': function () {
-    var test = ["array"]
-      , actual = array.include(test, "array");
-    assert.equal(true, actual);
-  }
-
-, 'test false include for array': function () {
-    var test = ["array"]
-      , actual = array.include(test, 'nope');
-    assert.equal(false, actual);
-  }
-
-, 'test false boolean include for array': function () {
-    var test = ["array", false]
-      , actual = array.include(test, false);
-    assert.equal(true, actual);
-  }
-
-};
-
-module.exports = tests;
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/core.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/core.js b/blackberry10/node_modules/jake/node_modules/utilities/test/core.js
deleted file mode 100644
index 18e73b1..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/core.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var assert = require('assert')
-  , core = require('../lib/core')
-  , tests;
-
-tests = {
-
-  'simple mixin for core': function () {
-    var expected = {secret: 'asdf', geddy: 'geddyKey'}
-      , result = core.mixin({secret: 'asdf'}, {geddy: 'geddyKey'});
-    assert.deepEqual(expected, result);
-  }
-
-, 'mixin with overiding key for core': function () {
-    var expected = {secret: 'geddySecret', geddy: 'geddyKey'}
-      , result = core.mixin({secret: 'asdf'}, {geddy: 'geddyKey', secret: 'geddySecret'});
-    assert.deepEqual(expected, result);
-  }
-
-, 'simple enhance for core': function () {
-    var expected = {secret: 'asdf', geddy: 'geddyKey'}
-      , result = core.enhance({secret: 'asdf'}, {geddy: 'geddyKey'});
-    assert.deepEqual(expected, result);
-  }
-
-, 'enhance with overiding key for core': function () {
-    var expected = {secret: 'geddySecret', geddy: 'geddyKey'}
-      , result = core.enhance({secret: 'asdf'}, {geddy: 'geddyKey', secret: 'geddySecret'});
-    assert.deepEqual(expected, result);
-  }
-
-, 'isEmpty, empty string (true)': function () {
-    assert.ok(core.isEmpty(''));
-  }
-
-, 'isEmpty, null (true)': function () {
-    assert.ok(core.isEmpty(null));
-  }
-
-, 'isEmpty, undefined (true)': function () {
-    assert.ok(core.isEmpty(null));
-  }
-
-, 'isEmpty, NaN (true)': function () {
-    assert.ok(core.isEmpty(NaN));
-  }
-
-, 'isEmpty, invalid Date (true)': function () {
-    assert.ok(core.isEmpty(new Date(NaN)));
-  }
-
-, 'isEmpty, zero (false)': function () {
-    assert.ok(!core.isEmpty(0));
-  }
-
-};
-
-module.exports = tests;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/date.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/date.js b/blackberry10/node_modules/jake/node_modules/utilities/test/date.js
deleted file mode 100644
index 535562f..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/date.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var date = require('../lib/date')
-  , assert = require('assert')
-  , tests = {}
-  , _date = new Date();
-
-tests = {
-
-  'test strftime for date': function () {
-    var data = date.strftime(_date, "%w")
-      , actual = _date.getDay();
-    assert.equal(actual, data);
-  }
-
-, 'test calcCentury using current year for date': function () {
-    var data = date.calcCentury()
-      , actual = '21';
-    assert.equal(actual, data);
-  }
-
-, 'test calcCentury using 20th century year for date': function () {
-    var data = date.calcCentury(2000)
-      , actual = '20';
-    assert.equal(actual, data);
-  }
-
-, 'test calcCentury using 1st century year for date': function () {
-    var data = date.calcCentury(10)
-      , actual = '1';
-    assert.equal(actual, data);
-  }
-
-, 'test getMeridiem for date': function () {
-    var data = date.getMeridiem(_date.getHours())
-      , actual = (_date.getHours() > 11) ? 'PM' : 'AM';
-    assert.equal(actual, data);
-  }
-
-, 'test relativeTime week/weeks switchover': function () {
-    var dtA = new Date()
-      , dtB
-      , res;
-
-      dtB = date.add(dtA, 'day', 10);
-      dtB = date.add(dtB, 'hour', 23);
-      dtB = date.add(dtB, 'minute', 59);
-      dtB = date.add(dtB, 'second', 59);
-      dtB = date.add(dtB, 'millisecond', 999);
-    res = date.relativeTime(dtA, {now: dtB});
-    assert.equal('one week ago', res);
-
-    dtB = date.add(dtB, 'millisecond', 1);
-    res = date.relativeTime(dtA, {now: dtB});
-    assert.equal('about 2 weeks ago', res);
-  }
-
-};
-
-module.exports = tests;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/event_buffer.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/event_buffer.js b/blackberry10/node_modules/jake/node_modules/utilities/test/event_buffer.js
deleted file mode 100644
index 61dcc30..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/event_buffer.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var Stream = require('stream').Stream
-  , EventEmitter = require('events').EventEmitter
-  , EventBuffer = require('../lib/event_buffer.js').EventBuffer
-  , assert = require('assert')
-  , tests;
-
-tests = {
-
-  'test basic event buffer functionality': function () {
-    var source = new Stream()
-      , dest = new EventEmitter()
-      , buff = new EventBuffer(source)
-      , data = '';
-    dest.on('data', function (d) { data += d; });
-    source.writeable = true;
-    source.readable = true;
-    source.emit('data', 'abcdef');
-    source.emit('data', '123456');
-    buff.sync(dest);
-    assert.equal('abcdef123456', data);
-    source.emit('data', '---');
-    assert.equal('abcdef123456---', data);
-  }
-
-};
-
-module.exports = tests;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/file.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/file.js b/blackberry10/node_modules/jake/node_modules/utilities/test/file.js
deleted file mode 100644
index 183373a..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/file.js
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var assert = require('assert')
-  , fs = require('fs')
-  , path = require('path')
-  , file = require('../lib/file')
-  , existsSync = fs.existsSync || path.existsSync
-  , tests;
-
-tests = {
-
-  'before': function () {
-    process.chdir('./test');
-  }
-
-, 'after': function () {
-    process.chdir('../');
-  }
-
-, 'test mkdirP': function () {
-    var expected = [
-          ['foo']
-        , ['foo', 'bar']
-        , ['foo', 'bar', 'baz']
-        , ['foo', 'bar', 'baz', 'qux']
-        ]
-      , res;
-    file.mkdirP('foo/bar/baz/qux');
-    res = file.readdirR('foo');
-    for (var i = 0, ii = res.length; i < ii; i++) {
-      assert.equal(path.join.apply(path, expected[i]), res[i]);
-    }
-    file.rmRf('foo', {silent: true});
-  }
-
-, 'test rmRf': function () {
-    file.mkdirP('foo/bar/baz/qux', {silent: true});
-    file.rmRf('foo/bar', {silent: true});
-    res = file.readdirR('foo');
-    assert.equal(1, res.length);
-    assert.equal('foo', res[0]);
-    fs.rmdirSync('foo');
-  }
-
-, 'test cpR with same to and from will throw': function () {
-    assert.throws(function () {
-      file.cpR('foo.txt', 'foo.txt', {silent: true});
-    });
-  }
-
-, 'test cpR rename via copy in directory': function () {
-    file.mkdirP('foo', {silent: true});
-    fs.writeFileSync('foo/bar.txt', 'w00t');
-    file.cpR('foo/bar.txt', 'foo/baz.txt', {silent: true});
-    assert.ok(existsSync('foo/baz.txt'));
-    file.rmRf('foo', {silent: true});
-  }
-
-, 'test cpR rename via copy in base': function () {
-    fs.writeFileSync('bar.txt', 'w00t');
-    file.cpR('bar.txt', 'baz.txt', {silent: true});
-    assert.ok(existsSync('baz.txt'));
-    file.rmRf('bar.txt', {silent: true});
-    file.rmRf('baz.txt', {silent: true});
-  }
-
-, 'test readdirR': function () {
-    var expected = [
-          ['foo']
-        , ['foo', 'bar']
-        , ['foo', 'bar', 'baz']
-        , ['foo', 'bar', 'baz', 'qux']
-        ]
-      , res;
-
-    file.mkdirP('foo/bar/baz/qux', {silent: true});
-    res = file.readdirR('foo');
-
-    for (var i = 0, ii = res.length; i < ii; i++) {
-      assert.equal(path.join.apply(path, expected[i]), res[i]);
-    }
-    file.rmRf('foo', {silent: true});
-  }
-
-, 'test isAbsolute with Unix absolute path': function () {
-    var p = '/foo/bar/baz';
-    assert.equal('/', file.isAbsolute(p));
-  }
-
-, 'test isAbsolute with Unix relative path': function () {
-    var p = 'foo/bar/baz';
-    assert.equal(false, file.isAbsolute(p));
-  }
-
-, 'test isAbsolute with Win absolute path': function () {
-    var p = 'C:\\foo\\bar\\baz';
-    assert.equal('C:\\', file.isAbsolute(p));
-  }
-
-, 'test isAbsolute with Win relative path': function () {
-    var p = 'foo\\bar\\baz';
-    assert.equal(false, file.isAbsolute(p));
-  }
-
-, 'test absolutize with Unix absolute path': function () {
-    var expected = '/foo/bar/baz'
-      , actual = file.absolutize('/foo/bar/baz');
-    assert.equal(expected, actual);
-  }
-
-, 'test absolutize with Win absolute path': function () {
-    var expected = 'C:\\foo\\bar\\baz'
-      , actual = file.absolutize('C:\\foo\\bar\\baz');
-    assert.equal(expected, actual);
-  }
-
-, 'test absolutize with relative path': function () {
-    var expected = process.cwd()
-      , actual = '';
-
-    // We can't just create two different tests here
-    // because file.absolutize uses process.cwd()
-    // to get absolute path which is platform
-    // specific
-    if (process.platform === 'win32') {
-      expected += '\\foo\\bar\\baz'
-      actual = file.absolutize('foo\\bar\\baz')
-    }
-    else {
-      expected += '/foo/bar/baz'
-      actual = file.absolutize('foo/bar/baz');
-    }
-
-    assert.equal(expected, actual);
-  }
-
-, 'test basedir with Unix absolute path': function () {
-    var p = '/foo/bar/baz';
-    assert.equal('/foo/bar', file.basedir(p));
-  }
-
-, 'test basedir with Win absolute path': function () {
-    var p = 'C:\\foo\\bar\\baz';
-    assert.equal('C:\\foo\\bar', file.basedir(p));
-  }
-
-, 'test basedir with Unix root path': function () {
-    var p = '/';
-    assert.equal('/', file.basedir(p));
-  }
-
-, 'test basedir with Unix absolute path and double-asterisk': function () {
-    var p = '/**/foo/bar/baz';
-    assert.equal('/', file.basedir(p));
-  }
-
-, 'test basedir with leading double-asterisk': function () {
-    var p = '**/foo';
-    assert.equal('.', file.basedir(p));
-  }
-
-, 'test basedir with leading asterisk': function () {
-    var p = '*.js';
-    assert.equal('.', file.basedir(p));
-  }
-
-, 'test basedir with leading dot-slash and double-asterisk': function () {
-    var p = './**/foo';
-    assert.equal('.', file.basedir(p));
-  }
-
-, 'test basedir with leading dirname and double-asterisk': function () {
-    var p = 'a/**/*.js';
-    assert.equal('a', file.basedir(p));
-  }
-
-, 'test basedir with leading dot-dot-slash and double-asterisk': function () {
-    var p = '../../test/**/*.js';
-    assert.equal('../../test', file.basedir(p));
-  }
-
-, 'test basedir with single-asterisk in dirname': function () {
-    var p = 'a/test*/file';
-    assert.equal('a', file.basedir(p));
-  }
-
-, 'test basedir with single filename': function () {
-    var p = 'filename';
-    assert.equal('.', file.basedir(p));
-  }
-
-, 'test basedir with empty path': function () {
-    var p = '';
-    assert.equal('.', file.basedir(p));
-    assert.equal('.', file.basedir());
-  }
-
-};
-
-module.exports = tests;
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/i18n.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/i18n.js b/blackberry10/node_modules/jake/node_modules/utilities/test/i18n.js
deleted file mode 100644
index ba3e972..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/i18n.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var i18n = require('../lib/i18n')
-  , assert = require('assert')
-  , tests
-  , inst = {};
-
-tests = {
-
-  'before': function () {
-    i18n.loadLocale('en-us', {foo: 'FOO', bar: 'BAR', baz: 'BAZ'});
-    i18n.loadLocale('ja-jp', {foo: 'フー', bar: 'バー'});
-    inst.en = new i18n.I18n('en-us');
-    inst.jp = new i18n.I18n('ja-jp');
-    inst.de = new i18n.I18n('de-de');
-  }
-
-, 'test default-locale fallback, defined strings': function () {
-    var expected = 'BAZ'
-      , actual = inst.jp.t('baz');
-    assert.equal(expected, actual);
-  }
-
-, 'test default-locale fallback, no defined strings': function () {
-    var expected = 'BAZ'
-      , actual = inst.de.t('baz');
-    assert.equal(expected, actual);
-  }
-
-, 'test key lookup, default-locale': function () {
-    var expected = 'FOO'
-      , actual = inst.en.t('foo');
-    assert.equal(expected, actual);
-  }
-
-, 'test key lookup, non-default-locale': function () {
-    var expected = 'フー'
-      , actual = inst.jp.t('foo');
-    assert.equal(expected, actual);
-  }
-
-};
-
-module.exports = tests;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/inflection.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/inflection.js b/blackberry10/node_modules/jake/node_modules/utilities/test/inflection.js
deleted file mode 100644
index 2a4cfe6..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/inflection.js
+++ /dev/null
@@ -1,388 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var inflection = require('../lib/inflection')
-  , assert = require('assert')
-  , esInflections
-  , sInflections
-  , iesInflections
-  , vesInflections
-  , icesInflections
-  , renInflections
-  , oesInflections
-  , iInflections
-  , genInflections
-  , irregularInflections
-  , noInflections
-  , tests;
-
-/**
- * Most test inflections are from Ruby on Rails:
- *   https://github.com/rails/rails/blob/master/activesupport/test/inflector_test_cases.rb
- *
- * Ruby on Rails is MIT licensed: http://www.opensource.org/licenses/MIT
-*/
-esInflections = [
-    ["search", "searches"]
-  , ["switch", "switches"]
-  , ["fix", "fixes"]
-  , ["box", "boxes"]
-  , ["process", "processes"]
-  , ["address", "addresses"]
-  , ["wish", "wishes"]
-  , ["status", "statuses"]
-  , ["alias", "aliases"]
-  , ["basis", "bases"]
-  , ["diagnosis", "diagnoses"]
-  , ["bus", "buses"]
-];
-
-sInflections = [
-    ["stack", "stacks"]
-  , ["shoe", "shoes"]
-  , ["status_code", "status_codes"]
-  , ["case", "cases"]
-  , ["edge", "edges"]
-  , ["archive", "archives"]
-  , ["experience", "experiences"]
-  , ["day", "days"]
-  , ["comment", "comments"]
-  , ["foobar", "foobars"]
-  , ["newsletter", "newsletters"]
-  , ["old_news", "old_news"]
-  , ["perspective", "perspectives"]
-  , ["diagnosis_a", "diagnosis_as"]
-  , ["horse", "horses"]
-  , ["prize", "prizes"]
-];
-
-iesInflections = [
-    ["category", "categories"]
-  , ["query", "queries"]
-  , ["ability", "abilities"]
-  , ["agency", "agencies"]
-];
-
-vesInflections = [
-    ["wife", "wives"]
-  , ["safe", "saves"]
-  , ["half", "halves"]
-  , ["elf", "elves"]
-  , ["dwarf", "dwarves"]
-];
-
-icesInflections = [
-    ["index", "indices"]
-  , ["vertex", "vertices"]
-  , ["matrix", "matrices"]
-];
-
-renInflections = [
-    ["node_child", "node_children"]
-  , ["child", "children"]
-];
-
-oesInflections = [
-    ["buffalo", "buffaloes"]
-  , ["tomato", "tomatoes"]
-];
-
-iInflections = [
-    ["octopus", "octopi"]
-  , ["virus", "viri"]
-];
-
-genInflections = [
-    ["salesperson", "salespeople"]
-  , ["person", "people"]
-  , ["spokesman", "spokesmen"]
-  , ["man", "men"]
-  , ["woman", "women"]
-];
-
-irregularInflections = [
-    ["datum", "data"]
-  , ["medium", "media"]
-  , ["ox", "oxen"]
-  , ["cow", "kine"]
-  , ["mouse", "mice"]
-  , ["louse", "lice"]
-  , ["axis", "axes"]
-  , ["testis", "testes"]
-  , ["crisis", "crises"]
-  , ["analysis", "analyses"]
-  , ["quiz", "quizzes"]
-];
-
-noInflections = [
-    ["fish", "fish"]
-  , ["news", "news"]
-  , ["series", "series"]
-  , ["species", "species"]
-  , ["rice", "rice"]
-  , ["information", "information"]
-  , ["equipment", "equipment"]
-];
-
-tests = {
-
-  'test es plural words for inflection': function () {
-    var i = esInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = esInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test es singular words for inflection': function () {
-    var i = esInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = esInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test s plural words for inflection': function () {
-    var i = sInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = sInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test s singular words for inflection': function () {
-    var i = sInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = sInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test ies plural words for inflection': function () {
-    var i = iesInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = iesInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test ies singular words for inflection': function () {
-    var i = iesInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = iesInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test ves plural words for inflection': function () {
-    var i = vesInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = vesInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test ves singular words for inflection': function () {
-    var i = vesInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = vesInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test ices plural words for inflection': function () {
-    var i = icesInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = icesInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test ices singular words for inflection': function () {
-    var i = icesInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = icesInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test ren plural words for inflection': function () {
-    var i = renInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = renInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test ren singular words for inflection': function () {
-    var i = renInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = renInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test oes plural words for inflection': function () {
-    var i = oesInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = oesInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test oes singular words for inflection': function () {
-    var i = oesInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = oesInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test i plural words for inflection': function () {
-    var i = iInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = iInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test i singular words for inflection': function () {
-    var i = iInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = iInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test gender and people plural words for inflection': function () {
-    var i = genInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = genInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test gender and people singular words for inflection': function () {
-    var i = genInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = genInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test irregular plural words for inflection': function () {
-    var i = irregularInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = irregularInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test irregular singular words for inflection': function () {
-    var i = irregularInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = irregularInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-, 'test no change plural words for inflection': function () {
-    var i = noInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = noInflections[i];
-
-      assert.equal(value[1], inflection.pluralize(value[0]))
-    }
-  }
-
-, 'test no change singular words for inflection': function () {
-    var i = noInflections.length
-      , value;
-
-    while (--i >= 0) {
-      value = noInflections[i];
-
-      assert.equal(value[0], inflection.singularize(value[1]))
-    }
-  }
-
-};
-
-module.exports = tests;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/network.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/network.js b/blackberry10/node_modules/jake/node_modules/utilities/test/network.js
deleted file mode 100644
index 9619912..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/network.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var assert = require('assert')
-  , sys = require('sys')
-  , net = require('net')
-  , network = require('../lib/network')
-  , tests;
-
-tests = {
-
-  'test a port is open': function (next) {
-    var expected = false
-      , port = 49152;
-
-    network.isPortOpen(port, null, function (err, isOpen) {
-      assert.ifError(err);
-      assert.equal(expected, isOpen);
-
-      next();
-    });
-    
-  }
-
-, 'test a port is closed': function (next) {
-    
-    var expected = true
-      , port = 49153
-      , server = net.createServer();
-
-    server.listen(port, function () { 
-      network.isPortOpen(port, null, function (err, isOpen) {
-        assert.ifError(err);
-        assert.equal(expected, isOpen);
-
-        server.close(function () {
-          next();  
-        });
-      });
-    });  
-  }
-}
-
-module.exports = tests;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/object.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/object.js b/blackberry10/node_modules/jake/node_modules/utilities/test/object.js
deleted file mode 100644
index ea2cea5..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/object.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var object = require('../lib/object')
-  , array = require('../lib/array')
-  , assert = require('assert')
-  , tests = {}
-  , checkObjects;
-
-tests = {
-
-  'test merge in object': function () {
-    var expected = {user: 'geddy', key: 'key'}
-      , actual = object.merge({user: 'geddy'}, {key: 'key'});
-    assert.deepEqual(actual, expected);
-  }
-
-, 'test merge with overwriting keys in object': function () {
-    var expected = {user: 'geddy', key: 'key'}
-      , actual = object.merge({user: 'geddy', key: 'geddyKey'}, {key: 'key'});
-    assert.deepEqual(actual, expected);
-  }
-
-, 'test merge with objects as keys': function () {
-    var expected = {user: {name: 'geddy', password: 'random', key: 'key'}, key: 'key'}
-      , actual = object.merge({key: 'key'}, {user: {name: 'geddy', password: 'random', key: 'key'}});
-    assert.deepEqual(actual, expected);
-  }
-
-, 'test reverseMerge in object': function () {
-    var expected = {user: 'geddy', key: 'key'}
-      , actual = object.reverseMerge({user: 'geddy'}, {key: 'key'});
-    assert.deepEqual(actual, expected);
-  }
-
-, 'test reverseMerge with keys overwriting default in object': function () {
-    var expected = {user: 'geddy', key: 'geddyKey'}
-    , actual = object.reverseMerge({user: 'geddy', key: 'geddyKey'}, {key: 'key'});
-    assert.deepEqual(actual, expected);
-  }
-
-, 'test reverseMerge with objects as keys': function () {
-    var expected = {user: {name: 'geddy', password: 'random', key: 'key'}, key: 'key'}
-      , actual = object.merge({user: {name: 'geddy', password: 'random', key: 'key'}}, {key: 'key'});
-    assert.deepEqual(actual, expected);
-  }
-
-, 'test isEmpty with non empty object in object': function () {
-    var expected = false
-      , actual = object.isEmpty({user: 'geddy'});
-    assert.equal(actual, expected);
-  }
-
-, 'test isEmpty with empty object in object': function () {
-    var expected = true
-      , actual = object.isEmpty({});
-    assert.equal(actual, expected);
-  }
-
-};
-
-module.exports = tests;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/sorted_collection.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/sorted_collection.js b/blackberry10/node_modules/jake/node_modules/utilities/test/sorted_collection.js
deleted file mode 100644
index 2701a99..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/sorted_collection.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var SortedCollection = require('../lib/sorted_collection').SortedCollection
-  , assert = require('assert')
-  , tests;
-
-tests = {
-
-  'test no default value': function () {
-    // Set up a collection, no default value for new items
-    var c = new SortedCollection();
-    // Add some items
-    c.addItem('testA', 'AAAA');
-    c.addItem('testB', 'BBBB');
-    c.addItem('testC', 'CCCC');
-    // Test count
-    assert.equal(3, c.count);
-    // Test getItem by string key
-    var item = c.getItem('testC');
-    assert.equal('CCCC', item);
-    // Test getItem by index number
-    var item = c.getItem(1);
-    assert.equal('BBBB', item);
-    // Test setItem by string key
-    c.setItem('testA', 'aaaa');
-    var item = c.getItem('testA');
-    assert.equal('aaaa', item);
-    // Test setItem by index number
-    c.setItem(2, 'cccc');
-    var item = c.getItem(2);
-    assert.equal('cccc', item);
-  }
-
-, 'test default value': function () {
-    // Set up a collection, default value for new items is 'foo'
-    var c = new SortedCollection('foo');
-    // Add an item with no value -- should get
-    // default value
-    c.addItem('testA');
-    // Add some items with empty/falsey values --
-    // should be set to desired values
-    c.addItem('testB', null);
-    c.addItem('testC', false);
-    // Test getItem for default value
-    var item = c.getItem('testA');
-    assert.equal('foo', item);
-    var item = c.getItem('testB');
-    assert.equal(null, item);
-    var item = c.getItem('testC');
-    assert.equal(false, item);
-  }
-
-, 'test each': function () {
-    var c = new SortedCollection()
-      , str = '';
-    // Add an item with no value -- should get
-    // default value
-    c.addItem('a', 'A');
-    c.addItem('b', 'B');
-    c.addItem('c', 'C');
-    c.addItem('d', 'D');
-    c.each(function (val, key) {
-      str += val + key;
-    });
-    assert.equal('AaBbCcDd', str);
-  }
-
-, 'test removing an item': function () {
-    var c = new SortedCollection()
-      , str = '';
-    // Add an item with no value -- should get
-    // default value
-    c.addItem('a', 'A');
-    c.addItem('b', 'B');
-    c.addItem('c', 'C');
-    c.addItem('d', 'D');
-    assert.equal(4, c.count);
-
-    omg = c.removeItem('c');
-    assert.equal(3, c.count);
-
-    c.each(function (val, key) {
-      str += val + key;
-    });
-    assert.equal('AaBbDd', str);
-  }
-
-, 'test clone': function () {
-    var c = new SortedCollection()
-      , copy;
-    c.addItem('a', 'A');
-    c.addItem('b', 'B');
-    copy = c.clone();
-    assert.equal(2, copy.count);
-    assert.equal('A', copy.getItem('a'));
-  }
-
-};
-
-module.exports = tests;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/string.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/string.js b/blackberry10/node_modules/jake/node_modules/utilities/test/string.js
deleted file mode 100644
index a03027c..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/string.js
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var assert = require('assert')
-  , string = require('../lib/string')
-  , tests;
-
-tests = {
-
-  'test basic escapeXML for string': function () {
-    var expected = '&lt;html&gt;&lt;/html&gt;'
-      , actual = string.escapeXML('<html></html>');
-    assert.equal(expected, actual);
-  }
-
-, 'test all escape characters for escapeXML': function () {
-    var expected = '&lt;&gt;&amp;&quot;&#39;'
-      , actual = string.escapeXML('<>&"\'');
-    assert.equal(expected, actual);
-  }
-
-, 'test no escape characters with string for escapeXML': function () {
-    var expected = 'Geddy'
-      , actual = string.escapeXML('Geddy');
-    assert.equal(expected, actual);
-  }
-
-, 'test no escape characters with numbers for escapeXML': function () {
-    var expected = 05
-      , actual = string.escapeXML(05);
-    assert.equal(expected, actual);
-  }
-
-, 'test basic unescapeXML for string': function () {
-    var expected = '<html></html>'
-      , actual = string.unescapeXML('&lt;html&gt;&lt;/html&gt;');
-    assert.equal(expected, actual);
-  }
-
-, 'test all escape characters for unescapeXML': function () {
-    var expected = '<>&"\''
-      , actual = string.unescapeXML('&lt;&gt;&amp;&quot;&#39;');
-    assert.equal(expected, actual);
-  }
-
-, 'test no escape characters with string for unescapeXML': function () {
-    var expected = 'Geddy'
-      , actual = string.unescapeXML('Geddy');
-    assert.equal(expected, actual);
-  }
-
-, 'test no escape characters with numbers for unescapeXML': function () {
-    var expected = 05
-      , actual = string.unescapeXML(05);
-    assert.equal(expected, actual);
-  }
-
-, 'test basic needsEscape for string': function () {
-    var expected = true
-      , actual = string.needsEscape('Geddy>');
-    assert.equal(expected, actual);
-  }
-
-, 'test basic needsEscape thats false for string': function () {
-    var expected = false
-      , actual = string.needsEscape('Geddy');
-    assert.equal(expected, actual);
-  }
-
-, 'test basic needsUnescape for string': function () {
-    var expected = true
-      , actual = string.needsEscape('&quot;Geddy&quot;');
-    assert.equal(expected, actual);
-  }
-
-, 'test basic needsUnescape thats false for string': function () {
-    var expected = false
-      , actual = string.needsEscape('Geddy');
-    assert.equal(expected, actual);
-  }
-
-,  'test escapeRegExpCharacters': function () {
-    var expected = '\\^\\/\\.\\*\\+\\?\\|\\(\\)\\[\\]\\{\\}\\\\'
-      actual = string.escapeRegExpChars('^/.*+?|()[]{}\\');
-    assert.equal(expected, actual);
-  }
-
-, 'test toArray for string': function () {
-    var data = string.toArray('geddy')
-      , expected = ['g', 'e', 'd', 'd', 'y'];
-
-    // Loop through each item and check
-    // if not, then the arrays aren't _really_ the same
-    var i = expected.length;
-    while (--i >= 0) {
-      assert.equal(expected[i], data[i]);
-    }
-  }
-
-, 'test reverse for string': function () {
-    var data = string.reverse('yddeg')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test basic ltrim for string': function () {
-    var data = string.ltrim('   geddy')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test custom char ltrim for string': function () {
-    var data = string.ltrim('&&geddy', '&')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test basic rtrim for string': function () {
-    var data = string.rtrim('geddy  ')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test custom char rtrim for string': function () {
-    var data = string.rtrim('geddy&&', '&')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test basic trim for string': function () {
-    var data = string.trim(' geddy  ')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test custom char trim for string': function () {
-    var data = string.trim('&geddy&&', '&')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test chop special-case line-ending': function () {
-    var expected = 'geddy'
-      , actual = string.chop('geddy\r\n');
-    assert.equal(expected, actual);
-  }
-
-, 'test chop not actual special-case line-ending': function () {
-    var expected = 'geddy\n'
-      , actual = string.chop('geddy\n\r');
-    assert.equal(expected, actual);
-  }
-
-, 'test chop normal line-ending': function () {
-    var expected = 'geddy'
-      , actual = string.chop('geddy\n');
-    assert.equal(expected, actual);
-  }
-
-, 'test chop whatever character': function () {
-    var expected = 'gedd'
-      , actual = string.chop('geddy');
-    assert.equal(expected, actual);
-  }
-
-, 'test chop empty string': function () {
-    var expected = ''
-      , actual = string.chop('');
-    assert.equal(expected, actual);
-  }
-
-, 'test basic lpad for string': function () {
-    var data = string.lpad('geddy', '&', 7)
-      , expected = '&&geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test lpad without width for string': function () {
-    var data = string.lpad('geddy', '&')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test lpad without width of char for string': function () {
-    var data = string.lpad('geddy')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test basic rpad for string': function () {
-    var data = string.rpad('geddy', '&', 7)
-      , expected = 'geddy&&';
-    assert.equal(expected, data);
-  }
-
-, 'test rpad without width for string': function () {
-    var data = string.rpad('geddy', '&')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test rpad without width of char for string': function () {
-    var data = string.rpad('geddy')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test basic pad for string': function () {
-    var data = string.pad('geddy', '&', 7)
-      , expected = '&geddy&';
-    assert.equal(expected, data);
-  }
-
-, 'test pad without width for string': function () {
-    var data = string.pad('geddy', '&')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test pad without width of char for string': function () {
-    var data = string.pad('geddy')
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test single tags in truncateHTML': function () {
-    var str = string.truncateHTML('<p>Once upon a time in a world</p>', { length: 10 });
-    assert.equal(str, '<p>Once up...</p>');
-  }
-
-, 'test multiple tags in truncateHTML': function () {
-    var str = string.truncateHTML('<p>Once upon a time <small>in a world</small></p>', { length: 10 });
-    assert.equal(str, '<p>Once up...<small>in a wo...</small></p>');
-  }
-
-, 'test multiple tags but only truncate once in truncateHTML': function () {
-    var str = string.truncateHTML('<p>Once upon a time <small>in a world</small></p>', { length: 10, once: true });
-    assert.equal(str, '<p>Once up...<small>in a world</small></p>');
-  }
-
-, 'test standard truncate': function () {
-    var str = string.truncate('Once upon a time in a world', { length: 10 });
-    assert.equal(str, 'Once up...');
-  }
-
-, 'test custom omission in truncate': function () {
-    var str = string.truncate('Once upon a time in a world', { length: 10, omission: '///' });
-    assert.equal(str, 'Once up///');
-  }
-
-, 'test regex seperator in truncate': function () {
-    var str = string.truncate('Once upon a time in a world', { length: 15, seperator: /\s/ });
-    assert.equal(str, 'Once upon a...');
-  }
-
-, 'test string seperator in truncate': function () {
-    var str = string.truncate('Once upon a time in a world', { length: 15, seperator: ' ' });
-    assert.equal(str, 'Once upon a...');
-  }
-
-, 'test unsafe html in truncate': function () {
-    var str = string.truncate('<p>Once upon a time in a world</p>', { length: 20 });
-    assert.equal(str, '<p>Once upon a ti...');
-  }
-
-, 'test nl2br for string': function () {
-    var data = string.nl2br("geddy\n")
-      , expected = 'geddy<br />';
-    assert.equal(expected, data);
-  }
-
-, 'test snakeize for string': function () {
-    var data = string.snakeize("geddyJs")
-      , expected = 'geddy_js';
-    assert.equal(expected, data);
-  }
-
-, 'test snakeize with beginning caps for string': function () {
-    var data = string.snakeize("GeddyJs")
-      , expected = 'geddy_js';
-    assert.equal(expected, data);
-  }
-
-, 'test camelize for string': function () {
-    var data = string.camelize("geddy_js")
-      , expected = 'geddyJs';
-    assert.equal(expected, data);
-  }
-
-, 'test camelize with initialCap for string': function () {
-    var data = string.camelize("geddy_js", {initialCap: true})
-      , expected = 'GeddyJs';
-    assert.equal(expected, data);
-  }
-
-, 'test camelize with leadingUnderscore with no underscore for string': function () {
-    var data = string.camelize("geddy_js", {leadingUnderscore: true})
-      , expected = 'geddyJs';
-    assert.equal(expected, data);
-  }
-
-, 'test camelize with leadingUnderscore with underscore for string': function () {
-    var data = string.camelize("_geddy_js", {leadingUnderscore: true})
-      , expected = '_geddyJs';
-    assert.equal(expected, data);
-  }
-
-, 'test decapitalize for string': function () {
-    var data = string.decapitalize("Geddy")
-      , expected = 'geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test capitalize for string': function () {
-    var data = string.capitalize("geddy")
-      , expected = 'Geddy';
-    assert.equal(expected, data);
-  }
-
-, 'test dasherize for string': function () {
-    var data = string.dasherize("geddyJs")
-      , expected = 'geddy-js';
-    assert.equal(expected, data);
-  }
-
-, 'test dasherize with custom replace char for string': function () {
-    var data = string.dasherize("geddyJs", "_")
-      , expected = 'geddy_js';
-    assert.equal(expected, data);
-  }
-
-, 'test underscorize for string': function () {
-    var data = string.underscorize("geddyJs")
-      , expected = 'geddy_js';
-    assert.equal(expected, data);
-  }
-
-, 'test include for string with included string': function () {
-    assert.ok(string.include('foobarbaz', 'foo'));
-  }
-
-, 'test include for string with not included string': function () {
-    assert.ok(!string.include('foobarbaz', 'qux'));
-  }
-
-, 'test getInflections for string': function () {
-    var actual = string.getInflections("string")
-      , expected = {
-        filename: {
-            singular: "string"
-          , plural: "strings"
-        },
-        constructor: {
-            singular: "String"
-          , plural: "Strings"
-        },
-        property: {
-            singular: "string"
-          , plural: "strings"
-        },
-      };
-
-    assert.deepEqual(expected, actual);
-  }
-
-, 'test inflection with odd name for string': function () {
-    var actual = string.getInflections("snow_dog")
-      , expected = {
-        filename: {
-            singular: "snow_dog"
-          , plural: "snow_dogs"
-        },
-        constructor: {
-            singular: "SnowDog"
-          , plural: "SnowDogs"
-        },
-        property: {
-            singular: "snowDog"
-          , plural: "snowDogs"
-        },
-      };
-
-    assert.deepEqual(expected, actual);
-  }
-
-, 'test uuid length for string': function () {
-    var data = string.uuid(5).length
-      , expected = 5;
-    assert.equal(expected, data);
-  }
-
-};
-
-module.exports = tests;
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/uri.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/uri.js b/blackberry10/node_modules/jake/node_modules/utilities/test/uri.js
deleted file mode 100644
index 8048493..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/uri.js
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var uri = require('../lib/uri')
-  , array = require('../lib/array')
-  , assert = require('assert')
-  , tests = {};
-
-tests = {
-
-  'test getFileExtension for uri': function () {
-    var data = uri.getFileExtension('users.json')
-      , actual = 'json';
-    assert.equal(actual, data);
-  }
-
-, 'test paramify for uri': function () {
-    var data = uri.paramify({username: 'user', token: 'token', secret: 'secret'})
-      , actual = 'username=user&token=token&secret=secret';
-    assert.equal(actual, data);
-  }
-
-, 'test paramify with conslidate option for uri': function () {
-    var data = uri.paramify({username: 'user', auth: ['token', 'secret']}, {conslidate: true})
-      , actual = 'username=user&auth=token&auth=secret';
-    assert.equal(actual, data);
-  }
-
-, 'test paramify with includeEmpty option for uri': function () {
-    var data = uri.paramify({username: 'user', token: ''}, {includeEmpty: true})
-      , actual = 'username=user&token=';
-    assert.equal(actual, data);
-  }
-
-, 'test paramify with includeEmpty as 0 option for uri': function () {
-    var data = uri.paramify({username: 'user', token: 0}, {includeEmpty: true})
-      , actual = 'username=user&token=0';
-    assert.equal(actual, data);
-  }
-
-, 'test paramify with includeEmpty as null option for uri': function () {
-    var data = uri.paramify({username: 'user', token: null}, {includeEmpty: true})
-      , actual = 'username=user&token=';
-    assert.equal(actual, data);
-  }
-
-, 'test paramify with includeEmpty as undefined option for uri': function () {
-    var data = uri.paramify({username: 'user', token: undefined}, {includeEmpty: true})
-      , actual = 'username=user&token=';
-    assert.equal(actual, data);
-  }
-
-, 'test paramify with snakeize option for uri': function () {
-    var data = uri.paramify({username: 'user', authToken: 'token'}, {snakeize: true})
-      , actual = 'username=user&auth_token=token';
-    assert.equal(actual, data);
-  }
-
-, 'test paramify with escapeVals option for uri': function () {
-    var data = uri.paramify({username: 'user', token: '<token'}, {escapeVals: true})
-      , actual = 'username=user&token=%26lt%3Btoken';
-    assert.equal(actual, data);
-  }
-
-, 'test objectify for uri': function () {
-    var expected = {name: 'user'}
-      , actual = uri.objectify('name=user');
-    assert.deepEqual(actual, expected);
-  }
-
-, 'test objectify with multiple matching keys for uri': function () {
-    var expected = {name: ['user', 'user2']}
-      , actual = uri.objectify('name=user&name=user2');
-    assert.deepEqual(actual, expected);
-  }
-
-, 'test objectify with no conslidation for uri': function () {
-    var expected= {name: 'user2'}
-      , actual = uri.objectify('name=user&name=user2', {consolidate: false});
-    assert.deepEqual(actual, expected);
-  }
-
-};
-
-module.exports = tests;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/test/xml.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/test/xml.js b/blackberry10/node_modules/jake/node_modules/utilities/test/xml.js
deleted file mode 100644
index 3bb8e83..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/test/xml.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var XML = require('../lib/xml').XML
-  , assert = require('assert')
-  , obj
-  , xml
-  , res
-  , serialize
-  , tests;
-
-serialize = function (o) {
-  return XML.stringify(o, {whitespace: false});
-};
-
-tests = {
-
-  'test serialized object': function () {
-    obj = {foo: 'bar'};
-    xml = serialize(obj);
-    res = '<?xml version="1.0" encoding="UTF-8"?><object><foo>bar</foo></object>';
-    assert.equal(res, xml);
-  }
-
-, 'test array of numbers': function () {
-    obj = [1, 2, 3];
-    xml = serialize(obj);
-    res = '<?xml version="1.0" encoding="UTF-8"?><numbers type="array"><number>1</number><number>2</number><number>3</number></numbers>';
-    assert.equal(res, xml);
-  }
-
-, 'test array of strings': function () {
-    obj = ['foo', 'bar'];
-    xml = serialize(obj);
-    res = '<?xml version="1.0" encoding="UTF-8"?><strings type="array"><string>foo</string><string>bar</string></strings>';
-    assert.equal(res, xml);
-  }
-
-, 'test array of mixed datatypes': function () {
-    obj = ['foo', 1];
-    xml = serialize(obj);
-    res = '<?xml version="1.0" encoding="UTF-8"?><records type="array"><record>foo</record><record>1</record></records>';
-    assert.equal(res, xml);
-  }
-
-, 'test array property of an object': function () {
-    obj = {foo: ['bar', 'baz']};
-    xml = serialize(obj);
-    res = '<?xml version="1.0" encoding="UTF-8"?><object><foo type="array"><foo>bar</foo><foo>baz</foo></foo></object>';
-    assert.equal(res, xml);
-  }
-
-, 'test setIndentLevel for xml': function () {
-    var data = XML.setIndentLevel(5)
-      , actual = 5;
-    assert.equal(actual, data)
-  }
-
-, 'test stringify with object for xml': function () {
-    var data = XML.stringify({user: 'name'})
-      , actual = '<?xml version="1.0" encoding="UTF-8"?>\n<object>\n    <user>name</user>\n</object>\n';
-    assert.equal(actual, data)
-  }
-
-, 'test stringify with array for xml': function () {
-    var data = XML.stringify(['user'])
-      , actual = '<?xml version="1.0" encoding="UTF-8"?>\n<strings type="array">\n\
-    <string>user</string>\n</strings>';
-    assert.equal(actual, data)
-  }
-
-, 'test stringify with object and no whitespace for xml': function () {
-    var data = XML.stringify({user: 'name'}, {whitespace: false})
-      , actual = '<?xml version="1.0" encoding="UTF-8"?><object><user>name</user></object>';
-    assert.equal(actual, data)
-  }
-
-, 'test stringify with object and name for xml': function () {
-    var data = XML.stringify({user: 'name'}, {name: 'omg'})
-      , actual = '<?xml version="1.0" encoding="UTF-8"?>\n<omg>\n<user>name</user>\n</omg>\n';
-    assert.equal(actual, data)
-  }
-
-, 'test stringify with object and fragment for xml': function () {
-    var data = XML.stringify({user: 'name'}, {fragment: true})
-      , actual = '<object>\n<user>name</user>\n</object>\n';
-    assert.equal(actual, data)
-  }
-
-, 'test stringify with object for xml': function () {
-    var data = XML.stringify({user: 'name'}, {level: 1})
-      , actual = '<?xml version="1.0" encoding="UTF-8"?>\n         <user>name</user>\n';
-    assert.equal(actual, data)
-  }
-
-, 'test stringify with array and no arrayRoot for xml': function () {
-    var data = XML.stringify(['user'], {arrayRoot: false})
-      , actual = '<?xml version="1.0" encoding="UTF-8"?>\n<strings type="array">\n\
-<string>user</string>\n</strings>';
-    assert.equal(actual, data)
-  }
-
-
-};
-
-module.exports = tests;
-


[10/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/test/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/test/index.js b/blackberry10/node_modules/plugman/node_modules/semver/test/index.js
deleted file mode 100644
index 51ad909..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/test/index.js
+++ /dev/null
@@ -1,533 +0,0 @@
-var tap = require('tap');
-var test = tap.test;
-var semver = require('../semver.js');
-var eq = semver.eq;
-var gt = semver.gt;
-var lt = semver.lt;
-var neq = semver.neq;
-var cmp = semver.cmp;
-var gte = semver.gte;
-var lte = semver.lte;
-var satisfies = semver.satisfies;
-var validRange = semver.validRange;
-var inc = semver.inc;
-var replaceStars = semver.replaceStars;
-var toComparators = semver.toComparators;
-var SemVer = semver.SemVer;
-var Range = semver.Range;
-
-test('\ncomparison tests', function(t) {
-  // [version1, version2]
-  // version1 should be greater than version2
-  [['0.0.0', '0.0.0-foo'],
-    ['0.0.1', '0.0.0'],
-    ['1.0.0', '0.9.9'],
-    ['0.10.0', '0.9.0'],
-    ['0.99.0', '0.10.0'],
-    ['2.0.0', '1.2.3'],
-    ['v0.0.0', '0.0.0-foo', true],
-    ['v0.0.1', '0.0.0', true],
-    ['v1.0.0', '0.9.9', true],
-    ['v0.10.0', '0.9.0', true],
-    ['v0.99.0', '0.10.0', true],
-    ['v2.0.0', '1.2.3', true],
-    ['0.0.0', 'v0.0.0-foo', true],
-    ['0.0.1', 'v0.0.0', true],
-    ['1.0.0', 'v0.9.9', true],
-    ['0.10.0', 'v0.9.0', true],
-    ['0.99.0', 'v0.10.0', true],
-    ['2.0.0', 'v1.2.3', true],
-    ['1.2.3', '1.2.3-asdf'],
-    ['1.2.3', '1.2.3-4'],
-    ['1.2.3', '1.2.3-4-foo'],
-    ['1.2.3-5-foo', '1.2.3-5'],
-    ['1.2.3-5', '1.2.3-4'],
-    ['1.2.3-5-foo', '1.2.3-5-Foo'],
-    ['3.0.0', '2.7.2+asdf'],
-    ['1.2.3-a.10', '1.2.3-a.5'],
-    ['1.2.3-a.b', '1.2.3-a.5'],
-    ['1.2.3-a.b', '1.2.3-a'],
-    ['1.2.3-a.b.c.10.d.5', '1.2.3-a.b.c.5.d.100']
-  ].forEach(function(v) {
-    var v0 = v[0];
-    var v1 = v[1];
-    var loose = v[2];
-    t.ok(gt(v0, v1, loose), "gt('" + v0 + "', '" + v1 + "')");
-    t.ok(lt(v1, v0, loose), "lt('" + v1 + "', '" + v0 + "')");
-    t.ok(!gt(v1, v0, loose), "!gt('" + v1 + "', '" + v0 + "')");
-    t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')");
-    t.ok(eq(v0, v0, loose), "eq('" + v0 + "', '" + v0 + "')");
-    t.ok(eq(v1, v1, loose), "eq('" + v1 + "', '" + v1 + "')");
-    t.ok(neq(v0, v1, loose), "neq('" + v0 + "', '" + v1 + "')");
-    t.ok(cmp(v1, '==', v1, loose), "cmp('" + v1 + "' == '" + v1 + "')");
-    t.ok(cmp(v0, '>=', v1, loose), "cmp('" + v0 + "' >= '" + v1 + "')");
-    t.ok(cmp(v1, '<=', v0, loose), "cmp('" + v1 + "' <= '" + v0 + "')");
-    t.ok(cmp(v0, '!=', v1, loose), "cmp('" + v0 + "' != '" + v1 + "')");
-  });
-  t.end();
-});
-
-test('\nequality tests', function(t) {
-  // [version1, version2]
-  // version1 should be equivalent to version2
-  [['1.2.3', 'v1.2.3', true],
-    ['1.2.3', '=1.2.3', true],
-    ['1.2.3', 'v 1.2.3', true],
-    ['1.2.3', '= 1.2.3', true],
-    ['1.2.3', ' v1.2.3', true],
-    ['1.2.3', ' =1.2.3', true],
-    ['1.2.3', ' v 1.2.3', true],
-    ['1.2.3', ' = 1.2.3', true],
-    ['1.2.3-0', 'v1.2.3-0', true],
-    ['1.2.3-0', '=1.2.3-0', true],
-    ['1.2.3-0', 'v 1.2.3-0', true],
-    ['1.2.3-0', '= 1.2.3-0', true],
-    ['1.2.3-0', ' v1.2.3-0', true],
-    ['1.2.3-0', ' =1.2.3-0', true],
-    ['1.2.3-0', ' v 1.2.3-0', true],
-    ['1.2.3-0', ' = 1.2.3-0', true],
-    ['1.2.3-1', 'v1.2.3-1', true],
-    ['1.2.3-1', '=1.2.3-1', true],
-    ['1.2.3-1', 'v 1.2.3-1', true],
-    ['1.2.3-1', '= 1.2.3-1', true],
-    ['1.2.3-1', ' v1.2.3-1', true],
-    ['1.2.3-1', ' =1.2.3-1', true],
-    ['1.2.3-1', ' v 1.2.3-1', true],
-    ['1.2.3-1', ' = 1.2.3-1', true],
-    ['1.2.3-beta', 'v1.2.3-beta', true],
-    ['1.2.3-beta', '=1.2.3-beta', true],
-    ['1.2.3-beta', 'v 1.2.3-beta', true],
-    ['1.2.3-beta', '= 1.2.3-beta', true],
-    ['1.2.3-beta', ' v1.2.3-beta', true],
-    ['1.2.3-beta', ' =1.2.3-beta', true],
-    ['1.2.3-beta', ' v 1.2.3-beta', true],
-    ['1.2.3-beta', ' = 1.2.3-beta', true],
-    ['1.2.3-beta+build', ' = 1.2.3-beta+otherbuild', true],
-    ['1.2.3+build', ' = 1.2.3+otherbuild', true],
-    ['1.2.3-beta+build', '1.2.3-beta+otherbuild'],
-    ['1.2.3+build', '1.2.3+otherbuild'],
-    ['  v1.2.3+build', '1.2.3+otherbuild']
-  ].forEach(function(v) {
-    var v0 = v[0];
-    var v1 = v[1];
-    var loose = v[2];
-    t.ok(eq(v0, v1, loose), "eq('" + v0 + "', '" + v1 + "')");
-    t.ok(!neq(v0, v1, loose), "!neq('" + v0 + "', '" + v1 + "')");
-    t.ok(cmp(v0, '==', v1, loose), 'cmp(' + v0 + '==' + v1 + ')');
-    t.ok(!cmp(v0, '!=', v1, loose), '!cmp(' + v0 + '!=' + v1 + ')');
-    t.ok(!cmp(v0, '===', v1, loose), '!cmp(' + v0 + '===' + v1 + ')');
-    t.ok(cmp(v0, '!==', v1, loose), 'cmp(' + v0 + '!==' + v1 + ')');
-    t.ok(!gt(v0, v1, loose), "!gt('" + v0 + "', '" + v1 + "')");
-    t.ok(gte(v0, v1, loose), "gte('" + v0 + "', '" + v1 + "')");
-    t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')");
-    t.ok(lte(v0, v1, loose), "lte('" + v0 + "', '" + v1 + "')");
-  });
-  t.end();
-});
-
-
-test('\nrange tests', function(t) {
-  // [range, version]
-  // version should be included by range
-  [['1.0.0 - 2.0.0', '1.2.3'],
-    ['1.0.0', '1.0.0'],
-    ['>=*', '0.2.4'],
-    ['', '1.0.0'],
-    ['*', '1.2.3'],
-    ['*', 'v1.2.3-foo', true],
-    ['>=1.0.0', '1.0.0'],
-    ['>=1.0.0', '1.0.1'],
-    ['>=1.0.0', '1.1.0'],
-    ['>1.0.0', '1.0.1'],
-    ['>1.0.0', '1.1.0'],
-    ['<=2.0.0', '2.0.0'],
-    ['<=2.0.0', '1.9999.9999'],
-    ['<=2.0.0', '0.2.9'],
-    ['<2.0.0', '1.9999.9999'],
-    ['<2.0.0', '0.2.9'],
-    ['>= 1.0.0', '1.0.0'],
-    ['>=  1.0.0', '1.0.1'],
-    ['>=   1.0.0', '1.1.0'],
-    ['> 1.0.0', '1.0.1'],
-    ['>  1.0.0', '1.1.0'],
-    ['<=   2.0.0', '2.0.0'],
-    ['<= 2.0.0', '1.9999.9999'],
-    ['<=  2.0.0', '0.2.9'],
-    ['<    2.0.0', '1.9999.9999'],
-    ['<\t2.0.0', '0.2.9'],
-    ['>=0.1.97', 'v0.1.97', true],
-    ['>=0.1.97', '0.1.97'],
-    ['0.1.20 || 1.2.4', '1.2.4'],
-    ['>=0.2.3 || <0.0.1', '0.0.0'],
-    ['>=0.2.3 || <0.0.1', '0.2.3'],
-    ['>=0.2.3 || <0.0.1', '0.2.4'],
-    ['||', '1.3.4'],
-    ['2.x.x', '2.1.3'],
-    ['1.2.x', '1.2.3'],
-    ['1.2.x || 2.x', '2.1.3'],
-    ['1.2.x || 2.x', '1.2.3'],
-    ['x', '1.2.3'],
-    ['2.*.*', '2.1.3'],
-    ['1.2.*', '1.2.3'],
-    ['1.2.* || 2.*', '2.1.3'],
-    ['1.2.* || 2.*', '1.2.3'],
-    ['*', '1.2.3'],
-    ['2', '2.1.2'],
-    ['2.3', '2.3.1'],
-    ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0
-    ['~2.4', '2.4.5'],
-    ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0,
-    ['~1', '1.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '1.2.3'],
-    ['~> 1', '1.2.3'],
-    ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0,
-    ['~ 1.0', '1.0.2'],
-    ['~ 1.0.3', '1.0.12'],
-    ['>=1', '1.0.0'],
-    ['>= 1', '1.0.0'],
-    ['<1.2', '1.1.1'],
-    ['< 1.2', '1.1.1'],
-    ['1', '1.0.0beta', true],
-    ['~v0.5.4-pre', '0.5.5'],
-    ['~v0.5.4-pre', '0.5.4'],
-    ['=0.7.x', '0.7.2'],
-    ['>=0.7.x', '0.7.2'],
-    ['=0.7.x', '0.7.0-asdf'],
-    ['>=0.7.x', '0.7.0-asdf'],
-    ['<=0.7.x', '0.6.2'],
-    ['~1.2.1 >=1.2.3', '1.2.3'],
-    ['~1.2.1 =1.2.3', '1.2.3'],
-    ['~1.2.1 1.2.3', '1.2.3'],
-    ['~1.2.1 >=1.2.3 1.2.3', '1.2.3'],
-    ['~1.2.1 1.2.3 >=1.2.3', '1.2.3'],
-    ['~1.2.1 1.2.3', '1.2.3'],
-    ['>=1.2.1 1.2.3', '1.2.3'],
-    ['1.2.3 >=1.2.1', '1.2.3'],
-    ['>=1.2.3 >=1.2.1', '1.2.3'],
-    ['>=1.2.1 >=1.2.3', '1.2.3'],
-    ['<=1.2.3', '1.2.3-beta'],
-    ['>1.2', '1.3.0-beta'],
-    ['>=1.2', '1.2.8']
-  ].forEach(function(v) {
-    var range = v[0];
-    var ver = v[1];
-    var loose = v[2];
-    t.ok(satisfies(ver, range, loose), range + ' satisfied by ' + ver);
-  });
-  t.end();
-});
-
-test('\nnegative range tests', function(t) {
-  // [range, version]
-  // version should not be included by range
-  [['1.0.0 - 2.0.0', '2.2.3'],
-    ['1.0.0', '1.0.1'],
-    ['>=1.0.0', '0.0.0'],
-    ['>=1.0.0', '0.0.1'],
-    ['>=1.0.0', '0.1.0'],
-    ['>1.0.0', '0.0.1'],
-    ['>1.0.0', '0.1.0'],
-    ['<=2.0.0', '3.0.0'],
-    ['<=2.0.0', '2.9999.9999'],
-    ['<=2.0.0', '2.2.9'],
-    ['<2.0.0', '2.9999.9999'],
-    ['<2.0.0', '2.2.9'],
-    ['>=0.1.97', 'v0.1.93', true],
-    ['>=0.1.97', '0.1.93'],
-    ['0.1.20 || 1.2.4', '1.2.3'],
-    ['>=0.2.3 || <0.0.1', '0.0.3'],
-    ['>=0.2.3 || <0.0.1', '0.2.2'],
-    ['2.x.x', '1.1.3'],
-    ['2.x.x', '3.1.3'],
-    ['1.2.x', '1.3.3'],
-    ['1.2.x || 2.x', '3.1.3'],
-    ['1.2.x || 2.x', '1.1.3'],
-    ['2.*.*', '1.1.3'],
-    ['2.*.*', '3.1.3'],
-    ['1.2.*', '1.3.3'],
-    ['1.2.* || 2.*', '3.1.3'],
-    ['1.2.* || 2.*', '1.1.3'],
-    ['2', '1.1.2'],
-    ['2.3', '2.4.1'],
-    ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0
-    ['~2.4', '2.3.9'],
-    ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0
-    ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0
-    ['~1', '0.2.3'], // >=1.0.0 <2.0.0
-    ['~>1', '2.2.3'],
-    ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0
-    ['<1', '1.0.0'],
-    ['>=1.2', '1.1.1'],
-    ['1', '2.0.0beta', true],
-    ['~v0.5.4-beta', '0.5.4-alpha'],
-    ['<1', '1.0.0beta', true],
-    ['< 1', '1.0.0beta', true],
-    ['=0.7.x', '0.8.2'],
-    ['>=0.7.x', '0.6.2'],
-    ['<=0.7.x', '0.7.2'],
-    ['<1.2.3', '1.2.3-beta'],
-    ['=1.2.3', '1.2.3-beta'],
-    ['>1.2', '1.2.8'],
-    // invalid ranges never satisfied!
-    ['blerg', '1.2.3'],
-    ['git+https://user:password0123@github.com/foo', '123.0.0', true]
-  ].forEach(function(v) {
-    var range = v[0];
-    var ver = v[1];
-    var loose = v[2];
-    var found = satisfies(ver, range, loose);
-    t.ok(!found, ver + ' not satisfied by ' + range);
-  });
-  t.end();
-});
-
-test('\nincrement versions test', function(t) {
-  // [version, inc, result]
-  // inc(version, inc) -> result
-  [['1.2.3', 'major', '2.0.0'],
-    ['1.2.3', 'minor', '1.3.0'],
-    ['1.2.3', 'patch', '1.2.4'],
-    ['1.2.3tag', 'major', '2.0.0', true],
-    ['1.2.3-tag', 'major', '2.0.0'],
-    ['1.2.3', 'fake', null],
-    ['fake', 'major', null],
-    ['1.2.3', 'prerelease', '1.2.3-0'],
-    ['1.2.3-0', 'prerelease', '1.2.3-1'],
-    ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1'],
-    ['1.2.3-alpha.1', 'prerelease', '1.2.3-alpha.2'],
-    ['1.2.3-alpha.2', 'prerelease', '1.2.3-alpha.3'],
-    ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta'],
-    ['1.2.3-alpha.1.beta', 'prerelease', '1.2.3-alpha.2.beta'],
-    ['1.2.3-alpha.2.beta', 'prerelease', '1.2.3-alpha.3.beta'],
-    ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta'],
-    ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta'],
-    ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta'],
-    ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1'],
-    ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2'],
-    ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3'],
-    ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta'],
-    ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta'],
-    ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta']
-  ].forEach(function(v) {
-    var pre = v[0];
-    var what = v[1];
-    var wanted = v[2];
-    var loose = v[3];
-    var found = inc(pre, what, loose);
-    t.equal(found, wanted, 'inc(' + pre + ', ' + what + ') === ' + wanted);
-  });
-
-  t.end();
-});
-
-test('\nvalid range test', function(t) {
-  // [range, result]
-  // validRange(range) -> result
-  // translate ranges into their canonical form
-  [['1.0.0 - 2.0.0', '>=1.0.0 <=2.0.0'],
-    ['1.0.0', '1.0.0'],
-    ['>=*', '>=0.0.0-0'],
-    ['', '*'],
-    ['*', '*'],
-    ['*', '*'],
-    ['>=1.0.0', '>=1.0.0'],
-    ['>1.0.0', '>1.0.0'],
-    ['<=2.0.0', '<=2.0.0'],
-    ['1', '>=1.0.0-0 <2.0.0-0'],
-    ['<=2.0.0', '<=2.0.0'],
-    ['<=2.0.0', '<=2.0.0'],
-    ['<2.0.0', '<2.0.0-0'],
-    ['<2.0.0', '<2.0.0-0'],
-    ['>= 1.0.0', '>=1.0.0'],
-    ['>=  1.0.0', '>=1.0.0'],
-    ['>=   1.0.0', '>=1.0.0'],
-    ['> 1.0.0', '>1.0.0'],
-    ['>  1.0.0', '>1.0.0'],
-    ['<=   2.0.0', '<=2.0.0'],
-    ['<= 2.0.0', '<=2.0.0'],
-    ['<=  2.0.0', '<=2.0.0'],
-    ['<    2.0.0', '<2.0.0-0'],
-    ['<	2.0.0', '<2.0.0-0'],
-    ['>=0.1.97', '>=0.1.97'],
-    ['>=0.1.97', '>=0.1.97'],
-    ['0.1.20 || 1.2.4', '0.1.20||1.2.4'],
-    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1-0'],
-    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1-0'],
-    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1-0'],
-    ['||', '||'],
-    ['2.x.x', '>=2.0.0-0 <3.0.0-0'],
-    ['1.2.x', '>=1.2.0-0 <1.3.0-0'],
-    ['1.2.x || 2.x', '>=1.2.0-0 <1.3.0-0||>=2.0.0-0 <3.0.0-0'],
-    ['1.2.x || 2.x', '>=1.2.0-0 <1.3.0-0||>=2.0.0-0 <3.0.0-0'],
-    ['x', '*'],
-    ['2.*.*', '>=2.0.0-0 <3.0.0-0'],
-    ['1.2.*', '>=1.2.0-0 <1.3.0-0'],
-    ['1.2.* || 2.*', '>=1.2.0-0 <1.3.0-0||>=2.0.0-0 <3.0.0-0'],
-    ['*', '*'],
-    ['2', '>=2.0.0-0 <3.0.0-0'],
-    ['2.3', '>=2.3.0-0 <2.4.0-0'],
-    ['~2.4', '>=2.4.0-0 <2.5.0-0'],
-    ['~2.4', '>=2.4.0-0 <2.5.0-0'],
-    ['~>3.2.1', '>=3.2.1-0 <3.3.0-0'],
-    ['~1', '>=1.0.0-0 <2.0.0-0'],
-    ['~>1', '>=1.0.0-0 <2.0.0-0'],
-    ['~> 1', '>=1.0.0-0 <2.0.0-0'],
-    ['~1.0', '>=1.0.0-0 <1.1.0-0'],
-    ['~ 1.0', '>=1.0.0-0 <1.1.0-0'],
-    ['<1', '<1.0.0-0'],
-    ['< 1', '<1.0.0-0'],
-    ['>=1', '>=1.0.0-0'],
-    ['>= 1', '>=1.0.0-0'],
-    ['<1.2', '<1.2.0-0'],
-    ['< 1.2', '<1.2.0-0'],
-    ['1', '>=1.0.0-0 <2.0.0-0'],
-    ['>01.02.03', '>1.2.3', true],
-    ['>01.02.03', null],
-    ['~1.2.3beta', '>=1.2.3-beta <1.3.0-0', true],
-    ['~1.2.3beta', null]
-  ].forEach(function(v) {
-    var pre = v[0];
-    var wanted = v[1];
-    var loose = v[2];
-    var found = validRange(pre, loose);
-
-    t.equal(found, wanted, 'validRange(' + pre + ') === ' + wanted);
-  });
-
-  t.end();
-});
-
-test('\ncomparators test', function(t) {
-  // [range, comparators]
-  // turn range into a set of individual comparators
-  [['1.0.0 - 2.0.0', [['>=1.0.0', '<=2.0.0']]],
-    ['1.0.0', [['1.0.0']]],
-    ['>=*', [['>=0.0.0-0']]],
-    ['', [['']]],
-    ['*', [['']]],
-    ['*', [['']]],
-    ['>=1.0.0', [['>=1.0.0']]],
-    ['>=1.0.0', [['>=1.0.0']]],
-    ['>=1.0.0', [['>=1.0.0']]],
-    ['>1.0.0', [['>1.0.0']]],
-    ['>1.0.0', [['>1.0.0']]],
-    ['<=2.0.0', [['<=2.0.0']]],
-    ['1', [['>=1.0.0-0', '<2.0.0-0']]],
-    ['<=2.0.0', [['<=2.0.0']]],
-    ['<=2.0.0', [['<=2.0.0']]],
-    ['<2.0.0', [['<2.0.0-0']]],
-    ['<2.0.0', [['<2.0.0-0']]],
-    ['>= 1.0.0', [['>=1.0.0']]],
-    ['>=  1.0.0', [['>=1.0.0']]],
-    ['>=   1.0.0', [['>=1.0.0']]],
-    ['> 1.0.0', [['>1.0.0']]],
-    ['>  1.0.0', [['>1.0.0']]],
-    ['<=   2.0.0', [['<=2.0.0']]],
-    ['<= 2.0.0', [['<=2.0.0']]],
-    ['<=  2.0.0', [['<=2.0.0']]],
-    ['<    2.0.0', [['<2.0.0-0']]],
-    ['<\t2.0.0', [['<2.0.0-0']]],
-    ['>=0.1.97', [['>=0.1.97']]],
-    ['>=0.1.97', [['>=0.1.97']]],
-    ['0.1.20 || 1.2.4', [['0.1.20'], ['1.2.4']]],
-    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1-0']]],
-    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1-0']]],
-    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1-0']]],
-    ['||', [[''], ['']]],
-    ['2.x.x', [['>=2.0.0-0', '<3.0.0-0']]],
-    ['1.2.x', [['>=1.2.0-0', '<1.3.0-0']]],
-    ['1.2.x || 2.x', [['>=1.2.0-0', '<1.3.0-0'], ['>=2.0.0-0', '<3.0.0-0']]],
-    ['1.2.x || 2.x', [['>=1.2.0-0', '<1.3.0-0'], ['>=2.0.0-0', '<3.0.0-0']]],
-    ['x', [['']]],
-    ['2.*.*', [['>=2.0.0-0', '<3.0.0-0']]],
-    ['1.2.*', [['>=1.2.0-0', '<1.3.0-0']]],
-    ['1.2.* || 2.*', [['>=1.2.0-0', '<1.3.0-0'], ['>=2.0.0-0', '<3.0.0-0']]],
-    ['1.2.* || 2.*', [['>=1.2.0-0', '<1.3.0-0'], ['>=2.0.0-0', '<3.0.0-0']]],
-    ['*', [['']]],
-    ['2', [['>=2.0.0-0', '<3.0.0-0']]],
-    ['2.3', [['>=2.3.0-0', '<2.4.0-0']]],
-    ['~2.4', [['>=2.4.0-0', '<2.5.0-0']]],
-    ['~2.4', [['>=2.4.0-0', '<2.5.0-0']]],
-    ['~>3.2.1', [['>=3.2.1-0', '<3.3.0-0']]],
-    ['~1', [['>=1.0.0-0', '<2.0.0-0']]],
-    ['~>1', [['>=1.0.0-0', '<2.0.0-0']]],
-    ['~> 1', [['>=1.0.0-0', '<2.0.0-0']]],
-    ['~1.0', [['>=1.0.0-0', '<1.1.0-0']]],
-    ['~ 1.0', [['>=1.0.0-0', '<1.1.0-0']]],
-    ['~ 1.0.3', [['>=1.0.3-0', '<1.1.0-0']]],
-    ['~> 1.0.3', [['>=1.0.3-0', '<1.1.0-0']]],
-    ['<1', [['<1.0.0-0']]],
-    ['< 1', [['<1.0.0-0']]],
-    ['>=1', [['>=1.0.0-0']]],
-    ['>= 1', [['>=1.0.0-0']]],
-    ['<1.2', [['<1.2.0-0']]],
-    ['< 1.2', [['<1.2.0-0']]],
-    ['1', [['>=1.0.0-0', '<2.0.0-0']]],
-    ['1 2', [['>=1.0.0-0', '<2.0.0-0', '>=2.0.0-0', '<3.0.0-0']]],
-    ['1.2 - 3.4.5', [['>=1.2.0-0', '<=3.4.5']]],
-    ['1.2.3 - 3.4', [['>=1.2.3', '<3.5.0-0']]]
-  ].forEach(function(v) {
-    var pre = v[0];
-    var wanted = v[1];
-    var found = toComparators(v[0]);
-    var jw = JSON.stringify(wanted);
-    t.equivalent(found, wanted, 'toComparators(' + pre + ') === ' + jw);
-  });
-
-  t.end();
-});
-
-test('\nstrict vs loose version numbers', function(t) {
-  [['=1.2.3', '1.2.3'],
-    ['01.02.03', '1.2.3'],
-    ['1.2.3-beta.01', '1.2.3-beta.1'],
-    ['   =1.2.3', '1.2.3'],
-    ['1.2.3foo', '1.2.3-foo']
-  ].forEach(function(v) {
-    var loose = v[0];
-    var strict = v[1];
-    t.throws(function() {
-      new SemVer(loose);
-    });
-    var lv = new SemVer(loose, true);
-    t.equal(lv.version, strict);
-    t.ok(eq(loose, strict, true));
-    t.throws(function() {
-      eq(loose, strict);
-    });
-    t.throws(function() {
-      new SemVer(strict).compare(loose);
-    });
-  });
-  t.end();
-});
-
-test('\nstrict vs loose ranges', function(t) {
-  [['>=01.02.03', '>=1.2.3'],
-    ['~1.02.03beta', '>=1.2.3-beta <1.3.0-0']
-  ].forEach(function(v) {
-    var loose = v[0];
-    var comps = v[1];
-    t.throws(function() {
-      new Range(loose);
-    });
-    t.equal(new Range(loose, true).range, comps);
-  });
-  t.end();
-});
-
-test('\nmax satisfying', function(t) {
-  [[['1.2.3', '1.2.4'], '1.2', '1.2.4'],
-    [['1.2.4', '1.2.3'], '1.2', '1.2.4'],
-    [['1.2.3','1.2.4','1.2.5','1.2.6'], '~1.2.3', '1.2.6'],
-    [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', '2.0.0', '2.1.0'], '~2.0.0', '2.0.0', true]
-  ].forEach(function(v) {
-    var versions = v[0];
-    var range = v[1];
-    var expect = v[2];
-    var loose = v[3];
-    var actual = semver.maxSatisfying(versions, range, loose);
-    t.equal(actual, expect);
-  });
-  t.end();
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/test/no-module.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/test/no-module.js b/blackberry10/node_modules/plugman/node_modules/semver/test/no-module.js
deleted file mode 100644
index 96d1cd1..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/test/no-module.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var tap = require('tap');
-var test = tap.test;
-
-test('no module system', function(t) {
-  var fs = require('fs');
-  var vm = require('vm');
-  var head = fs.readFileSync(require.resolve('../head.js'), 'utf8');
-  var src = fs.readFileSync(require.resolve('../'), 'utf8');
-  var foot = fs.readFileSync(require.resolve('../foot.js'), 'utf8');
-  vm.runInThisContext(head + src + foot, 'semver.js');
-
-  // just some basic poking to see if it did some stuff
-  t.type(global.semver, 'object');
-  t.type(global.semver.SemVer, 'function');
-  t.type(global.semver.Range, 'function');
-  t.ok(global.semver.satisfies('1.2.3', '1.2'));
-  t.end();
-});
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/.npmignore b/blackberry10/node_modules/plugman/node_modules/underscore/.npmignore
deleted file mode 100644
index 4e5886d..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-test/
-Rakefile
-docs/
-raw/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/.travis.yml b/blackberry10/node_modules/plugman/node_modules/underscore/.travis.yml
deleted file mode 100644
index 99dc771..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-notifications:
-  email: false

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/CNAME
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/CNAME b/blackberry10/node_modules/plugman/node_modules/underscore/CNAME
deleted file mode 100644
index a007e65..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-underscorejs.org

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/CONTRIBUTING.md b/blackberry10/node_modules/plugman/node_modules/underscore/CONTRIBUTING.md
deleted file mode 100644
index de5d562..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/CONTRIBUTING.md
+++ /dev/null
@@ -1,9 +0,0 @@
-## How to contribute to Underscore.js
-
-* Before you open a ticket or send a pull request, [search](https://github.com/documentcloud/underscore/issues) for previous discussions about the same feature or issue. Add to the earlier ticket if you find one.
-
-* Before sending a pull request for a feature, be sure to have [tests](http://underscorejs.org/test/).
-
-* Use the same coding style as the rest of the [codebase](https://github.com/documentcloud/underscore/blob/master/underscore.js).
-
-* In your pull request, do not add documentation or re-build the minified `underscore-min.js` file. We'll do those things before cutting a new release.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/LICENSE b/blackberry10/node_modules/plugman/node_modules/underscore/LICENSE
deleted file mode 100644
index 0d8dbe4..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2009-2013 Jeremy Ashkenas, DocumentCloud
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/README.md b/blackberry10/node_modules/plugman/node_modules/underscore/README.md
deleted file mode 100644
index b1f3e50..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-                       __
-                      /\ \                                                         __
-     __  __    ___    \_\ \     __   _ __   ____    ___    ___   _ __    __       /\_\    ____
-    /\ \/\ \ /' _ `\  /'_  \  /'__`\/\  __\/ ,__\  / ___\ / __`\/\  __\/'__`\     \/\ \  /',__\
-    \ \ \_\ \/\ \/\ \/\ \ \ \/\  __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\  __/  __  \ \ \/\__, `\
-     \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
-      \/___/  \/_/\/_/\/__,_ /\/____/ \/_/ \/___/  \/____/\/___/  \/_/ \/____/\/_//\ \_\ \/___/
-                                                                                  \ \____/
-                                                                                   \/___/
-
-Underscore.js is a utility-belt library for JavaScript that provides
-support for the usual functional suspects (each, map, reduce, filter...)
-without extending any core JavaScript objects.
-
-For Docs, License, Tests, and pre-packed downloads, see:
-http://underscorejs.org
-
-Many thanks to our contributors:
-https://github.com/documentcloud/underscore/contributors

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/favicon.ico
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/favicon.ico b/blackberry10/node_modules/plugman/node_modules/underscore/favicon.ico
deleted file mode 100644
index 0304968..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/underscore/favicon.ico and /dev/null differ


[39/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/optparse.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/optparse.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/optparse.js
deleted file mode 100644
index 0f19ae7..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/optparse.js
+++ /dev/null
@@ -1,139 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments, repeat;
-
-  repeat = require('./helpers').repeat;
-
-  exports.OptionParser = OptionParser = (function() {
-    function OptionParser(rules, banner) {
-      this.banner = banner;
-      this.rules = buildRules(rules);
-    }
-
-    OptionParser.prototype.parse = function(args) {
-      var arg, i, isOption, matchedRule, options, originalArgs, pos, rule, seenNonOptionArg, skippingArgument, value, _i, _j, _len, _len1, _ref;
-      options = {
-        "arguments": []
-      };
-      skippingArgument = false;
-      originalArgs = args;
-      args = normalizeArguments(args);
-      for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) {
-        arg = args[i];
-        if (skippingArgument) {
-          skippingArgument = false;
-          continue;
-        }
-        if (arg === '--') {
-          pos = originalArgs.indexOf('--');
-          options["arguments"] = options["arguments"].concat(originalArgs.slice(pos + 1));
-          break;
-        }
-        isOption = !!(arg.match(LONG_FLAG) || arg.match(SHORT_FLAG));
-        seenNonOptionArg = options["arguments"].length > 0;
-        if (!seenNonOptionArg) {
-          matchedRule = false;
-          _ref = this.rules;
-          for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
-            rule = _ref[_j];
-            if (rule.shortFlag === arg || rule.longFlag === arg) {
-              value = true;
-              if (rule.hasArgument) {
-                skippingArgument = true;
-                value = args[i + 1];
-              }
-              options[rule.name] = rule.isList ? (options[rule.name] || []).concat(value) : value;
-              matchedRule = true;
-              break;
-            }
-          }
-          if (isOption && !matchedRule) {
-            throw new Error("unrecognized option: " + arg);
-          }
-        }
-        if (seenNonOptionArg || !isOption) {
-          options["arguments"].push(arg);
-        }
-      }
-      return options;
-    };
-
-    OptionParser.prototype.help = function() {
-      var letPart, lines, rule, spaces, _i, _len, _ref;
-      lines = [];
-      if (this.banner) {
-        lines.unshift("" + this.banner + "\n");
-      }
-      _ref = this.rules;
-      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-        rule = _ref[_i];
-        spaces = 15 - rule.longFlag.length;
-        spaces = spaces > 0 ? repeat(' ', spaces) : '';
-        letPart = rule.shortFlag ? rule.shortFlag + ', ' : '    ';
-        lines.push('  ' + letPart + rule.longFlag + spaces + rule.description);
-      }
-      return "\n" + (lines.join('\n')) + "\n";
-    };
-
-    return OptionParser;
-
-  })();
-
-  LONG_FLAG = /^(--\w[\w\-]*)/;
-
-  SHORT_FLAG = /^(-\w)$/;
-
-  MULTI_FLAG = /^-(\w{2,})/;
-
-  OPTIONAL = /\[(\w+(\*?))\]/;
-
-  buildRules = function(rules) {
-    var tuple, _i, _len, _results;
-    _results = [];
-    for (_i = 0, _len = rules.length; _i < _len; _i++) {
-      tuple = rules[_i];
-      if (tuple.length < 3) {
-        tuple.unshift(null);
-      }
-      _results.push(buildRule.apply(null, tuple));
-    }
-    return _results;
-  };
-
-  buildRule = function(shortFlag, longFlag, description, options) {
-    var match;
-    if (options == null) {
-      options = {};
-    }
-    match = longFlag.match(OPTIONAL);
-    longFlag = longFlag.match(LONG_FLAG)[1];
-    return {
-      name: longFlag.substr(2),
-      shortFlag: shortFlag,
-      longFlag: longFlag,
-      description: description,
-      hasArgument: !!(match && match[1]),
-      isList: !!(match && match[2])
-    };
-  };
-
-  normalizeArguments = function(args) {
-    var arg, l, match, result, _i, _j, _len, _len1, _ref;
-    args = args.slice(0);
-    result = [];
-    for (_i = 0, _len = args.length; _i < _len; _i++) {
-      arg = args[_i];
-      if (match = arg.match(MULTI_FLAG)) {
-        _ref = match[1].split('');
-        for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
-          l = _ref[_j];
-          result.push('-' + l);
-        }
-      } else {
-        result.push(arg);
-      }
-    }
-    return result;
-  };
-
-}).call(this);


[03/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/json.pegjs
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/json.pegjs b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/json.pegjs
deleted file mode 100644
index f2a34b1..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/json.pegjs
+++ /dev/null
@@ -1,120 +0,0 @@
-/* JSON parser based on the grammar described at http://json.org/. */
-
-/* ===== Syntactical Elements ===== */
-
-start
-  = _ object:object { return object; }
-
-object
-  = "{" _ "}" _                 { return {};      }
-  / "{" _ members:members "}" _ { return members; }
-
-members
-  = head:pair tail:("," _ pair)* {
-      var result = {};
-      result[head[0]] = head[1];
-      for (var i = 0; i < tail.length; i++) {
-        result[tail[i][2][0]] = tail[i][2][1];
-      }
-      return result;
-    }
-
-pair
-  = name:string ":" _ value:value { return [name, value]; }
-
-array
-  = "[" _ "]" _                   { return [];       }
-  / "[" _ elements:elements "]" _ { return elements; }
-
-elements
-  = head:value tail:("," _ value)* {
-      var result = [head];
-      for (var i = 0; i < tail.length; i++) {
-        result.push(tail[i][2]);
-      }
-      return result;
-    }
-
-value
-  = string
-  / number
-  / object
-  / array
-  / "true" _  { return true;   }
-  / "false" _ { return false;  }
-  // FIXME: We can't return null here because that would mean parse failure.
-  / "null" _  { return "null"; }
-
-/* ===== Lexical Elements ===== */
-
-string "string"
-  = '"' '"' _             { return "";    }
-  / '"' chars:chars '"' _ { return chars; }
-
-chars
-  = chars:char+ { return chars.join(""); }
-
-char
-  // In the original JSON grammar: "any-Unicode-character-except-"-or-\-or-control-character"
-  = [^"\\\0-\x1F\x7f]
-  / '\\"'  { return '"';  }
-  / "\\\\" { return "\\"; }
-  / "\\/"  { return "/";  }
-  / "\\b"  { return "\b"; }
-  / "\\f"  { return "\f"; }
-  / "\\n"  { return "\n"; }
-  / "\\r"  { return "\r"; }
-  / "\\t"  { return "\t"; }
-  / "\\u" h1:hexDigit h2:hexDigit h3:hexDigit h4:hexDigit {
-      return String.fromCharCode(parseInt("0x" + h1 + h2 + h3 + h4));
-    }
-
-number "number"
-  = int_:int frac:frac exp:exp _ { return parseFloat(int_ + frac + exp); }
-  / int_:int frac:frac _         { return parseFloat(int_ + frac);       }
-  / int_:int exp:exp _           { return parseFloat(int_ + exp);        }
-  / int_:int _                   { return parseFloat(int_);              }
-
-int
-  = digit19:digit19 digits:digits     { return digit19 + digits;       }
-  / digit:digit
-  / "-" digit19:digit19 digits:digits { return "-" + digit19 + digits; }
-  / "-" digit:digit                   { return "-" + digit;            }
-
-frac
-  = "." digits:digits { return "." + digits; }
-
-exp
-  = e:e digits:digits { return e + digits; }
-
-digits
-  = digits:digit+ { return digits.join(""); }
-
-e
-  = e:[eE] sign:[+-]? { return e + sign; }
-
-/*
- * The following rules are not present in the original JSON gramar, but they are
- * assumed to exist implicitly.
- *
- * FIXME: Define them according to ECMA-262, 5th ed.
- */
-
-digit
-  = [0-9]
-
-digit19
-  = [1-9]
-
-hexDigit
-  = [0-9a-fA-F]
-
-/* ===== Whitespace ===== */
-
-_ "whitespace"
-  = whitespace*
-
-// Whitespace is undefined in the original JSON grammar, so I assume a simple
-// conventional definition consistent with ECMA-262, 5th ed.
-whitespace
-  = [ \t\n\r]


[27/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/CONTRIBUTING.md b/blackberry10/node_modules/jasmine-node/node_modules/underscore/CONTRIBUTING.md
deleted file mode 100644
index e133ebe..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/CONTRIBUTING.md
+++ /dev/null
@@ -1,9 +0,0 @@
-## How to contribute to Underscore.js
-
-* Before you open a ticket or send a pull request, [search](https://github.com/jashkenas/underscore/issues) for previous discussions about the same feature or issue. Add to the earlier ticket if you find one.
-
-* Before sending a pull request for a feature, be sure to have [tests](http://underscorejs.org/test/).
-
-* Use the same coding style as the rest of the [codebase](https://github.com/jashkenas/underscore/blob/master/underscore.js).
-
-* In your pull request, do not add documentation or re-build the minified `underscore-min.js` file. We'll do those things before cutting a new release.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/underscore/LICENSE
deleted file mode 100644
index 3acf908..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative
-Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/README.md b/blackberry10/node_modules/jasmine-node/node_modules/underscore/README.md
deleted file mode 100644
index c2ba259..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-                       __
-                      /\ \                                                         __
-     __  __    ___    \_\ \     __   _ __   ____    ___    ___   _ __    __       /\_\    ____
-    /\ \/\ \ /' _ `\  /'_  \  /'__`\/\  __\/ ,__\  / ___\ / __`\/\  __\/'__`\     \/\ \  /',__\
-    \ \ \_\ \/\ \/\ \/\ \ \ \/\  __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\  __/  __  \ \ \/\__, `\
-     \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
-      \/___/  \/_/\/_/\/__,_ /\/____/ \/_/ \/___/  \/____/\/___/  \/_/ \/____/\/_//\ \_\ \/___/
-                                                                                  \ \____/
-                                                                                   \/___/
-
-Underscore.js is a utility-belt library for JavaScript that provides
-support for the usual functional suspects (each, map, reduce, filter...)
-without extending any core JavaScript objects.
-
-For Docs, License, Tests, and pre-packed downloads, see:
-http://underscorejs.org
-
-Underscore is an open-sourced component of DocumentCloud:
-https://github.com/documentcloud
-
-Many thanks to our contributors:
-https://github.com/jashkenas/underscore/contributors

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/favicon.ico
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/favicon.ico b/blackberry10/node_modules/jasmine-node/node_modules/underscore/favicon.ico
deleted file mode 100644
index 0304968..0000000
Binary files a/blackberry10/node_modules/jasmine-node/node_modules/underscore/favicon.ico and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/index.js b/blackberry10/node_modules/jasmine-node/node_modules/underscore/index.js
deleted file mode 100644
index 2cf0ca5..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./underscore');

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/package.json b/blackberry10/node_modules/jasmine-node/node_modules/underscore/package.json
deleted file mode 100644
index 0d9ace4..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  "name": "underscore",
-  "description": "JavaScript's functional programming helper library.",
-  "homepage": "http://underscorejs.org",
-  "keywords": [
-    "util",
-    "functional",
-    "server",
-    "client",
-    "browser"
-  ],
-  "author": {
-    "name": "Jeremy Ashkenas",
-    "email": "jeremy@documentcloud.org"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/jashkenas/underscore.git"
-  },
-  "main": "underscore.js",
-  "version": "1.5.1",
-  "devDependencies": {
-    "phantomjs": "1.9.0-1"
-  },
-  "scripts": {
-    "test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true"
-  },
-  "license": "MIT",
-  "readme": "                       __\n                      /\\ \\                                                         __\n     __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____\n    /\\ \\/\\ \\ /' _ `\\  /'_  \\  /'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/'__`\\     \\/\\ \\  /',__\\\n    \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n     \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n      \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/\n                                                                                  \\ \\____/\n                                                                                   \\/___/\n\nUnderscore.js is a utility-belt library for JavaScript that provides\nsupport for the usu
 al functional suspects (each, map, reduce, filter...)\nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://underscorejs.org\n\nUnderscore is an open-sourced component of DocumentCloud:\nhttps://github.com/documentcloud\n\nMany thanks to our contributors:\nhttps://github.com/jashkenas/underscore/contributors\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/jashkenas/underscore/issues"
-  },
-  "_id": "underscore@1.5.1",
-  "dist": {
-    "shasum": "d2bde817d176ffade894ab71458e682a14b86dc9"
-  },
-  "_from": "underscore@>= 1.3.1",
-  "_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.1.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/underscore-min.map
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/underscore-min.map b/blackberry10/node_modules/jasmine-node/node_modules/underscore/underscore-min.map
deleted file mode 100644
index fee224f..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/underscore-min.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"underscore-min.js","sources":["underscore.js"],"names":["root","this","previousUnderscore","_","breaker","ArrayProto","Array","prototype","ObjProto","Object","FuncProto","Function","push","slice","concat","toString","hasOwnProperty","nativeForEach","forEach","nativeMap","map","nativeReduce","reduce","nativeReduceRight","reduceRight","nativeFilter","filter","nativeEvery","every","nativeSome","some","nativeIndexOf","indexOf","nativeLastIndexOf","lastIndexOf","nativeIsArray","isArray","nativeKeys","keys","nativeBind","bind","obj","_wrapped","exports","module","VERSION","each","iterator","context","length","i","l","call","key","has","collect","results","value","index","list","reduceError","foldl","inject","memo","initial","arguments","TypeError","foldr","find","detect","result","any","select","reject","all","identity","contains","include","target","invoke","method","args","isFunc","isFunction","apply","pluck","where","attrs","first","isEmpty","findWhere","max","Math
 ","Infinity","computed","min","shuffle","rand","shuffled","random","lookupIterator","sortBy","criteria","sort","left","right","a","b","group","behavior","groupBy","countBy","sortedIndex","array","low","high","mid","toArray","values","size","head","take","n","guard","last","rest","tail","drop","compact","flatten","input","shallow","output","isArguments","without","difference","uniq","unique","isSorted","seen","union","intersection","item","other","zip","object","from","hasIndex","range","start","stop","step","len","ceil","idx","ctor","func","bound","self","partial","bindAll","funcs","Error","f","memoize","hasher","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","Date","now","remaining","clearTimeout","trailing","debounce","immediate","callNow","once","ran","wrap","wrapper","compose","after","times","pairs","invert","functions","methods","names","extend","source","prop","pick","copy","omit","defaults","clone","isObject","tap","interceptor
 ","eq","aStack","bStack","className","String","global","multiline","ignoreCase","aCtor","constructor","bCtor","pop","isEqual","isString","isElement","nodeType","name","isFinite","isNaN","parseFloat","isNumber","isBoolean","isNull","isUndefined","noConflict","accum","floor","entityMap","escape","&","<",">","\"","'","/","unescape","entityRegexes","RegExp","join","string","replace","match","property","mixin","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","\t","
","
","escaper","template","text","data","settings","render","matcher","offset","variable","e","chain","_chain"],"mappings":";;;;CAKA,WAME,GAAIA,GAAOC,KAGPC,EAAqBF,EAAKG,EAG1BC,KAGAC,EAAaC,MAAMC,UAAWC,EAAWC,OAAOF,UAAWG,EAAYC,SAASJ,UAIlFK,EAAmBP,EAAWO,KAC9BC,EAAmBR,EAAWQ,MAC9BC,EAAmBT,EAAWS,OAC9BC,EAAmBP,EAASO,SAC5BC,EAAmBR,EAASQ,eAK5BC,EAAqBZ,EAAWa,QAChCC,EAAqBd,EAAWe,IAChCC,EAAqBhB,EAAWiB,OAChCC,EAAqBlB,EAAWmB,YAChCC,EAAqBpB,EAAWqB,OAChCC,EAAqBtB,EAAWuB,MA
 ChCC,EAAqBxB,EAAWyB,KAChCC,EAAqB1B,EAAW2B,QAChCC,EAAqB5B,EAAW6B,YAChCC,EAAqB7B,MAAM8B,QAC3BC,EAAqB5B,OAAO6B,KAC5BC,EAAqB7B,EAAU8B,KAG7BrC,EAAI,SAASsC,GACf,MAAIA,aAAetC,GAAUsC,EACvBxC,eAAgBE,IACtBF,KAAKyC,SAAWD,EAAhBxC,QADiC,GAAIE,GAAEsC,GAQlB,oBAAZE,UACa,mBAAXC,SAA0BA,OAAOD,UAC1CA,QAAUC,OAAOD,QAAUxC,GAE7BwC,QAAQxC,EAAIA,GAEZH,EAAKG,EAAIA,EAIXA,EAAE0C,QAAU,OAQZ,IAAIC,GAAO3C,EAAE2C,KAAO3C,EAAEe,QAAU,SAASuB,EAAKM,EAAUC,GACtD,GAAW,MAAPP,EACJ,GAAIxB,GAAiBwB,EAAIvB,UAAYD,EACnCwB,EAAIvB,QAAQ6B,EAAUC,OACjB,IAAIP,EAAIQ,UAAYR,EAAIQ,QAC7B,IAAK,GAAIC,GAAI,EAAGC,EAAIV,EAAIQ,OAAYE,EAAJD,EAAOA,IACrC,GAAIH,EAASK,KAAKJ,EAASP,EAAIS,GAAIA,EAAGT,KAASrC,EAAS,WAG1D,KAAK,GAAIiD,KAAOZ,GACd,GAAItC,EAAEmD,IAAIb,EAAKY,IACTN,EAASK,KAAKJ,EAASP,EAAIY,GAAMA,EAAKZ,KAASrC,EAAS,OAQpED,GAAEiB,IAAMjB,EAAEoD,QAAU,SAASd,EAAKM,EAAUC,GAC1C,GAAIQ,KACJ,OAAW,OAAPf,EAAoBe,EACpBrC,GAAasB,EAAIrB,MAAQD,EAAkBsB,EAAIrB,IAAI2B,EAAUC,IACjEF,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/BH,EAAQ5C,KAAKmC,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,MAE7CH,GAGT,
 IAAII,GAAc,6CAIlBzD,GAAEmB,OAASnB,EAAE0D,MAAQ1D,EAAE2D,OAAS,SAASrB,EAAKM,EAAUgB,EAAMf,GAC5D,GAAIgB,GAAUC,UAAUhB,OAAS,CAEjC,IADW,MAAPR,IAAaA,MACbpB,GAAgBoB,EAAInB,SAAWD,EAEjC,MADI2B,KAASD,EAAW5C,EAAEqC,KAAKO,EAAUC,IAClCgB,EAAUvB,EAAInB,OAAOyB,EAAUgB,GAAQtB,EAAInB,OAAOyB,EAU3D,IARAD,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC1BK,EAIHD,EAAOhB,EAASK,KAAKJ,EAASe,EAAMN,EAAOC,EAAOC,IAHlDI,EAAON,EACPO,GAAU,MAKTA,EAAS,KAAM,IAAIE,WAAUN,EAClC,OAAOG,IAKT5D,EAAEqB,YAAcrB,EAAEgE,MAAQ,SAAS1B,EAAKM,EAAUgB,EAAMf,GACtD,GAAIgB,GAAUC,UAAUhB,OAAS,CAEjC,IADW,MAAPR,IAAaA,MACblB,GAAqBkB,EAAIjB,cAAgBD,EAE3C,MADIyB,KAASD,EAAW5C,EAAEqC,KAAKO,EAAUC,IAClCgB,EAAUvB,EAAIjB,YAAYuB,EAAUgB,GAAQtB,EAAIjB,YAAYuB,EAErE,IAAIE,GAASR,EAAIQ,MACjB,IAAIA,KAAYA,EAAQ,CACtB,GAAIX,GAAOnC,EAAEmC,KAAKG,EAClBQ,GAASX,EAAKW,OAWhB,GATAH,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/BD,EAAQpB,EAAOA,IAAOW,KAAYA,EAC7Be,EAIHD,EAAOhB,EAASK,KAAKJ,EAASe,EAAMtB,EAAIiB,GAAQA,EAAOC,IAHvDI,EAAOtB,EAAIiB,GACXM,GAAU,MAKTA,EAAS,KAAM,IAAIE,WAAUN,EAClC,OAAOG,IAIT5D,EAAEiE
 ,KAAOjE,EAAEkE,OAAS,SAAS5B,EAAKM,EAAUC,GAC1C,GAAIsB,EAOJ,OANAC,GAAI9B,EAAK,SAASgB,EAAOC,EAAOC,GAC9B,MAAIZ,GAASK,KAAKJ,EAASS,EAAOC,EAAOC,IACvCW,EAASb,GACF,GAFT,SAKKa,GAMTnE,EAAEuB,OAASvB,EAAEqE,OAAS,SAAS/B,EAAKM,EAAUC,GAC5C,GAAIQ,KACJ,OAAW,OAAPf,EAAoBe,EACpB/B,GAAgBgB,EAAIf,SAAWD,EAAqBgB,EAAIf,OAAOqB,EAAUC,IAC7EF,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC3BZ,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,IAAOH,EAAQ5C,KAAK6C,KAExDD,IAITrD,EAAEsE,OAAS,SAAShC,EAAKM,EAAUC,GACjC,MAAO7C,GAAEuB,OAAOe,EAAK,SAASgB,EAAOC,EAAOC,GAC1C,OAAQZ,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,IAC5CX,IAML7C,EAAEyB,MAAQzB,EAAEuE,IAAM,SAASjC,EAAKM,EAAUC,GACxCD,IAAaA,EAAW5C,EAAEwE,SAC1B,IAAIL,IAAS,CACb,OAAW,OAAP7B,EAAoB6B,EACpB3C,GAAec,EAAIb,QAAUD,EAAoBc,EAAIb,MAAMmB,EAAUC,IACzEF,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/B,OAAMW,EAASA,GAAUvB,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,IAA9D,OAA6EvD,MAEtEkE,GAMX,IAAIC,GAAMpE,EAAE2B,KAAO3B,EAAEoE,IAAM,SAAS9B,EAAKM,EAAUC,GACjDD,IAAaA,EAAW5C,EAAEwE,SAC1B,IAAIL,IAAS,CACb,OAAW,OAAP7B,EAAoB6B,EACpBzC,GAAcY,EAAIX,OAASD,EAAmBY,
 EAAIX,KAAKiB,EAAUC,IACrEF,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/B,MAAIW,KAAWA,EAASvB,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,IAAevD,EAA5E,WAEOkE,GAKXnE,GAAEyE,SAAWzE,EAAE0E,QAAU,SAASpC,EAAKqC,GACrC,MAAW,OAAPrC,GAAoB,EACpBV,GAAiBU,EAAIT,UAAYD,EAAsBU,EAAIT,QAAQ8C,KAAY,EAC5EP,EAAI9B,EAAK,SAASgB,GACvB,MAAOA,KAAUqB,KAKrB3E,EAAE4E,OAAS,SAAStC,EAAKuC,GACvB,GAAIC,GAAOpE,EAAMuC,KAAKa,UAAW,GAC7BiB,EAAS/E,EAAEgF,WAAWH,EAC1B,OAAO7E,GAAEiB,IAAIqB,EAAK,SAASgB,GACzB,OAAQyB,EAASF,EAASvB,EAAMuB,IAASI,MAAM3B,EAAOwB,MAK1D9E,EAAEkF,MAAQ,SAAS5C,EAAKY,GACtB,MAAOlD,GAAEiB,IAAIqB,EAAK,SAASgB,GAAQ,MAAOA,GAAMJ,MAKlDlD,EAAEmF,MAAQ,SAAS7C,EAAK8C,EAAOC,GAC7B,MAAIrF,GAAEsF,QAAQF,GAAeC,MAAa,MACnCrF,EAAEqF,EAAQ,OAAS,UAAU/C,EAAK,SAASgB,GAChD,IAAK,GAAIJ,KAAOkC,GACd,GAAIA,EAAMlC,KAASI,EAAMJ,GAAM,OAAO,CAExC,QAAO,KAMXlD,EAAEuF,UAAY,SAASjD,EAAK8C,GAC1B,MAAOpF,GAAEmF,MAAM7C,EAAK8C,GAAO,IAM7BpF,EAAEwF,IAAM,SAASlD,EAAKM,EAAUC,GAC9B,IAAKD,GAAY5C,EAAEiC,QAAQK,IAAQA,EAAI,MAAQA,EAAI,IAAMA,EAAIQ,OAAS,MACpE,MAAO2C,MAAKD,IAAIP,MAAMQ,KAAMnD,EAE
 9B,KAAKM,GAAY5C,EAAEsF,QAAQhD,GAAM,OAAQoD,GACzC,IAAIvB,IAAUwB,UAAYD,IAAUpC,OAAQoC,IAK5C,OAJA/C,GAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/B,GAAImC,GAAW/C,EAAWA,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,GAAQF,CACvEqC,GAAWxB,EAAOwB,WAAaxB,GAAUb,MAAQA,EAAOqC,SAAWA,MAE9DxB,EAAOb,OAIhBtD,EAAE4F,IAAM,SAAStD,EAAKM,EAAUC,GAC9B,IAAKD,GAAY5C,EAAEiC,QAAQK,IAAQA,EAAI,MAAQA,EAAI,IAAMA,EAAIQ,OAAS,MACpE,MAAO2C,MAAKG,IAAIX,MAAMQ,KAAMnD,EAE9B,KAAKM,GAAY5C,EAAEsF,QAAQhD,GAAM,MAAOoD,IACxC,IAAIvB,IAAUwB,SAAWD,IAAUpC,MAAOoC,IAK1C,OAJA/C,GAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/B,GAAImC,GAAW/C,EAAWA,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,GAAQF,CACvEqC,GAAWxB,EAAOwB,WAAaxB,GAAUb,MAAQA,EAAOqC,SAAWA,MAE9DxB,EAAOb,OAIhBtD,EAAE6F,QAAU,SAASvD,GACnB,GAAIwD,GACAvC,EAAQ,EACRwC,IAMJ,OALApD,GAAKL,EAAK,SAASgB,GACjBwC,EAAO9F,EAAEgG,OAAOzC,KAChBwC,EAASxC,EAAQ,GAAKwC,EAASD,GAC/BC,EAASD,GAAQxC,IAEZyC,EAIT,IAAIE,GAAiB,SAAS3C,GAC5B,MAAOtD,GAAEgF,WAAW1B,GAASA,EAAQ,SAAShB,GAAM,MAAOA,GAAIgB,IAIjEtD,GAAEkG,OAAS,SAAS5D,EAAKgB,EAAOT,GAC9B,GAAID,GAAWqD,EAAe3C,EAC9B
 ,OAAOtD,GAAEkF,MAAMlF,EAAEiB,IAAIqB,EAAK,SAASgB,EAAOC,EAAOC,GAC/C,OACEF,MAAQA,EACRC,MAAQA,EACR4C,SAAWvD,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,MAEjD4C,KAAK,SAASC,EAAMC,GACrB,GAAIC,GAAIF,EAAKF,SACTK,EAAIF,EAAMH,QACd,IAAII,IAAMC,EAAG,CACX,GAAID,EAAIC,GAAKD,QAAW,GAAG,MAAO,EAClC,IAAQC,EAAJD,GAASC,QAAW,GAAG,OAAQ,EAErC,MAAOH,GAAK9C,MAAQ+C,EAAM/C,OAAS,EAAI,IACrC,SAIN,IAAIkD,GAAQ,SAASnE,EAAKgB,EAAOT,EAAS6D,GACxC,GAAIvC,MACAvB,EAAWqD,EAAwB,MAAT3C,EAAgBtD,EAAEwE,SAAWlB,EAK3D,OAJAX,GAAKL,EAAK,SAASgB,EAAOC,GACxB,GAAIL,GAAMN,EAASK,KAAKJ,EAASS,EAAOC,EAAOjB,EAC/CoE,GAASvC,EAAQjB,EAAKI,KAEjBa,EAKTnE,GAAE2G,QAAU,SAASrE,EAAKgB,EAAOT,GAC/B,MAAO4D,GAAMnE,EAAKgB,EAAOT,EAAS,SAASsB,EAAQjB,EAAKI,IACrDtD,EAAEmD,IAAIgB,EAAQjB,GAAOiB,EAAOjB,GAAQiB,EAAOjB,OAAYzC,KAAK6C,MAOjEtD,EAAE4G,QAAU,SAAStE,EAAKgB,EAAOT,GAC/B,MAAO4D,GAAMnE,EAAKgB,EAAOT,EAAS,SAASsB,EAAQjB,GAC5ClD,EAAEmD,IAAIgB,EAAQjB,KAAMiB,EAAOjB,GAAO,GACvCiB,EAAOjB,QAMXlD,EAAE6G,YAAc,SAASC,EAAOxE,EAAKM,EAAUC,GAC7CD,EAAuB,MAAZA,EAAmB5C,EAAEwE,SAAWyB,EAAerD,EAG1D,K
 AFA,GAAIU,GAAQV,EAASK,KAAKJ,EAASP,GAC/ByE,EAAM,EAAGC,EAAOF,EAAMhE,OACbkE,EAAND,GAAY,CACjB,GAAIE,GAAOF,EAAMC,IAAU,CAC3BpE,GAASK,KAAKJ,EAASiE,EAAMG,IAAQ3D,EAAQyD,EAAME,EAAM,EAAID,EAAOC,EAEtE,MAAOF,IAIT/G,EAAEkH,QAAU,SAAS5E,GACnB,MAAKA,GACDtC,EAAEiC,QAAQK,GAAa5B,EAAMuC,KAAKX,GAClCA,EAAIQ,UAAYR,EAAIQ,OAAe9C,EAAEiB,IAAIqB,EAAKtC,EAAEwE,UAC7CxE,EAAEmH,OAAO7E,OAIlBtC,EAAEoH,KAAO,SAAS9E,GAChB,MAAW,OAAPA,EAAoB,EAChBA,EAAIQ,UAAYR,EAAIQ,OAAUR,EAAIQ,OAAS9C,EAAEmC,KAAKG,GAAKQ,QASjE9C,EAAEqF,MAAQrF,EAAEqH,KAAOrH,EAAEsH,KAAO,SAASR,EAAOS,EAAGC,GAC7C,MAAa,OAATV,MAA2B,GAClB,MAALS,GAAeC,EAAkCV,EAAM,GAAhCpG,EAAMuC,KAAK6D,EAAO,EAAGS,IAOtDvH,EAAE6D,QAAU,SAASiD,EAAOS,EAAGC,GAC7B,MAAO9G,GAAMuC,KAAK6D,EAAO,EAAGA,EAAMhE,QAAgB,MAALyE,GAAcC,EAAQ,EAAID,KAKzEvH,EAAEyH,KAAO,SAASX,EAAOS,EAAGC,GAC1B,MAAa,OAATV,MAA2B,GACrB,MAALS,GAAeC,EAGXV,EAAMA,EAAMhE,OAAS,GAFrBpC,EAAMuC,KAAK6D,EAAOrB,KAAKD,IAAIsB,EAAMhE,OAASyE,EAAG,KAUxDvH,EAAE0H,KAAO1H,EAAE2H,KAAO3H,EAAE4H,KAAO,SAASd,EAAOS,EAAGC,GAC5C,MAAO9G,GAAMuC,KAAK6D,EAAa,M
 AALS,GAAcC,EAAQ,EAAID,IAItDvH,EAAE6H,QAAU,SAASf,GACnB,MAAO9G,GAAEuB,OAAOuF,EAAO9G,EAAEwE,UAI3B,IAAIsD,GAAU,SAASC,EAAOC,EAASC,GACrC,MAAID,IAAWhI,EAAEyB,MAAMsG,EAAO/H,EAAEiC,SACvBtB,EAAOsE,MAAMgD,EAAQF,IAE9BpF,EAAKoF,EAAO,SAASzE,GACftD,EAAEiC,QAAQqB,IAAUtD,EAAEkI,YAAY5E,GACpC0E,EAAUvH,EAAKwE,MAAMgD,EAAQ3E,GAASwE,EAAQxE,EAAO0E,EAASC,GAE9DA,EAAOxH,KAAK6C,KAGT2E,GAITjI,GAAE8H,QAAU,SAAShB,EAAOkB,GAC1B,MAAOF,GAAQhB,EAAOkB,OAIxBhI,EAAEmI,QAAU,SAASrB,GACnB,MAAO9G,GAAEoI,WAAWtB,EAAOpG,EAAMuC,KAAKa,UAAW,KAMnD9D,EAAEqI,KAAOrI,EAAEsI,OAAS,SAASxB,EAAOyB,EAAU3F,EAAUC,GAClD7C,EAAEgF,WAAWuD,KACf1F,EAAUD,EACVA,EAAW2F,EACXA,GAAW,EAEb,IAAI1E,GAAUjB,EAAW5C,EAAEiB,IAAI6F,EAAOlE,EAAUC,GAAWiE,EACvDzD,KACAmF,IAOJ,OANA7F,GAAKkB,EAAS,SAASP,EAAOC,IACxBgF,EAAahF,GAASiF,EAAKA,EAAK1F,OAAS,KAAOQ,EAAUtD,EAAEyE,SAAS+D,EAAMlF,MAC7EkF,EAAK/H,KAAK6C,GACVD,EAAQ5C,KAAKqG,EAAMvD,OAGhBF,GAKTrD,EAAEyI,MAAQ,WACR,MAAOzI,GAAEqI,KAAKrI,EAAE8H,QAAQhE,WAAW,KAKrC9D,EAAE0I,aAAe,SAAS5B,GACxB,GAAIY,GAAOhH,EAAMuC,KAAKa,UAAW,EACjC,OAAO
 9D,GAAEuB,OAAOvB,EAAEqI,KAAKvB,GAAQ,SAAS6B,GACtC,MAAO3I,GAAEyB,MAAMiG,EAAM,SAASkB,GAC5B,MAAO5I,GAAE6B,QAAQ+G,EAAOD,IAAS,OAOvC3I,EAAEoI,WAAa,SAAStB,GACtB,GAAIY,GAAO/G,EAAOsE,MAAM/E,EAAYQ,EAAMuC,KAAKa,UAAW,GAC1D,OAAO9D,GAAEuB,OAAOuF,EAAO,SAASxD,GAAQ,OAAQtD,EAAEyE,SAASiD,EAAMpE,MAKnEtD,EAAE6I,IAAM,WAGN,IAAK,GAFD/F,GAAS9C,EAAEwF,IAAIxF,EAAEkF,MAAMpB,UAAW,UAAUnD,OAAO,IACnD0C,EAAU,GAAIlD,OAAM2C,GACfC,EAAI,EAAOD,EAAJC,EAAYA,IAC1BM,EAAQN,GAAK/C,EAAEkF,MAAMpB,UAAW,GAAKf,EAEvC,OAAOM,IAMTrD,EAAE8I,OAAS,SAAStF,EAAM2D,GACxB,GAAY,MAAR3D,EAAc,QAElB,KAAK,GADDW,MACKpB,EAAI,EAAGC,EAAIQ,EAAKV,OAAYE,EAAJD,EAAOA,IAClCoE,EACFhD,EAAOX,EAAKT,IAAMoE,EAAOpE,GAEzBoB,EAAOX,EAAKT,GAAG,IAAMS,EAAKT,GAAG,EAGjC,OAAOoB,IASTnE,EAAE6B,QAAU,SAASiF,EAAO6B,EAAMJ,GAChC,GAAa,MAATzB,EAAe,OAAQ,CAC3B,IAAI/D,GAAI,EAAGC,EAAI8D,EAAMhE,MACrB,IAAIyF,EAAU,CACZ,GAAuB,gBAAZA,GAIT,MADAxF,GAAI/C,EAAE6G,YAAYC,EAAO6B,GAClB7B,EAAM/D,KAAO4F,EAAO5F,GAAK,CAHhCA,GAAgB,EAAXwF,EAAe9C,KAAKD,IAAI,EAAGxC,EAAIuF,GAAYA,EAMpD,GAAI3G,GAAiBkF,EAAMjF,UA
 AYD,EAAe,MAAOkF,GAAMjF,QAAQ8G,EAAMJ,EACjF,MAAWvF,EAAJD,EAAOA,IAAK,GAAI+D,EAAM/D,KAAO4F,EAAM,MAAO5F,EACjD,QAAQ,GAIV/C,EAAE+B,YAAc,SAAS+E,EAAO6B,EAAMI,GACpC,GAAa,MAATjC,EAAe,OAAQ,CAC3B,IAAIkC,GAAmB,MAARD,CACf,IAAIjH,GAAqBgF,EAAM/E,cAAgBD,EAC7C,MAAOkH,GAAWlC,EAAM/E,YAAY4G,EAAMI,GAAQjC,EAAM/E,YAAY4G,EAGtE,KADA,GAAI5F,GAAKiG,EAAWD,EAAOjC,EAAMhE,OAC1BC,KAAK,GAAI+D,EAAM/D,KAAO4F,EAAM,MAAO5F,EAC1C,QAAQ,GAMV/C,EAAEiJ,MAAQ,SAASC,EAAOC,EAAMC,GAC1BtF,UAAUhB,QAAU,IACtBqG,EAAOD,GAAS,EAChBA,EAAQ,GAEVE,EAAOtF,UAAU,IAAM,CAMvB,KAJA,GAAIuF,GAAM5D,KAAKD,IAAIC,KAAK6D,MAAMH,EAAOD,GAASE,GAAO,GACjDG,EAAM,EACNN,EAAQ,GAAI9I,OAAMkJ,GAEVA,EAANE,GACJN,EAAMM,KAASL,EACfA,GAASE,CAGX,OAAOH,GAOT,IAAIO,GAAO,YAKXxJ,GAAEqC,KAAO,SAASoH,EAAM5G,GACtB,GAAIiC,GAAM4E,CACV,IAAItH,GAAcqH,EAAKpH,OAASD,EAAY,MAAOA,GAAW6C,MAAMwE,EAAM/I,EAAMuC,KAAKa,UAAW,GAChG,KAAK9D,EAAEgF,WAAWyE,GAAO,KAAM,IAAI1F,UAEnC,OADAe,GAAOpE,EAAMuC,KAAKa,UAAW,GACtB4F,EAAQ,WACb,KAAM5J,eAAgB4J,IAAQ,MAAOD,GAAKxE,MAAMpC,EAASiC,EAAKnE,OAAOD,EAAMuC,KAAKa,YAChF0F,
 GAAKpJ,UAAYqJ,EAAKrJ,SACtB,IAAIuJ,GAAO,GAAIH,EACfA,GAAKpJ,UAAY,IACjB,IAAI+D,GAASsF,EAAKxE,MAAM0E,EAAM7E,EAAKnE,OAAOD,EAAMuC,KAAKa,YACrD,OAAIxD,QAAO6D,KAAYA,EAAeA,EAC/BwF,IAMX3J,EAAE4J,QAAU,SAASH,GACnB,GAAI3E,GAAOpE,EAAMuC,KAAKa,UAAW,EACjC,OAAO,YACL,MAAO2F,GAAKxE,MAAMnF,KAAMgF,EAAKnE,OAAOD,EAAMuC,KAAKa,eAMnD9D,EAAE6J,QAAU,SAASvH,GACnB,GAAIwH,GAAQpJ,EAAMuC,KAAKa,UAAW,EAClC,IAAqB,IAAjBgG,EAAMhH,OAAc,KAAM,IAAIiH,OAAM,wCAExC,OADApH,GAAKmH,EAAO,SAASE,GAAK1H,EAAI0H,GAAKhK,EAAEqC,KAAKC,EAAI0H,GAAI1H,KAC3CA,GAITtC,EAAEiK,QAAU,SAASR,EAAMS,GACzB,GAAItG,KAEJ,OADAsG,KAAWA,EAASlK,EAAEwE,UACf,WACL,GAAItB,GAAMgH,EAAOjF,MAAMnF,KAAMgE,UAC7B,OAAO9D,GAAEmD,IAAIS,EAAMV,GAAOU,EAAKV,GAAQU,EAAKV,GAAOuG,EAAKxE,MAAMnF,KAAMgE,aAMxE9D,EAAEmK,MAAQ,SAASV,EAAMW,GACvB,GAAItF,GAAOpE,EAAMuC,KAAKa,UAAW,EACjC,OAAOuG,YAAW,WAAY,MAAOZ,GAAKxE,MAAM,KAAMH,IAAUsF,IAKlEpK,EAAEsK,MAAQ,SAASb,GACjB,MAAOzJ,GAAEmK,MAAMlF,MAAMjF,GAAIyJ,EAAM,GAAG9I,OAAOD,EAAMuC,KAAKa,UAAW,MAQjE9D,EAAEuK,SAAW,SAASd,EAAMW,EAAMI,GAChC,GAAI3H,GAASiC,EAA
 MX,EACfsG,EAAU,KACVC,EAAW,CACfF,KAAYA,KACZ,IAAIG,GAAQ,WACVD,EAAWF,EAAQI,WAAY,EAAQ,EAAI,GAAIC,MAC/CJ,EAAU,KACVtG,EAASsF,EAAKxE,MAAMpC,EAASiC,GAE/B,OAAO,YACL,GAAIgG,GAAM,GAAID,KACTH,IAAYF,EAAQI,WAAY,IAAOF,EAAWI,EACvD,IAAIC,GAAYX,GAAQU,EAAMJ,EAW9B,OAVA7H,GAAU/C,KACVgF,EAAOhB,UACU,GAAbiH,GACFC,aAAaP,GACbA,EAAU,KACVC,EAAWI,EACX3G,EAASsF,EAAKxE,MAAMpC,EAASiC,IACnB2F,GAAWD,EAAQS,YAAa,IAC1CR,EAAUJ,WAAWM,EAAOI,IAEvB5G,IAQXnE,EAAEkL,SAAW,SAASzB,EAAMW,EAAMe,GAChC,GAAIhH,GACAsG,EAAU,IACd,OAAO,YACL,GAAI5H,GAAU/C,KAAMgF,EAAOhB,UACvB6G,EAAQ,WACVF,EAAU,KACLU,IAAWhH,EAASsF,EAAKxE,MAAMpC,EAASiC,KAE3CsG,EAAUD,IAAcV,CAI5B,OAHAO,cAAaP,GACbA,EAAUJ,WAAWM,EAAOP,GACxBgB,IAASjH,EAASsF,EAAKxE,MAAMpC,EAASiC,IACnCX,IAMXnE,EAAEqL,KAAO,SAAS5B,GAChB,GAAiB7F,GAAb0H,GAAM,CACV,OAAO,YACL,MAAIA,GAAY1H,GAChB0H,GAAM,EACN1H,EAAO6F,EAAKxE,MAAMnF,KAAMgE,WACxB2F,EAAO,KACA7F,KAOX5D,EAAEuL,KAAO,SAAS9B,EAAM+B,GACtB,MAAO,YACL,GAAI1G,IAAQ2E,EAEZ,OADAhJ,GAAKwE,MAAMH,EAAMhB,WACV0H,EAAQvG,MAAMnF,KAAMgF,KAM/B9E,EAAEyL,QAAU,WACV,GAAI3
 B,GAAQhG,SACZ,OAAO,YAEL,IAAK,GADDgB,GAAOhB,UACFf,EAAI+G,EAAMhH,OAAS,EAAGC,GAAK,EAAGA,IACrC+B,GAAQgF,EAAM/G,GAAGkC,MAAMnF,KAAMgF,GAE/B,OAAOA,GAAK,KAKhB9E,EAAE0L,MAAQ,SAASC,EAAOlC,GACxB,MAAO,YACL,QAAMkC,EAAQ,EACLlC,EAAKxE,MAAMnF,KAAMgE,WAD1B,SAWJ9D,EAAEmC,KAAOD,GAAc,SAASI,GAC9B,GAAIA,IAAQhC,OAAOgC,GAAM,KAAM,IAAIyB,WAAU,iBAC7C,IAAI5B,KACJ,KAAK,GAAIe,KAAOZ,GAAStC,EAAEmD,IAAIb,EAAKY,IAAMf,EAAK1B,KAAKyC,EACpD,OAAOf,IAITnC,EAAEmH,OAAS,SAAS7E,GAClB,GAAI6E,KACJ,KAAK,GAAIjE,KAAOZ,GAAStC,EAAEmD,IAAIb,EAAKY,IAAMiE,EAAO1G,KAAK6B,EAAIY,GAC1D,OAAOiE,IAITnH,EAAE4L,MAAQ,SAAStJ,GACjB,GAAIsJ,KACJ,KAAK,GAAI1I,KAAOZ,GAAStC,EAAEmD,IAAIb,EAAKY,IAAM0I,EAAMnL,MAAMyC,EAAKZ,EAAIY,IAC/D,OAAO0I,IAIT5L,EAAE6L,OAAS,SAASvJ,GAClB,GAAI6B,KACJ,KAAK,GAAIjB,KAAOZ,GAAStC,EAAEmD,IAAIb,EAAKY,KAAMiB,EAAO7B,EAAIY,IAAQA,EAC7D,OAAOiB,IAKTnE,EAAE8L,UAAY9L,EAAE+L,QAAU,SAASzJ,GACjC,GAAI0J,KACJ,KAAK,GAAI9I,KAAOZ,GACVtC,EAAEgF,WAAW1C,EAAIY,KAAO8I,EAAMvL,KAAKyC,EAEzC,OAAO8I,GAAM5F,QAIfpG,EAAEiM,OAAS,SAAS3J,GAQlB,MAPAK,GAAKjC,EAAMuC
 ,KAAKa,UAAW,GAAI,SAASoI,GACtC,GAAIA,EACF,IAAK,GAAIC,KAAQD,GACf5J,EAAI6J,GAAQD,EAAOC,KAIlB7J,GAITtC,EAAEoM,KAAO,SAAS9J,GAChB,GAAI+J,MACAlK,EAAOxB,EAAOsE,MAAM/E,EAAYQ,EAAMuC,KAAKa,UAAW,GAI1D,OAHAnB,GAAKR,EAAM,SAASe,GACdA,IAAOZ,KAAK+J,EAAKnJ,GAAOZ,EAAIY,MAE3BmJ,GAITrM,EAAEsM,KAAO,SAAShK,GAChB,GAAI+J,MACAlK,EAAOxB,EAAOsE,MAAM/E,EAAYQ,EAAMuC,KAAKa,UAAW,GAC1D,KAAK,GAAIZ,KAAOZ,GACTtC,EAAEyE,SAAStC,EAAMe,KAAMmJ,EAAKnJ,GAAOZ,EAAIY,GAE9C,OAAOmJ,IAITrM,EAAEuM,SAAW,SAASjK,GAQpB,MAPAK,GAAKjC,EAAMuC,KAAKa,UAAW,GAAI,SAASoI,GACtC,GAAIA,EACF,IAAK,GAAIC,KAAQD,GACX5J,EAAI6J,SAAe,KAAG7J,EAAI6J,GAAQD,EAAOC,MAI5C7J,GAITtC,EAAEwM,MAAQ,SAASlK,GACjB,MAAKtC,GAAEyM,SAASnK,GACTtC,EAAEiC,QAAQK,GAAOA,EAAI5B,QAAUV,EAAEiM,UAAW3J,GADtBA,GAO/BtC,EAAE0M,IAAM,SAASpK,EAAKqK,GAEpB,MADAA,GAAYrK,GACLA,EAIT,IAAIsK,GAAK,SAASrG,EAAGC,EAAGqG,EAAQC,GAG9B,GAAIvG,IAAMC,EAAG,MAAa,KAAND,GAAW,EAAIA,GAAK,EAAIC,CAE5C,IAAS,MAALD,GAAkB,MAALC,EAAW,MAAOD,KAAMC,CAErCD,aAAavG,KAAGuG,EAAIA,EAAEhE,UACtBiE,YAAaxG,KAAGwG,EAAIA,EAAEjE,SAE1B,IAA
 IwK,GAAYnM,EAASqC,KAAKsD,EAC9B,IAAIwG,GAAanM,EAASqC,KAAKuD,GAAI,OAAO,CAC1C,QAAQuG,GAEN,IAAK,kBAGH,MAAOxG,IAAKyG,OAAOxG,EACrB,KAAK,kBAGH,MAAOD,KAAMA,EAAIC,IAAMA,EAAU,GAALD,EAAS,EAAIA,GAAK,EAAIC,EAAID,IAAMC,CAC9D,KAAK,gBACL,IAAK,mBAIH,OAAQD,IAAMC,CAEhB,KAAK,kBACH,MAAOD,GAAE2F,QAAU1F,EAAE0F,QACd3F,EAAE0G,QAAUzG,EAAEyG,QACd1G,EAAE2G,WAAa1G,EAAE0G,WACjB3G,EAAE4G,YAAc3G,EAAE2G,WAE7B,GAAgB,gBAAL5G,IAA6B,gBAALC,GAAe,OAAO,CAIzD,KADA,GAAI1D,GAAS+J,EAAO/J,OACbA,KAGL,GAAI+J,EAAO/J,IAAWyD,EAAG,MAAOuG,GAAOhK,IAAW0D,CAIpD,IAAI4G,GAAQ7G,EAAE8G,YAAaC,EAAQ9G,EAAE6G,WACrC,IAAID,IAAUE,KAAWtN,EAAEgF,WAAWoI,IAAWA,YAAiBA,IACzCpN,EAAEgF,WAAWsI,IAAWA,YAAiBA,IAChE,OAAO,CAGTT,GAAOpM,KAAK8F,GACZuG,EAAOrM,KAAK+F,EACZ,IAAIY,GAAO,EAAGjD,GAAS,CAEvB,IAAiB,kBAAb4I,GAIF,GAFA3F,EAAOb,EAAEzD,OACTqB,EAASiD,GAAQZ,EAAE1D,OAGjB,KAAOsE,MACCjD,EAASyI,EAAGrG,EAAEa,GAAOZ,EAAEY,GAAOyF,EAAQC,WAG3C,CAEL,IAAK,GAAI5J,KAAOqD,GACd,GAAIvG,EAAEmD,IAAIoD,EAAGrD,KAEXkE,MAEMjD,EAASnE,EAAEmD,IAAIqD,EAAGtD,IAAQ0J,EAAGrG,EAAErD,GAAMsD,EAAEtD
 ,GAAM2J,EAAQC,KAAU,KAIzE,IAAI3I,EAAQ,CACV,IAAKjB,IAAOsD,GACV,GAAIxG,EAAEmD,IAAIqD,EAAGtD,KAAUkE,IAAS,KAElCjD,IAAUiD,GAMd,MAFAyF,GAAOU,MACPT,EAAOS,MACApJ,EAITnE,GAAEwN,QAAU,SAASjH,EAAGC,GACtB,MAAOoG,GAAGrG,EAAGC,UAKfxG,EAAEsF,QAAU,SAAShD,GACnB,GAAW,MAAPA,EAAa,OAAO,CACxB,IAAItC,EAAEiC,QAAQK,IAAQtC,EAAEyN,SAASnL,GAAM,MAAsB,KAAfA,EAAIQ,MAClD,KAAK,GAAII,KAAOZ,GAAK,GAAItC,EAAEmD,IAAIb,EAAKY,GAAM,OAAO,CACjD,QAAO,GAITlD,EAAE0N,UAAY,SAASpL,GACrB,SAAUA,GAAwB,IAAjBA,EAAIqL,WAKvB3N,EAAEiC,QAAUD,GAAiB,SAASM,GACpC,MAA6B,kBAAtB1B,EAASqC,KAAKX,IAIvBtC,EAAEyM,SAAW,SAASnK,GACpB,MAAOA,KAAQhC,OAAOgC,IAIxBK,GAAM,YAAa,WAAY,SAAU,SAAU,OAAQ,UAAW,SAASiL,GAC7E5N,EAAE,KAAO4N,GAAQ,SAAStL,GACxB,MAAO1B,GAASqC,KAAKX,IAAQ,WAAasL,EAAO,OAMhD5N,EAAEkI,YAAYpE,aACjB9D,EAAEkI,YAAc,SAAS5F,GACvB,SAAUA,IAAOtC,EAAEmD,IAAIb,EAAK,aAKX,kBAAV,MACTtC,EAAEgF,WAAa,SAAS1C,GACtB,MAAsB,kBAARA,KAKlBtC,EAAE6N,SAAW,SAASvL,GACpB,MAAOuL,UAASvL,KAASwL,MAAMC,WAAWzL,KAI5CtC,EAAE8N,MAAQ,SAASxL,GACjB,MAAOtC,GAAEgO,SAAS1L,IAAQA,IAAQA,GAIpCtC,EAA
 EiO,UAAY,SAAS3L,GACrB,MAAOA,MAAQ,GAAQA,KAAQ,GAA+B,oBAAtB1B,EAASqC,KAAKX,IAIxDtC,EAAEkO,OAAS,SAAS5L,GAClB,MAAe,QAARA,GAITtC,EAAEmO,YAAc,SAAS7L,GACvB,MAAOA,SAAa,IAKtBtC,EAAEmD,IAAM,SAASb,EAAKY,GACpB,MAAOrC,GAAeoC,KAAKX,EAAKY,IAQlClD,EAAEoO,WAAa,WAEb,MADAvO,GAAKG,EAAID,EACFD,MAITE,EAAEwE,SAAW,SAASlB,GACpB,MAAOA,IAITtD,EAAE2L,MAAQ,SAASpE,EAAG3E,EAAUC,GAE9B,IAAK,GADDwL,GAAQlO,MAAMsF,KAAKD,IAAI,EAAG+B,IACrBxE,EAAI,EAAOwE,EAAJxE,EAAOA,IAAKsL,EAAMtL,GAAKH,EAASK,KAAKJ,EAASE,EAC9D,OAAOsL,IAITrO,EAAEgG,OAAS,SAASJ,EAAKJ,GAKvB,MAJW,OAAPA,IACFA,EAAMI,EACNA,EAAM,GAEDA,EAAMH,KAAK6I,MAAM7I,KAAKO,UAAYR,EAAMI,EAAM,IAIvD,IAAI2I,IACFC,QACEC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,UAGTP,GAAUQ,SAAW/O,EAAE6L,OAAO0C,EAAUC,OAGxC,IAAIQ,IACFR,OAAU,GAAIS,QAAO,IAAMjP,EAAEmC,KAAKoM,EAAUC,QAAQU,KAAK,IAAM,IAAK,KACpEH,SAAU,GAAIE,QAAO,IAAMjP,EAAEmC,KAAKoM,EAAUQ,UAAUG,KAAK,KAAO,IAAK,KAIzElP,GAAE2C,MAAM,SAAU,YAAa,SAASkC,GACtC7E,EAAE6E,GAAU,SAASsK,GACnB,MAAc,OAAVA,EAAuB,IACnB,GAAKA,GAAQC,QAAQJ,EAAcnK
 ,GAAS,SAASwK,GAC3D,MAAOd,GAAU1J,GAAQwK,QAO/BrP,EAAEmE,OAAS,SAAS2E,EAAQwG,GAC1B,GAAc,MAAVxG,EAAgB,WAAY,EAChC,IAAIxF,GAAQwF,EAAOwG,EACnB,OAAOtP,GAAEgF,WAAW1B,GAASA,EAAML,KAAK6F,GAAUxF,GAIpDtD,EAAEuP,MAAQ,SAASjN,GACjBK,EAAK3C,EAAE8L,UAAUxJ,GAAM,SAASsL,GAC9B,GAAInE,GAAOzJ,EAAE4N,GAAQtL,EAAIsL,EACzB5N,GAAEI,UAAUwN,GAAQ,WAClB,GAAI9I,IAAQhF,KAAKyC,SAEjB,OADA9B,GAAKwE,MAAMH,EAAMhB,WACVK,EAAOlB,KAAKnD,KAAM2J,EAAKxE,MAAMjF,EAAG8E,OAO7C,IAAI0K,GAAY,CAChBxP,GAAEyP,SAAW,SAASC,GACpB,GAAIC,KAAOH,EAAY,EACvB,OAAOE,GAASA,EAASC,EAAKA,GAKhC3P,EAAE4P,kBACAC,SAAc,kBACdC,YAAc,mBACdtB,OAAc,mBAMhB,IAAIuB,GAAU,OAIVC,GACFnB,IAAU,IACVoB,KAAU,KACVC,KAAU,IACVC,KAAU,IACVC,IAAU,IACVC,SAAU,QACVC,SAAU,SAGRC,EAAU,8BAKdvQ,GAAEwQ,SAAW,SAASC,EAAMC,EAAMC,GAChC,GAAIC,EACJD,GAAW3Q,EAAEuM,YAAaoE,EAAU3Q,EAAE4P,iBAGtC,IAAIiB,GAAU,GAAI5B,UACf0B,EAASnC,QAAUuB,GAAS7D,QAC5ByE,EAASb,aAAeC,GAAS7D,QACjCyE,EAASd,UAAYE,GAAS7D,QAC/BgD,KAAK,KAAO,KAAM,KAGhB3L,EAAQ,EACR2I,EAAS,QACbuE,GAAKrB,QAAQyB,EAAS,SAASxB,EAAOb,EAAQsB,EAAaD,EAAUiB,GAc
 nE,MAbA5E,IAAUuE,EAAK/P,MAAM6C,EAAOuN,GACzB1B,QAAQmB,EAAS,SAASlB,GAAS,MAAO,KAAOW,EAAQX,KAExDb,IACFtC,GAAU,cAAgBsC,EAAS,kCAEjCsB,IACF5D,GAAU,cAAgB4D,EAAc,wBAEtCD,IACF3D,GAAU,OAAS2D,EAAW,YAEhCtM,EAAQuN,EAASzB,EAAMvM,OAChBuM,IAETnD,GAAU,OAGLyE,EAASI,WAAU7E,EAAS,mBAAqBA,EAAS,OAE/DA,EAAS,2CACP,oDACAA,EAAS,eAEX,KACE0E,EAAS,GAAIpQ,UAASmQ,EAASI,UAAY,MAAO,IAAK7E,GACvD,MAAO8E,GAEP,KADAA,GAAE9E,OAASA,EACL8E,EAGR,GAAIN,EAAM,MAAOE,GAAOF,EAAM1Q,EAC9B,IAAIwQ,GAAW,SAASE,GACtB,MAAOE,GAAO3N,KAAKnD,KAAM4Q,EAAM1Q,GAMjC,OAFAwQ,GAAStE,OAAS,aAAeyE,EAASI,UAAY,OAAS,OAAS7E,EAAS,IAE1EsE,GAITxQ,EAAEiR,MAAQ,SAAS3O,GACjB,MAAOtC,GAAEsC,GAAK2O,QAUhB,IAAI9M,GAAS,SAAS7B,GACpB,MAAOxC,MAAKoR,OAASlR,EAAEsC,GAAK2O,QAAU3O,EAIxCtC,GAAEuP,MAAMvP,GAGR2C,GAAM,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,WAAY,SAASiL,GAC9E,GAAI/I,GAAS3E,EAAW0N,EACxB5N,GAAEI,UAAUwN,GAAQ,WAClB,GAAItL,GAAMxC,KAAKyC,QAGf,OAFAsC,GAAOI,MAAM3C,EAAKwB,WACL,SAAR8J,GAA2B,UAARA,GAAoC,IAAftL,EAAIQ,cAAqBR,GAAI,GACnE6B,EAAOlB,KAAKnD,KAAMwC,MAK7BK,GAAM,SAAU,OAAQ,SAAU,SAASi
 L,GACzC,GAAI/I,GAAS3E,EAAW0N,EACxB5N,GAAEI,UAAUwN,GAAQ,WAClB,MAAOzJ,GAAOlB,KAAKnD,KAAM+E,EAAOI,MAAMnF,KAAKyC,SAAUuB,eAIzD9D,EAAEiM,OAAOjM,EAAEI,WAGT6Q,MAAO,WAEL,MADAnR,MAAKoR,QAAS,EACPpR,MAITwD,MAAO,WACL,MAAOxD,MAAKyC,aAKfU,KAAKnD"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/underscore.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/underscore.js b/blackberry10/node_modules/jasmine-node/node_modules/underscore/underscore.js
deleted file mode 100644
index 7d4ee27..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/underscore.js
+++ /dev/null
@@ -1,1246 +0,0 @@
-//     Underscore.js 1.5.1
-//     http://underscorejs.org
-//     (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
-//     Underscore may be freely distributed under the MIT license.
-
-(function() {
-
-  // Baseline setup
-  // --------------
-
-  // Establish the root object, `window` in the browser, or `global` on the server.
-  var root = this;
-
-  // Save the previous value of the `_` variable.
-  var previousUnderscore = root._;
-
-  // Establish the object that gets returned to break out of a loop iteration.
-  var breaker = {};
-
-  // Save bytes in the minified (but not gzipped) version:
-  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
-
-  // Create quick reference variables for speed access to core prototypes.
-  var
-    push             = ArrayProto.push,
-    slice            = ArrayProto.slice,
-    concat           = ArrayProto.concat,
-    toString         = ObjProto.toString,
-    hasOwnProperty   = ObjProto.hasOwnProperty;
-
-  // All **ECMAScript 5** native function implementations that we hope to use
-  // are declared here.
-  var
-    nativeForEach      = ArrayProto.forEach,
-    nativeMap          = ArrayProto.map,
-    nativeReduce       = ArrayProto.reduce,
-    nativeReduceRight  = ArrayProto.reduceRight,
-    nativeFilter       = ArrayProto.filter,
-    nativeEvery        = ArrayProto.every,
-    nativeSome         = ArrayProto.some,
-    nativeIndexOf      = ArrayProto.indexOf,
-    nativeLastIndexOf  = ArrayProto.lastIndexOf,
-    nativeIsArray      = Array.isArray,
-    nativeKeys         = Object.keys,
-    nativeBind         = FuncProto.bind;
-
-  // Create a safe reference to the Underscore object for use below.
-  var _ = function(obj) {
-    if (obj instanceof _) return obj;
-    if (!(this instanceof _)) return new _(obj);
-    this._wrapped = obj;
-  };
-
-  // Export the Underscore object for **Node.js**, with
-  // backwards-compatibility for the old `require()` API. If we're in
-  // the browser, add `_` as a global object via a string identifier,
-  // for Closure Compiler "advanced" mode.
-  if (typeof exports !== 'undefined') {
-    if (typeof module !== 'undefined' && module.exports) {
-      exports = module.exports = _;
-    }
-    exports._ = _;
-  } else {
-    root._ = _;
-  }
-
-  // Current version.
-  _.VERSION = '1.5.1';
-
-  // Collection Functions
-  // --------------------
-
-  // The cornerstone, an `each` implementation, aka `forEach`.
-  // Handles objects with the built-in `forEach`, arrays, and raw objects.
-  // Delegates to **ECMAScript 5**'s native `forEach` if available.
-  var each = _.each = _.forEach = function(obj, iterator, context) {
-    if (obj == null) return;
-    if (nativeForEach && obj.forEach === nativeForEach) {
-      obj.forEach(iterator, context);
-    } else if (obj.length === +obj.length) {
-      for (var i = 0, l = obj.length; i < l; i++) {
-        if (iterator.call(context, obj[i], i, obj) === breaker) return;
-      }
-    } else {
-      for (var key in obj) {
-        if (_.has(obj, key)) {
-          if (iterator.call(context, obj[key], key, obj) === breaker) return;
-        }
-      }
-    }
-  };
-
-  // Return the results of applying the iterator to each element.
-  // Delegates to **ECMAScript 5**'s native `map` if available.
-  _.map = _.collect = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
-    each(obj, function(value, index, list) {
-      results.push(iterator.call(context, value, index, list));
-    });
-    return results;
-  };
-
-  var reduceError = 'Reduce of empty array with no initial value';
-
-  // **Reduce** builds up a single result from a list of values, aka `inject`,
-  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
-  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
-    var initial = arguments.length > 2;
-    if (obj == null) obj = [];
-    if (nativeReduce && obj.reduce === nativeReduce) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
-    }
-    each(obj, function(value, index, list) {
-      if (!initial) {
-        memo = value;
-        initial = true;
-      } else {
-        memo = iterator.call(context, memo, value, index, list);
-      }
-    });
-    if (!initial) throw new TypeError(reduceError);
-    return memo;
-  };
-
-  // The right-associative version of reduce, also known as `foldr`.
-  // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
-  _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
-    var initial = arguments.length > 2;
-    if (obj == null) obj = [];
-    if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
-    }
-    var length = obj.length;
-    if (length !== +length) {
-      var keys = _.keys(obj);
-      length = keys.length;
-    }
-    each(obj, function(value, index, list) {
-      index = keys ? keys[--length] : --length;
-      if (!initial) {
-        memo = obj[index];
-        initial = true;
-      } else {
-        memo = iterator.call(context, memo, obj[index], index, list);
-      }
-    });
-    if (!initial) throw new TypeError(reduceError);
-    return memo;
-  };
-
-  // Return the first value which passes a truth test. Aliased as `detect`.
-  _.find = _.detect = function(obj, iterator, context) {
-    var result;
-    any(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) {
-        result = value;
-        return true;
-      }
-    });
-    return result;
-  };
-
-  // Return all the elements that pass a truth test.
-  // Delegates to **ECMAScript 5**'s native `filter` if available.
-  // Aliased as `select`.
-  _.filter = _.select = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
-    each(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) results.push(value);
-    });
-    return results;
-  };
-
-  // Return all the elements for which a truth test fails.
-  _.reject = function(obj, iterator, context) {
-    return _.filter(obj, function(value, index, list) {
-      return !iterator.call(context, value, index, list);
-    }, context);
-  };
-
-  // Determine whether all of the elements match a truth test.
-  // Delegates to **ECMAScript 5**'s native `every` if available.
-  // Aliased as `all`.
-  _.every = _.all = function(obj, iterator, context) {
-    iterator || (iterator = _.identity);
-    var result = true;
-    if (obj == null) return result;
-    if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
-    each(obj, function(value, index, list) {
-      if (!(result = result && iterator.call(context, value, index, list))) return breaker;
-    });
-    return !!result;
-  };
-
-  // Determine if at least one element in the object matches a truth test.
-  // Delegates to **ECMAScript 5**'s native `some` if available.
-  // Aliased as `any`.
-  var any = _.some = _.any = function(obj, iterator, context) {
-    iterator || (iterator = _.identity);
-    var result = false;
-    if (obj == null) return result;
-    if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
-    each(obj, function(value, index, list) {
-      if (result || (result = iterator.call(context, value, index, list))) return breaker;
-    });
-    return !!result;
-  };
-
-  // Determine if the array or object contains a given value (using `===`).
-  // Aliased as `include`.
-  _.contains = _.include = function(obj, target) {
-    if (obj == null) return false;
-    if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
-    return any(obj, function(value) {
-      return value === target;
-    });
-  };
-
-  // Invoke a method (with arguments) on every item in a collection.
-  _.invoke = function(obj, method) {
-    var args = slice.call(arguments, 2);
-    var isFunc = _.isFunction(method);
-    return _.map(obj, function(value) {
-      return (isFunc ? method : value[method]).apply(value, args);
-    });
-  };
-
-  // Convenience version of a common use case of `map`: fetching a property.
-  _.pluck = function(obj, key) {
-    return _.map(obj, function(value){ return value[key]; });
-  };
-
-  // Convenience version of a common use case of `filter`: selecting only objects
-  // containing specific `key:value` pairs.
-  _.where = function(obj, attrs, first) {
-    if (_.isEmpty(attrs)) return first ? void 0 : [];
-    return _[first ? 'find' : 'filter'](obj, function(value) {
-      for (var key in attrs) {
-        if (attrs[key] !== value[key]) return false;
-      }
-      return true;
-    });
-  };
-
-  // Convenience version of a common use case of `find`: getting the first object
-  // containing specific `key:value` pairs.
-  _.findWhere = function(obj, attrs) {
-    return _.where(obj, attrs, true);
-  };
-
-  // Return the maximum element or (element-based computation).
-  // Can't optimize arrays of integers longer than 65,535 elements.
-  // See [WebKit Bug 80797](https://bugs.webkit.org/show_bug.cgi?id=80797)
-  _.max = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) {
-      return Math.max.apply(Math, obj);
-    }
-    if (!iterator && _.isEmpty(obj)) return -Infinity;
-    var result = {computed : -Infinity, value: -Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed > result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Return the minimum element (or element-based computation).
-  _.min = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) {
-      return Math.min.apply(Math, obj);
-    }
-    if (!iterator && _.isEmpty(obj)) return Infinity;
-    var result = {computed : Infinity, value: Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed < result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Shuffle an array.
-  _.shuffle = function(obj) {
-    var rand;
-    var index = 0;
-    var shuffled = [];
-    each(obj, function(value) {
-      rand = _.random(index++);
-      shuffled[index - 1] = shuffled[rand];
-      shuffled[rand] = value;
-    });
-    return shuffled;
-  };
-
-  // An internal function to generate lookup iterators.
-  var lookupIterator = function(value) {
-    return _.isFunction(value) ? value : function(obj){ return obj[value]; };
-  };
-
-  // Sort the object's values by a criterion produced by an iterator.
-  _.sortBy = function(obj, value, context) {
-    var iterator = lookupIterator(value);
-    return _.pluck(_.map(obj, function(value, index, list) {
-      return {
-        value : value,
-        index : index,
-        criteria : iterator.call(context, value, index, list)
-      };
-    }).sort(function(left, right) {
-      var a = left.criteria;
-      var b = right.criteria;
-      if (a !== b) {
-        if (a > b || a === void 0) return 1;
-        if (a < b || b === void 0) return -1;
-      }
-      return left.index < right.index ? -1 : 1;
-    }), 'value');
-  };
-
-  // An internal function used for aggregate "group by" operations.
-  var group = function(obj, value, context, behavior) {
-    var result = {};
-    var iterator = lookupIterator(value == null ? _.identity : value);
-    each(obj, function(value, index) {
-      var key = iterator.call(context, value, index, obj);
-      behavior(result, key, value);
-    });
-    return result;
-  };
-
-  // Groups the object's values by a criterion. Pass either a string attribute
-  // to group by, or a function that returns the criterion.
-  _.groupBy = function(obj, value, context) {
-    return group(obj, value, context, function(result, key, value) {
-      (_.has(result, key) ? result[key] : (result[key] = [])).push(value);
-    });
-  };
-
-  // Counts instances of an object that group by a certain criterion. Pass
-  // either a string attribute to count by, or a function that returns the
-  // criterion.
-  _.countBy = function(obj, value, context) {
-    return group(obj, value, context, function(result, key) {
-      if (!_.has(result, key)) result[key] = 0;
-      result[key]++;
-    });
-  };
-
-  // Use a comparator function to figure out the smallest index at which
-  // an object should be inserted so as to maintain order. Uses binary search.
-  _.sortedIndex = function(array, obj, iterator, context) {
-    iterator = iterator == null ? _.identity : lookupIterator(iterator);
-    var value = iterator.call(context, obj);
-    var low = 0, high = array.length;
-    while (low < high) {
-      var mid = (low + high) >>> 1;
-      iterator.call(context, array[mid]) < value ? low = mid + 1 : high = mid;
-    }
-    return low;
-  };
-
-  // Safely create a real, live array from anything iterable.
-  _.toArray = function(obj) {
-    if (!obj) return [];
-    if (_.isArray(obj)) return slice.call(obj);
-    if (obj.length === +obj.length) return _.map(obj, _.identity);
-    return _.values(obj);
-  };
-
-  // Return the number of elements in an object.
-  _.size = function(obj) {
-    if (obj == null) return 0;
-    return (obj.length === +obj.length) ? obj.length : _.keys(obj).length;
-  };
-
-  // Array Functions
-  // ---------------
-
-  // Get the first element of an array. Passing **n** will return the first N
-  // values in the array. Aliased as `head` and `take`. The **guard** check
-  // allows it to work with `_.map`.
-  _.first = _.head = _.take = function(array, n, guard) {
-    if (array == null) return void 0;
-    return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
-  };
-
-  // Returns everything but the last entry of the array. Especially useful on
-  // the arguments object. Passing **n** will return all the values in
-  // the array, excluding the last N. The **guard** check allows it to work with
-  // `_.map`.
-  _.initial = function(array, n, guard) {
-    return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
-  };
-
-  // Get the last element of an array. Passing **n** will return the last N
-  // values in the array. The **guard** check allows it to work with `_.map`.
-  _.last = function(array, n, guard) {
-    if (array == null) return void 0;
-    if ((n != null) && !guard) {
-      return slice.call(array, Math.max(array.length - n, 0));
-    } else {
-      return array[array.length - 1];
-    }
-  };
-
-  // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.
-  // Especially useful on the arguments object. Passing an **n** will return
-  // the rest N values in the array. The **guard**
-  // check allows it to work with `_.map`.
-  _.rest = _.tail = _.drop = function(array, n, guard) {
-    return slice.call(array, (n == null) || guard ? 1 : n);
-  };
-
-  // Trim out all falsy values from an array.
-  _.compact = function(array) {
-    return _.filter(array, _.identity);
-  };
-
-  // Internal implementation of a recursive `flatten` function.
-  var flatten = function(input, shallow, output) {
-    if (shallow && _.every(input, _.isArray)) {
-      return concat.apply(output, input);
-    }
-    each(input, function(value) {
-      if (_.isArray(value) || _.isArguments(value)) {
-        shallow ? push.apply(output, value) : flatten(value, shallow, output);
-      } else {
-        output.push(value);
-      }
-    });
-    return output;
-  };
-
-  // Return a completely flattened version of an array.
-  _.flatten = function(array, shallow) {
-    return flatten(array, shallow, []);
-  };
-
-  // Return a version of the array that does not contain the specified value(s).
-  _.without = function(array) {
-    return _.difference(array, slice.call(arguments, 1));
-  };
-
-  // Produce a duplicate-free version of the array. If the array has already
-  // been sorted, you have the option of using a faster algorithm.
-  // Aliased as `unique`.
-  _.uniq = _.unique = function(array, isSorted, iterator, context) {
-    if (_.isFunction(isSorted)) {
-      context = iterator;
-      iterator = isSorted;
-      isSorted = false;
-    }
-    var initial = iterator ? _.map(array, iterator, context) : array;
-    var results = [];
-    var seen = [];
-    each(initial, function(value, index) {
-      if (isSorted ? (!index || seen[seen.length - 1] !== value) : !_.contains(seen, value)) {
-        seen.push(value);
-        results.push(array[index]);
-      }
-    });
-    return results;
-  };
-
-  // Produce an array that contains the union: each distinct element from all of
-  // the passed-in arrays.
-  _.union = function() {
-    return _.uniq(_.flatten(arguments, true));
-  };
-
-  // Produce an array that contains every item shared between all the
-  // passed-in arrays.
-  _.intersection = function(array) {
-    var rest = slice.call(arguments, 1);
-    return _.filter(_.uniq(array), function(item) {
-      return _.every(rest, function(other) {
-        return _.indexOf(other, item) >= 0;
-      });
-    });
-  };
-
-  // Take the difference between one array and a number of other arrays.
-  // Only the elements present in just the first array will remain.
-  _.difference = function(array) {
-    var rest = concat.apply(ArrayProto, slice.call(arguments, 1));
-    return _.filter(array, function(value){ return !_.contains(rest, value); });
-  };
-
-  // Zip together multiple lists into a single array -- elements that share
-  // an index go together.
-  _.zip = function() {
-    var length = _.max(_.pluck(arguments, "length").concat(0));
-    var results = new Array(length);
-    for (var i = 0; i < length; i++) {
-      results[i] = _.pluck(arguments, '' + i);
-    }
-    return results;
-  };
-
-  // Converts lists into objects. Pass either a single array of `[key, value]`
-  // pairs, or two parallel arrays of the same length -- one of keys, and one of
-  // the corresponding values.
-  _.object = function(list, values) {
-    if (list == null) return {};
-    var result = {};
-    for (var i = 0, l = list.length; i < l; i++) {
-      if (values) {
-        result[list[i]] = values[i];
-      } else {
-        result[list[i][0]] = list[i][1];
-      }
-    }
-    return result;
-  };
-
-  // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
-  // we need this function. Return the position of the first occurrence of an
-  // item in an array, or -1 if the item is not included in the array.
-  // Delegates to **ECMAScript 5**'s native `indexOf` if available.
-  // If the array is large and already in sort order, pass `true`
-  // for **isSorted** to use binary search.
-  _.indexOf = function(array, item, isSorted) {
-    if (array == null) return -1;
-    var i = 0, l = array.length;
-    if (isSorted) {
-      if (typeof isSorted == 'number') {
-        i = (isSorted < 0 ? Math.max(0, l + isSorted) : isSorted);
-      } else {
-        i = _.sortedIndex(array, item);
-        return array[i] === item ? i : -1;
-      }
-    }
-    if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item, isSorted);
-    for (; i < l; i++) if (array[i] === item) return i;
-    return -1;
-  };
-
-  // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
-  _.lastIndexOf = function(array, item, from) {
-    if (array == null) return -1;
-    var hasIndex = from != null;
-    if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) {
-      return hasIndex ? array.lastIndexOf(item, from) : array.lastIndexOf(item);
-    }
-    var i = (hasIndex ? from : array.length);
-    while (i--) if (array[i] === item) return i;
-    return -1;
-  };
-
-  // Generate an integer Array containing an arithmetic progression. A port of
-  // the native Python `range()` function. See
-  // [the Python documentation](http://docs.python.org/library/functions.html#range).
-  _.range = function(start, stop, step) {
-    if (arguments.length <= 1) {
-      stop = start || 0;
-      start = 0;
-    }
-    step = arguments[2] || 1;
-
-    var len = Math.max(Math.ceil((stop - start) / step), 0);
-    var idx = 0;
-    var range = new Array(len);
-
-    while(idx < len) {
-      range[idx++] = start;
-      start += step;
-    }
-
-    return range;
-  };
-
-  // Function (ahem) Functions
-  // ------------------
-
-  // Reusable constructor function for prototype setting.
-  var ctor = function(){};
-
-  // Create a function bound to a given object (assigning `this`, and arguments,
-  // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if
-  // available.
-  _.bind = function(func, context) {
-    var args, bound;
-    if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
-    if (!_.isFunction(func)) throw new TypeError;
-    args = slice.call(arguments, 2);
-    return bound = function() {
-      if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
-      ctor.prototype = func.prototype;
-      var self = new ctor;
-      ctor.prototype = null;
-      var result = func.apply(self, args.concat(slice.call(arguments)));
-      if (Object(result) === result) return result;
-      return self;
-    };
-  };
-
-  // Partially apply a function by creating a version that has had some of its
-  // arguments pre-filled, without changing its dynamic `this` context.
-  _.partial = function(func) {
-    var args = slice.call(arguments, 1);
-    return function() {
-      return func.apply(this, args.concat(slice.call(arguments)));
-    };
-  };
-
-  // Bind all of an object's methods to that object. Useful for ensuring that
-  // all callbacks defined on an object belong to it.
-  _.bindAll = function(obj) {
-    var funcs = slice.call(arguments, 1);
-    if (funcs.length === 0) throw new Error("bindAll must be passed function names");
-    each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
-    return obj;
-  };
-
-  // Memoize an expensive function by storing its results.
-  _.memoize = function(func, hasher) {
-    var memo = {};
-    hasher || (hasher = _.identity);
-    return function() {
-      var key = hasher.apply(this, arguments);
-      return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
-    };
-  };
-
-  // Delays a function for the given number of milliseconds, and then calls
-  // it with the arguments supplied.
-  _.delay = function(func, wait) {
-    var args = slice.call(arguments, 2);
-    return setTimeout(function(){ return func.apply(null, args); }, wait);
-  };
-
-  // Defers a function, scheduling it to run after the current call stack has
-  // cleared.
-  _.defer = function(func) {
-    return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
-  };
-
-  // Returns a function, that, when invoked, will only be triggered at most once
-  // during a given window of time. Normally, the throttled function will run
-  // as much as it can, without ever going more than once per `wait` duration;
-  // but if you'd like to disable the execution on the leading edge, pass
-  // `{leading: false}`. To disable execution on the trailing edge, ditto.
-  _.throttle = function(func, wait, options) {
-    var context, args, result;
-    var timeout = null;
-    var previous = 0;
-    options || (options = {});
-    var later = function() {
-      previous = options.leading === false ? 0 : new Date;
-      timeout = null;
-      result = func.apply(context, args);
-    };
-    return function() {
-      var now = new Date;
-      if (!previous && options.leading === false) previous = now;
-      var remaining = wait - (now - previous);
-      context = this;
-      args = arguments;
-      if (remaining <= 0) {
-        clearTimeout(timeout);
-        timeout = null;
-        previous = now;
-        result = func.apply(context, args);
-      } else if (!timeout && options.trailing !== false) {
-        timeout = setTimeout(later, remaining);
-      }
-      return result;
-    };
-  };
-
-  // Returns a function, that, as long as it continues to be invoked, will not
-  // be triggered. The function will be called after it stops being called for
-  // N milliseconds. If `immediate` is passed, trigger the function on the
-  // leading edge, instead of the trailing.
-  _.debounce = function(func, wait, immediate) {
-    var result;
-    var timeout = null;
-    return function() {
-      var context = this, args = arguments;
-      var later = function() {
-        timeout = null;
-        if (!immediate) result = func.apply(context, args);
-      };
-      var callNow = immediate && !timeout;
-      clearTimeout(timeout);
-      timeout = setTimeout(later, wait);
-      if (callNow) result = func.apply(context, args);
-      return result;
-    };
-  };
-
-  // Returns a function that will be executed at most one time, no matter how
-  // often you call it. Useful for lazy initialization.
-  _.once = function(func) {
-    var ran = false, memo;
-    return function() {
-      if (ran) return memo;
-      ran = true;
-      memo = func.apply(this, arguments);
-      func = null;
-      return memo;
-    };
-  };
-
-  // Returns the first function passed as an argument to the second,
-  // allowing you to adjust arguments, run code before and after, and
-  // conditionally execute the original function.
-  _.wrap = function(func, wrapper) {
-    return function() {
-      var args = [func];
-      push.apply(args, arguments);
-      return wrapper.apply(this, args);
-    };
-  };
-
-  // Returns a function that is the composition of a list of functions, each
-  // consuming the return value of the function that follows.
-  _.compose = function() {
-    var funcs = arguments;
-    return function() {
-      var args = arguments;
-      for (var i = funcs.length - 1; i >= 0; i--) {
-        args = [funcs[i].apply(this, args)];
-      }
-      return args[0];
-    };
-  };
-
-  // Returns a function that will only be executed after being called N times.
-  _.after = function(times, func) {
-    return function() {
-      if (--times < 1) {
-        return func.apply(this, arguments);
-      }
-    };
-  };
-
-  // Object Functions
-  // ----------------
-
-  // Retrieve the names of an object's properties.
-  // Delegates to **ECMAScript 5**'s native `Object.keys`
-  _.keys = nativeKeys || function(obj) {
-    if (obj !== Object(obj)) throw new TypeError('Invalid object');
-    var keys = [];
-    for (var key in obj) if (_.has(obj, key)) keys.push(key);
-    return keys;
-  };
-
-  // Retrieve the values of an object's properties.
-  _.values = function(obj) {
-    var values = [];
-    for (var key in obj) if (_.has(obj, key)) values.push(obj[key]);
-    return values;
-  };
-
-  // Convert an object into a list of `[key, value]` pairs.
-  _.pairs = function(obj) {
-    var pairs = [];
-    for (var key in obj) if (_.has(obj, key)) pairs.push([key, obj[key]]);
-    return pairs;
-  };
-
-  // Invert the keys and values of an object. The values must be serializable.
-  _.invert = function(obj) {
-    var result = {};
-    for (var key in obj) if (_.has(obj, key)) result[obj[key]] = key;
-    return result;
-  };
-
-  // Return a sorted list of the function names available on the object.
-  // Aliased as `methods`
-  _.functions = _.methods = function(obj) {
-    var names = [];
-    for (var key in obj) {
-      if (_.isFunction(obj[key])) names.push(key);
-    }
-    return names.sort();
-  };
-
-  // Extend a given object with all the properties in passed-in object(s).
-  _.extend = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      if (source) {
-        for (var prop in source) {
-          obj[prop] = source[prop];
-        }
-      }
-    });
-    return obj;
-  };
-
-  // Return a copy of the object only containing the whitelisted properties.
-  _.pick = function(obj) {
-    var copy = {};
-    var keys = concat.apply(ArrayProto, slice.call(arguments, 1));
-    each(keys, function(key) {
-      if (key in obj) copy[key] = obj[key];
-    });
-    return copy;
-  };
-
-   // Return a copy of the object without the blacklisted properties.
-  _.omit = function(obj) {
-    var copy = {};
-    var keys = concat.apply(ArrayProto, slice.call(arguments, 1));
-    for (var key in obj) {
-      if (!_.contains(keys, key)) copy[key] = obj[key];
-    }
-    return copy;
-  };
-
-  // Fill in a given object with default properties.
-  _.defaults = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      if (source) {
-        for (var prop in source) {
-          if (obj[prop] === void 0) obj[prop] = source[prop];
-        }
-      }
-    });
-    return obj;
-  };
-
-  // Create a (shallow-cloned) duplicate of an object.
-  _.clone = function(obj) {
-    if (!_.isObject(obj)) return obj;
-    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
-  };
-
-  // Invokes interceptor with the obj, and then returns obj.
-  // The primary purpose of this method is to "tap into" a method chain, in
-  // order to perform operations on intermediate results within the chain.
-  _.tap = function(obj, interceptor) {
-    interceptor(obj);
-    return obj;
-  };
-
-  // Internal recursive comparison function for `isEqual`.
-  var eq = function(a, b, aStack, bStack) {
-    // Identical objects are equal. `0 === -0`, but they aren't identical.
-    // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).
-    if (a === b) return a !== 0 || 1 / a == 1 / b;
-    // A strict comparison is necessary because `null == undefined`.
-    if (a == null || b == null) return a === b;
-    // Unwrap any wrapped objects.
-    if (a instanceof _) a = a._wrapped;
-    if (b instanceof _) b = b._wrapped;
-    // Compare `[[Class]]` names.
-    var className = toString.call(a);
-    if (className != toString.call(b)) return false;
-    switch (className) {
-      // Strings, numbers, dates, and booleans are compared by value.
-      case '[object String]':
-        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
-        // equivalent to `new String("5")`.
-        return a == String(b);
-      case '[object Number]':
-        // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
-        // other numeric values.
-        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
-      case '[object Date]':
-      case '[object Boolean]':
-        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
-        // millisecond representations. Note that invalid dates with millisecond representations
-        // of `NaN` are not equivalent.
-        return +a == +b;
-      // RegExps are compared by their source patterns and flags.
-      case '[object RegExp]':
-        return a.source == b.source &&
-               a.global == b.global &&
-               a.multiline == b.multiline &&
-               a.ignoreCase == b.ignoreCase;
-    }
-    if (typeof a != 'object' || typeof b != 'object') return false;
-    // Assume equality for cyclic structures. The algorithm for detecting cyclic
-    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
-    var length = aStack.length;
-    while (length--) {
-      // Linear search. Performance is inversely proportional to the number of
-      // unique nested structures.
-      if (aStack[length] == a) return bStack[length] == b;
-    }
-    // Objects with different constructors are not equivalent, but `Object`s
-    // from different frames are.
-    var aCtor = a.constructor, bCtor = b.constructor;
-    if (aCtor !== bCtor && !(_.isFunction(aCtor) && (aCtor instanceof aCtor) &&
-                             _.isFunction(bCtor) && (bCtor instanceof bCtor))) {
-      return false;
-    }
-    // Add the first object to the stack of traversed objects.
-    aStack.push(a);
-    bStack.push(b);
-    var size = 0, result = true;
-    // Recursively compare objects and arrays.
-    if (className == '[object Array]') {
-      // Compare array lengths to determine if a deep comparison is necessary.
-      size = a.length;
-      result = size == b.length;
-      if (result) {
-        // Deep compare the contents, ignoring non-numeric properties.
-        while (size--) {
-          if (!(result = eq(a[size], b[size], aStack, bStack))) break;
-        }
-      }
-    } else {
-      // Deep compare objects.
-      for (var key in a) {
-        if (_.has(a, key)) {
-          // Count the expected number of properties.
-          size++;
-          // Deep compare each member.
-          if (!(result = _.has(b, key) && eq(a[key], b[key], aStack, bStack))) break;
-        }
-      }
-      // Ensure that both objects contain the same number of properties.
-      if (result) {
-        for (key in b) {
-          if (_.has(b, key) && !(size--)) break;
-        }
-        result = !size;
-      }
-    }
-    // Remove the first object from the stack of traversed objects.
-    aStack.pop();
-    bStack.pop();
-    return result;
-  };
-
-  // Perform a deep comparison to check if two objects are equal.
-  _.isEqual = function(a, b) {
-    return eq(a, b, [], []);
-  };
-
-  // Is a given array, string, or object empty?
-  // An "empty" object has no enumerable own-properties.
-  _.isEmpty = function(obj) {
-    if (obj == null) return true;
-    if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
-    for (var key in obj) if (_.has(obj, key)) return false;
-    return true;
-  };
-
-  // Is a given value a DOM element?
-  _.isElement = function(obj) {
-    return !!(obj && obj.nodeType === 1);
-  };
-
-  // Is a given value an array?
-  // Delegates to ECMA5's native Array.isArray
-  _.isArray = nativeIsArray || function(obj) {
-    return toString.call(obj) == '[object Array]';
-  };
-
-  // Is a given variable an object?
-  _.isObject = function(obj) {
-    return obj === Object(obj);
-  };
-
-  // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp.
-  each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) {
-    _['is' + name] = function(obj) {
-      return toString.call(obj) == '[object ' + name + ']';
-    };
-  });
-
-  // Define a fallback version of the method in browsers (ahem, IE), where
-  // there isn't any inspectable "Arguments" type.
-  if (!_.isArguments(arguments)) {
-    _.isArguments = function(obj) {
-      return !!(obj && _.has(obj, 'callee'));
-    };
-  }
-
-  // Optimize `isFunction` if appropriate.
-  if (typeof (/./) !== 'function') {
-    _.isFunction = function(obj) {
-      return typeof obj === 'function';
-    };
-  }
-
-  // Is a given object a finite number?
-  _.isFinite = function(obj) {
-    return isFinite(obj) && !isNaN(parseFloat(obj));
-  };
-
-  // Is the given value `NaN`? (NaN is the only number which does not equal itself).
-  _.isNaN = function(obj) {
-    return _.isNumber(obj) && obj != +obj;
-  };
-
-  // Is a given value a boolean?
-  _.isBoolean = function(obj) {
-    return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
-  };
-
-  // Is a given value equal to null?
-  _.isNull = function(obj) {
-    return obj === null;
-  };
-
-  // Is a given variable undefined?
-  _.isUndefined = function(obj) {
-    return obj === void 0;
-  };
-
-  // Shortcut function for checking if an object has a given property directly
-  // on itself (in other words, not on a prototype).
-  _.has = function(obj, key) {
-    return hasOwnProperty.call(obj, key);
-  };
-
-  // Utility Functions
-  // -----------------
-
-  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
-  // previous owner. Returns a reference to the Underscore object.
-  _.noConflict = function() {
-    root._ = previousUnderscore;
-    return this;
-  };
-
-  // Keep the identity function around for default iterators.
-  _.identity = function(value) {
-    return value;
-  };
-
-  // Run a function **n** times.
-  _.times = function(n, iterator, context) {
-    var accum = Array(Math.max(0, n));
-    for (var i = 0; i < n; i++) accum[i] = iterator.call(context, i);
-    return accum;
-  };
-
-  // Return a random integer between min and max (inclusive).
-  _.random = function(min, max) {
-    if (max == null) {
-      max = min;
-      min = 0;
-    }
-    return min + Math.floor(Math.random() * (max - min + 1));
-  };
-
-  // List of HTML entities for escaping.
-  var entityMap = {
-    escape: {
-      '&': '&amp;',
-      '<': '&lt;',
-      '>': '&gt;',
-      '"': '&quot;',
-      "'": '&#x27;',
-      '/': '&#x2F;'
-    }
-  };
-  entityMap.unescape = _.invert(entityMap.escape);
-
-  // Regexes containing the keys and values listed immediately above.
-  var entityRegexes = {
-    escape:   new RegExp('[' + _.keys(entityMap.escape).join('') + ']', 'g'),
-    unescape: new RegExp('(' + _.keys(entityMap.unescape).join('|') + ')', 'g')
-  };
-
-  // Functions for escaping and unescaping strings to/from HTML interpolation.
-  _.each(['escape', 'unescape'], function(method) {
-    _[method] = function(string) {
-      if (string == null) return '';
-      return ('' + string).replace(entityRegexes[method], function(match) {
-        return entityMap[method][match];
-      });
-    };
-  });
-
-  // If the value of the named `property` is a function then invoke it with the
-  // `object` as context; otherwise, return it.
-  _.result = function(object, property) {
-    if (object == null) return void 0;
-    var value = object[property];
-    return _.isFunction(value) ? value.call(object) : value;
-  };
-
-  // Add your own custom functions to the Underscore object.
-  _.mixin = function(obj) {
-    each(_.functions(obj), function(name){
-      var func = _[name] = obj[name];
-      _.prototype[name] = function() {
-        var args = [this._wrapped];
-        push.apply(args, arguments);
-        return result.call(this, func.apply(_, args));
-      };
-    });
-  };
-
-  // Generate a unique integer id (unique within the entire client session).
-  // Useful for temporary DOM ids.
-  var idCounter = 0;
-  _.uniqueId = function(prefix) {
-    var id = ++idCounter + '';
-    return prefix ? prefix + id : id;
-  };
-
-  // By default, Underscore uses ERB-style template delimiters, change the
-  // following template settings to use alternative delimiters.
-  _.templateSettings = {
-    evaluate    : /<%([\s\S]+?)%>/g,
-    interpolate : /<%=([\s\S]+?)%>/g,
-    escape      : /<%-([\s\S]+?)%>/g
-  };
-
-  // When customizing `templateSettings`, if you don't want to define an
-  // interpolation, evaluation or escaping regex, we need one that is
-  // guaranteed not to match.
-  var noMatch = /(.)^/;
-
-  // Certain characters need to be escaped so that they can be put into a
-  // string literal.
-  var escapes = {
-    "'":      "'",
-    '\\':     '\\',
-    '\r':     'r',
-    '\n':     'n',
-    '\t':     't',
-    '\u2028': 'u2028',
-    '\u2029': 'u2029'
-  };
-
-  var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g;
-
-  // JavaScript micro-templating, similar to John Resig's implementation.
-  // Underscore templating handles arbitrary delimiters, preserves whitespace,
-  // and correctly escapes quotes within interpolated code.
-  _.template = function(text, data, settings) {
-    var render;
-    settings = _.defaults({}, settings, _.templateSettings);
-
-    // Combine delimiters into one regular expression via alternation.
-    var matcher = new RegExp([
-      (settings.escape || noMatch).source,
-      (settings.interpolate || noMatch).source,
-      (settings.evaluate || noMatch).source
-    ].join('|') + '|$', 'g');
-
-    // Compile the template source, escaping string literals appropriately.
-    var index = 0;
-    var source = "__p+='";
-    text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
-      source += text.slice(index, offset)
-        .replace(escaper, function(match) { return '\\' + escapes[match]; });
-
-      if (escape) {
-        source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
-      }
-      if (interpolate) {
-        source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
-      }
-      if (evaluate) {
-        source += "';\n" + evaluate + "\n__p+='";
-      }
-      index = offset + match.length;
-      return match;
-    });
-    source += "';\n";
-
-    // If a variable is not specified, place data values in local scope.
-    if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';
-
-    source = "var __t,__p='',__j=Array.prototype.join," +
-      "print=function(){__p+=__j.call(arguments,'');};\n" +
-      source + "return __p;\n";
-
-    try {
-      render = new Function(settings.variable || 'obj', '_', source);
-    } catch (e) {
-      e.source = source;
-      throw e;
-    }
-
-    if (data) return render(data, _);
-    var template = function(data) {
-      return render.call(this, data, _);
-    };
-
-    // Provide the compiled function source as a convenience for precompilation.
-    template.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}';
-
-    return template;
-  };
-
-  // Add a "chain" function, which will delegate to the wrapper.
-  _.chain = function(obj) {
-    return _(obj).chain();
-  };
-
-  // OOP
-  // ---------------
-  // If Underscore is called as a function, it returns a wrapped object that
-  // can be used OO-style. This wrapper holds altered versions of all the
-  // underscore functions. Wrapped objects may be chained.
-
-  // Helper function to continue chaining intermediate results.
-  var result = function(obj) {
-    return this._chain ? _(obj).chain() : obj;
-  };
-
-  // Add all of the Underscore functions to the wrapper object.
-  _.mixin(_);
-
-  // Add all mutator Array functions to the wrapper.
-  each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
-    var method = ArrayProto[name];
-    _.prototype[name] = function() {
-      var obj = this._wrapped;
-      method.apply(obj, arguments);
-      if ((name == 'shift' || name == 'splice') && obj.length === 0) delete obj[0];
-      return result.call(this, obj);
-    };
-  });
-
-  // Add all accessor Array functions to the wrapper.
-  each(['concat', 'join', 'slice'], function(name) {
-    var method = ArrayProto[name];
-    _.prototype[name] = function() {
-      return result.call(this, method.apply(this._wrapped, arguments));
-    };
-  });
-
-  _.extend(_.prototype, {
-
-    // Start chaining a wrapped Underscore object.
-    chain: function() {
-      this._chain = true;
-      return this;
-    },
-
-    // Extracts the result from a wrapped and chained object.
-    value: function() {
-      return this._wrapped;
-    }
-
-  });
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.jshintignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.jshintignore b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.jshintignore
deleted file mode 100644
index aa916f8..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.jshintignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-test/dir
-test/comparison

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.npmignore
deleted file mode 100644
index 042ccf2..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-*~

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.travis.yml b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.travis.yml
deleted file mode 100644
index 58f2371..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.6
-  - 0.8
-  - 0.10

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/license
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/license b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/license
deleted file mode 100644
index 4e2b3b9..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/license
+++ /dev/null
@@ -1,10 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2012 Ryan Day
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/package.json b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/package.json
deleted file mode 100644
index 4ca4d7c..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-  "name": "walkdir",
-  "description": "Find files simply. Walks a directory tree emitting events based on what it finds. Presents a familliar callback/emitter/a+sync interface. Walk a tree of any depth.",
-  "version": "0.0.7",
-  "author": {
-    "name": "Ryan Day",
-    "email": "soldair@gmail.com"
-  },
-  "keywords": [
-    "find",
-    "walk",
-    "tree",
-    "files",
-    "fs"
-  ],
-  "main": "./walkdir.js",
-  "homepage": "http://github.com/soldair/node-walkdir",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/soldair/node-walkdir.git"
-  },
-  "scripts": {
-    "test": "./test.sh"
-  },
-  "devDependencies": {
-    "tap": "*",
-    "jshint": "0.5.x"
-  },
-  "engines": {
-    "node": ">=0.6.0"
-  },
-  "license": "MIT/X11",
-  "contributors": [
-    {
-      "name": "tjfontaine"
-    }
-  ],
-  "readme": "[![Build Status](https://secure.travis-ci.org/soldair/node-walkdir.png)](http://travis-ci.org/soldair/node-walkdir)\n \n## walkdir\n\nFind files. Walks a directory tree emitting events based on what it finds. Presents a familliar callback/emitter/sync interface. Walk a tree of any depth. This is a performant option any pull requests to make it more so will be talken into consderation.. \n\n## Example\n\n```js\n\nvar walk = require('walkdir');\n\n//async with path callback \n\nwalk('../',function(path,stat){\n  console.log('found: ',path);\n});\n\n//use async emitter to capture more events\n\nvar emitter = walk('../');\n\nemitter.on('file',function(filename,stat){\n  console.log('file from emitter: ', filename);\n});\n\n\n//sync with callback\n\nwalk.sync('../',function(path,stat){\n  console.log('found sync:',path);\n});\n\n//sync just need paths\n\nvar paths = walk.sync('../');\nconsole.log('found paths sync: ',paths);\n\n```\n\n\n## install\n\n\tnpm install walkdir\n\
 n## arguments\n\nwalkdir(path, [options], [callback])\nwalkdir.sync(path, [options], [callback]);\n\n- path\n  - the starting point of your directory walk\n\n- options. supported options are\n  - general\n\n\t```js\n\t{\n\t\"follow_symlinks\":false, // default is off \n\t\"no_recurse\":false,      // only recurse one level deep\n\t\"max_depth\":undefined    // only recurse down to max_depth. if you need more than no_recurse\n\t}\n\t```\n\n  - sync only\n\n\t```js\n\t{\n\t\"return_object\":false, // if true the sync return will be in {path:stat} format instead of [path,path,...]\n\t\"no_return\":false, // if true null will be returned and no array or object will be created with found paths. useful for large listings\n\t}\n\t```\n\n- callback\n  - this is bound to the path event of the emitter. its optional in all cases.\n\n\t```js\n\tcallback(path,stat)\n\t```\n\n## events\n\nnon error type events are emitted with (path,stat). stat is an instanceof fs.Stats\n\n###path\nfired for ever
 ything\n\n###file\nfired only for regular files\n\n###directory\nfired only for directories\n\n###link\nfired when a symbolic link is found\n\n###end\nfired when the entire tree has been read and emitted.\n\n###socket\nfired when a socket descriptor is found\n\n###fifo\nfired when a fifo is found\n\n###characterdevice\nfired when a character device is found\n\n###blockdevice\nfired when a block device is found\n\n###targetdirectory\nfired for the stat of the path you provided as the first argument. is is only fired if it is a directory.\n\n###empty\nfired for empty directory\n\n## error events\nerror type events are emitted with (path,error). error being the error object returned from an fs call or other opperation.\n\n###error\nif the target path cannot be read an error event is emitted. this is the only failure case.\n\n###fail\nwhen stat or read fails on a path somewhere in the walk and it is not your target path you get a fail event instead of error.\nThis is handy if you want t
 o find places you dont have access too.\n\n## notes\nthe async emitter returned supports 3 methods\n\n###end\n  stop a walk in progress\n\n###pause\n  pause the walk. no more events will be emitted until resume\n\n###resume\n  resume the walk\n\n### cancel a walk in progress\n  ```js\n  //cancel a walk in progress within callback.\n\n  var walk = require('walkdir');\n  walk('../',function(path,stat){\n    this.end();\n  });\n\n  //cancel a walk in progress with emitter handle\n  var walk = require('walkdir');\n  var emitter = walk('../');\n\n  doSomethingAsync(function(){\n\temitter.end();\n  })\n  ```\n\n## thanks\nthanks to substack. the interface for this module is based off of node-findit\n\n",
-  "readmeFilename": "readme.md",
-  "bugs": {
-    "url": "https://github.com/soldair/node-walkdir/issues"
-  },
-  "_id": "walkdir@0.0.7",
-  "_from": "walkdir@>= 0.0.1"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/readme.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/readme.md b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/readme.md
deleted file mode 100644
index 1b359de..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/readme.md
+++ /dev/null
@@ -1,160 +0,0 @@
-[![Build Status](https://secure.travis-ci.org/soldair/node-walkdir.png)](http://travis-ci.org/soldair/node-walkdir)
- 
-## walkdir
-
-Find files. Walks a directory tree emitting events based on what it finds. Presents a familliar callback/emitter/sync interface. Walk a tree of any depth. This is a performant option any pull requests to make it more so will be talken into consderation.. 
-
-## Example
-
-```js
-
-var walk = require('walkdir');
-
-//async with path callback 
-
-walk('../',function(path,stat){
-  console.log('found: ',path);
-});
-
-//use async emitter to capture more events
-
-var emitter = walk('../');
-
-emitter.on('file',function(filename,stat){
-  console.log('file from emitter: ', filename);
-});
-
-
-//sync with callback
-
-walk.sync('../',function(path,stat){
-  console.log('found sync:',path);
-});
-
-//sync just need paths
-
-var paths = walk.sync('../');
-console.log('found paths sync: ',paths);
-
-```
-
-
-## install
-
-	npm install walkdir
-
-## arguments
-
-walkdir(path, [options], [callback])
-walkdir.sync(path, [options], [callback]);
-
-- path
-  - the starting point of your directory walk
-
-- options. supported options are
-  - general
-
-	```js
-	{
-	"follow_symlinks":false, // default is off 
-	"no_recurse":false,      // only recurse one level deep
-	"max_depth":undefined    // only recurse down to max_depth. if you need more than no_recurse
-	}
-	```
-
-  - sync only
-
-	```js
-	{
-	"return_object":false, // if true the sync return will be in {path:stat} format instead of [path,path,...]
-	"no_return":false, // if true null will be returned and no array or object will be created with found paths. useful for large listings
-	}
-	```
-
-- callback
-  - this is bound to the path event of the emitter. its optional in all cases.
-
-	```js
-	callback(path,stat)
-	```
-
-## events
-
-non error type events are emitted with (path,stat). stat is an instanceof fs.Stats
-
-###path
-fired for everything
-
-###file
-fired only for regular files
-
-###directory
-fired only for directories
-
-###link
-fired when a symbolic link is found
-
-###end
-fired when the entire tree has been read and emitted.
-
-###socket
-fired when a socket descriptor is found
-
-###fifo
-fired when a fifo is found
-
-###characterdevice
-fired when a character device is found
-
-###blockdevice
-fired when a block device is found
-
-###targetdirectory
-fired for the stat of the path you provided as the first argument. is is only fired if it is a directory.
-
-###empty
-fired for empty directory
-
-## error events
-error type events are emitted with (path,error). error being the error object returned from an fs call or other opperation.
-
-###error
-if the target path cannot be read an error event is emitted. this is the only failure case.
-
-###fail
-when stat or read fails on a path somewhere in the walk and it is not your target path you get a fail event instead of error.
-This is handy if you want to find places you dont have access too.
-
-## notes
-the async emitter returned supports 3 methods
-
-###end
-  stop a walk in progress
-
-###pause
-  pause the walk. no more events will be emitted until resume
-
-###resume
-  resume the walk
-
-### cancel a walk in progress
-  ```js
-  //cancel a walk in progress within callback.
-
-  var walk = require('walkdir');
-  walk('../',function(path,stat){
-    this.end();
-  });
-
-  //cancel a walk in progress with emitter handle
-  var walk = require('walkdir');
-  var emitter = walk('../');
-
-  doSomethingAsync(function(){
-	emitter.end();
-  })
-  ```
-
-## thanks
-thanks to substack. the interface for this module is based off of node-findit
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test.sh
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test.sh b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test.sh
deleted file mode 100755
index 14679f8..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-./node_modules/jshint/bin/hint ./*
-hint=$?
-if [ $hint != 0 ]; then
-	echo "< script runner stopped jshint failed >";
-	exit $hint
-else
-	echo "< jshint passed >";
-fi
-
-./node_modules/tap/bin/tap.js ./test/*.js
-unit=$?
-if [ $unit != 0 ]; then
-	echo "< script runner stopped unit tests failed >";
-	exit $unit
-else
-	echo "< unit tests passed >";
-fi
-


[19/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/package.json b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/package.json
deleted file mode 100644
index a347405..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me"
-  },
-  "name": "minimatch",
-  "description": "a glob matcher in javascript",
-  "version": "0.2.12",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/minimatch.git"
-  },
-  "main": "minimatch.js",
-  "scripts": {
-    "test": "tap test"
-  },
-  "engines": {
-    "node": "*"
-  },
-  "dependencies": {
-    "lru-cache": "2",
-    "sigmund": "~1.0.0"
-  },
-  "devDependencies": {
-    "tap": ""
-  },
-  "license": {
-    "type": "MIT",
-    "url": "http://github.com/isaacs/minimatch/raw/master/LICENSE"
-  },
-  "readme": "# minimatch\n\nA minimal matching utility.\n\n[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require(\"minimatch\")\n\nminimatch(\"bar.foo\", \"*.foo\") // true!\nminimatch(\"bar.foo\", \"*.bar\") // false!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* \"Globstar\" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` charac
 ter, then it is negated.  Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally.  This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything.  Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set.  This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not.  **Note that this is different from the way that `**` is\nhandled by ruby's `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\n
 then minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes.  For example,\n`minimatch.match([], \"\\\\*a\\\\?\")` will return `\"\\\\*a\\\\?\"` rather than\n`\"*a?\"`.  This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern.  Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity.  Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require(\"minimatch\").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The opt
 ions supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n  Each row in the\n  array corresponds to a brace-expanded pattern.  Each item in the row\n  corresponds to a single path-part.  For example, the pattern\n  `{a,b/c}/d` would expand to a set of patterns like:\n\n        [ [ a, d ]\n        , [ b, c, d ] ]\n\n    If a portion of the pattern doesn't have any \"magic\" in it\n    (that is, it's something like `\"foo\"` rather than `fo*o?`), then it\n    will be left as a string rather than converted to a regular\n    expression.\n\n* `regexp` Created by the `makeRe` method.  A single regular expression\n  expressing the entire pattern.  This is useful in cases where you wish\n  to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `\"\"`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if 
 necessary, and return it.\n  Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n  false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n  filename, and match it against a single row in the `regExpSet`.  This\n  method is mainly for internal use, but is exposed so that it can be\n  used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items.  So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export.  Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, \"*.js\", { matchBase: true })\n```\n\n### minim
 atch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`.  Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter(\"*.js\", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob.  If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, \"*.js\", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not expli
 citly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable \"extglob\" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself.  When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes.  For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/minimatch/issues"
-  },
-  "_id": "minimatch@0.2.12",
-  "_from": "minimatch@~0.2.11"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/basic.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/basic.js
deleted file mode 100644
index ae7ac73..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/basic.js
+++ /dev/null
@@ -1,399 +0,0 @@
-// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test
-//
-// TODO: Some of these tests do very bad things with backslashes, and will
-// most likely fail badly on windows.  They should probably be skipped.
-
-var tap = require("tap")
-  , globalBefore = Object.keys(global)
-  , mm = require("../")
-  , files = [ "a", "b", "c", "d", "abc"
-            , "abd", "abe", "bb", "bcd"
-            , "ca", "cb", "dd", "de"
-            , "bdir/", "bdir/cfile"]
-  , next = files.concat([ "a-b", "aXb"
-                        , ".x", ".y" ])
-
-
-var patterns =
-  [ "http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test"
-  , ["a*", ["a", "abc", "abd", "abe"]]
-  , ["X*", ["X*"], {nonull: true}]
-
-  // allow null glob expansion
-  , ["X*", []]
-
-  // isaacs: Slightly different than bash/sh/ksh
-  // \\* is not un-escaped to literal "*" in a failed match,
-  // but it does make it get treated as a literal star
-  , ["\\*", ["\\*"], {nonull: true}]
-  , ["\\**", ["\\**"], {nonull: true}]
-  , ["\\*\\*", ["\\*\\*"], {nonull: true}]
-
-  , ["b*/", ["bdir/"]]
-  , ["c*", ["c", "ca", "cb"]]
-  , ["**", files]
-
-  , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}]
-  , ["s/\\..*//", ["s/\\..*//"], {nonull: true}]
-
-  , "legendary larry crashes bashes"
-  , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}]
-  , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}]
-
-  , "character classes"
-  , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]]
-  , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd",
-     "bdir/", "ca", "cb", "dd", "de"]]
-  , ["a*[^c]", ["abd", "abe"]]
-  , function () { files.push("a-b", "aXb") }
-  , ["a[X-]b", ["a-b", "aXb"]]
-  , function () { files.push(".x", ".y") }
-  , ["[^a-c]*", ["d", "dd", "de"]]
-  , function () { files.push("a*b/", "a*b/ooo") }
-  , ["a\\*b/*", ["a*b/ooo"]]
-  , ["a\\*?/*", ["a*b/ooo"]]
-  , ["*\\\\!*", [], {null: true}, ["echo !7"]]
-  , ["*\\!*", ["echo !7"], null, ["echo !7"]]
-  , ["*.\\*", ["r.*"], null, ["r.*"]]
-  , ["a[b]c", ["abc"]]
-  , ["a[\\b]c", ["abc"]]
-  , ["a?c", ["abc"]]
-  , ["a\\*c", [], {null: true}, ["abc"]]
-  , ["", [""], { null: true }, [""]]
-
-  , "http://www.opensource.apple.com/source/bash/bash-23/" +
-    "bash/tests/glob-test"
-  , function () { files.push("man/", "man/man1/", "man/man1/bash.1") }
-  , ["*/man*/bash.*", ["man/man1/bash.1"]]
-  , ["man/man1/bash.1", ["man/man1/bash.1"]]
-  , ["a***c", ["abc"], null, ["abc"]]
-  , ["a*****?c", ["abc"], null, ["abc"]]
-  , ["?*****??", ["abc"], null, ["abc"]]
-  , ["*****??", ["abc"], null, ["abc"]]
-  , ["?*****?c", ["abc"], null, ["abc"]]
-  , ["?***?****c", ["abc"], null, ["abc"]]
-  , ["?***?****?", ["abc"], null, ["abc"]]
-  , ["?***?****", ["abc"], null, ["abc"]]
-  , ["*******c", ["abc"], null, ["abc"]]
-  , ["*******?", ["abc"], null, ["abc"]]
-  , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["[-abc]", ["-"], null, ["-"]]
-  , ["[abc-]", ["-"], null, ["-"]]
-  , ["\\", ["\\"], null, ["\\"]]
-  , ["[\\\\]", ["\\"], null, ["\\"]]
-  , ["[[]", ["["], null, ["["]]
-  , ["[", ["["], null, ["["]]
-  , ["[*", ["[abc"], null, ["[abc"]]
-  , "a right bracket shall lose its special meaning and\n" +
-    "represent itself in a bracket expression if it occurs\n" +
-    "first in the list.  -- POSIX.2 2.8.3.2"
-  , ["[]]", ["]"], null, ["]"]]
-  , ["[]-]", ["]"], null, ["]"]]
-  , ["[a-\z]", ["p"], null, ["p"]]
-  , ["??**********?****?", [], { null: true }, ["abc"]]
-  , ["??**********?****c", [], { null: true }, ["abc"]]
-  , ["?************c****?****", [], { null: true }, ["abc"]]
-  , ["*c*?**", [], { null: true }, ["abc"]]
-  , ["a*****c*?**", [], { null: true }, ["abc"]]
-  , ["a********???*******", [], { null: true }, ["abc"]]
-  , ["[]", [], { null: true }, ["a"]]
-  , ["[abc", [], { null: true }, ["["]]
-
-  , "nocase tests"
-  , ["XYZ", ["xYz"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-  , ["ab*", ["ABC"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-  , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  , "onestar/twostar"
-  , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]]
-  , ["{/?,*}", ["/a", "bb"], {null: true}
-    , ["/a", "/b/b", "/a/b/c", "bb"]]
-
-  , "dots should not match unless requested"
-  , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]]
-
-  // .. and . can only match patterns starting with .,
-  // even when options.dot is set.
-  , function () {
-      files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"]
-    }
-  , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}]
-  , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}]
-  , ["a/*/b", ["a/c/b"], {dot:false}]
-  , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}]
-
-
-  // this also tests that changing the options needs
-  // to change the cache key, even if the pattern is
-  // the same!
-  , ["**", ["a/b","a/.d",".a/.d"], { dot: true }
-    , [ ".a/.d", "a/.d", "a/b"]]
-
-  , "paren sets cannot contain slashes"
-  , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]]
-
-  // brace sets trump all else.
-  //
-  // invalid glob pattern.  fails on bash4 and bsdglob.
-  // however, in this implementation, it's easier just
-  // to do the intuitive thing, and let brace-expansion
-  // actually come before parsing any extglob patterns,
-  // like the documentation seems to say.
-  //
-  // XXX: if anyone complains about this, either fix it
-  // or tell them to grow up and stop complaining.
-  //
-  // bash/bsdglob says this:
-  // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]]
-  // but we do this instead:
-  , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]]
-
-  // test partial parsing in the presence of comment/negation chars
-  , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]]
-  , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]]
-
-  // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped.
-  , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g"
-    , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"]
-    , {}
-    , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]]
-
-
-  // crazy nested {,,} and *(||) tests.
-  , function () {
-      files = [ "a", "b", "c", "d"
-              , "ab", "ac", "ad"
-              , "bc", "cb"
-              , "bc,d", "c,db", "c,d"
-              , "d)", "(b|c", "*(b|c"
-              , "b|c", "b|cc", "cb|c"
-              , "x(a|b|c)", "x(a|c)"
-              , "(a|b|c)", "(a|c)"]
-    }
-  , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]]
-  , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]]
-  // a
-  // *(b|c)
-  // *(b|d)
-  , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]]
-  , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]]
-
-
-  // test various flag settings.
-  , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"]
-    , { noext: true } ]
-  , ["a?b", ["x/y/acb", "acb/"], {matchBase: true}
-    , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ]
-  , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]]
-
-
-  // begin channelling Boole and deMorgan...
-  , "negation tests"
-  , function () {
-      files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"]
-    }
-
-  // anything that is NOT a* matches.
-  , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]]
-
-  // anything that IS !a* matches.
-  , ["!a*", ["!ab", "!abc"], {nonegate: true}]
-
-  // anything that IS a* matches
-  , ["!!a*", ["a!b"]]
-
-  // anything that is NOT !a* matches
-  , ["!\\!a*", ["a!b", "d", "e", "\\!a"]]
-
-  // negation nestled within a pattern
-  , function () {
-      files = [ "foo.js"
-              , "foo.bar"
-              // can't match this one without negative lookbehind.
-              , "foo.js.js"
-              , "blar.js"
-              , "foo."
-              , "boo.js.boo" ]
-    }
-  , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ]
-
-  // https://github.com/isaacs/minimatch/issues/5
-  , function () {
-      files = [ 'a/b/.x/c'
-              , 'a/b/.x/c/d'
-              , 'a/b/.x/c/d/e'
-              , 'a/b/.x'
-              , 'a/b/.x/'
-              , 'a/.x/b'
-              , '.x'
-              , '.x/'
-              , '.x/a'
-              , '.x/a/b'
-              , 'a/.x/b/.x/c'
-              , '.x/.x' ]
-  }
-  , ["**/.x/**", [ '.x/'
-                 , '.x/a'
-                 , '.x/a/b'
-                 , 'a/.x/b'
-                 , 'a/b/.x/'
-                 , 'a/b/.x/c'
-                 , 'a/b/.x/c/d'
-                 , 'a/b/.x/c/d/e' ] ]
-
-  ]
-
-var regexps =
-  [ '/^(?:(?=.)a[^/]*?)$/',
-    '/^(?:(?=.)X[^/]*?)$/',
-    '/^(?:(?=.)X[^/]*?)$/',
-    '/^(?:\\*)$/',
-    '/^(?:(?=.)\\*[^/]*?)$/',
-    '/^(?:\\*\\*)$/',
-    '/^(?:(?=.)b[^/]*?\\/)$/',
-    '/^(?:(?=.)c[^/]*?)$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/',
-    '/^(?:\\.\\.\\/(?!\\.)(?=.)[^/]*?\\/)$/',
-    '/^(?:s\\/(?=.)\\.\\.[^/]*?\\/)$/',
-    '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/1\\/)$/',
-    '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/\u0001\\/)$/',
-    '/^(?:(?!\\.)(?=.)[a-c]b[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[a-y][^/]*?[^c])$/',
-    '/^(?:(?=.)a[^/]*?[^c])$/',
-    '/^(?:(?=.)a[X-]b)$/',
-    '/^(?:(?!\\.)(?=.)[^a-c][^/]*?)$/',
-    '/^(?:a\\*b\\/(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?=.)a\\*[^/]\\/(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\\\\\![^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\![^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\.\\*)$/',
-    '/^(?:(?=.)a[b]c)$/',
-    '/^(?:(?=.)a[b]c)$/',
-    '/^(?:(?=.)a[^/]c)$/',
-    '/^(?:a\\*c)$/',
-    'false',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\/(?=.)man[^/]*?\\/(?=.)bash\\.[^/]*?)$/',
-    '/^(?:man\\/man1\\/bash\\.1)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?=.)a[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k[^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[-abc])$/',
-    '/^(?:(?!\\.)(?=.)[abc-])$/',
-    '/^(?:\\\\)$/',
-    '/^(?:(?!\\.)(?=.)[\\\\])$/',
-    '/^(?:(?!\\.)(?=.)[\\[])$/',
-    '/^(?:\\[)$/',
-    '/^(?:(?=.)\\[(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[\\]])$/',
-    '/^(?:(?!\\.)(?=.)[\\]-])$/',
-    '/^(?:(?!\\.)(?=.)[a-z])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:\\[\\])$/',
-    '/^(?:\\[abc)$/',
-    '/^(?:(?=.)XYZ)$/i',
-    '/^(?:(?=.)ab[^/]*?)$/i',
-    '/^(?:(?!\\.)(?=.)[ia][^/][ck])$/i',
-    '/^(?:\\/(?!\\.)(?=.)[^/]*?|(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:\\/(?!\\.)(?=.)[^/]|(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/',
-    '/^(?:a\\/(?!(?:^|\\/)\\.{1,2}(?:$|\\/))(?=.)[^/]*?\\/b)$/',
-    '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/',
-    '/^(?:a\\/(?!\\.)(?=.)[^/]*?\\/b)$/',
-    '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/',
-    '/^(?:(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\/b\\))$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:(?=.)\\[(?=.)\\!a[^/]*?)$/',
-    '/^(?:(?=.)\\[(?=.)#a[^/]*?)$/',
-    '/^(?:(?=.)\\+\\(a\\|[^/]*?\\|c\\\\\\\\\\|d\\\\\\\\\\|e\\\\\\\\\\\\\\\\\\|f\\\\\\\\\\\\\\\\\\|g)$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:a|(?!\\.)(?=.)[^/]*?\\(b\\|c|d\\))$/',
-    '/^(?:a|(?!\\.)(?=.)(?:b|c)*|(?!\\.)(?=.)(?:b|d)*)$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b|c)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\|b\\|c\\)|(?!\\.)(?=.)[^/]*?\\(a\\|c\\))$/',
-    '/^(?:(?=.)a[^/]b)$/',
-    '/^(?:(?=.)#[^/]*?)$/',
-    '/^(?!^(?:(?=.)a[^/]*?)$).*$/',
-    '/^(?:(?=.)\\!a[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?)$/',
-    '/^(?!^(?:(?=.)\\!a[^/]*?)$).*$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\.(?:(?!js)[^/]*?))$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?\\/\\.x\\/(?:(?!(?:\\/|^)\\.).)*?)$/' ]
-var re = 0;
-
-tap.test("basic tests", function (t) {
-  var start = Date.now()
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  patterns.forEach(function (c) {
-    if (typeof c === "function") return c()
-    if (typeof c === "string") return t.comment(c)
-
-    var pattern = c[0]
-      , expect = c[1].sort(alpha)
-      , options = c[2] || {}
-      , f = c[3] || files
-      , tapOpts = c[4] || {}
-
-    // options.debug = true
-    var m = new mm.Minimatch(pattern, options)
-    var r = m.makeRe()
-    var expectRe = regexps[re++]
-    tapOpts.re = String(r) || JSON.stringify(r)
-    tapOpts.files = JSON.stringify(f)
-    tapOpts.pattern = pattern
-    tapOpts.set = m.set
-    tapOpts.negated = m.negate
-
-    var actual = mm.match(f, pattern, options)
-    actual.sort(alpha)
-
-    t.equivalent( actual, expect
-                , JSON.stringify(pattern) + " " + JSON.stringify(expect)
-                , tapOpts )
-
-    t.equal(tapOpts.re, expectRe, tapOpts)
-  })
-
-  t.comment("time=" + (Date.now() - start) + "ms")
-  t.end()
-})
-
-tap.test("global leak test", function (t) {
-  var globalAfter = Object.keys(global)
-  t.equivalent(globalAfter, globalBefore, "no new globals, please")
-  t.end()
-})
-
-function alpha (a, b) {
-  return a > b ? 1 : -1
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/brace-expand.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/brace-expand.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/brace-expand.js
deleted file mode 100644
index 7ee278a..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/brace-expand.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var tap = require("tap")
-  , minimatch = require("../")
-
-tap.test("brace expansion", function (t) {
-  // [ pattern, [expanded] ]
-  ; [ [ "a{b,c{d,e},{f,g}h}x{y,z}"
-      , [ "abxy"
-        , "abxz"
-        , "acdxy"
-        , "acdxz"
-        , "acexy"
-        , "acexz"
-        , "afhxy"
-        , "afhxz"
-        , "aghxy"
-        , "aghxz" ] ]
-    , [ "a{1..5}b"
-      , [ "a1b"
-        , "a2b"
-        , "a3b"
-        , "a4b"
-        , "a5b" ] ]
-    , [ "a{b}c", ["a{b}c"] ]
-  ].forEach(function (tc) {
-    var p = tc[0]
-      , expect = tc[1]
-    t.equivalent(minimatch.braceExpand(p), expect, p)
-  })
-  console.error("ending")
-  t.end()
-})
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/caching.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/caching.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/caching.js
deleted file mode 100644
index 0fec4b0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/caching.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var Minimatch = require("../minimatch.js").Minimatch
-var tap = require("tap")
-tap.test("cache test", function (t) {
-  var mm1 = new Minimatch("a?b")
-  var mm2 = new Minimatch("a?b")
-  t.equal(mm1, mm2, "should get the same object")
-  // the lru should drop it after 100 entries
-  for (var i = 0; i < 100; i ++) {
-    new Minimatch("a"+i)
-  }
-  mm2 = new Minimatch("a?b")
-  t.notEqual(mm1, mm2, "cache should have dropped")
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/defaults.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/defaults.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/defaults.js
deleted file mode 100644
index 25f1f60..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/test/defaults.js
+++ /dev/null
@@ -1,274 +0,0 @@
-// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test
-//
-// TODO: Some of these tests do very bad things with backslashes, and will
-// most likely fail badly on windows.  They should probably be skipped.
-
-var tap = require("tap")
-  , globalBefore = Object.keys(global)
-  , mm = require("../")
-  , files = [ "a", "b", "c", "d", "abc"
-            , "abd", "abe", "bb", "bcd"
-            , "ca", "cb", "dd", "de"
-            , "bdir/", "bdir/cfile"]
-  , next = files.concat([ "a-b", "aXb"
-                        , ".x", ".y" ])
-
-tap.test("basic tests", function (t) {
-  var start = Date.now()
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  ; [ "http://www.bashcookbook.com/bashinfo" +
-      "/source/bash-1.14.7/tests/glob-test"
-    , ["a*", ["a", "abc", "abd", "abe"]]
-    , ["X*", ["X*"], {nonull: true}]
-
-    // allow null glob expansion
-    , ["X*", []]
-
-    // isaacs: Slightly different than bash/sh/ksh
-    // \\* is not un-escaped to literal "*" in a failed match,
-    // but it does make it get treated as a literal star
-    , ["\\*", ["\\*"], {nonull: true}]
-    , ["\\**", ["\\**"], {nonull: true}]
-    , ["\\*\\*", ["\\*\\*"], {nonull: true}]
-
-    , ["b*/", ["bdir/"]]
-    , ["c*", ["c", "ca", "cb"]]
-    , ["**", files]
-
-    , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}]
-    , ["s/\\..*//", ["s/\\..*//"], {nonull: true}]
-
-    , "legendary larry crashes bashes"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"
-      , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}]
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"
-      , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}]
-
-    , "character classes"
-    , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]]
-    , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd",
-       "bdir/", "ca", "cb", "dd", "de"]]
-    , ["a*[^c]", ["abd", "abe"]]
-    , function () { files.push("a-b", "aXb") }
-    , ["a[X-]b", ["a-b", "aXb"]]
-    , function () { files.push(".x", ".y") }
-    , ["[^a-c]*", ["d", "dd", "de"]]
-    , function () { files.push("a*b/", "a*b/ooo") }
-    , ["a\\*b/*", ["a*b/ooo"]]
-    , ["a\\*?/*", ["a*b/ooo"]]
-    , ["*\\\\!*", [], {null: true}, ["echo !7"]]
-    , ["*\\!*", ["echo !7"], null, ["echo !7"]]
-    , ["*.\\*", ["r.*"], null, ["r.*"]]
-    , ["a[b]c", ["abc"]]
-    , ["a[\\b]c", ["abc"]]
-    , ["a?c", ["abc"]]
-    , ["a\\*c", [], {null: true}, ["abc"]]
-    , ["", [""], { null: true }, [""]]
-
-    , "http://www.opensource.apple.com/source/bash/bash-23/" +
-      "bash/tests/glob-test"
-    , function () { files.push("man/", "man/man1/", "man/man1/bash.1") }
-    , ["*/man*/bash.*", ["man/man1/bash.1"]]
-    , ["man/man1/bash.1", ["man/man1/bash.1"]]
-    , ["a***c", ["abc"], null, ["abc"]]
-    , ["a*****?c", ["abc"], null, ["abc"]]
-    , ["?*****??", ["abc"], null, ["abc"]]
-    , ["*****??", ["abc"], null, ["abc"]]
-    , ["?*****?c", ["abc"], null, ["abc"]]
-    , ["?***?****c", ["abc"], null, ["abc"]]
-    , ["?***?****?", ["abc"], null, ["abc"]]
-    , ["?***?****", ["abc"], null, ["abc"]]
-    , ["*******c", ["abc"], null, ["abc"]]
-    , ["*******?", ["abc"], null, ["abc"]]
-    , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["[-abc]", ["-"], null, ["-"]]
-    , ["[abc-]", ["-"], null, ["-"]]
-    , ["\\", ["\\"], null, ["\\"]]
-    , ["[\\\\]", ["\\"], null, ["\\"]]
-    , ["[[]", ["["], null, ["["]]
-    , ["[", ["["], null, ["["]]
-    , ["[*", ["[abc"], null, ["[abc"]]
-    , "a right bracket shall lose its special meaning and\n" +
-      "represent itself in a bracket expression if it occurs\n" +
-      "first in the list.  -- POSIX.2 2.8.3.2"
-    , ["[]]", ["]"], null, ["]"]]
-    , ["[]-]", ["]"], null, ["]"]]
-    , ["[a-\z]", ["p"], null, ["p"]]
-    , ["??**********?****?", [], { null: true }, ["abc"]]
-    , ["??**********?****c", [], { null: true }, ["abc"]]
-    , ["?************c****?****", [], { null: true }, ["abc"]]
-    , ["*c*?**", [], { null: true }, ["abc"]]
-    , ["a*****c*?**", [], { null: true }, ["abc"]]
-    , ["a********???*******", [], { null: true }, ["abc"]]
-    , ["[]", [], { null: true }, ["a"]]
-    , ["[abc", [], { null: true }, ["["]]
-
-    , "nocase tests"
-    , ["XYZ", ["xYz"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-    , ["ab*", ["ABC"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-    , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-
-    // [ pattern, [matches], MM opts, files, TAP opts]
-    , "onestar/twostar"
-    , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]]
-    , ["{/?,*}", ["/a", "bb"], {null: true}
-      , ["/a", "/b/b", "/a/b/c", "bb"]]
-
-    , "dots should not match unless requested"
-    , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]]
-
-    // .. and . can only match patterns starting with .,
-    // even when options.dot is set.
-    , function () {
-        files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"]
-      }
-    , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}]
-    , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}]
-    , ["a/*/b", ["a/c/b"], {dot:false}]
-    , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}]
-
-
-    // this also tests that changing the options needs
-    // to change the cache key, even if the pattern is
-    // the same!
-    , ["**", ["a/b","a/.d",".a/.d"], { dot: true }
-      , [ ".a/.d", "a/.d", "a/b"]]
-
-    , "paren sets cannot contain slashes"
-    , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]]
-
-    // brace sets trump all else.
-    //
-    // invalid glob pattern.  fails on bash4 and bsdglob.
-    // however, in this implementation, it's easier just
-    // to do the intuitive thing, and let brace-expansion
-    // actually come before parsing any extglob patterns,
-    // like the documentation seems to say.
-    //
-    // XXX: if anyone complains about this, either fix it
-    // or tell them to grow up and stop complaining.
-    //
-    // bash/bsdglob says this:
-    // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]]
-    // but we do this instead:
-    , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]]
-
-    // test partial parsing in the presence of comment/negation chars
-    , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]]
-    , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]]
-
-    // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped.
-    , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g"
-      , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"]
-      , {}
-      , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]]
-
-
-    // crazy nested {,,} and *(||) tests.
-    , function () {
-        files = [ "a", "b", "c", "d"
-                , "ab", "ac", "ad"
-                , "bc", "cb"
-                , "bc,d", "c,db", "c,d"
-                , "d)", "(b|c", "*(b|c"
-                , "b|c", "b|cc", "cb|c"
-                , "x(a|b|c)", "x(a|c)"
-                , "(a|b|c)", "(a|c)"]
-      }
-    , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]]
-    , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]]
-    // a
-    // *(b|c)
-    // *(b|d)
-    , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]]
-    , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]]
-
-
-    // test various flag settings.
-    , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"]
-      , { noext: true } ]
-    , ["a?b", ["x/y/acb", "acb/"], {matchBase: true}
-      , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ]
-    , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]]
-
-
-    // begin channelling Boole and deMorgan...
-    , "negation tests"
-    , function () {
-        files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"]
-      }
-
-    // anything that is NOT a* matches.
-    , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]]
-
-    // anything that IS !a* matches.
-    , ["!a*", ["!ab", "!abc"], {nonegate: true}]
-
-    // anything that IS a* matches
-    , ["!!a*", ["a!b"]]
-
-    // anything that is NOT !a* matches
-    , ["!\\!a*", ["a!b", "d", "e", "\\!a"]]
-
-    // negation nestled within a pattern
-    , function () {
-        files = [ "foo.js"
-                , "foo.bar"
-                // can't match this one without negative lookbehind.
-                , "foo.js.js"
-                , "blar.js"
-                , "foo."
-                , "boo.js.boo" ]
-      }
-    , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ]
-
-    ].forEach(function (c) {
-      if (typeof c === "function") return c()
-      if (typeof c === "string") return t.comment(c)
-
-      var pattern = c[0]
-        , expect = c[1].sort(alpha)
-        , options = c[2] || {}
-        , f = c[3] || files
-        , tapOpts = c[4] || {}
-
-      // options.debug = true
-      var Class = mm.defaults(options).Minimatch
-      var m = new Class(pattern, {})
-      var r = m.makeRe()
-      tapOpts.re = String(r) || JSON.stringify(r)
-      tapOpts.files = JSON.stringify(f)
-      tapOpts.pattern = pattern
-      tapOpts.set = m.set
-      tapOpts.negated = m.negate
-
-      var actual = mm.match(f, pattern, options)
-      actual.sort(alpha)
-
-      t.equivalent( actual, expect
-                  , JSON.stringify(pattern) + " " + JSON.stringify(expect)
-                  , tapOpts )
-    })
-
-  t.comment("time=" + (Date.now() - start) + "ms")
-  t.end()
-})
-
-tap.test("global leak test", function (t) {
-  var globalAfter = Object.keys(global)
-  t.equivalent(globalAfter, globalBefore, "no new globals, please")
-  t.end()
-})
-
-function alpha (a, b) {
-  return a > b ? 1 : -1
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/package.json b/blackberry10/node_modules/plugman/node_modules/glob/package.json
deleted file mode 100644
index eae8a97..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "name": "glob",
-  "description": "a little globber",
-  "version": "3.2.6",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/node-glob.git"
-  },
-  "main": "glob.js",
-  "engines": {
-    "node": "*"
-  },
-  "dependencies": {
-    "minimatch": "~0.2.11",
-    "inherits": "2"
-  },
-  "devDependencies": {
-    "tap": "~0.4.0",
-    "mkdirp": "0",
-    "rimraf": "1"
-  },
-  "scripts": {
-    "test": "tap test/*.js"
-  },
-  "license": "BSD",
-  "readme": "# Glob\n\nMatch files using the patterns the shell uses, like stars and stuff.\n\nThis is a glob implementation in JavaScript.  It uses the `minimatch`\nlibrary to do its matching.\n\n## Attention: node-glob users!\n\nThe API has changed dramatically between 2.x and 3.x. This library is\nnow 100% JavaScript, and the integer flags have been replaced with an\noptions object.\n\nAlso, there's an event emitter class, proper tests, and all the other\nthings you've come to expect from node modules.\n\nAnd best of all, no compilation!\n\n## Usage\n\n```javascript\nvar glob = require(\"glob\")\n\n// options is optional\nglob(\"**/*.js\", options, function (er, files) {\n  // files is an array of filenames.\n  // If the `nonull` option is set, and nothing\n  // was found, then files is [\"**/*.js\"]\n  // er is an error object or null.\n})\n```\n\n## Features\n\nPlease see the [minimatch\ndocumentation](https://github.com/isaacs/minimatch) for more details.\n\nSupports these glo
 b features:\n\n* Brace Expansion\n* Extended glob matching\n* \"Globstar\" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n* [minimatch documentation](https://github.com/isaacs/minimatch)\n\n## glob(pattern, [options], cb)\n\n* `pattern` {String} Pattern to be matched\n* `options` {Object}\n* `cb` {Function}\n  * `err` {Error | null}\n  * `matches` {Array<String>} filenames found matching the pattern\n\nPerform an asynchronous glob search.\n\n## glob.sync(pattern, [options])\n\n* `pattern` {String} Pattern to be matched\n* `options` {Object}\n* return: {Array<String>} filenames found matching the pattern\n\nPerform a synchronous glob search.\n\n## Class: glob.Glob\n\nCreate a Glob object by instanting the `glob.Glob` class.\n\n```javascript\nvar Glob = require(\"glob\").Glob\nvar mg = new Glob(pattern, options, cb)\n```\n\nIt's an EventEmitter, and starts walking the filesystem to find matches\nimmediately.\n\n### new glob.Glob(pattern, [op
 tions], [cb])\n\n* `pattern` {String} pattern to search for\n* `options` {Object}\n* `cb` {Function} Called when an error occurs, or matches are found\n  * `err` {Error | null}\n  * `matches` {Array<String>} filenames found matching the pattern\n\nNote that if the `sync` flag is set in the options, then matches will\nbe immediately available on the `g.found` member.\n\n### Properties\n\n* `minimatch` The minimatch object that the glob uses.\n* `options` The options object passed in.\n* `error` The error encountered.  When an error is encountered, the\n  glob object is in an undefined state, and should be discarded.\n* `aborted` Boolean which is set to true when calling `abort()`.  There\n  is no way at this time to continue a glob search after aborting, but\n  you can re-use the statCache to avoid having to duplicate syscalls.\n* `statCache` Collection of all the stat results the glob search\n  performed.\n* `cache` Convenience object.  Each field has the following possible\n  value
 s:\n  * `false` - Path does not exist\n  * `true` - Path exists\n  * `1` - Path exists, and is not a directory\n  * `2` - Path exists, and is a directory\n  * `[file, entries, ...]` - Path exists, is a directory, and the\n    array value is the results of `fs.readdir`\n\n### Events\n\n* `end` When the matching is finished, this is emitted with all the\n  matches found.  If the `nonull` option is set, and no match was found,\n  then the `matches` list contains the original pattern.  The matches\n  are sorted, unless the `nosort` flag is set.\n* `match` Every time a match is found, this is emitted with the matched.\n* `error` Emitted when an unexpected error is encountered, or whenever\n  any fs error occurs if `options.strict` is set.\n* `abort` When `abort()` is called, this event is raised.\n\n### Methods\n\n* `abort` Stop the search.\n\n### Options\n\nAll the options that can be passed to Minimatch can also be passed to\nGlob to change pattern matching behavior.  Also, some have b
 een added,\nor have glob-specific ramifications.\n\nAll options are false by default, unless otherwise noted.\n\nAll options are added to the glob object, as well.\n\n* `cwd` The current working directory in which to search.  Defaults\n  to `process.cwd()`.\n* `root` The place where patterns starting with `/` will be mounted\n  onto.  Defaults to `path.resolve(options.cwd, \"/\")` (`/` on Unix\n  systems, and `C:\\` or some such on Windows.)\n* `dot` Include `.dot` files in normal matches and `globstar` matches.\n  Note that an explicit dot in a portion of the pattern will always\n  match dot files.\n* `nomount` By default, a pattern starting with a forward-slash will be\n  \"mounted\" onto the root setting, so that a valid filesystem path is\n  returned.  Set this flag to disable that behavior.\n* `mark` Add a `/` character to directory matches.  Note that this\n  requires additional stat calls.\n* `nosort` Don't sort the results.\n* `stat` Set to true to stat *all* results.  This 
 reduces performance\n  somewhat, and is completely unnecessary, unless `readdir` is presumed\n  to be an untrustworthy indicator of file existence.  It will cause\n  ELOOP to be triggered one level sooner in the case of cyclical\n  symbolic links.\n* `silent` When an unusual error is encountered\n  when attempting to read a directory, a warning will be printed to\n  stderr.  Set the `silent` option to true to suppress these warnings.\n* `strict` When an unusual error is encountered\n  when attempting to read a directory, the process will just continue on\n  in search of other matches.  Set the `strict` option to raise an error\n  in these cases.\n* `cache` See `cache` property above.  Pass in a previously generated\n  cache object to save some fs calls.\n* `statCache` A cache of results of filesystem information, to prevent\n  unnecessary stat calls.  While it should not normally be necessary to\n  set this, you may pass the statCache from one glob() call to the\n  options object of
  another, if you know that the filesystem will not\n  change between calls.  (See \"Race Conditions\" below.)\n* `sync` Perform a synchronous glob search.\n* `nounique` In some cases, brace-expanded patterns can result in the\n  same file showing up multiple times in the result set.  By default,\n  this implementation prevents duplicates in the result set.\n  Set this flag to disable that behavior.\n* `nonull` Set to never return an empty set, instead returning a set\n  containing the pattern itself.  This is the default in glob(3).\n* `nocase` Perform a case-insensitive match.  Note that case-insensitive\n  filesystems will sometimes result in glob returning results that are\n  case-insensitively matched anyway, since readdir and stat will not\n  raise an error.\n* `debug` Set to enable debug logging in minimatch and glob.\n* `globDebug` Set to enable debug logging in glob, but not minimatch.\n\n## Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with th
 e existing standards is a worthwhile\ngoal, some discrepancies exist between node-glob and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` character, then it is negated.  Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally.  This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything.  Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set.  This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but\n`a/
 **b` will not.\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\nthen glob returns the pattern as-provided, rather than\ninterpreting the character escapes.  For example,\n`glob.match([], \"\\\\*a\\\\?\")` will return `\"\\\\*a\\\\?\"` rather than\n`\"*a?\"`.  This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern.  Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity.  Since those two are valid, matching proceeds.\n\n## Windows\n\n**Please only use forward-slashes in glob expressions.**\n\nThough windows uses either `/` or `\\` as its path separator, only `/`\ncharacters are used by this glob implementation.  You must use\nforward-slashes **only** in glob expr
 essions.  Back-slashes will always\nbe interpreted as escape characters, not path separators.\n\nResults from absolute patterns such as `/foo/*` are mounted onto the\nroot setting using `path.join`.  On windows, this will by default result\nin `/foo/*` matching `C:\\foo\\bar.txt`.\n\n## Race Conditions\n\nGlob searching, by its very nature, is susceptible to race conditions,\nsince it relies on directory walking and such.\n\nAs a result, it is possible that a file that exists when glob looks for\nit may have been deleted or modified by the time it returns the result.\n\nAs part of its internal implementation, this program caches all stat\nand readdir calls that it makes, in order to cut down on system\noverhead.  However, this also makes it even more susceptible to races,\nespecially if the cache or statCache objects are reused between glob\ncalls.\n\nUsers are thus advised not to use a glob result as a guarantee of\nfilesystem state in the face of rapid changes.  For the vast major
 ity\nof operations, this is never a problem.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/node-glob/issues"
-  },
-  "_id": "glob@3.2.6",
-  "_from": "glob@3.2.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/00-setup.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/00-setup.js b/blackberry10/node_modules/plugman/node_modules/glob/test/00-setup.js
deleted file mode 100644
index 245afaf..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/00-setup.js
+++ /dev/null
@@ -1,176 +0,0 @@
-// just a little pre-run script to set up the fixtures.
-// zz-finish cleans it up
-
-var mkdirp = require("mkdirp")
-var path = require("path")
-var i = 0
-var tap = require("tap")
-var fs = require("fs")
-var rimraf = require("rimraf")
-
-var files =
-[ "a/.abcdef/x/y/z/a"
-, "a/abcdef/g/h"
-, "a/abcfed/g/h"
-, "a/b/c/d"
-, "a/bc/e/f"
-, "a/c/d/c/b"
-, "a/cb/e/f"
-]
-
-var symlinkTo = path.resolve(__dirname, "a/symlink/a/b/c")
-var symlinkFrom = "../.."
-
-files = files.map(function (f) {
-  return path.resolve(__dirname, f)
-})
-
-tap.test("remove fixtures", function (t) {
-  rimraf(path.resolve(__dirname, "a"), function (er) {
-    t.ifError(er, "remove fixtures")
-    t.end()
-  })
-})
-
-files.forEach(function (f) {
-  tap.test(f, function (t) {
-    var d = path.dirname(f)
-    mkdirp(d, 0755, function (er) {
-      if (er) {
-        t.fail(er)
-        return t.bailout()
-      }
-      fs.writeFile(f, "i like tests", function (er) {
-        t.ifError(er, "make file")
-        t.end()
-      })
-    })
-  })
-})
-
-if (process.platform !== "win32") {
-  tap.test("symlinky", function (t) {
-    var d = path.dirname(symlinkTo)
-    console.error("mkdirp", d)
-    mkdirp(d, 0755, function (er) {
-      t.ifError(er)
-      fs.symlink(symlinkFrom, symlinkTo, "dir", function (er) {
-        t.ifError(er, "make symlink")
-        t.end()
-      })
-    })
-  })
-}
-
-;["foo","bar","baz","asdf","quux","qwer","rewq"].forEach(function (w) {
-  w = "/tmp/glob-test/" + w
-  tap.test("create " + w, function (t) {
-    mkdirp(w, function (er) {
-      if (er)
-        throw er
-      t.pass(w)
-      t.end()
-    })
-  })
-})
-
-
-// generate the bash pattern test-fixtures if possible
-if (process.platform === "win32" || !process.env.TEST_REGEN) {
-  console.error("Windows, or TEST_REGEN unset.  Using cached fixtures.")
-  return
-}
-
-var spawn = require("child_process").spawn;
-var globs =
-  // put more patterns here.
-  // anything that would be directly in / should be in /tmp/glob-test
-  ["test/a/*/+(c|g)/./d"
-  ,"test/a/**/[cg]/../[cg]"
-  ,"test/a/{b,c,d,e,f}/**/g"
-  ,"test/a/b/**"
-  ,"test/**/g"
-  ,"test/a/abc{fed,def}/g/h"
-  ,"test/a/abc{fed/g,def}/**/"
-  ,"test/a/abc{fed/g,def}/**///**/"
-  ,"test/**/a/**/"
-  ,"test/+(a|b|c)/a{/,bc*}/**"
-  ,"test/*/*/*/f"
-  ,"test/**/f"
-  ,"test/a/symlink/a/b/c/a/b/c/a/b/c//a/b/c////a/b/c/**/b/c/**"
-  ,"{./*/*,/tmp/glob-test/*}"
-  ,"{/tmp/glob-test/*,*}" // evil owl face!  how you taunt me!
-  ,"test/a/!(symlink)/**"
-  ]
-var bashOutput = {}
-var fs = require("fs")
-
-globs.forEach(function (pattern) {
-  tap.test("generate fixture " + pattern, function (t) {
-    var cmd = "shopt -s globstar && " +
-              "shopt -s extglob && " +
-              "shopt -s nullglob && " +
-              // "shopt >&2; " +
-              "eval \'for i in " + pattern + "; do echo $i; done\'"
-    var cp = spawn("bash", ["-c", cmd], { cwd: path.dirname(__dirname) })
-    var out = []
-    cp.stdout.on("data", function (c) {
-      out.push(c)
-    })
-    cp.stderr.pipe(process.stderr)
-    cp.on("close", function (code) {
-      out = flatten(out)
-      if (!out)
-        out = []
-      else
-        out = cleanResults(out.split(/\r*\n/))
-
-      bashOutput[pattern] = out
-      t.notOk(code, "bash test should finish nicely")
-      t.end()
-    })
-  })
-})
-
-tap.test("save fixtures", function (t) {
-  var fname = path.resolve(__dirname, "bash-results.json")
-  var data = JSON.stringify(bashOutput, null, 2) + "\n"
-  fs.writeFile(fname, data, function (er) {
-    t.ifError(er)
-    t.end()
-  })
-})
-
-function cleanResults (m) {
-  // normalize discrepancies in ordering, duplication,
-  // and ending slashes.
-  return m.map(function (m) {
-    return m.replace(/\/+/g, "/").replace(/\/$/, "")
-  }).sort(alphasort).reduce(function (set, f) {
-    if (f !== set[set.length - 1]) set.push(f)
-    return set
-  }, []).sort(alphasort).map(function (f) {
-    // de-windows
-    return (process.platform !== 'win32') ? f
-           : f.replace(/^[a-zA-Z]:\\\\/, '/').replace(/\\/g, '/')
-  })
-}
-
-function flatten (chunks) {
-  var s = 0
-  chunks.forEach(function (c) { s += c.length })
-  var out = new Buffer(s)
-  s = 0
-  chunks.forEach(function (c) {
-    c.copy(out, s)
-    s += c.length
-  })
-
-  return out.toString().trim()
-}
-
-function alphasort (a, b) {
-  a = a.toLowerCase()
-  b = b.toLowerCase()
-  return a > b ? 1 : a < b ? -1 : 0
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/bash-comparison.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/bash-comparison.js b/blackberry10/node_modules/plugman/node_modules/glob/test/bash-comparison.js
deleted file mode 100644
index 239ed1a..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/bash-comparison.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// basic test
-// show that it does the same thing by default as the shell.
-var tap = require("tap")
-, child_process = require("child_process")
-, bashResults = require("./bash-results.json")
-, globs = Object.keys(bashResults)
-, glob = require("../")
-, path = require("path")
-
-// run from the root of the project
-// this is usually where you're at anyway, but be sure.
-process.chdir(path.resolve(__dirname, ".."))
-
-function alphasort (a, b) {
-  a = a.toLowerCase()
-  b = b.toLowerCase()
-  return a > b ? 1 : a < b ? -1 : 0
-}
-
-globs.forEach(function (pattern) {
-  var expect = bashResults[pattern]
-  // anything regarding the symlink thing will fail on windows, so just skip it
-  if (process.platform === "win32" &&
-      expect.some(function (m) {
-        return /\/symlink\//.test(m)
-      }))
-    return
-
-  tap.test(pattern, function (t) {
-    glob(pattern, function (er, matches) {
-      if (er)
-        throw er
-
-      // sort and unmark, just to match the shell results
-      matches = cleanResults(matches)
-
-      t.deepEqual(matches, expect, pattern)
-      t.end()
-    })
-  })
-
-  tap.test(pattern + " sync", function (t) {
-    var matches = cleanResults(glob.sync(pattern))
-
-    t.deepEqual(matches, expect, "should match shell")
-    t.end()
-  })
-})
-
-function cleanResults (m) {
-  // normalize discrepancies in ordering, duplication,
-  // and ending slashes.
-  return m.map(function (m) {
-    return m.replace(/\/+/g, "/").replace(/\/$/, "")
-  }).sort(alphasort).reduce(function (set, f) {
-    if (f !== set[set.length - 1]) set.push(f)
-    return set
-  }, []).sort(alphasort).map(function (f) {
-    // de-windows
-    return (process.platform !== 'win32') ? f
-           : f.replace(/^[a-zA-Z]:[\/\\]+/, '/').replace(/[\\\/]+/g, '/')
-  })
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/bash-results.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/bash-results.json b/blackberry10/node_modules/plugman/node_modules/glob/test/bash-results.json
deleted file mode 100644
index 3ffadba..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/bash-results.json
+++ /dev/null
@@ -1,349 +0,0 @@
-{
-  "test/a/*/+(c|g)/./d": [
-    "test/a/b/c/./d"
-  ],
-  "test/a/**/[cg]/../[cg]": [
-    "test/a/abcdef/g/../g",
-    "test/a/abcfed/g/../g",
-    "test/a/b/c/../c",
-    "test/a/c/../c",
-    "test/a/c/d/c/../c",
-    "test/a/symlink/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c"
-  ],
-  "test/a/{b,c,d,e,f}/**/g": [],
-  "test/a/b/**": [
-    "test/a/b",
-    "test/a/b/c",
-    "test/a/b/c/d"
-  ],
-  "test/**/g": [
-    "test/a/abcdef/g",
-    "test/a/abcfed/g"
-  ],
-  "test/a/abc{fed,def}/g/h": [
-    "test/a/abcdef/g/h",
-    "test/a/abcfed/g/h"
-  ],
-  "test/a/abc{fed/g,def}/**/": [
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcfed/g"
-  ],
-  "test/a/abc{fed/g,def}/**///**/": [
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcfed/g"
-  ],
-  "test/**/a/**/": [
-    "test/a",
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcfed",
-    "test/a/abcfed/g",
-    "test/a/b",
-    "test/a/b/c",
-    "test/a/bc",
-    "test/a/bc/e",
-    "test/a/c",
-    "test/a/c/d",
-    "test/a/c/d/c",
-    "test/a/cb",
-    "test/a/cb/e",
-    "test/a/symlink",
-    "test/a/symlink/a",
-    "test/a/symlink/a/b",
-    "test/a/symlink/a/b/c",
-    "test/a/symlink/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b"
-  ],
-  "test/+(a|b|c)/a{/,bc*}/**": [
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcdef/g/h",
-    "test/a/abcfed",
-    "test/a/abcfed/g",
-    "test/a/abcfed/g/h"
-  ],
-  "test/*/*/*/f": [
-    "test/a/bc/e/f",
-    "test/a/cb/e/f"
-  ],
-  "test/**/f": [
-    "test/a/bc/e/f",
-    "test/a/cb/e/f"
-  ],
-  "test/a/symlink/a/b/c/a/b/c/a/b/c//a/b/c////a/b/c/**/b/c/**": [
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c"
-  ],
-  "{./*/*,/tmp/glob-test/*}": [
-    "./examples/g.js",
-    "./examples/usr-local.js",
-    "./node_modules/inherits",
-    "./node_modules/minimatch",
-    "./node_modules/mkdirp",
-    "./node_modules/rimraf",
-    "./node_modules/tap",
-    "./test/00-setup.js",
-    "./test/a",
-    "./test/bash-comparison.js",
-    "./test/bash-results.json",
-    "./test/cwd-test.js",
-    "./test/globstar-match.js",
-    "./test/mark.js",
-    "./test/nocase-nomagic.js",
-    "./test/pause-resume.js",
-    "./test/root-nomount.js",
-    "./test/root.js",
-    "./test/stat.js",
-    "./test/zz-cleanup.js",
-    "/tmp/glob-test/asdf",
-    "/tmp/glob-test/bar",
-    "/tmp/glob-test/baz",
-    "/tmp/glob-test/foo",
-    "/tmp/glob-test/quux",
-    "/tmp/glob-test/qwer",
-    "/tmp/glob-test/rewq"
-  ],
-  "{/tmp/glob-test/*,*}": [
-    "/tmp/glob-test/asdf",
-    "/tmp/glob-test/bar",
-    "/tmp/glob-test/baz",
-    "/tmp/glob-test/foo",
-    "/tmp/glob-test/quux",
-    "/tmp/glob-test/qwer",
-    "/tmp/glob-test/rewq",
-    "examples",
-    "glob.js",
-    "LICENSE",
-    "node_modules",
-    "package.json",
-    "README.md",
-    "test"
-  ],
-  "test/a/!(symlink)/**": [
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcdef/g/h",
-    "test/a/abcfed",
-    "test/a/abcfed/g",
-    "test/a/abcfed/g/h",
-    "test/a/b",
-    "test/a/b/c",
-    "test/a/b/c/d",
-    "test/a/bc",
-    "test/a/bc/e",
-    "test/a/bc/e/f",
-    "test/a/c",
-    "test/a/c/d",
-    "test/a/c/d/c",
-    "test/a/c/d/c/b",
-    "test/a/cb",
-    "test/a/cb/e",
-    "test/a/cb/e/f"
-  ]
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/cwd-test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/cwd-test.js b/blackberry10/node_modules/plugman/node_modules/glob/test/cwd-test.js
deleted file mode 100644
index 352c27e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/cwd-test.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var tap = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-tap.test("changing cwd and searching for **/d", function (t) {
-  var glob = require('../')
-  var path = require('path')
-  t.test('.', function (t) {
-    glob('**/d', function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'a/b/c/d', 'a/c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('a', function (t) {
-    glob('**/d', {cwd:path.resolve('a')}, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'b/c/d', 'c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('a/b', function (t) {
-    glob('**/d', {cwd:path.resolve('a/b')}, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('a/b/', function (t) {
-    glob('**/d', {cwd:path.resolve('a/b/')}, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('.', function (t) {
-    glob('**/d', {cwd: process.cwd()}, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'a/b/c/d', 'a/c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('cd -', function (t) {
-    process.chdir(origCwd)
-    t.end()
-  })
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/globstar-match.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/globstar-match.js b/blackberry10/node_modules/plugman/node_modules/glob/test/globstar-match.js
deleted file mode 100644
index 9b234fa..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/globstar-match.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var Glob = require("../glob.js").Glob
-var test = require('tap').test
-
-test('globstar should not have dupe matches', function(t) {
-  var pattern = 'a/**/[gh]'
-  var g = new Glob(pattern, { cwd: __dirname })
-  var matches = []
-  g.on('match', function(m) {
-    console.error('match %j', m)
-    matches.push(m)
-  })
-  g.on('end', function(set) {
-    console.error('set', set)
-    matches = matches.sort()
-    set = set.sort()
-    t.same(matches, set, 'should have same set of matches')
-    t.end()
-  })
-})


[52/53] [abbrv] webworks commit: CB-6440 Remove +x from .bat files

Posted by bh...@apache.org.
CB-6440 Remove +x from .bat files


Project: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/commit/84f83086
Tree: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/tree/84f83086
Diff: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/diff/84f83086

Branch: refs/heads/master
Commit: 84f83086c638508d616edb5c1ab399393f222b45
Parents: 3016473
Author: Bryan Higgins <bh...@blackberry.com>
Authored: Sat Apr 12 20:31:02 2014 -0400
Committer: Bryan Higgins <bh...@blackberry.com>
Committed: Sat Apr 12 21:04:26 2014 -0400

----------------------------------------------------------------------
 blackberry10/bin/check_reqs.bat | 0
 blackberry10/bin/target.bat     | 0
 blackberry10/bin/update.bat     | 0
 3 files changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/84f83086/blackberry10/bin/check_reqs.bat
----------------------------------------------------------------------
diff --git a/blackberry10/bin/check_reqs.bat b/blackberry10/bin/check_reqs.bat
old mode 100755
new mode 100644

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/84f83086/blackberry10/bin/target.bat
----------------------------------------------------------------------
diff --git a/blackberry10/bin/target.bat b/blackberry10/bin/target.bat
old mode 100755
new mode 100644

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/84f83086/blackberry10/bin/update.bat
----------------------------------------------------------------------
diff --git a/blackberry10/bin/update.bat b/blackberry10/bin/update.bat
old mode 100755
new mode 100644


[20/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/README.md b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/README.md
deleted file mode 100644
index 6fd07d2..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,218 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-Eventually, it will replace the C binding in node-glob.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-### Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated.  Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally.  This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything.  Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set.  This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.  **Note that this is different from the way that `**` is
-handled by ruby's `Dir` class.**
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes.  For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`.  This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern.  Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity.  Since those two are valid, matching proceeds.
-
-
-## Minimatch Class
-
-Create a minimatch object by instanting the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
-  Each row in the
-  array corresponds to a brace-expanded pattern.  Each item in the row
-  corresponds to a single path-part.  For example, the pattern
-  `{a,b/c}/d` would expand to a set of patterns like:
-
-        [ [ a, d ]
-        , [ b, c, d ] ]
-
-    If a portion of the pattern doesn't have any "magic" in it
-    (that is, it's something like `"foo"` rather than `fo*o?`), then it
-    will be left as a string rather than converted to a regular
-    expression.
-
-* `regexp` Created by the `makeRe` method.  A single regular expression
-  expressing the entire pattern.  This is useful in cases where you wish
-  to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
-  Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
-  false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
-  filename, and match it against a single row in the `regExpSet`.  This
-  method is mainly for internal use, but is exposed so that it can be
-  used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-## Functions
-
-The top-level exported function has a `cache` property, which is an LRU
-cache set to store 100 items.  So, calling these methods repeatedly
-with the same pattern and options will use the same Minimatch object,
-saving the cost of parsing it multiple times.
-
-### minimatch(path, pattern, options)
-
-Main export.  Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`.  Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob.  If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself.  When set, an empty list is returned if there are
-no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes.  For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/minimatch.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/minimatch.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/minimatch.js
deleted file mode 100644
index 405746b..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,1079 +0,0 @@
-;(function (require, exports, module, platform) {
-
-if (module) module.exports = minimatch
-else exports.minimatch = minimatch
-
-if (!require) {
-  require = function (id) {
-    switch (id) {
-      case "sigmund": return function sigmund (obj) {
-        return JSON.stringify(obj)
-      }
-      case "path": return { basename: function (f) {
-        f = f.split(/[\/\\]/)
-        var e = f.pop()
-        if (!e) e = f.pop()
-        return e
-      }}
-      case "lru-cache": return function LRUCache () {
-        // not quite an LRU, but still space-limited.
-        var cache = {}
-        var cnt = 0
-        this.set = function (k, v) {
-          cnt ++
-          if (cnt >= 100) cache = {}
-          cache[k] = v
-        }
-        this.get = function (k) { return cache[k] }
-      }
-    }
-  }
-}
-
-minimatch.Minimatch = Minimatch
-
-var LRU = require("lru-cache")
-  , cache = minimatch.cache = new LRU({max: 100})
-  , GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-  , sigmund = require("sigmund")
-
-var path = require("path")
-  // any single thing other than /
-  // don't need to escape / when using new RegExp()
-  , qmark = "[^/]"
-
-  // * => any number of characters
-  , star = qmark + "*?"
-
-  // ** when dots are allowed.  Anything goes, except .. and .
-  // not (^ or / followed by one or two dots followed by $ or /),
-  // followed by anything, any number of times.
-  , twoStarDot = "(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?"
-
-  // not a ^ or / followed by a dot,
-  // followed by anything, any number of times.
-  , twoStarNoDot = "(?:(?!(?:\\\/|^)\\.).)*?"
-
-  // characters that need to be escaped in RegExp.
-  , reSpecials = charSet("().*{}+?[]^$\\!")
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
-  return s.split("").reduce(function (set, c) {
-    set[c] = true
-    return set
-  }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.monkeyPatch = monkeyPatch
-function monkeyPatch () {
-  var desc = Object.getOwnPropertyDescriptor(String.prototype, "match")
-  var orig = desc.value
-  desc.value = function (p) {
-    if (p instanceof Minimatch) return p.match(this)
-    return orig.call(this, p)
-  }
-  Object.defineProperty(String.prototype, desc)
-}
-
-minimatch.filter = filter
-function filter (pattern, options) {
-  options = options || {}
-  return function (p, i, list) {
-    return minimatch(p, pattern, options)
-  }
-}
-
-function ext (a, b) {
-  a = a || {}
-  b = b || {}
-  var t = {}
-  Object.keys(b).forEach(function (k) {
-    t[k] = b[k]
-  })
-  Object.keys(a).forEach(function (k) {
-    t[k] = a[k]
-  })
-  return t
-}
-
-minimatch.defaults = function (def) {
-  if (!def || !Object.keys(def).length) return minimatch
-
-  var orig = minimatch
-
-  var m = function minimatch (p, pattern, options) {
-    return orig.minimatch(p, pattern, ext(def, options))
-  }
-
-  m.Minimatch = function Minimatch (pattern, options) {
-    return new orig.Minimatch(pattern, ext(def, options))
-  }
-
-  return m
-}
-
-Minimatch.defaults = function (def) {
-  if (!def || !Object.keys(def).length) return Minimatch
-  return minimatch.defaults(def).Minimatch
-}
-
-
-function minimatch (p, pattern, options) {
-  if (typeof pattern !== "string") {
-    throw new TypeError("glob pattern string required")
-  }
-
-  if (!options) options = {}
-
-  // shortcut: comments match nothing.
-  if (!options.nocomment && pattern.charAt(0) === "#") {
-    return false
-  }
-
-  // "" only matches ""
-  if (pattern.trim() === "") return p === ""
-
-  return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
-  if (!(this instanceof Minimatch)) {
-    return new Minimatch(pattern, options, cache)
-  }
-
-  if (typeof pattern !== "string") {
-    throw new TypeError("glob pattern string required")
-  }
-
-  if (!options) options = {}
-  pattern = pattern.trim()
-
-  // windows: need to use /, not \
-  // On other platforms, \ is a valid (albeit bad) filename char.
-  if (platform === "win32") {
-    pattern = pattern.split("\\").join("/")
-  }
-
-  // lru storage.
-  // these things aren't particularly big, but walking down the string
-  // and turning it into a regexp can get pretty costly.
-  var cacheKey = pattern + "\n" + sigmund(options)
-  var cached = minimatch.cache.get(cacheKey)
-  if (cached) return cached
-  minimatch.cache.set(cacheKey, this)
-
-  this.options = options
-  this.set = []
-  this.pattern = pattern
-  this.regexp = null
-  this.negate = false
-  this.comment = false
-  this.empty = false
-
-  // make the set of regexps etc.
-  this.make()
-}
-
-Minimatch.prototype.make = make
-function make () {
-  // don't do it more than once.
-  if (this._made) return
-
-  var pattern = this.pattern
-  var options = this.options
-
-  // empty patterns and comments match nothing.
-  if (!options.nocomment && pattern.charAt(0) === "#") {
-    this.comment = true
-    return
-  }
-  if (!pattern) {
-    this.empty = true
-    return
-  }
-
-  // step 1: figure out negation, etc.
-  this.parseNegate()
-
-  // step 2: expand braces
-  var set = this.globSet = this.braceExpand()
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // step 3: now we have a set, so turn each one into a series of path-portion
-  // matching patterns.
-  // These will be regexps, except in the case of "**", which is
-  // set to the GLOBSTAR object for globstar behavior,
-  // and will not contain any / characters
-  set = this.globParts = set.map(function (s) {
-    return s.split(slashSplit)
-  })
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // glob --> regexps
-  set = set.map(function (s, si, set) {
-    return s.map(this.parse, this)
-  }, this)
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // filter out everything that didn't compile properly.
-  set = set.filter(function (s) {
-    return -1 === s.indexOf(false)
-  })
-
-  if (options.debug) console.error(this.pattern, set)
-
-  this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
-  var pattern = this.pattern
-    , negate = false
-    , options = this.options
-    , negateOffset = 0
-
-  if (options.nonegate) return
-
-  for ( var i = 0, l = pattern.length
-      ; i < l && pattern.charAt(i) === "!"
-      ; i ++) {
-    negate = !negate
-    negateOffset ++
-  }
-
-  if (negateOffset) this.pattern = pattern.substr(negateOffset)
-  this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
-  return new Minimatch(pattern, options).braceExpand()
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-function braceExpand (pattern, options) {
-  options = options || this.options
-  pattern = typeof pattern === "undefined"
-    ? this.pattern : pattern
-
-  if (typeof pattern === "undefined") {
-    throw new Error("undefined pattern")
-  }
-
-  if (options.nobrace ||
-      !pattern.match(/\{.*\}/)) {
-    // shortcut. no need to expand.
-    return [pattern]
-  }
-
-  var escaping = false
-
-  // examples and comments refer to this crazy pattern:
-  // a{b,c{d,e},{f,g}h}x{y,z}
-  // expected:
-  // abxy
-  // abxz
-  // acdxy
-  // acdxz
-  // acexy
-  // acexz
-  // afhxy
-  // afhxz
-  // aghxy
-  // aghxz
-
-  // everything before the first \{ is just a prefix.
-  // So, we pluck that off, and work with the rest,
-  // and then prepend it to everything we find.
-  if (pattern.charAt(0) !== "{") {
-    // console.error(pattern)
-    var prefix = null
-    for (var i = 0, l = pattern.length; i < l; i ++) {
-      var c = pattern.charAt(i)
-      // console.error(i, c)
-      if (c === "\\") {
-        escaping = !escaping
-      } else if (c === "{" && !escaping) {
-        prefix = pattern.substr(0, i)
-        break
-      }
-    }
-
-    // actually no sets, all { were escaped.
-    if (prefix === null) {
-      // console.error("no sets")
-      return [pattern]
-    }
-
-    var tail = braceExpand(pattern.substr(i), options)
-    return tail.map(function (t) {
-      return prefix + t
-    })
-  }
-
-  // now we have something like:
-  // {b,c{d,e},{f,g}h}x{y,z}
-  // walk through the set, expanding each part, until
-  // the set ends.  then, we'll expand the suffix.
-  // If the set only has a single member, then'll put the {} back
-
-  // first, handle numeric sets, since they're easier
-  var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/)
-  if (numset) {
-    // console.error("numset", numset[1], numset[2])
-    var suf = braceExpand(pattern.substr(numset[0].length), options)
-      , start = +numset[1]
-      , end = +numset[2]
-      , inc = start > end ? -1 : 1
-      , set = []
-    for (var i = start; i != (end + inc); i += inc) {
-      // append all the suffixes
-      for (var ii = 0, ll = suf.length; ii < ll; ii ++) {
-        set.push(i + suf[ii])
-      }
-    }
-    return set
-  }
-
-  // ok, walk through the set
-  // We hope, somewhat optimistically, that there
-  // will be a } at the end.
-  // If the closing brace isn't found, then the pattern is
-  // interpreted as braceExpand("\\" + pattern) so that
-  // the leading \{ will be interpreted literally.
-  var i = 1 // skip the \{
-    , depth = 1
-    , set = []
-    , member = ""
-    , sawEnd = false
-    , escaping = false
-
-  function addMember () {
-    set.push(member)
-    member = ""
-  }
-
-  // console.error("Entering for")
-  FOR: for (i = 1, l = pattern.length; i < l; i ++) {
-    var c = pattern.charAt(i)
-    // console.error("", i, c)
-
-    if (escaping) {
-      escaping = false
-      member += "\\" + c
-    } else {
-      switch (c) {
-        case "\\":
-          escaping = true
-          continue
-
-        case "{":
-          depth ++
-          member += "{"
-          continue
-
-        case "}":
-          depth --
-          // if this closes the actual set, then we're done
-          if (depth === 0) {
-            addMember()
-            // pluck off the close-brace
-            i ++
-            break FOR
-          } else {
-            member += c
-            continue
-          }
-
-        case ",":
-          if (depth === 1) {
-            addMember()
-          } else {
-            member += c
-          }
-          continue
-
-        default:
-          member += c
-          continue
-      } // switch
-    } // else
-  } // for
-
-  // now we've either finished the set, and the suffix is
-  // pattern.substr(i), or we have *not* closed the set,
-  // and need to escape the leading brace
-  if (depth !== 0) {
-    // console.error("didn't close", pattern)
-    return braceExpand("\\" + pattern, options)
-  }
-
-  // x{y,z} -> ["xy", "xz"]
-  // console.error("set", set)
-  // console.error("suffix", pattern.substr(i))
-  var suf = braceExpand(pattern.substr(i), options)
-  // ["b", "c{d,e}","{f,g}h"] ->
-  //   [["b"], ["cd", "ce"], ["fh", "gh"]]
-  var addBraces = set.length === 1
-  // console.error("set pre-expanded", set)
-  set = set.map(function (p) {
-    return braceExpand(p, options)
-  })
-  // console.error("set expanded", set)
-
-
-  // [["b"], ["cd", "ce"], ["fh", "gh"]] ->
-  //   ["b", "cd", "ce", "fh", "gh"]
-  set = set.reduce(function (l, r) {
-    return l.concat(r)
-  })
-
-  if (addBraces) {
-    set = set.map(function (s) {
-      return "{" + s + "}"
-    })
-  }
-
-  // now attach the suffixes.
-  var ret = []
-  for (var i = 0, l = set.length; i < l; i ++) {
-    for (var ii = 0, ll = suf.length; ii < ll; ii ++) {
-      ret.push(set[i] + suf[ii])
-    }
-  }
-  return ret
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion.  Otherwise, any series
-// of * is equivalent to a single *.  Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
-  var options = this.options
-
-  // shortcuts
-  if (!options.noglobstar && pattern === "**") return GLOBSTAR
-  if (pattern === "") return ""
-
-  var re = ""
-    , hasMagic = !!options.nocase
-    , escaping = false
-    // ? => one single character
-    , patternListStack = []
-    , plType
-    , stateChar
-    , inClass = false
-    , reClassStart = -1
-    , classStart = -1
-    // . and .. never match anything that doesn't start with .,
-    // even when options.dot is set.
-    , patternStart = pattern.charAt(0) === "." ? "" // anything
-      // not (start or / followed by . or .. followed by / or end)
-      : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))"
-      : "(?!\\.)"
-
-  function clearStateChar () {
-    if (stateChar) {
-      // we had some state-tracking character
-      // that wasn't consumed by this pass.
-      switch (stateChar) {
-        case "*":
-          re += star
-          hasMagic = true
-          break
-        case "?":
-          re += qmark
-          hasMagic = true
-          break
-        default:
-          re += "\\"+stateChar
-          break
-      }
-      stateChar = false
-    }
-  }
-
-  for ( var i = 0, len = pattern.length, c
-      ; (i < len) && (c = pattern.charAt(i))
-      ; i ++ ) {
-
-    if (options.debug) {
-      console.error("%s\t%s %s %j", pattern, i, re, c)
-    }
-
-    // skip over any that are escaped.
-    if (escaping && reSpecials[c]) {
-      re += "\\" + c
-      escaping = false
-      continue
-    }
-
-    SWITCH: switch (c) {
-      case "/":
-        // completely not allowed, even escaped.
-        // Should already be path-split by now.
-        return false
-
-      case "\\":
-        clearStateChar()
-        escaping = true
-        continue
-
-      // the various stateChar values
-      // for the "extglob" stuff.
-      case "?":
-      case "*":
-      case "+":
-      case "@":
-      case "!":
-        if (options.debug) {
-          console.error("%s\t%s %s %j <-- stateChar", pattern, i, re, c)
-        }
-
-        // all of those are literals inside a class, except that
-        // the glob [!a] means [^a] in regexp
-        if (inClass) {
-          if (c === "!" && i === classStart + 1) c = "^"
-          re += c
-          continue
-        }
-
-        // if we already have a stateChar, then it means
-        // that there was something like ** or +? in there.
-        // Handle the stateChar, then proceed with this one.
-        clearStateChar()
-        stateChar = c
-        // if extglob is disabled, then +(asdf|foo) isn't a thing.
-        // just clear the statechar *now*, rather than even diving into
-        // the patternList stuff.
-        if (options.noext) clearStateChar()
-        continue
-
-      case "(":
-        if (inClass) {
-          re += "("
-          continue
-        }
-
-        if (!stateChar) {
-          re += "\\("
-          continue
-        }
-
-        plType = stateChar
-        patternListStack.push({ type: plType
-                              , start: i - 1
-                              , reStart: re.length })
-        // negation is (?:(?!js)[^/]*)
-        re += stateChar === "!" ? "(?:(?!" : "(?:"
-        stateChar = false
-        continue
-
-      case ")":
-        if (inClass || !patternListStack.length) {
-          re += "\\)"
-          continue
-        }
-
-        hasMagic = true
-        re += ")"
-        plType = patternListStack.pop().type
-        // negation is (?:(?!js)[^/]*)
-        // The others are (?:<pattern>)<type>
-        switch (plType) {
-          case "!":
-            re += "[^/]*?)"
-            break
-          case "?":
-          case "+":
-          case "*": re += plType
-          case "@": break // the default anyway
-        }
-        continue
-
-      case "|":
-        if (inClass || !patternListStack.length || escaping) {
-          re += "\\|"
-          escaping = false
-          continue
-        }
-
-        re += "|"
-        continue
-
-      // these are mostly the same in regexp and glob
-      case "[":
-        // swallow any state-tracking char before the [
-        clearStateChar()
-
-        if (inClass) {
-          re += "\\" + c
-          continue
-        }
-
-        inClass = true
-        classStart = i
-        reClassStart = re.length
-        re += c
-        continue
-
-      case "]":
-        //  a right bracket shall lose its special
-        //  meaning and represent itself in
-        //  a bracket expression if it occurs
-        //  first in the list.  -- POSIX.2 2.8.3.2
-        if (i === classStart + 1 || !inClass) {
-          re += "\\" + c
-          escaping = false
-          continue
-        }
-
-        // finish up the class.
-        hasMagic = true
-        inClass = false
-        re += c
-        continue
-
-      default:
-        // swallow any state char that wasn't consumed
-        clearStateChar()
-
-        if (escaping) {
-          // no need
-          escaping = false
-        } else if (reSpecials[c]
-                   && !(c === "^" && inClass)) {
-          re += "\\"
-        }
-
-        re += c
-
-    } // switch
-  } // for
-
-
-  // handle the case where we left a class open.
-  // "[abc" is valid, equivalent to "\[abc"
-  if (inClass) {
-    // split where the last [ was, and escape it
-    // this is a huge pita.  We now have to re-walk
-    // the contents of the would-be class to re-translate
-    // any characters that were passed through as-is
-    var cs = pattern.substr(classStart + 1)
-      , sp = this.parse(cs, SUBPARSE)
-    re = re.substr(0, reClassStart) + "\\[" + sp[0]
-    hasMagic = hasMagic || sp[1]
-  }
-
-  // handle the case where we had a +( thing at the *end*
-  // of the pattern.
-  // each pattern list stack adds 3 chars, and we need to go through
-  // and escape any | chars that were passed through as-is for the regexp.
-  // Go through and escape them, taking care not to double-escape any
-  // | chars that were already escaped.
-  var pl
-  while (pl = patternListStack.pop()) {
-    var tail = re.slice(pl.reStart + 3)
-    // maybe some even number of \, then maybe 1 \, followed by a |
-    tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
-      if (!$2) {
-        // the | isn't already escaped, so escape it.
-        $2 = "\\"
-      }
-
-      // need to escape all those slashes *again*, without escaping the
-      // one that we need for escaping the | character.  As it works out,
-      // escaping an even number of slashes can be done by simply repeating
-      // it exactly after itself.  That's why this trick works.
-      //
-      // I am sorry that you have to see this.
-      return $1 + $1 + $2 + "|"
-    })
-
-    // console.error("tail=%j\n   %s", tail, tail)
-    var t = pl.type === "*" ? star
-          : pl.type === "?" ? qmark
-          : "\\" + pl.type
-
-    hasMagic = true
-    re = re.slice(0, pl.reStart)
-       + t + "\\("
-       + tail
-  }
-
-  // handle trailing things that only matter at the very end.
-  clearStateChar()
-  if (escaping) {
-    // trailing \\
-    re += "\\\\"
-  }
-
-  // only need to apply the nodot start if the re starts with
-  // something that could conceivably capture a dot
-  var addPatternStart = false
-  switch (re.charAt(0)) {
-    case ".":
-    case "[":
-    case "(": addPatternStart = true
-  }
-
-  // if the re is not "" at this point, then we need to make sure
-  // it doesn't match against an empty path part.
-  // Otherwise a/* will match a/, which it should not.
-  if (re !== "" && hasMagic) re = "(?=.)" + re
-
-  if (addPatternStart) re = patternStart + re
-
-  // parsing just a piece of a larger pattern.
-  if (isSub === SUBPARSE) {
-    return [ re, hasMagic ]
-  }
-
-  // skip the regexp for non-magical patterns
-  // unescape anything in it, though, so that it'll be
-  // an exact match against a file etc.
-  if (!hasMagic) {
-    return globUnescape(pattern)
-  }
-
-  var flags = options.nocase ? "i" : ""
-    , regExp = new RegExp("^" + re + "$", flags)
-
-  regExp._glob = pattern
-  regExp._src = re
-
-  return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
-  return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
-  if (this.regexp || this.regexp === false) return this.regexp
-
-  // at this point, this.set is a 2d array of partial
-  // pattern strings, or "**".
-  //
-  // It's better to use .match().  This function shouldn't
-  // be used, really, but it's pretty convenient sometimes,
-  // when you just want to work with a regex.
-  var set = this.set
-
-  if (!set.length) return this.regexp = false
-  var options = this.options
-
-  var twoStar = options.noglobstar ? star
-      : options.dot ? twoStarDot
-      : twoStarNoDot
-    , flags = options.nocase ? "i" : ""
-
-  var re = set.map(function (pattern) {
-    return pattern.map(function (p) {
-      return (p === GLOBSTAR) ? twoStar
-           : (typeof p === "string") ? regExpEscape(p)
-           : p._src
-    }).join("\\\/")
-  }).join("|")
-
-  // must match entire pattern
-  // ending in a * or ** will make it less strict.
-  re = "^(?:" + re + ")$"
-
-  // can match anything, as long as it's not this.
-  if (this.negate) re = "^(?!" + re + ").*$"
-
-  try {
-    return this.regexp = new RegExp(re, flags)
-  } catch (ex) {
-    return this.regexp = false
-  }
-}
-
-minimatch.match = function (list, pattern, options) {
-  var mm = new Minimatch(pattern, options)
-  list = list.filter(function (f) {
-    return mm.match(f)
-  })
-  if (options.nonull && !list.length) {
-    list.push(pattern)
-  }
-  return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
-  // console.error("match", f, this.pattern)
-  // short-circuit in the case of busted things.
-  // comments, etc.
-  if (this.comment) return false
-  if (this.empty) return f === ""
-
-  if (f === "/" && partial) return true
-
-  var options = this.options
-
-  // windows: need to use /, not \
-  // On other platforms, \ is a valid (albeit bad) filename char.
-  if (platform === "win32") {
-    f = f.split("\\").join("/")
-  }
-
-  // treat the test path as a set of pathparts.
-  f = f.split(slashSplit)
-  if (options.debug) {
-    console.error(this.pattern, "split", f)
-  }
-
-  // just ONE of the pattern sets in this.set needs to match
-  // in order for it to be valid.  If negating, then just one
-  // match means that we have failed.
-  // Either way, return on the first hit.
-
-  var set = this.set
-  // console.error(this.pattern, "set", set)
-
-  for (var i = 0, l = set.length; i < l; i ++) {
-    var pattern = set[i]
-    var hit = this.matchOne(f, pattern, partial)
-    if (hit) {
-      if (options.flipNegate) return true
-      return !this.negate
-    }
-  }
-
-  // didn't get any hits.  this is success if it's a negative
-  // pattern, failure otherwise.
-  if (options.flipNegate) return false
-  return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
-  var options = this.options
-
-  if (options.debug) {
-    console.error("matchOne",
-                  { "this": this
-                  , file: file
-                  , pattern: pattern })
-  }
-
-  if (options.matchBase && pattern.length === 1) {
-    file = path.basename(file.join("/")).split("/")
-  }
-
-  if (options.debug) {
-    console.error("matchOne", file.length, pattern.length)
-  }
-
-  for ( var fi = 0
-          , pi = 0
-          , fl = file.length
-          , pl = pattern.length
-      ; (fi < fl) && (pi < pl)
-      ; fi ++, pi ++ ) {
-
-    if (options.debug) {
-      console.error("matchOne loop")
-    }
-    var p = pattern[pi]
-      , f = file[fi]
-
-    if (options.debug) {
-      console.error(pattern, p, f)
-    }
-
-    // should be impossible.
-    // some invalid regexp stuff in the set.
-    if (p === false) return false
-
-    if (p === GLOBSTAR) {
-      if (options.debug)
-        console.error('GLOBSTAR', [pattern, p, f])
-
-      // "**"
-      // a/**/b/**/c would match the following:
-      // a/b/x/y/z/c
-      // a/x/y/z/b/c
-      // a/b/x/b/x/c
-      // a/b/c
-      // To do this, take the rest of the pattern after
-      // the **, and see if it would match the file remainder.
-      // If so, return success.
-      // If not, the ** "swallows" a segment, and try again.
-      // This is recursively awful.
-      //
-      // a/**/b/**/c matching a/b/x/y/z/c
-      // - a matches a
-      // - doublestar
-      //   - matchOne(b/x/y/z/c, b/**/c)
-      //     - b matches b
-      //     - doublestar
-      //       - matchOne(x/y/z/c, c) -> no
-      //       - matchOne(y/z/c, c) -> no
-      //       - matchOne(z/c, c) -> no
-      //       - matchOne(c, c) yes, hit
-      var fr = fi
-        , pr = pi + 1
-      if (pr === pl) {
-        if (options.debug)
-          console.error('** at the end')
-        // a ** at the end will just swallow the rest.
-        // We have found a match.
-        // however, it will not swallow /.x, unless
-        // options.dot is set.
-        // . and .. are *never* matched by **, for explosively
-        // exponential reasons.
-        for ( ; fi < fl; fi ++) {
-          if (file[fi] === "." || file[fi] === ".." ||
-              (!options.dot && file[fi].charAt(0) === ".")) return false
-        }
-        return true
-      }
-
-      // ok, let's see if we can swallow whatever we can.
-      WHILE: while (fr < fl) {
-        var swallowee = file[fr]
-
-        if (options.debug) {
-          console.error('\nglobstar while',
-                        file, fr, pattern, pr, swallowee)
-        }
-
-        // XXX remove this slice.  Just pass the start index.
-        if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
-          if (options.debug)
-            console.error('globstar found match!', fr, fl, swallowee)
-          // found a match.
-          return true
-        } else {
-          // can't swallow "." or ".." ever.
-          // can only swallow ".foo" when explicitly asked.
-          if (swallowee === "." || swallowee === ".." ||
-              (!options.dot && swallowee.charAt(0) === ".")) {
-            if (options.debug)
-              console.error("dot detected!", file, fr, pattern, pr)
-            break WHILE
-          }
-
-          // ** swallows a segment, and continue.
-          if (options.debug)
-            console.error('globstar swallow a segment, and continue')
-          fr ++
-        }
-      }
-      // no match was found.
-      // However, in partial mode, we can't say this is necessarily over.
-      // If there's more *pattern* left, then 
-      if (partial) {
-        // ran out of file
-        // console.error("\n>>> no match, partial?", file, fr, pattern, pr)
-        if (fr === fl) return true
-      }
-      return false
-    }
-
-    // something other than **
-    // non-magic patterns just have to match exactly
-    // patterns with magic have been turned into regexps.
-    var hit
-    if (typeof p === "string") {
-      if (options.nocase) {
-        hit = f.toLowerCase() === p.toLowerCase()
-      } else {
-        hit = f === p
-      }
-      if (options.debug) {
-        console.error("string match", p, f, hit)
-      }
-    } else {
-      hit = f.match(p)
-      if (options.debug) {
-        console.error("pattern match", p, f, hit)
-      }
-    }
-
-    if (!hit) return false
-  }
-
-  // Note: ending in / means that we'll get a final ""
-  // at the end of the pattern.  This can only match a
-  // corresponding "" at the end of the file.
-  // If the file ends in /, then it can only match a
-  // a pattern that ends in /, unless the pattern just
-  // doesn't have any more for it. But, a/b/ should *not*
-  // match "a/b/*", even though "" matches against the
-  // [^/]*? pattern, except in partial mode, where it might
-  // simply not be reached yet.
-  // However, a/b/ should still satisfy a/*
-
-  // now either we fell off the end of the pattern, or we're done.
-  if (fi === fl && pi === pl) {
-    // ran out of pattern and filename at the same time.
-    // an exact hit!
-    return true
-  } else if (fi === fl) {
-    // ran out of file, but still had pattern left.
-    // this is ok if we're doing the match as part of
-    // a glob fs traversal.
-    return partial
-  } else if (pi === pl) {
-    // ran out of pattern, still have file left.
-    // this is only acceptable if we're on the very last
-    // empty segment of a file with a trailing slash.
-    // a/* should match a/b/
-    var emptyFileEnd = (fi === fl - 1) && (file[fi] === "")
-    return emptyFileEnd
-  }
-
-  // should be unreachable.
-  throw new Error("wtf?")
-}
-
-
-// replace stuff like \* with *
-function globUnescape (s) {
-  return s.replace(/\\(.)/g, "$1")
-}
-
-
-function regExpEscape (s) {
-  return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
-}
-
-})( typeof require === "function" ? require : null,
-    this,
-    typeof module === "object" ? module : null,
-    typeof process === "object" ? process.platform : "win32"
-  )

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.npmignore b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.npmignore
deleted file mode 100644
index 07e6e47..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/AUTHORS
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/AUTHORS b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/AUTHORS
deleted file mode 100644
index 016d7fb..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/AUTHORS
+++ /dev/null
@@ -1,8 +0,0 @@
-# Authors, sorted by whether or not they are me
-Isaac Z. Schlueter <i...@izs.me>
-Carlos Brito Lage <ca...@carloslage.net>
-Marko Mikulicic <ma...@isti.cnr.it>
-Trent Mick <tr...@gmail.com>
-Kevin O'Hara <ke...@gmail.com>
-Marco Rogers <ma...@gmail.com>
-Jesse Dailey <je...@gmail.com>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE
deleted file mode 100644
index 05a4010..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md
deleted file mode 100644
index 03ee0f9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# lru cache
-
-A cache object that deletes the least-recently-used items.
-
-## Usage:
-
-```javascript
-var LRU = require("lru-cache")
-  , options = { max: 500
-              , length: function (n) { return n * 2 }
-              , dispose: function (key, n) { n.close() }
-              , maxAge: 1000 * 60 * 60 }
-  , cache = LRU(options)
-  , otherCache = LRU(50) // sets just the max size
-
-cache.set("key", "value")
-cache.get("key") // "value"
-
-cache.reset()    // empty the cache
-```
-
-If you put more stuff in it, then items will fall out.
-
-If you try to put an oversized thing in it, then it'll fall out right
-away.
-
-## Options
-
-* `max` The maximum size of the cache, checked by applying the length
-  function to all values in the cache.  Not setting this is kind of
-  silly, since that's the whole purpose of this lib, but it defaults
-  to `Infinity`.
-* `maxAge` Maximum age in ms.  Items are not pro-actively pruned out
-  as they age, but if you try to get an item that is too old, it'll
-  drop it and return undefined instead of giving it to you.
-* `length` Function that is used to calculate the length of stored
-  items.  If you're storing strings or buffers, then you probably want
-  to do something like `function(n){return n.length}`.  The default is
-  `function(n){return 1}`, which is fine if you want to store `n`
-  like-sized things.
-* `dispose` Function that is called on items when they are dropped
-  from the cache.  This can be handy if you want to close file
-  descriptors or do other cleanup tasks when items are no longer
-  accessible.  Called with `key, value`.  It's called *before*
-  actually removing the item from the internal cache, so if you want
-  to immediately put it back in, you'll have to do that in a
-  `nextTick` or `setTimeout` callback or it won't do anything.
-* `stale` By default, if you set a `maxAge`, it'll only actually pull
-  stale items out of the cache when you `get(key)`.  (That is, it's
-  not pre-emptively doing a `setTimeout` or anything.)  If you set
-  `stale:true`, it'll return the stale value before deleting it.  If
-  you don't set this, then it'll return `undefined` when you try to
-  get a stale entry, as if it had already been deleted.
-
-## API
-
-* `set(key, value)`
-* `get(key) => value`
-
-    Both of these will update the "recently used"-ness of the key.
-    They do what you think.
-
-* `peek(key)`
-
-    Returns the key value (or `undefined` if not found) without
-    updating the "recently used"-ness of the key.
-
-    (If you find yourself using this a lot, you *might* be using the
-    wrong sort of data structure, but there are some use cases where
-    it's handy.)
-
-* `del(key)`
-
-    Deletes a key out of the cache.
-
-* `reset()`
-
-    Clear the cache entirely, throwing away all values.
-
-* `has(key)`
-
-    Check if a key is in the cache, without updating the recent-ness
-    or deleting it for being stale.
-
-* `forEach(function(value,key,cache), [thisp])`
-
-    Just like `Array.prototype.forEach`.  Iterates over all the keys
-    in the cache, in order of recent-ness.  (Ie, more recently used
-    items are iterated over first.)
-
-* `keys()`
-
-    Return an array of the keys in the cache.
-
-* `values()`
-
-    Return an array of the values in the cache.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
deleted file mode 100644
index 8c80853..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
+++ /dev/null
@@ -1,257 +0,0 @@
-;(function () { // closure for web browsers
-
-if (typeof module === 'object' && module.exports) {
-  module.exports = LRUCache
-} else {
-  // just set the global for non-node platforms.
-  this.LRUCache = LRUCache
-}
-
-function hOP (obj, key) {
-  return Object.prototype.hasOwnProperty.call(obj, key)
-}
-
-function naiveLength () { return 1 }
-
-function LRUCache (options) {
-  if (!(this instanceof LRUCache)) {
-    return new LRUCache(options)
-  }
-
-  var max
-  if (typeof options === 'number') {
-    max = options
-    options = { max: max }
-  }
-
-  if (!options) options = {}
-
-  max = options.max
-
-  var lengthCalculator = options.length || naiveLength
-
-  if (typeof lengthCalculator !== "function") {
-    lengthCalculator = naiveLength
-  }
-
-  if (!max || !(typeof max === "number") || max <= 0 ) {
-    // a little bit silly.  maybe this should throw?
-    max = Infinity
-  }
-
-  var allowStale = options.stale || false
-
-  var maxAge = options.maxAge || null
-
-  var dispose = options.dispose
-
-  var cache = Object.create(null) // hash of items by key
-    , lruList = Object.create(null) // list of items in order of use recency
-    , mru = 0 // most recently used
-    , lru = 0 // least recently used
-    , length = 0 // number of items in the list
-    , itemCount = 0
-
-
-  // resize the cache when the max changes.
-  Object.defineProperty(this, "max",
-    { set : function (mL) {
-        if (!mL || !(typeof mL === "number") || mL <= 0 ) mL = Infinity
-        max = mL
-        // if it gets above double max, trim right away.
-        // otherwise, do it whenever it's convenient.
-        if (length > max) trim()
-      }
-    , get : function () { return max }
-    , enumerable : true
-    })
-
-  // resize the cache when the lengthCalculator changes.
-  Object.defineProperty(this, "lengthCalculator",
-    { set : function (lC) {
-        if (typeof lC !== "function") {
-          lengthCalculator = naiveLength
-          length = itemCount
-          for (var key in cache) {
-            cache[key].length = 1
-          }
-        } else {
-          lengthCalculator = lC
-          length = 0
-          for (var key in cache) {
-            cache[key].length = lengthCalculator(cache[key].value)
-            length += cache[key].length
-          }
-        }
-
-        if (length > max) trim()
-      }
-    , get : function () { return lengthCalculator }
-    , enumerable : true
-    })
-
-  Object.defineProperty(this, "length",
-    { get : function () { return length }
-    , enumerable : true
-    })
-
-
-  Object.defineProperty(this, "itemCount",
-    { get : function () { return itemCount }
-    , enumerable : true
-    })
-
-  this.forEach = function (fn, thisp) {
-    thisp = thisp || this
-    var i = 0;
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      i++
-      var hit = lruList[k]
-      fn.call(thisp, hit.value, hit.key, this)
-    }
-  }
-
-  this.keys = function () {
-    var keys = new Array(itemCount)
-    var i = 0
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      var hit = lruList[k]
-      keys[i++] = hit.key
-    }
-    return keys
-  }
-
-  this.values = function () {
-    var values = new Array(itemCount)
-    var i = 0
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      var hit = lruList[k]
-      values[i++] = hit.value
-    }
-    return values
-  }
-
-  this.reset = function () {
-    if (dispose) {
-      for (var k in cache) {
-        dispose(k, cache[k].value)
-      }
-    }
-    cache = {}
-    lruList = {}
-    lru = 0
-    mru = 0
-    length = 0
-    itemCount = 0
-  }
-
-  // Provided for debugging/dev purposes only. No promises whatsoever that
-  // this API stays stable.
-  this.dump = function () {
-    return cache
-  }
-
-  this.dumpLru = function () {
-    return lruList
-  }
-
-  this.set = function (key, value) {
-    if (hOP(cache, key)) {
-      // dispose of the old one before overwriting
-      if (dispose) dispose(key, cache[key].value)
-      if (maxAge) cache[key].now = Date.now()
-      cache[key].value = value
-      this.get(key)
-      return true
-    }
-
-    var len = lengthCalculator(value)
-    var age = maxAge ? Date.now() : 0
-    var hit = new Entry(key, value, mru++, len, age)
-
-    // oversized objects fall out of cache automatically.
-    if (hit.length > max) {
-      if (dispose) dispose(key, value)
-      return false
-    }
-
-    length += hit.length
-    lruList[hit.lu] = cache[key] = hit
-    itemCount ++
-
-    if (length > max) trim()
-    return true
-  }
-
-  this.has = function (key) {
-    if (!hOP(cache, key)) return false
-    var hit = cache[key]
-    if (maxAge && (Date.now() - hit.now > maxAge)) {
-      return false
-    }
-    return true
-  }
-
-  this.get = function (key) {
-    return get(key, true)
-  }
-
-  this.peek = function (key) {
-    return get(key, false)
-  }
-
-  function get (key, doUse) {
-    var hit = cache[key]
-    if (hit) {
-      if (maxAge && (Date.now() - hit.now > maxAge)) {
-        del(hit)
-        if (!allowStale) hit = undefined
-      } else {
-        if (doUse) use(hit)
-      }
-      if (hit) hit = hit.value
-    }
-    return hit
-  }
-
-  function use (hit) {
-    shiftLU(hit)
-    hit.lu = mru ++
-    lruList[hit.lu] = hit
-  }
-
-  this.del = function (key) {
-    del(cache[key])
-  }
-
-  function trim () {
-    while (lru < mru && length > max)
-      del(lruList[lru])
-  }
-
-  function shiftLU(hit) {
-    delete lruList[ hit.lu ]
-    while (lru < mru && !lruList[lru]) lru ++
-  }
-
-  function del(hit) {
-    if (hit) {
-      if (dispose) dispose(hit.key, hit.value)
-      length -= hit.length
-      itemCount --
-      delete cache[ hit.key ]
-      shiftLU(hit)
-    }
-  }
-}
-
-// classy, since V8 prefers predictable objects.
-function Entry (key, value, mru, len, age) {
-  this.key = key
-  this.value = value
-  this.lu = mru
-  this.length = len
-  this.now = age
-}
-
-})()

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json
deleted file mode 100644
index 73920bf..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "name": "lru-cache",
-  "description": "A cache object that deletes the least-recently-used items.",
-  "version": "2.3.0",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me"
-  },
-  "scripts": {
-    "test": "tap test --gc"
-  },
-  "main": "lib/lru-cache.js",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/node-lru-cache.git"
-  },
-  "devDependencies": {
-    "tap": "",
-    "weak": ""
-  },
-  "license": {
-    "type": "MIT",
-    "url": "http://github.com/isaacs/node-lru-cache/raw/master/LICENSE"
-  },
-  "contributors": [
-    {
-      "name": "Isaac Z. Schlueter",
-      "email": "i@izs.me"
-    },
-    {
-      "name": "Carlos Brito Lage",
-      "email": "carlos@carloslage.net"
-    },
-    {
-      "name": "Marko Mikulicic",
-      "email": "marko.mikulicic@isti.cnr.it"
-    },
-    {
-      "name": "Trent Mick",
-      "email": "trentm@gmail.com"
-    },
-    {
-      "name": "Kevin O'Hara",
-      "email": "kevinohara80@gmail.com"
-    },
-    {
-      "name": "Marco Rogers",
-      "email": "marco.rogers@gmail.com"
-    },
-    {
-      "name": "Jesse Dailey",
-      "email": "jesse.dailey@gmail.com"
-    }
-  ],
-  "readme": "# lru cache\n\nA cache object that deletes the least-recently-used items.\n\n## Usage:\n\n```javascript\nvar LRU = require(\"lru-cache\")\n  , options = { max: 500\n              , length: function (n) { return n * 2 }\n              , dispose: function (key, n) { n.close() }\n              , maxAge: 1000 * 60 * 60 }\n  , cache = LRU(options)\n  , otherCache = LRU(50) // sets just the max size\n\ncache.set(\"key\", \"value\")\ncache.get(\"key\") // \"value\"\n\ncache.reset()    // empty the cache\n```\n\nIf you put more stuff in it, then items will fall out.\n\nIf you try to put an oversized thing in it, then it'll fall out right\naway.\n\n## Options\n\n* `max` The maximum size of the cache, checked by applying the length\n  function to all values in the cache.  Not setting this is kind of\n  silly, since that's the whole purpose of this lib, but it defaults\n  to `Infinity`.\n* `maxAge` Maximum age in ms.  Items are not pro-actively pruned out\n  as they age, but if yo
 u try to get an item that is too old, it'll\n  drop it and return undefined instead of giving it to you.\n* `length` Function that is used to calculate the length of stored\n  items.  If you're storing strings or buffers, then you probably want\n  to do something like `function(n){return n.length}`.  The default is\n  `function(n){return 1}`, which is fine if you want to store `n`\n  like-sized things.\n* `dispose` Function that is called on items when they are dropped\n  from the cache.  This can be handy if you want to close file\n  descriptors or do other cleanup tasks when items are no longer\n  accessible.  Called with `key, value`.  It's called *before*\n  actually removing the item from the internal cache, so if you want\n  to immediately put it back in, you'll have to do that in a\n  `nextTick` or `setTimeout` callback or it won't do anything.\n* `stale` By default, if you set a `maxAge`, it'll only actually pull\n  stale items out of the cache when you `get(key)`.  (That is
 , it's\n  not pre-emptively doing a `setTimeout` or anything.)  If you set\n  `stale:true`, it'll return the stale value before deleting it.  If\n  you don't set this, then it'll return `undefined` when you try to\n  get a stale entry, as if it had already been deleted.\n\n## API\n\n* `set(key, value)`\n* `get(key) => value`\n\n    Both of these will update the \"recently used\"-ness of the key.\n    They do what you think.\n\n* `peek(key)`\n\n    Returns the key value (or `undefined` if not found) without\n    updating the \"recently used\"-ness of the key.\n\n    (If you find yourself using this a lot, you *might* be using the\n    wrong sort of data structure, but there are some use cases where\n    it's handy.)\n\n* `del(key)`\n\n    Deletes a key out of the cache.\n\n* `reset()`\n\n    Clear the cache entirely, throwing away all values.\n\n* `has(key)`\n\n    Check if a key is in the cache, without updating the recent-ness\n    or deleting it for being stale.\n\n* `forEach(func
 tion(value,key,cache), [thisp])`\n\n    Just like `Array.prototype.forEach`.  Iterates over all the keys\n    in the cache, in order of recent-ness.  (Ie, more recently used\n    items are iterated over first.)\n\n* `keys()`\n\n    Return an array of the keys in the cache.\n\n* `values()`\n\n    Return an array of the values in the cache.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/node-lru-cache/issues"
-  },
-  "_id": "lru-cache@2.3.0",
-  "_from": "lru-cache@2"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/s.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/s.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/s.js
deleted file mode 100644
index c2a9e54..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/s.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var LRU = require('lru-cache');
-
-var max = +process.argv[2] || 10240;
-var more = 1024;
-
-var cache = LRU({
-  max: max, maxAge: 86400e3
-});
-
-// fill cache
-for (var i = 0; i < max; ++i) {
-  cache.set(i, {});
-}
-
-var start = process.hrtime();
-
-// adding more items
-for ( ; i < max+more; ++i) {
-  cache.set(i, {});
-}
-
-var end = process.hrtime(start);
-var msecs = end[0] * 1E3 + end[1] / 1E6;
-
-console.log('adding %d items took %d ms', more, msecs.toPrecision(5));

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js
deleted file mode 100644
index 70f3f8b..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js
+++ /dev/null
@@ -1,329 +0,0 @@
-var test = require("tap").test
-  , LRU = require("../")
-
-test("basic", function (t) {
-  var cache = new LRU({max: 10})
-  cache.set("key", "value")
-  t.equal(cache.get("key"), "value")
-  t.equal(cache.get("nada"), undefined)
-  t.equal(cache.length, 1)
-  t.equal(cache.max, 10)
-  t.end()
-})
-
-test("least recently set", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), "B")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("lru recently gotten", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.get("a")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), undefined)
-  t.equal(cache.get("a"), "A")
-  t.end()
-})
-
-test("del", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.del("a")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("max", function (t) {
-  var cache = new LRU(3)
-
-  // test changing the max, verify that the LRU items get dropped.
-  cache.max = 100
-  for (var i = 0; i < 100; i ++) cache.set(i, i)
-  t.equal(cache.length, 100)
-  for (var i = 0; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  cache.max = 3
-  t.equal(cache.length, 3)
-  for (var i = 0; i < 97; i ++) {
-    t.equal(cache.get(i), undefined)
-  }
-  for (var i = 98; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-
-  // now remove the max restriction, and try again.
-  cache.max = "hello"
-  for (var i = 0; i < 100; i ++) cache.set(i, i)
-  t.equal(cache.length, 100)
-  for (var i = 0; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  // should trigger an immediate resize
-  cache.max = 3
-  t.equal(cache.length, 3)
-  for (var i = 0; i < 97; i ++) {
-    t.equal(cache.get(i), undefined)
-  }
-  for (var i = 98; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  t.end()
-})
-
-test("reset", function (t) {
-  var cache = new LRU(10)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.reset()
-  t.equal(cache.length, 0)
-  t.equal(cache.max, 10)
-  t.equal(cache.get("a"), undefined)
-  t.equal(cache.get("b"), undefined)
-  t.end()
-})
-
-
-// Note: `<cache>.dump()` is a debugging tool only. No guarantees are made
-// about the format/layout of the response.
-test("dump", function (t) {
-  var cache = new LRU(10)
-  var d = cache.dump();
-  t.equal(Object.keys(d).length, 0, "nothing in dump for empty cache")
-  cache.set("a", "A")
-  var d = cache.dump()  // { a: { key: "a", value: "A", lu: 0 } }
-  t.ok(d.a)
-  t.equal(d.a.key, "a")
-  t.equal(d.a.value, "A")
-  t.equal(d.a.lu, 0)
-
-  cache.set("b", "B")
-  cache.get("b")
-  d = cache.dump()
-  t.ok(d.b)
-  t.equal(d.b.key, "b")
-  t.equal(d.b.value, "B")
-  t.equal(d.b.lu, 2)
-
-  t.end()
-})
-
-
-test("basic with weighed length", function (t) {
-  var cache = new LRU({
-    max: 100,
-    length: function (item) { return item.size }
-  })
-  cache.set("key", {val: "value", size: 50})
-  t.equal(cache.get("key").val, "value")
-  t.equal(cache.get("nada"), undefined)
-  t.equal(cache.lengthCalculator(cache.get("key")), 50)
-  t.equal(cache.length, 50)
-  t.equal(cache.max, 100)
-  t.end()
-})
-
-
-test("weighed length item too large", function (t) {
-  var cache = new LRU({
-    max: 10,
-    length: function (item) { return item.size }
-  })
-  t.equal(cache.max, 10)
-
-  // should fall out immediately
-  cache.set("key", {val: "value", size: 50})
-
-  t.equal(cache.length, 0)
-  t.equal(cache.get("key"), undefined)
-  t.end()
-})
-
-test("least recently set with weighed length", function (t) {
-  var cache = new LRU({
-    max:8,
-    length: function (item) { return item.length }
-  })
-  cache.set("a", "A")
-  cache.set("b", "BB")
-  cache.set("c", "CCC")
-  cache.set("d", "DDDD")
-  t.equal(cache.get("d"), "DDDD")
-  t.equal(cache.get("c"), "CCC")
-  t.equal(cache.get("b"), undefined)
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("lru recently gotten with weighed length", function (t) {
-  var cache = new LRU({
-    max: 8,
-    length: function (item) { return item.length }
-  })
-  cache.set("a", "A")
-  cache.set("b", "BB")
-  cache.set("c", "CCC")
-  cache.get("a")
-  cache.get("b")
-  cache.set("d", "DDDD")
-  t.equal(cache.get("c"), undefined)
-  t.equal(cache.get("d"), "DDDD")
-  t.equal(cache.get("b"), "BB")
-  t.equal(cache.get("a"), "A")
-  t.end()
-})
-
-test("set returns proper booleans", function(t) {
-  var cache = new LRU({
-    max: 5,
-    length: function (item) { return item.length }
-  })
-
-  t.equal(cache.set("a", "A"), true)
-
-  // should return false for max exceeded
-  t.equal(cache.set("b", "donuts"), false)
-
-  t.equal(cache.set("b", "B"), true)
-  t.equal(cache.set("c", "CCCC"), true)
-  t.end()
-})
-
-test("drop the old items", function(t) {
-  var cache = new LRU({
-    max: 5,
-    maxAge: 50
-  })
-
-  cache.set("a", "A")
-
-  setTimeout(function () {
-    cache.set("b", "b")
-    t.equal(cache.get("a"), "A")
-  }, 25)
-
-  setTimeout(function () {
-    cache.set("c", "C")
-    // timed out
-    t.notOk(cache.get("a"))
-  }, 60)
-
-  setTimeout(function () {
-    t.notOk(cache.get("b"))
-    t.equal(cache.get("c"), "C")
-  }, 90)
-
-  setTimeout(function () {
-    t.notOk(cache.get("c"))
-    t.end()
-  }, 155)
-})
-
-test("disposal function", function(t) {
-  var disposed = false
-  var cache = new LRU({
-    max: 1,
-    dispose: function (k, n) {
-      disposed = n
-    }
-  })
-
-  cache.set(1, 1)
-  cache.set(2, 2)
-  t.equal(disposed, 1)
-  cache.set(3, 3)
-  t.equal(disposed, 2)
-  cache.reset()
-  t.equal(disposed, 3)
-  t.end()
-})
-
-test("disposal function on too big of item", function(t) {
-  var disposed = false
-  var cache = new LRU({
-    max: 1,
-    length: function (k) {
-      return k.length
-    },
-    dispose: function (k, n) {
-      disposed = n
-    }
-  })
-  var obj = [ 1, 2 ]
-
-  t.equal(disposed, false)
-  cache.set("obj", obj)
-  t.equal(disposed, obj)
-  t.end()
-})
-
-test("has()", function(t) {
-  var cache = new LRU({
-    max: 1,
-    maxAge: 10
-  })
-
-  cache.set('foo', 'bar')
-  t.equal(cache.has('foo'), true)
-  cache.set('blu', 'baz')
-  t.equal(cache.has('foo'), false)
-  t.equal(cache.has('blu'), true)
-  setTimeout(function() {
-    t.equal(cache.has('blu'), false)
-    t.end()
-  }, 15)
-})
-
-test("stale", function(t) {
-  var cache = new LRU({
-    maxAge: 10,
-    stale: true
-  })
-
-  cache.set('foo', 'bar')
-  t.equal(cache.get('foo'), 'bar')
-  t.equal(cache.has('foo'), true)
-  setTimeout(function() {
-    t.equal(cache.has('foo'), false)
-    t.equal(cache.get('foo'), 'bar')
-    t.equal(cache.get('foo'), undefined)
-    t.end()
-  }, 15)
-})
-
-test("lru update via set", function(t) {
-  var cache = LRU({ max: 2 });
-
-  cache.set('foo', 1);
-  cache.set('bar', 2);
-  cache.del('bar');
-  cache.set('baz', 3);
-  cache.set('qux', 4);
-
-  t.equal(cache.get('foo'), undefined)
-  t.equal(cache.get('bar'), undefined)
-  t.equal(cache.get('baz'), 3)
-  t.equal(cache.get('qux'), 4)
-  t.end()
-})
-
-test("least recently set w/ peek", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  t.equal(cache.peek("a"), "A")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), "B")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
deleted file mode 100644
index eefb80d..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var test = require('tap').test
-var LRU = require('../')
-
-test('forEach', function (t) {
-  var l = new LRU(5)
-  for (var i = 0; i < 10; i ++) {
-    l.set(i.toString(), i.toString(2))
-  }
-
-  var i = 9
-  l.forEach(function (val, key, cache) {
-    t.equal(cache, l)
-    t.equal(key, i.toString())
-    t.equal(val, i.toString(2))
-    i -= 1
-  })
-
-  // get in order of most recently used
-  l.get(6)
-  l.get(8)
-
-  var order = [ 8, 6, 9, 7, 5 ]
-  var i = 0
-
-  l.forEach(function (val, key, cache) {
-    var j = order[i ++]
-    t.equal(cache, l)
-    t.equal(key, j.toString())
-    t.equal(val, j.toString(2))
-  })
-
-  t.end()
-})
-
-test('keys() and values()', function (t) {
-  var l = new LRU(5)
-  for (var i = 0; i < 10; i ++) {
-    l.set(i.toString(), i.toString(2))
-  }
-
-  t.similar(l.keys(), ['9', '8', '7', '6', '5'])
-  t.similar(l.values(), ['1001', '1000', '111', '110', '101'])
-
-  // get in order of most recently used
-  l.get(6)
-  l.get(8)
-
-  t.similar(l.keys(), ['8', '6', '9', '7', '5'])
-  t.similar(l.values(), ['1000', '110', '1001', '111', '101'])
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
deleted file mode 100644
index 7af45b0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env node --expose_gc
-
-var weak = require('weak');
-var test = require('tap').test
-var LRU = require('../')
-var l = new LRU({ max: 10 })
-var refs = 0
-function X() {
-  refs ++
-  weak(this, deref)
-}
-
-function deref() {
-  refs --
-}
-
-test('no leaks', function (t) {
-  // fill up the cache
-  for (var i = 0; i < 100; i++) {
-    l.set(i, new X);
-    // throw some gets in there, too.
-    if (i % 2 === 0)
-      l.get(i / 2)
-  }
-
-  gc()
-
-  var start = process.memoryUsage()
-
-  // capture the memory
-  var startRefs = refs
-
-  // do it again, but more
-  for (var i = 0; i < 10000; i++) {
-    l.set(i, new X);
-    // throw some gets in there, too.
-    if (i % 2 === 0)
-      l.get(i / 2)
-  }
-
-  gc()
-
-  var end = process.memoryUsage()
-  t.equal(refs, startRefs, 'no leaky refs')
-
-  console.error('start: %j\n' +
-                'end:   %j', start, end);
-  t.pass();
-  t.end();
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE
deleted file mode 100644
index 0c44ae7..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md
deleted file mode 100644
index 7e36512..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# sigmund
-
-Quick and dirty signatures for Objects.
-
-This is like a much faster `deepEquals` comparison, which returns a
-string key suitable for caches and the like.
-
-## Usage
-
-```javascript
-function doSomething (someObj) {
-  var key = sigmund(someObj, maxDepth) // max depth defaults to 10
-  var cached = cache.get(key)
-  if (cached) return cached)
-
-  var result = expensiveCalculation(someObj)
-  cache.set(key, result)
-  return result
-}
-```
-
-The resulting key will be as unique and reproducible as calling
-`JSON.stringify` or `util.inspect` on the object, but is much faster.
-In order to achieve this speed, some differences are glossed over.
-For example, the object `{0:'foo'}` will be treated identically to the
-array `['foo']`.
-
-Also, just as there is no way to summon the soul from the scribblings
-of a cocain-addled psychoanalyst, there is no way to revive the object
-from the signature string that sigmund gives you.  In fact, it's
-barely even readable.
-
-As with `sys.inspect` and `JSON.stringify`, larger objects will
-produce larger signature strings.
-
-Because sigmund is a bit less strict than the more thorough
-alternatives, the strings will be shorter, and also there is a
-slightly higher chance for collisions.  For example, these objects
-have the same signature:
-
-    var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
-    var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
-
-Like a good Freudian, sigmund is most effective when you already have
-some understanding of what you're looking for.  It can help you help
-yourself, but you must be willing to do some work as well.
-
-Cycles are handled, and cyclical objects are silently omitted (though
-the key is included in the signature output.)
-
-The second argument is the maximum depth, which defaults to 10,
-because that is the maximum object traversal depth covered by most
-insurance carriers.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js
deleted file mode 100644
index 5acfd6d..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js
+++ /dev/null
@@ -1,283 +0,0 @@
-// different ways to id objects
-// use a req/res pair, since it's crazy deep and cyclical
-
-// sparseFE10 and sigmund are usually pretty close, which is to be expected,
-// since they are essentially the same algorithm, except that sigmund handles
-// regular expression objects properly.
-
-
-var http = require('http')
-var util = require('util')
-var sigmund = require('./sigmund.js')
-var sreq, sres, creq, cres, test
-
-http.createServer(function (q, s) {
-  sreq = q
-  sres = s
-  sres.end('ok')
-  this.close(function () { setTimeout(function () {
-    start()
-  }, 200) })
-}).listen(1337, function () {
-  creq = http.get({ port: 1337 })
-  creq.on('response', function (s) { cres = s })
-})
-
-function start () {
-  test = [sreq, sres, creq, cres]
-  // test = sreq
-  // sreq.sres = sres
-  // sreq.creq = creq
-  // sreq.cres = cres
-
-  for (var i in exports.compare) {
-    console.log(i)
-    var hash = exports.compare[i]()
-    console.log(hash)
-    console.log(hash.length)
-    console.log('')
-  }
-
-  require('bench').runMain()
-}
-
-function customWs (obj, md, d) {
-  d = d || 0
-  var to = typeof obj
-  if (to === 'undefined' || to === 'function' || to === null) return ''
-  if (d > md || !obj || to !== 'object') return ('' + obj).replace(/[\n ]+/g, '')
-
-  if (Array.isArray(obj)) {
-    return obj.map(function (i, _, __) {
-      return customWs(i, md, d + 1)
-    }).reduce(function (a, b) { return a + b }, '')
-  }
-
-  var keys = Object.keys(obj)
-  return keys.map(function (k, _, __) {
-    return k + ':' + customWs(obj[k], md, d + 1)
-  }).reduce(function (a, b) { return a + b }, '')
-}
-
-function custom (obj, md, d) {
-  d = d || 0
-  var to = typeof obj
-  if (to === 'undefined' || to === 'function' || to === null) return ''
-  if (d > md || !obj || to !== 'object') return '' + obj
-
-  if (Array.isArray(obj)) {
-    return obj.map(function (i, _, __) {
-      return custom(i, md, d + 1)
-    }).reduce(function (a, b) { return a + b }, '')
-  }
-
-  var keys = Object.keys(obj)
-  return keys.map(function (k, _, __) {
-    return k + ':' + custom(obj[k], md, d + 1)
-  }).reduce(function (a, b) { return a + b }, '')
-}
-
-function sparseFE2 (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    Object.keys(v).forEach(function (k, _, __) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') return
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') return
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-    })
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function sparseFE (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    Object.keys(v).forEach(function (k, _, __) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') return
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') return
-      soFar += k
-      ch(v[k], depth + 1)
-    })
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function sparse (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k
-      ch(v[k], depth + 1)
-    }
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function noCommas (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-    }
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-
-function flatten (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-      soFar += ','
-    }
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-exports.compare =
-{
-  // 'custom 2': function () {
-  //   return custom(test, 2, 0)
-  // },
-  // 'customWs 2': function () {
-  //   return customWs(test, 2, 0)
-  // },
-  'JSON.stringify (guarded)': function () {
-    var seen = []
-    return JSON.stringify(test, function (k, v) {
-      if (typeof v !== 'object' || !v) return v
-      if (seen.indexOf(v) !== -1) return undefined
-      seen.push(v)
-      return v
-    })
-  },
-
-  'flatten 10': function () {
-    return flatten(test, 10)
-  },
-
-  // 'flattenFE 10': function () {
-  //   return flattenFE(test, 10)
-  // },
-
-  'noCommas 10': function () {
-    return noCommas(test, 10)
-  },
-
-  'sparse 10': function () {
-    return sparse(test, 10)
-  },
-
-  'sparseFE 10': function () {
-    return sparseFE(test, 10)
-  },
-
-  'sparseFE2 10': function () {
-    return sparseFE2(test, 10)
-  },
-
-  sigmund: function() {
-    return sigmund(test, 10)
-  },
-
-
-  // 'util.inspect 1': function () {
-  //   return util.inspect(test, false, 1, false)
-  // },
-  // 'util.inspect undefined': function () {
-  //   util.inspect(test)
-  // },
-  // 'util.inspect 2': function () {
-  //   util.inspect(test, false, 2, false)
-  // },
-  // 'util.inspect 3': function () {
-  //   util.inspect(test, false, 3, false)
-  // },
-  // 'util.inspect 4': function () {
-  //   util.inspect(test, false, 4, false)
-  // },
-  // 'util.inspect Infinity': function () {
-  //   util.inspect(test, false, Infinity, false)
-  // }
-}
-
-/** results
-**/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json
deleted file mode 100644
index ec8e2eb..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "name": "sigmund",
-  "version": "1.0.0",
-  "description": "Quick and dirty signatures for Objects.",
-  "main": "sigmund.js",
-  "directories": {
-    "test": "test"
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "tap": "~0.3.0"
-  },
-  "scripts": {
-    "test": "tap test/*.js",
-    "bench": "node bench.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/sigmund"
-  },
-  "keywords": [
-    "object",
-    "signature",
-    "key",
-    "data",
-    "psychoanalysis"
-  ],
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "license": "BSD",
-  "readme": "# sigmund\n\nQuick and dirty signatures for Objects.\n\nThis is like a much faster `deepEquals` comparison, which returns a\nstring key suitable for caches and the like.\n\n## Usage\n\n```javascript\nfunction doSomething (someObj) {\n  var key = sigmund(someObj, maxDepth) // max depth defaults to 10\n  var cached = cache.get(key)\n  if (cached) return cached)\n\n  var result = expensiveCalculation(someObj)\n  cache.set(key, result)\n  return result\n}\n```\n\nThe resulting key will be as unique and reproducible as calling\n`JSON.stringify` or `util.inspect` on the object, but is much faster.\nIn order to achieve this speed, some differences are glossed over.\nFor example, the object `{0:'foo'}` will be treated identically to the\narray `['foo']`.\n\nAlso, just as there is no way to summon the soul from the scribblings\nof a cocain-addled psychoanalyst, there is no way to revive the object\nfrom the signature string that sigmund gives you.  In fact, it's\nbarely even rea
 dable.\n\nAs with `sys.inspect` and `JSON.stringify`, larger objects will\nproduce larger signature strings.\n\nBecause sigmund is a bit less strict than the more thorough\nalternatives, the strings will be shorter, and also there is a\nslightly higher chance for collisions.  For example, these objects\nhave the same signature:\n\n    var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}\n    var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}\n\nLike a good Freudian, sigmund is most effective when you already have\nsome understanding of what you're looking for.  It can help you help\nyourself, but you must be willing to do some work as well.\n\nCycles are handled, and cyclical objects are silently omitted (though\nthe key is included in the signature output.)\n\nThe second argument is the maximum depth, which defaults to 10,\nbecause that is the maximum object traversal depth covered by most\ninsurance carriers.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/sigmund/issues"
-  },
-  "_id": "sigmund@1.0.0",
-  "_from": "sigmund@~1.0.0"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js
deleted file mode 100644
index 82c7ab8..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js
+++ /dev/null
@@ -1,39 +0,0 @@
-module.exports = sigmund
-function sigmund (subject, maxSessions) {
-    maxSessions = maxSessions || 10;
-    var notes = [];
-    var analysis = '';
-    var RE = RegExp;
-
-    function psychoAnalyze (subject, session) {
-        if (session > maxSessions) return;
-
-        if (typeof subject === 'function' ||
-            typeof subject === 'undefined') {
-            return;
-        }
-
-        if (typeof subject !== 'object' || !subject ||
-            (subject instanceof RE)) {
-            analysis += subject;
-            return;
-        }
-
-        if (notes.indexOf(subject) !== -1 || session === maxSessions) return;
-
-        notes.push(subject);
-        analysis += '{';
-        Object.keys(subject).forEach(function (issue, _, __) {
-            // pseudo-private values.  skip those.
-            if (issue.charAt(0) === '_') return;
-            var to = typeof subject[issue];
-            if (to === 'function' || to === 'undefined') return;
-            analysis += issue;
-            psychoAnalyze(subject[issue], session + 1);
-        });
-    }
-    psychoAnalyze(subject, 0);
-    return analysis;
-}
-
-// vim: set softtabstop=4 shiftwidth=4:

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js b/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js
deleted file mode 100644
index 50c53a1..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var test = require('tap').test
-var sigmund = require('../sigmund.js')
-
-
-// occasionally there are duplicates
-// that's an acceptable edge-case.  JSON.stringify and util.inspect
-// have some collision potential as well, though less, and collision
-// detection is expensive.
-var hash = '{abc/def/g{0h1i2{jkl'
-var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
-var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
-
-var obj3 = JSON.parse(JSON.stringify(obj1))
-obj3.c = /def/
-obj3.g[2].cycle = obj3
-var cycleHash = '{abc/def/g{0h1i2{jklcycle'
-
-test('basic', function (t) {
-    t.equal(sigmund(obj1), hash)
-    t.equal(sigmund(obj2), hash)
-    t.equal(sigmund(obj3), cycleHash)
-    t.end()
-})
-


[13/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/iTunes-BIG.xml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/iTunes-BIG.xml b/blackberry10/node_modules/plugman/node_modules/plist/tests/iTunes-BIG.xml
deleted file mode 100644
index cb3e049..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/iTunes-BIG.xml
+++ /dev/null
@@ -1,299484 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>Major Version</key><integer>1</integer>
-	<key>Minor Version</key><integer>1</integer>
-	<key>Application Version</key><string>9.2.1</string>
-	<key>Features</key><integer>5</integer>
-	<key>Show Content Ratings</key><true/>
-	<key>Music Folder</key><string>file://localhost/Volumes/tb2/iTunes%20Media/</string>
-	<key>Library Persistent ID</key><string>31F50A32280EF3CC</string>
-	<key>Tracks</key>
-	<dict>
-		<key>1292</key>
-		<dict>
-			<key>Track ID</key><integer>1292</integer>
-			<key>Name</key><string>I Ain't Mad At Cha</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3004070</integer>
-			<key>Total Time</key><integer>184318</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>13</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:45Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3356700357</integer>
-			<key>Play Date UTC</key><date>2010-05-14T23:45:57Z</date>
-			<key>Persistent ID</key><string>1A21CBC85428B954</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-13%20I%20Ain't%20Mad%20At%20Cha.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1294</key>
-		<dict>
-			<key>Track ID</key><integer>1294</integer>
-			<key>Name</key><string>Ambitionz Az A Ridah</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4514055</integer>
-			<key>Total Time</key><integer>278452</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:14Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3356699157</integer>
-			<key>Play Date UTC</key><date>2010-05-14T23:25:57Z</date>
-			<key>Persistent ID</key><string>3FB36E2B29D77829</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-01%20Ambitionz%20Az%20A%20Ridah.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1296</key>
-		<dict>
-			<key>Track ID</key><integer>1296</integer>
-			<key>Name</key><string>Ambitionz Az A Ridah</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4514055</integer>
-			<key>Total Time</key><integer>278452</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:14Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>95C08FCAC4A80CF9</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-01%20Ambitionz%20Az%20A%20Ridah%201.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1298</key>
-		<dict>
-			<key>Track ID</key><integer>1298</integer>
-			<key>Name</key><string>All About you</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4471401</integer>
-			<key>Total Time</key><integer>275805</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>2</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:14Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>21CB086ADF63BE8E</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-02%20All%20About%20you.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1300</key>
-		<dict>
-			<key>Track ID</key><integer>1300</integer>
-			<key>Name</key><string>All About you</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4471401</integer>
-			<key>Total Time</key><integer>275805</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>2</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:14Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>570C725BF04268D3</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-02%20All%20About%20you%201.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1302</key>
-		<dict>
-			<key>Track ID</key><integer>1302</integer>
-			<key>Name</key><string>Skandalouz</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4038695</integer>
-			<key>Total Time</key><integer>248939</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>3</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:14Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>C89A02E32570E4D2</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-03%20Skandalouz.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1304</key>
-		<dict>
-			<key>Track ID</key><integer>1304</integer>
-			<key>Name</key><string>Skandalouz</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4038695</integer>
-			<key>Total Time</key><integer>248939</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>3</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:14Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>50BF725A1213132A</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-03%20Skandalouz%201.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1306</key>
-		<dict>
-			<key>Track ID</key><integer>1306</integer>
-			<key>Name</key><string>Got My Mind Made Up</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5071836</integer>
-			<key>Total Time</key><integer>312794</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>4</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:14Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>9B744943CBC2A83C</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-04%20Got%20My%20Mind%20Made%20Up.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1308</key>
-		<dict>
-			<key>Track ID</key><integer>1308</integer>
-			<key>Name</key><string>Got My Mind Made Up</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5071836</integer>
-			<key>Total Time</key><integer>312794</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>4</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:14Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>C6DA786C2A6EBDA2</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-04%20Got%20My%20Mind%20Made%20Up%201.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1310</key>
-		<dict>
-			<key>Track ID</key><integer>1310</integer>
-			<key>Name</key><string>How Do You Want It</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4660210</integer>
-			<key>Total Time</key><integer>287391</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>5</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>8571DA2B0B40D3BB</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-05%20How%20Do%20You%20Want%20It.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1312</key>
-		<dict>
-			<key>Track ID</key><integer>1312</integer>
-			<key>Name</key><string>How Do You Want It</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4660210</integer>
-			<key>Total Time</key><integer>287391</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>5</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>F2C9D86A1B77DBA8</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-05%20How%20Do%20You%20Want%20It%201.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1314</key>
-		<dict>
-			<key>Track ID</key><integer>1314</integer>
-			<key>Name</key><string>2 of Americas Most Wanted</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4024463</integer>
-			<key>Total Time</key><integer>248126</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>6</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>B0F5BA6D3B0E6F1D</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-06%202%20of%20Americas%20Most%20Wanted.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1316</key>
-		<dict>
-			<key>Track ID</key><integer>1316</integer>
-			<key>Name</key><string>2 of Americas Most Wanted</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4024463</integer>
-			<key>Total Time</key><integer>248126</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>6</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>7F654912EEFD17D3</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-06%202%20of%20Americas%20Most%20Wanted%201.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1318</key>
-		<dict>
-			<key>Track ID</key><integer>1318</integer>
-			<key>Name</key><string>No More Pain</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>6071189</integer>
-			<key>Total Time</key><integer>374536</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>7</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>264BE44201DF4E4B</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-07%20No%20More%20Pain.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1320</key>
-		<dict>
-			<key>Track ID</key><integer>1320</integer>
-			<key>Name</key><string>Heartz of Men</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4595876</integer>
-			<key>Total Time</key><integer>283490</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>8</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>2A0E15C7C8743458</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-08%20Heartz%20of%20Men.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1322</key>
-		<dict>
-			<key>Track ID</key><integer>1322</integer>
-			<key>Name</key><string>Life Goes On</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4877423</integer>
-			<key>Total Time</key><integer>302717</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>9</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>65927E557CA8261A</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-09%20Life%20Goes%20On.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1324</key>
-		<dict>
-			<key>Track ID</key><integer>1324</integer>
-			<key>Name</key><string>Only God Can Judge Me</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4810378</integer>
-			<key>Total Time</key><integer>296865</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>10</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3356700152</integer>
-			<key>Play Date UTC</key><date>2010-05-14T23:42:32Z</date>
-			<key>Persistent ID</key><string>F672788F00FDEC02</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-10%20Only%20God%20Can%20Judge%20Me.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1326</key>
-		<dict>
-			<key>Track ID</key><integer>1326</integer>
-			<key>Name</key><string>Tradin' War Strories</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5347856</integer>
-			<key>Total Time</key><integer>329930</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>11</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>82411CE03AB45778</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-11%20Tradin'%20War%20Strories.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1328</key>
-		<dict>
-			<key>Track ID</key><integer>1328</integer>
-			<key>Name</key><string>California Love (Remix)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5491760</integer>
-			<key>Total Time</key><integer>338870</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>13</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>FA7F3F200DC23D0E</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-13%20California%20Love%20(Remix).m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1330</key>
-		<dict>
-			<key>Track ID</key><integer>1330</integer>
-			<key>Name</key><string>What's Ya Phone #</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5025994</integer>
-			<key>Total Time</key><integer>310077</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>14</integer>
-			<key>Track Count</key><integer>14</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>BC009353C68FC591</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/1-14%20What's%20Ya%20Phone%20%23.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1332</key>
-		<dict>
-			<key>Track ID</key><integer>1332</integer>
-			<key>Name</key><string>Can't C Me</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5364866</integer>
-			<key>Total Time</key><integer>330929</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:46Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3356700696</integer>
-			<key>Play Date UTC</key><date>2010-05-14T23:51:36Z</date>
-			<key>Persistent ID</key><string>E8ED02747DE91CD1</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-01%20Can't%20C%20Me.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1334</key>
-		<dict>
-			<key>Track ID</key><integer>1334</integer>
-			<key>Name</key><string>Shorty Wanna Be A Thug</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3763197</integer>
-			<key>Total Time</key><integer>231710</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>2</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>FC700DC46084AFE0</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-02%20Shorty%20Wanna%20Be%20A%20Thug.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1336</key>
-		<dict>
-			<key>Track ID</key><integer>1336</integer>
-			<key>Name</key><string>Holla at Me</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4791064</integer>
-			<key>Total Time</key><integer>295449</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>3</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>D2B7D0E1411454B2</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-03%20Holla%20at%20Me.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1338</key>
-		<dict>
-			<key>Track ID</key><integer>1338</integer>
-			<key>Name</key><string>Wonda Why They Call U Bitch</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4196531</integer>
-			<key>Total Time</key><integer>258715</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>4</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>F7B31B1D0C3C7568</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-04%20Wonda%20Why%20They%20Call%20U%20Bitch.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1340</key>
-		<dict>
-			<key>Track ID</key><integer>1340</integer>
-			<key>Name</key><string>When We Ride</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5013320</integer>
-			<key>Total Time</key><integer>309404</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>5</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>F2AA7C36C6E8BE12</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-05%20When%20We%20Ride.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1342</key>
-		<dict>
-			<key>Track ID</key><integer>1342</integer>
-			<key>Name</key><string>Thug Passion</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4988764</integer>
-			<key>Total Time</key><integer>307732</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>6</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Play Count</key><integer>2</integer>
-			<key>Play Date</key><integer>3354966558</integer>
-			<key>Play Date UTC</key><date>2010-04-24T22:09:18Z</date>
-			<key>Persistent ID</key><string>8D0A7C7FD27E4571</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-06%20Thug%20Passion.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1344</key>
-		<dict>
-			<key>Track ID</key><integer>1344</integer>
-			<key>Name</key><string>Picture Me Rollin'</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5098919</integer>
-			<key>Total Time</key><integer>315441</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>7</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>5AF62E75F0436506</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Users/nrajlich/Music/iTunes/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-07%20Picture%20Me%20Rollin'.m4a</string>
-			<key>File Folder Count</key><integer>-1</integer>
-			<key>Library Folder Count</key><integer>-1</integer>
-		</dict>
-		<key>1346</key>
-		<dict>
-			<key>Track ID</key><integer>1346</integer>
-			<key>Name</key><string>Check Out Time</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4528371</integer>
-			<key>Total Time</key><integer>279311</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>8</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>059162692BB3CBA1</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-08%20Check%20Out%20Time.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1348</key>
-		<dict>
-			<key>Track ID</key><integer>1348</integer>
-			<key>Name</key><string>Ratha Be Ya Nigga</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4118568</integer>
-			<key>Total Time</key><integer>253862</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>9</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>E3A7320BA603D919</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-09%20Ratha%20Be%20Ya%20Nigga.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1350</key>
-		<dict>
-			<key>Track ID</key><integer>1350</integer>
-			<key>Name</key><string>All Eyez On Me</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4990725</integer>
-			<key>Total Time</key><integer>307779</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>10</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>22F97F20D0146A90</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-10%20All%20Eyez%20On%20Me.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1352</key>
-		<dict>
-			<key>Track ID</key><integer>1352</integer>
-			<key>Name</key><string>Run Tha Streets</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4670234</integer>
-			<key>Total Time</key><integer>288088</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>11</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>A15BE54FC212911F</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-11%20Run%20Tha%20Streets.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1354</key>
-		<dict>
-			<key>Track ID</key><integer>1354</integer>
-			<key>Name</key><string>Ain't Hard 2 Find</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4355086</integer>
-			<key>Total Time</key><integer>268606</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>12</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Play Count</key><integer>1</integer>
-			<key>Play Date</key><integer>3353074286</integer>
-			<key>Play Date UTC</key><date>2010-04-03T00:31:26Z</date>
-			<key>Persistent ID</key><string>806E58852B7EF435</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-12%20Ain't%20Hard%202%20Find.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1356</key>
-		<dict>
-			<key>Track ID</key><integer>1356</integer>
-			<key>Name</key><string>Heaven Ain't Hard 2 Find</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>All Eyez On Me</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3860346</integer>
-			<key>Total Time</key><integer>238188</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>13</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>1996</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>DEE781B59658524D</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/All%20Eyez%20On%20Me/2-13%20Heaven%20Ain't%20Hard%202%20Find.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1358</key>
-		<dict>
-			<key>Track ID</key><integer>1358</integer>
-			<key>Name</key><string>Thugz Mansion (Acoustic Feat. Nas)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4094033</integer>
-			<key>Total Time</key><integer>252515</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>13</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>70FDDF12055CD4FC</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-13%20Thugz%20Mansion%20(Acoustic%20Feat.%20Nas).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1360</key>
-		<dict>
-			<key>Track ID</key><integer>1360</integer>
-			<key>Name</key><string>Intro</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>946032</integer>
-			<key>Total Time</key><integer>55796</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>16593D4390A90A0F</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-01%20Intro.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1362</key>
-		<dict>
-			<key>Track ID</key><integer>1362</integer>
-			<key>Name</key><string>Still Ballin (Feat Trick Daddy)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>2767393</integer>
-			<key>Total Time</key><integer>169620</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>2</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>71DEA9E297E32023</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-02%20Still%20Ballin%20(Feat%20Trick%20Daddy).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1364</key>
-		<dict>
-			<key>Track ID</key><integer>1364</integer>
-			<key>Name</key><string>When We Ride On Our Enemies</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>2842680</integer>
-			<key>Total Time</key><integer>174287</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>3</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>6A585B60E1CBB5AA</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-03%20When%20We%20Ride%20On%20Our%20Enemies.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1366</key>
-		<dict>
-			<key>Track ID</key><integer>1366</integer>
-			<key>Name</key><string>Changed Man</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3768281</integer>
-			<key>Total Time</key><integer>232058</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>4</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>A1C6EE1F0761C00C</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-04%20Changed%20Man.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1368</key>
-		<dict>
-			<key>Track ID</key><integer>1368</integer>
-			<key>Name</key><string>Fuck Em All (Feat the Outlawz)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4309840</integer>
-			<key>Total Time</key><integer>265913</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>5</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>9AEBBE24C3E7A90E</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-05%20Fuck%20Em%20All%20(Feat%20the%20Outlawz).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1370</key>
-		<dict>
-			<key>Track ID</key><integer>1370</integer>
-			<key>Name</key><string>Never Be Peace (Feat Kastro)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4852954</integer>
-			<key>Total Time</key><integer>299373</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>6</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>E2CC848538FA90BE</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-06%20Never%20Be%20Peace%20(Feat%20Kastro).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1372</key>
-		<dict>
-			<key>Track ID</key><integer>1372</integer>
-			<key>Name</key><string>Mama's Just A Little Girl</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4828597</integer>
-			<key>Total Time</key><integer>298026</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>7</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>F1AE57992AA169C5</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-07%20Mama's%20Just%20A%20Little%20Girl.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1374</key>
-		<dict>
-			<key>Track ID</key><integer>1374</integer>
-			<key>Name</key><string>Street Fame</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4367968</integer>
-			<key>Total Time</key><integer>269419</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>8</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>BF55532F735DCF70</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-08%20Street%20Fame.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1376</key>
-		<dict>
-			<key>Track ID</key><integer>1376</integer>
-			<key>Name</key><string>What'cha Gonna Do (Feat Young Noble, Kastro)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3534951</integer>
-			<key>Total Time</key><integer>218869</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>9</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>5A43A2F4E8223AE8</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-09%20What'cha%20Gonna%20Do%20(Feat%20Young%20Noble,%20Kastro).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1378</key>
-		<dict>
-			<key>Track ID</key><integer>1378</integer>
-			<key>Name</key><string>Fair XChange</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3769666</integer>
-			<key>Total Time</key><integer>232174</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>10</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>EAEFBEEFDFA23870</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-10%20Fair%20XChange.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1380</key>
-		<dict>
-			<key>Track ID</key><integer>1380</integer>
-			<key>Name</key><string>Late Night (Feat Fatal, Kadafi)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4175065</integer>
-			<key>Total Time</key><integer>257484</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>11</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>C33E0B0455944C75</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-11%20Late%20Night%20(Feat%20Fatal,%20Kadafi).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1382</key>
-		<dict>
-			<key>Track ID</key><integer>1382</integer>
-			<key>Name</key><string>Ghetto Star (Feat Nutt-So)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4121124</integer>
-			<key>Total Time</key><integer>254814</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>12</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>47EB30AEDFC147D6</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/1-12%20Ghetto%20Star%20(Feat%20Nutt-So).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1384</key>
-		<dict>
-			<key>Track ID</key><integer>1384</integer>
-			<key>Name</key><string>My Block (Remix)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5220779</integer>
-			<key>Total Time</key><integer>322500</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>14</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>8933997822DB2358</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-14%20My%20Block%20(Remix).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1386</key>
-		<dict>
-			<key>Track ID</key><integer>1386</integer>
-			<key>Name</key><string>Thugz Mansion (Feat. Anthony Hamilton)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4017564</integer>
-			<key>Total Time</key><integer>247639</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>15</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>3CFCBAECF15CE064</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-15%20Thugz%20Mansion%20(Feat.%20Anthony%20Hamilton).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1388</key>
-		<dict>
-			<key>Track ID</key><integer>1388</integer>
-			<key>Name</key><string>Never Call U Bitch Again (Feat. Tyrese)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4512111</integer>
-			<key>Total Time</key><integer>278359</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>16</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>E08C0DA4B940D826</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-16%20Never%20Call%20U%20Bitch%20Again%20(Feat.%20Tyrese).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1390</key>
-		<dict>
-			<key>Track ID</key><integer>1390</integer>
-			<key>Name</key><string>Better Dayz (Feat. Mr. Biggs)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4172644</integer>
-			<key>Total Time</key><integer>257670</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>17</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>4815B5D73501BD51</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-17%20Better%20Dayz%20(Feat.%20Mr.%20Biggs).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1392</key>
-		<dict>
-			<key>Track ID</key><integer>1392</integer>
-			<key>Name</key><string>U Can Call</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3733670</integer>
-			<key>Total Time</key><integer>229992</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>18</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>DFD8602E3970A4D4</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-18%20U%20Can%20Call.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1394</key>
-		<dict>
-			<key>Track ID</key><integer>1394</integer>
-			<key>Name</key><string>Military Minds (Feat Bukshot, Cocoa Brovas)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5340891</integer>
-			<key>Total Time</key><integer>329489</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>19</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>21E0E39EAE529BD8</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-19%20Military%20Minds%20(Feat%20Bukshot,%20Cocoa%20Brovas).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1396</key>
-		<dict>
-			<key>Track ID</key><integer>1396</integer>
-			<key>Name</key><string>Fame</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4706810</integer>
-			<key>Total Time</key><integer>290364</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>20</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:16Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>98F4BE4C8B1BEA1D</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-20%20Fame.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1398</key>
-		<dict>
-			<key>Track ID</key><integer>1398</integer>
-			<key>Name</key><string>Fair XChange (Remix)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3835686</integer>
-			<key>Total Time</key><integer>236284</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>21</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:18Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>A09576FCC5153FE6</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-21%20Fair%20XChange%20(Remix).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1400</key>
-		<dict>
-			<key>Track ID</key><integer>1400</integer>
-			<key>Name</key><string>Catchin Feelins (Feat Napolean)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4766402</integer>
-			<key>Total Time</key><integer>294032</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>22</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:18Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>DFB1975FBA84B24F</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-22%20Catchin%20Feelins%20(Feat%20Napolean).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1402</key>
-		<dict>
-			<key>Track ID</key><integer>1402</integer>
-			<key>Name</key><string>There U Go (Feat Kastro, Kadafi, Young Noble, Big Syke)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5355667</integer>
-			<key>Total Time</key><integer>330395</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>23</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:18Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>0399EC586426A82F</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-23%20There%20U%20Go%20(Feat%20Kastro,%20Kadafi,%20Young%20Noble,%20Big%20Syke).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1404</key>
-		<dict>
-			<key>Track ID</key><integer>1404</integer>
-			<key>Name</key><string>This Life I Lead (Feat Outlawz)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5208797</integer>
-			<key>Total Time</key><integer>321339</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>24</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:18Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:47Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>D717A5C4CE9A3331</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-24%20This%20Life%20I%20Lead%20(Feat%20Outlawz).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1406</key>
-		<dict>
-			<key>Track ID</key><integer>1406</integer>
-			<key>Name</key><string>Who Do U Believe In (Feat Kadafi)</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>5362611</integer>
-			<key>Total Time</key><integer>330952</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>25</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:20Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:48Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>FA4FE5CB9005CE36</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-25%20Who%20Do%20U%20Believe%20In%20(Feat%20Kadafi).m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1408</key>
-		<dict>
-			<key>Track ID</key><integer>1408</integer>
-			<key>Name</key><string>They Don't Give A Fuck About Us</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>4965514</integer>
-			<key>Total Time</key><integer>308057</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>26</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:20Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:48Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>B48B63460226C55F</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-26%20They%20Don't%20Give%20A%20Fuck%20About%20Us.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1410</key>
-		<dict>
-			<key>Track ID</key><integer>1410</integer>
-			<key>Name</key><string>Outro</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Better Dayz</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>269108</integer>
-			<key>Total Time</key><integer>13651</integer>
-			<key>Disc Number</key><integer>2</integer>
-			<key>Disc Count</key><integer>2</integer>
-			<key>Track Number</key><integer>27</integer>
-			<key>Track Count</key><integer>27</integer>
-			<key>Year</key><integer>2002</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:20Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:48Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>RNS Team</string>
-			<key>Persistent ID</key><string>08493D7390E1985D</string>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Better%20Dayz/2-27%20Outro.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1412</key>
-		<dict>
-			<key>Track ID</key><integer>1412</integer>
-			<key>Name</key><string>Live Medley</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Live</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>2987819</integer>
-			<key>Total Time</key><integer>183296</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>1</integer>
-			<key>Track Number</key><integer>1</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>2004</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:28Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:48Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>042D086FDC68AA84</string>
-			<key>Disabled</key><true/>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Live/01%20Live%20Medley.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1414</key>
-		<dict>
-			<key>Track ID</key><integer>1414</integer>
-			<key>Name</key><string>Intro</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Live</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>267068</integer>
-			<key>Total Time</key><integer>13396</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>1</integer>
-			<key>Track Number</key><integer>2</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>2004</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:30Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:48Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>247DBC78EBE2DF15</string>
-			<key>Disabled</key><true/>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Live/02%20Intro.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1416</key>
-		<dict>
-			<key>Track ID</key><integer>1416</integer>
-			<key>Name</key><string>Ambitionz Az A Ridah</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Live</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>2764015</integer>
-			<key>Total Time</key><integer>169364</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>1</integer>
-			<key>Track Number</key><integer>3</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>2004</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:30Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:48Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>CCBB40B480A41F77</string>
-			<key>Disabled</key><true/>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Live/03%20Ambitionz%20Az%20A%20Ridah.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1418</key>
-		<dict>
-			<key>Track ID</key><integer>1418</integer>
-			<key>Name</key><string>So Many Tears</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Live</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>1458543</integer>
-			<key>Total Time</key><integer>87862</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>1</integer>
-			<key>Track Number</key><integer>4</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>2004</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:30Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:48Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>4C2C966D33BA34D9</string>
-			<key>Disabled</key><true/>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Live/04%20So%20Many%20Tears.m4a</string>
-			<key>File Folder Count</key><integer>5</integer>
-			<key>Library Folder Count</key><integer>1</integer>
-		</dict>
-		<key>1420</key>
-		<dict>
-			<key>Track ID</key><integer>1420</integer>
-			<key>Name</key><string>Troublesome</string>
-			<key>Artist</key><string>2Pac</string>
-			<key>Album</key><string>Live</string>
-			<key>Grouping</key><string>Rap</string>
-			<key>Genre</key><string>Hip Hop/Rap</string>
-			<key>Kind</key><string>AAC audio file</string>
-			<key>Size</key><integer>3006696</integer>
-			<key>Total Time</key><integer>184527</integer>
-			<key>Disc Number</key><integer>1</integer>
-			<key>Disc Count</key><integer>1</integer>
-			<key>Track Number</key><integer>5</integer>
-			<key>Track Count</key><integer>13</integer>
-			<key>Year</key><integer>2004</integer>
-			<key>Date Modified</key><date>2006-09-28T00:49:30Z</date>
-			<key>Date Added</key><date>2010-02-25T05:47:48Z</date>
-			<key>Bit Rate</key><integer>128</integer>
-			<key>Sample Rate</key><integer>44100</integer>
-			<key>Comments</key><string>www.bizzydownload.tk</string>
-			<key>Persistent ID</key><string>43056CA18C83AB67</string>
-			<key>Disabled</key><true/>
-			<key>Track Type</key><string>File</string>
-			<key>Location</key><string>file://localhost/Volumes/tb2/iTunes%20Media/Music/2Pac/Live

<TRUNCATED>

[42/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-runner.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-runner.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-runner.js
deleted file mode 100644
index bbaa08b..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-runner.js
+++ /dev/null
@@ -1,87 +0,0 @@
-exports.executeJsRunner = function(specCollection, done, jasmineEnv, setupFile) {
-  var specs,
-      specLoader = require('./requirejs-spec-loader'),
-      requirejs = require('requirejs'),
-      vm = require('vm'),
-      fs = require('fs'),
-      coffeescript = require('coffee-script'),
-      template = fs.readFileSync(
-        setupFile || (__dirname + '/requirejs-wrapper-template.js'),
-        'utf8'
-      ),
-      ensureUnixPath = function(path){
-        return path.replace(/^(.):/, '/$1').replace(/\\/g, '/');
-      },
-      buildNewContext = function(spec){
-        var context = {
-          describe: describe,
-          it: it,
-          xdescribe: xdescribe,
-          xit: xit,
-          beforeEach: beforeEach,
-          afterEach: afterEach,
-          spyOn: spyOn,
-          waitsFor: waitsFor,
-          waits: waits,
-          runs: runs,
-          jasmine: jasmine,
-          expect: expect,
-          require: require,
-          console: console,
-          process: process,
-          module: module,
-          specLoader: specLoader,
-          __dirname: spec.directory(),
-          __filename: spec.path(),
-          baseUrl: buildRelativeDirName(spec.directory()),
-          csPath: __dirname + '/cs'
-        };
-
-        context.global = context;
-
-        return context;
-      },
-      buildRelativeDirName = function(dir){
-        var retVal = "",
-            thisDir = ensureUnixPath(process.cwd()),
-            toDir = ensureUnixPath(dir).split('/'),
-            index = 0;
-
-        thisDir = thisDir.split('/');
-
-        for(; index < thisDir.length || index < toDir.length; index++) {
-          if(thisDir[index] != toDir[index]){
-            for(var i = index; i < thisDir.length-1; i++){
-              retVal += '../';
-            }
-
-            for(var i = index; i < toDir.length; i++){
-              retVal += toDir[i] + '/';
-            }
-
-            break;
-          }
-        }
-
-        return retVal.trim('/');
-      };
-
-  specCollection.getSpecs().forEach(function(s){
-    var script = fs.readFileSync(s.path(), 'utf8'),
-        wrappedScript;
-
-    if (s.filename().substr(-6).toLowerCase() == 'coffee') {
-      script = coffeescript.compile(script);
-    }
-
-    wrappedScript = template + script;
-
-    var newContext = buildNewContext(s);
-    newContext.setTimeout = jasmine.getGlobal().setTimeout;
-    newContext.setInterval = jasmine.getGlobal().setInterval;
-
-    vm.runInNewContext(wrappedScript, newContext, s.path());
-  });
-
-  specLoader.executeWhenAllSpecsAreComplete(jasmineEnv);
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-spec-loader.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-spec-loader.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-spec-loader.js
deleted file mode 100644
index 284db7d..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-spec-loader.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var _ = require('underscore'),
-    registry = {},
-    timeout = 120000,
-    now = function() {
-      return new Date().getTime();
-    },
-    loader = {
-      register: function(name) {
-        registry[name] = false;
-      },
-      completed: function(name){
-        registry[name] = true;
-      }
-    },
-    specLoader = {
-      defineLoader: function(requirejs) {
-        requirejs.define('jasmine-spec-loader', function() {
-          return loader;
-        });
-      },
-      executeWhenAllSpecsAreComplete: function(jasmineEnv) {
-        var allComplete = false,
-            wait = now(),
-            timeoutCallback = function() {
-              allComplete = _.all(registry, function(value) {
-                return value;
-              });
-
-              if(!allComplete && wait + timeout > now()) {
-                setTimeout(timeoutCallback, 100);
-              } else if (!allComplete) {
-                console.log('Failed to load all specs within timeout window.');
-                process.exit(-1);
-              } else {
-                jasmineEnv.execute();
-              }
-            };
-
-        setTimeout(timeoutCallback, 100);
-      },
-      setTimeoutInterval: function(value) {
-        timeout = value;
-      },
-    };
-
-for(var key in specLoader) {
-  exports[key] = specLoader[key];
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-wrapper-template.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-wrapper-template.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-wrapper-template.js
deleted file mode 100644
index 344daeb..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/requirejs-wrapper-template.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Setup file run before spec files to setup the context (and RequireJS
- * specifically) to execute the spec file.
- *
- * Defined by caller:
- * - Jasmine predefines
- * - require (Node require)
- * - __dirname, __filename
- * - baseUrl (Relative path to the directory containing this file)
- * - csPath (Path to require-cs module)
- *
- * See requirejs-runner source for full invocation details.
- */
-var define,
-    requirejsOrig = require('requirejs'),
-    ostring = Object.prototype.toString,
-    path = require('path'),
-    isArray = function(it){
-      return ostring.call(it) === '[object Array]';
-    },
-    isFunction = function(it){
-      return ostring.call(it) === '[object Function]';
-    },
-    requirejs = function(deps, callback){
-      var retVal;
-
-      if(!isArray(deps) && typeof deps !== 'string'){
-        if(isArray(callback)){
-          retVal = requirejsOrig(deps, callback, arguments[2]);
-        } else {
-          retVal = requirejsOrig(deps, [], callback);
-        }
-      } else {
-        retVal = requirejsOrig(deps, callback);
-      }
-
-      return retVal;
-    };
-
-requirejsOrig.config({
- baseUrl: baseUrl,
- nodeRequire: require,
- paths: {
-  cs: csPath
- }
-});
-
-for(var key in requirejsOrig) {
-  requirejs[key] = requirejsOrig[key];
-}
-
-requirejs.config = function(config){
-  var alteredConfig = {};
-
-  for(var key in config) {
-    alteredConfig[key] = config[key];
-  }
-
-  if(alteredConfig.baseUrl){
-    var base = baseUrl.replace(/\\/g, '/'),
-        splitUrl = alteredConfig.baseUrl.replace(/\\/g, '/').split('/'),
-        index = 0;
-
-    for(; index < splitUrl.length; index++){
-      if(splitUrl[index] === '..'){
-        base = path.dirname(base);
-      } else {
-        base += '/' + splitUrl[index];
-      }
-    }
-
-    alteredConfig.baseUrl = base;
-  }
-
-  return requirejsOrig.config(alteredConfig);
-};
-
-require = requirejs;
-define = requirejs.define;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/spec-collection.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/spec-collection.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/spec-collection.js
deleted file mode 100644
index 4b2de89..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/spec-collection.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var walkdir = require('walkdir');
-var path = require('path');
-var fs = require('fs');
-var specs;
-
-var createSpecObj = function(path, root) {
-  return {
-    path: function() { return path; },
-    relativePath: function() { return path.replace(root, '').replace(/^[\/\\]/, '').replace(/\\/g, '/'); },
-    directory: function() { return path.replace(/[\/\\][\s\w\.-]*$/, "").replace(/\\/g, '/'); },
-    relativeDirectory: function() { return relativePath().replace(/[\/\\][\s\w\.-]*$/, "").replace(/\\/g, '/'); },
-    filename: function() { return path.replace(/^.*[\\\/]/, ''); }
-  };
-};
-
-exports.load = function(loadpaths, matcher) {
-  var wannaBeSpecs = []
-  specs = [];
-  loadpaths.forEach(function(loadpath){
-    wannaBeSpecs = walkdir.sync(loadpath, { follow_symlinks: true });
-    for (var i = 0; i < wannaBeSpecs.length; i++) {
-      var file = wannaBeSpecs[i];
-      try {
-        if (fs.statSync(file).isFile()) {
-          if (!/.*node_modules.*/.test(path.relative(loadpath, file)) &
-              matcher.test(path.basename(file))) {
-            specs.push(createSpecObj(file));
-          }
-        }
-      } catch(e) {
-        // nothing to do here
-      }
-    }
-  });
-};
-
-exports.getSpecs = function() {
-  // Sorts spec paths in ascending alphabetical order to be able to
-  // run tests in a deterministic order.
-  specs.sort(function(a, b) {
-    return a.path().localeCompare(b.path());
-  });
-  return specs;
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/.bin/cake
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/.bin/cake b/blackberry10/node_modules/jasmine-node/node_modules/.bin/cake
deleted file mode 120000
index d95f32a..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/.bin/cake
+++ /dev/null
@@ -1 +0,0 @@
-../coffee-script/bin/cake
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/.bin/coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/.bin/coffee b/blackberry10/node_modules/jasmine-node/node_modules/.bin/coffee
deleted file mode 120000
index b57f275..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/.bin/coffee
+++ /dev/null
@@ -1 +0,0 @@
-../coffee-script/bin/coffee
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/.bin/r.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/.bin/r.js b/blackberry10/node_modules/jasmine-node/node_modules/.bin/r.js
deleted file mode 120000
index 2075b60..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/.bin/r.js
+++ /dev/null
@@ -1 +0,0 @@
-../requirejs/bin/r.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/.npmignore
deleted file mode 100644
index 21e430d..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/.npmignore
+++ /dev/null
@@ -1,11 +0,0 @@
-*.coffee
-*.html
-.DS_Store
-.git*
-Cakefile
-documentation/
-examples/
-extras/coffee-script.js
-raw/
-src/
-test/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/CNAME
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/CNAME b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/CNAME
deleted file mode 100644
index faadabe..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-coffeescript.org
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/CONTRIBUTING.md b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/CONTRIBUTING.md
deleted file mode 100644
index 6390c68..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/CONTRIBUTING.md
+++ /dev/null
@@ -1,9 +0,0 @@
-## How to contribute to CoffeeScript
-
-* Before you open a ticket or send a pull request, [search](https://github.com/jashkenas/coffee-script/issues) for previous discussions about the same feature or issue. Add to the earlier ticket if you find one.
-
-* Before sending a pull request for a feature, be sure to have [tests](https://github.com/jashkenas/coffee-script/tree/master/test).
-
-* Use the same coding style as the rest of the [codebase](https://github.com/jashkenas/coffee-script/tree/master/src). If you're just getting started with CoffeeScript, there's a nice [style guide](https://github.com/polarmobile/coffeescript-style-guide).
-
-* In your pull request, do not add documentation to `index.html` or re-build the minified `coffee-script.js` file. We'll do those things before cutting a new release.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/LICENSE
deleted file mode 100644
index a396eae..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2009-2013 Jeremy Ashkenas
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/README
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/README b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/README
deleted file mode 100644
index 69ee6f4..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/README
+++ /dev/null
@@ -1,51 +0,0 @@
-
-            {
-         }   }   {
-        {   {  }  }
-         }   }{  {
-        {  }{  }  }                    _____       __  __
-       ( }{ }{  { )                   / ____|     / _|/ _|
-     .- { { }  { }} -.               | |     ___ | |_| |_ ___  ___
-    (  ( } { } { } }  )              | |    / _ \|  _|  _/ _ \/ _ \
-    |`-..________ ..-'|              | |___| (_) | | | ||  __/  __/
-    |                 |               \_____\___/|_| |_| \___|\___|
-    |                 ;--.
-    |                (__  \            _____           _       _
-    |                 | )  )          / ____|         (_)     | |
-    |                 |/  /          | (___   ___ _ __ _ _ __ | |_
-    |                 (  /            \___ \ / __| '__| | '_ \| __|
-    |                 |/              ____) | (__| |  | | |_) | |_
-    |                 |              |_____/ \___|_|  |_| .__/ \__|
-     `-.._________..-'                                  | |
-                                                        |_|
-
-
-  CoffeeScript is a little language that compiles into JavaScript.
-
-  Install Node.js, and then the CoffeeScript compiler:
-  sudo bin/cake install
-
-  Or, if you have the Node Package Manager installed:
-  npm install -g coffee-script
-  (Leave off the -g if you don't wish to install globally.)
-
-  Execute a script:
-  coffee /path/to/script.coffee
-
-  Compile a script:
-  coffee -c /path/to/script.coffee
-
-  For documentation, usage, and examples, see:
-  http://coffeescript.org/
-
-  To suggest a feature, report a bug, or general discussion:
-  http://github.com/jashkenas/coffee-script/issues/
-
-  If you'd like to chat, drop by #coffeescript on Freenode IRC,
-  or on webchat.freenode.net.
-
-  The source repository:
-  git://github.com/jashkenas/coffee-script.git
-
-  All contributors are listed here:
-  http://github.com/jashkenas/coffee-script/contributors

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/Rakefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/Rakefile b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/Rakefile
deleted file mode 100644
index d90cce3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/Rakefile
+++ /dev/null
@@ -1,79 +0,0 @@
-require 'rubygems'
-require 'erb'
-require 'fileutils'
-require 'rake/testtask'
-require 'json'
-
-desc "Build the documentation page"
-task :doc do
-  source = 'documentation/index.html.erb'
-  child = fork { exec "bin/coffee -bcw -o documentation/js documentation/coffee/*.coffee" }
-  at_exit { Process.kill("INT", child) }
-  Signal.trap("INT") { exit }
-  loop do
-    mtime = File.stat(source).mtime
-    if !@mtime || mtime > @mtime
-      rendered = ERB.new(File.read(source)).result(binding)
-      File.open('index.html', 'w+') {|f| f.write(rendered) }
-    end
-    @mtime = mtime
-    sleep 1
-  end
-end
-
-desc "Build coffee-script-source gem"
-task :gem do
-  require 'rubygems'
-  require 'rubygems/package'
-
-  gemspec = Gem::Specification.new do |s|
-    s.name      = 'coffee-script-source'
-    s.version   = JSON.parse(File.read('package.json'))["version"]
-    s.date      = Time.now.strftime("%Y-%m-%d")
-
-    s.homepage    = "http://jashkenas.github.com/coffee-script/"
-    s.summary     = "The CoffeeScript Compiler"
-    s.description = <<-EOS
-      CoffeeScript is a little language that compiles into JavaScript.
-      Underneath all of those embarrassing braces and semicolons,
-      JavaScript has always had a gorgeous object model at its heart.
-      CoffeeScript is an attempt to expose the good parts of JavaScript
-      in a simple way.
-    EOS
-
-    s.files = [
-      'lib/coffee_script/coffee-script.js',
-      'lib/coffee_script/source.rb'
-    ]
-
-    s.authors           = ['Jeremy Ashkenas']
-    s.email             = 'jashkenas@gmail.com'
-    s.rubyforge_project = 'coffee-script-source'
-    s.license           = "MIT"
-  end
-
-  file = File.open("coffee-script-source.gem", "w")
-  Gem::Package.open(file, 'w') do |pkg|
-    pkg.metadata = gemspec.to_yaml
-
-    path = "lib/coffee_script/source.rb"
-    contents = <<-ERUBY
-module CoffeeScript
-  module Source
-    def self.bundled_path
-      File.expand_path("../coffee-script.js", __FILE__)
-    end
-  end
-end
-    ERUBY
-    pkg.add_file_simple(path, 0644, contents.size) do |tar_io|
-      tar_io.write(contents)
-    end
-
-    contents = File.read("extras/coffee-script.js")
-    path = "lib/coffee_script/coffee-script.js"
-    pkg.add_file_simple(path, 0644, contents.size) do |tar_io|
-      tar_io.write(contents)
-    end
-  end
-end

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/bin/cake
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/bin/cake b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/bin/cake
deleted file mode 100755
index 5965f4e..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/bin/cake
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env node
-
-var path = require('path');
-var fs   = require('fs');
-var lib  = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
-
-require(lib + '/coffee-script/cake').run();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/bin/coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/bin/coffee b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/bin/coffee
deleted file mode 100755
index 3d1d71c..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/bin/coffee
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env node
-
-var path = require('path');
-var fs   = require('fs');
-var lib  = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
-
-require(lib + '/coffee-script/command').run();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/browser.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/browser.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/browser.js
deleted file mode 100644
index e5411d8..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/browser.js
+++ /dev/null
@@ -1,118 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var CoffeeScript, compile, runScripts,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-  CoffeeScript = require('./coffee-script');
-
-  CoffeeScript.require = require;
-
-  compile = CoffeeScript.compile;
-
-  CoffeeScript["eval"] = function(code, options) {
-    if (options == null) {
-      options = {};
-    }
-    if (options.bare == null) {
-      options.bare = true;
-    }
-    return eval(compile(code, options));
-  };
-
-  CoffeeScript.run = function(code, options) {
-    if (options == null) {
-      options = {};
-    }
-    options.bare = true;
-    options.shiftLine = true;
-    return Function(compile(code, options))();
-  };
-
-  if (typeof window === "undefined" || window === null) {
-    return;
-  }
-
-  if ((typeof btoa !== "undefined" && btoa !== null) && (typeof JSON !== "undefined" && JSON !== null) && (typeof unescape !== "undefined" && unescape !== null) && (typeof encodeURIComponent !== "undefined" && encodeURIComponent !== null)) {
-    compile = function(code, options) {
-      var js, v3SourceMap, _ref;
-      if (options == null) {
-        options = {};
-      }
-      options.sourceMap = true;
-      options.inline = true;
-      _ref = CoffeeScript.compile(code, options), js = _ref.js, v3SourceMap = _ref.v3SourceMap;
-      return "" + js + "\n//@ sourceMappingURL=data:application/json;base64," + (btoa(unescape(encodeURIComponent(v3SourceMap)))) + "\n//@ sourceURL=coffeescript";
-    };
-  }
-
-  CoffeeScript.load = function(url, callback, options) {
-    var xhr;
-    if (options == null) {
-      options = {};
-    }
-    options.sourceFiles = [url];
-    xhr = window.ActiveXObject ? new window.ActiveXObject('Microsoft.XMLHTTP') : new window.XMLHttpRequest();
-    xhr.open('GET', url, true);
-    if ('overrideMimeType' in xhr) {
-      xhr.overrideMimeType('text/plain');
-    }
-    xhr.onreadystatechange = function() {
-      var _ref;
-      if (xhr.readyState === 4) {
-        if ((_ref = xhr.status) === 0 || _ref === 200) {
-          CoffeeScript.run(xhr.responseText, options);
-        } else {
-          throw new Error("Could not load " + url);
-        }
-        if (callback) {
-          return callback();
-        }
-      }
-    };
-    return xhr.send(null);
-  };
-
-  runScripts = function() {
-    var coffees, coffeetypes, execute, index, length, s, scripts;
-    scripts = window.document.getElementsByTagName('script');
-    coffeetypes = ['text/coffeescript', 'text/literate-coffeescript'];
-    coffees = (function() {
-      var _i, _len, _ref, _results;
-      _results = [];
-      for (_i = 0, _len = scripts.length; _i < _len; _i++) {
-        s = scripts[_i];
-        if (_ref = s.type, __indexOf.call(coffeetypes, _ref) >= 0) {
-          _results.push(s);
-        }
-      }
-      return _results;
-    })();
-    index = 0;
-    length = coffees.length;
-    (execute = function() {
-      var mediatype, options, script;
-      script = coffees[index++];
-      mediatype = script != null ? script.type : void 0;
-      if (__indexOf.call(coffeetypes, mediatype) >= 0) {
-        options = {
-          literate: mediatype === 'text/literate-coffeescript'
-        };
-        if (script.src) {
-          return CoffeeScript.load(script.src, execute, options);
-        } else {
-          options.sourceFiles = ['embedded'];
-          CoffeeScript.run(script.innerHTML, options);
-          return execute();
-        }
-      }
-    })();
-    return null;
-  };
-
-  if (window.addEventListener) {
-    window.addEventListener('DOMContentLoaded', runScripts, false);
-  } else {
-    window.attachEvent('onload', runScripts);
-  }
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/cake.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/cake.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/cake.js
deleted file mode 100644
index 68bd7c3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/cake.js
+++ /dev/null
@@ -1,114 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var CoffeeScript, cakefileDirectory, existsSync, fatalError, fs, helpers, missingTask, oparse, options, optparse, path, printTasks, switches, tasks;
-
-  fs = require('fs');
-
-  path = require('path');
-
-  helpers = require('./helpers');
-
-  optparse = require('./optparse');
-
-  CoffeeScript = require('./coffee-script');
-
-  existsSync = fs.existsSync || path.existsSync;
-
-  tasks = {};
-
-  options = {};
-
-  switches = [];
-
-  oparse = null;
-
-  helpers.extend(global, {
-    task: function(name, description, action) {
-      var _ref;
-      if (!action) {
-        _ref = [description, action], action = _ref[0], description = _ref[1];
-      }
-      return tasks[name] = {
-        name: name,
-        description: description,
-        action: action
-      };
-    },
-    option: function(letter, flag, description) {
-      return switches.push([letter, flag, description]);
-    },
-    invoke: function(name) {
-      if (!tasks[name]) {
-        missingTask(name);
-      }
-      return tasks[name].action(options);
-    }
-  });
-
-  exports.run = function() {
-    var arg, args, e, _i, _len, _ref, _results;
-    global.__originalDirname = fs.realpathSync('.');
-    process.chdir(cakefileDirectory(__originalDirname));
-    args = process.argv.slice(2);
-    CoffeeScript.run(fs.readFileSync('Cakefile').toString(), {
-      filename: 'Cakefile'
-    });
-    oparse = new optparse.OptionParser(switches);
-    if (!args.length) {
-      return printTasks();
-    }
-    try {
-      options = oparse.parse(args);
-    } catch (_error) {
-      e = _error;
-      return fatalError("" + e);
-    }
-    _ref = options["arguments"];
-    _results = [];
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      arg = _ref[_i];
-      _results.push(invoke(arg));
-    }
-    return _results;
-  };
-
-  printTasks = function() {
-    var cakefilePath, desc, name, relative, spaces, task;
-    relative = path.relative || path.resolve;
-    cakefilePath = path.join(relative(__originalDirname, process.cwd()), 'Cakefile');
-    console.log("" + cakefilePath + " defines the following tasks:\n");
-    for (name in tasks) {
-      task = tasks[name];
-      spaces = 20 - name.length;
-      spaces = spaces > 0 ? Array(spaces + 1).join(' ') : '';
-      desc = task.description ? "# " + task.description : '';
-      console.log("cake " + name + spaces + " " + desc);
-    }
-    if (switches.length) {
-      return console.log(oparse.help());
-    }
-  };
-
-  fatalError = function(message) {
-    console.error(message + '\n');
-    console.log('To see a list of all tasks/options, run "cake"');
-    return process.exit(1);
-  };
-
-  missingTask = function(task) {
-    return fatalError("No such task: " + task);
-  };
-
-  cakefileDirectory = function(dir) {
-    var parent;
-    if (existsSync(path.join(dir, 'Cakefile'))) {
-      return dir;
-    }
-    parent = path.normalize(path.join(dir, '..'));
-    if (parent !== dir) {
-      return cakefileDirectory(parent);
-    }
-    throw new Error("Cakefile not found in " + (process.cwd()));
-  };
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/coffee-script.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/coffee-script.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/coffee-script.js
deleted file mode 100644
index 11ccd81..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/coffee-script.js
+++ /dev/null
@@ -1,358 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var Lexer, Module, SourceMap, child_process, compile, ext, findExtension, fork, formatSourcePosition, fs, helpers, lexer, loadFile, parser, patchStackTrace, patched, path, sourceMaps, vm, _i, _len, _ref,
-    __hasProp = {}.hasOwnProperty;
-
-  fs = require('fs');
-
-  vm = require('vm');
-
-  path = require('path');
-
-  child_process = require('child_process');
-
-  Lexer = require('./lexer').Lexer;
-
-  parser = require('./parser').parser;
-
-  helpers = require('./helpers');
-
-  SourceMap = require('./sourcemap');
-
-  exports.VERSION = '1.6.3';
-
-  exports.helpers = helpers;
-
-  exports.compile = compile = function(code, options) {
-    var answer, currentColumn, currentLine, fragment, fragments, header, js, map, merge, newLines, _i, _len;
-    if (options == null) {
-      options = {};
-    }
-    merge = helpers.merge;
-    if (options.sourceMap) {
-      map = new SourceMap;
-    }
-    fragments = parser.parse(lexer.tokenize(code, options)).compileToFragments(options);
-    currentLine = 0;
-    if (options.header) {
-      currentLine += 1;
-    }
-    if (options.shiftLine) {
-      currentLine += 1;
-    }
-    currentColumn = 0;
-    js = "";
-    for (_i = 0, _len = fragments.length; _i < _len; _i++) {
-      fragment = fragments[_i];
-      if (options.sourceMap) {
-        if (fragment.locationData) {
-          map.add([fragment.locationData.first_line, fragment.locationData.first_column], [currentLine, currentColumn], {
-            noReplace: true
-          });
-        }
-        newLines = helpers.count(fragment.code, "\n");
-        currentLine += newLines;
-        currentColumn = fragment.code.length - (newLines ? fragment.code.lastIndexOf("\n") : 0);
-      }
-      js += fragment.code;
-    }
-    if (options.header) {
-      header = "Generated by CoffeeScript " + this.VERSION;
-      js = "// " + header + "\n" + js;
-    }
-    if (options.sourceMap) {
-      answer = {
-        js: js
-      };
-      answer.sourceMap = map;
-      answer.v3SourceMap = map.generate(options, code);
-      return answer;
-    } else {
-      return js;
-    }
-  };
-
-  exports.tokens = function(code, options) {
-    return lexer.tokenize(code, options);
-  };
-
-  exports.nodes = function(source, options) {
-    if (typeof source === 'string') {
-      return parser.parse(lexer.tokenize(source, options));
-    } else {
-      return parser.parse(source);
-    }
-  };
-
-  exports.run = function(code, options) {
-    var answer, mainModule;
-    if (options == null) {
-      options = {};
-    }
-    mainModule = require.main;
-    if (options.sourceMap == null) {
-      options.sourceMap = true;
-    }
-    mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.';
-    mainModule.moduleCache && (mainModule.moduleCache = {});
-    mainModule.paths = require('module')._nodeModulePaths(path.dirname(fs.realpathSync(options.filename || '.')));
-    if (!helpers.isCoffee(mainModule.filename) || require.extensions) {
-      answer = compile(code, options);
-      patchStackTrace();
-      sourceMaps[mainModule.filename] = answer.sourceMap;
-      return mainModule._compile(answer.js, mainModule.filename);
-    } else {
-      return mainModule._compile(code, mainModule.filename);
-    }
-  };
-
-  exports["eval"] = function(code, options) {
-    var Module, Script, js, k, o, r, sandbox, v, _i, _len, _module, _ref, _ref1, _require;
-    if (options == null) {
-      options = {};
-    }
-    if (!(code = code.trim())) {
-      return;
-    }
-    Script = vm.Script;
-    if (Script) {
-      if (options.sandbox != null) {
-        if (options.sandbox instanceof Script.createContext().constructor) {
-          sandbox = options.sandbox;
-        } else {
-          sandbox = Script.createContext();
-          _ref = options.sandbox;
-          for (k in _ref) {
-            if (!__hasProp.call(_ref, k)) continue;
-            v = _ref[k];
-            sandbox[k] = v;
-          }
-        }
-        sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox;
-      } else {
-        sandbox = global;
-      }
-      sandbox.__filename = options.filename || 'eval';
-      sandbox.__dirname = path.dirname(sandbox.__filename);
-      if (!(sandbox !== global || sandbox.module || sandbox.require)) {
-        Module = require('module');
-        sandbox.module = _module = new Module(options.modulename || 'eval');
-        sandbox.require = _require = function(path) {
-          return Module._load(path, _module, true);
-        };
-        _module.filename = sandbox.__filename;
-        _ref1 = Object.getOwnPropertyNames(require);
-        for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-          r = _ref1[_i];
-          if (r !== 'paths') {
-            _require[r] = require[r];
-          }
-        }
-        _require.paths = _module.paths = Module._nodeModulePaths(process.cwd());
-        _require.resolve = function(request) {
-          return Module._resolveFilename(request, _module);
-        };
-      }
-    }
-    o = {};
-    for (k in options) {
-      if (!__hasProp.call(options, k)) continue;
-      v = options[k];
-      o[k] = v;
-    }
-    o.bare = true;
-    js = compile(code, o);
-    if (sandbox === global) {
-      return vm.runInThisContext(js);
-    } else {
-      return vm.runInContext(js, sandbox);
-    }
-  };
-
-  loadFile = function(module, filename) {
-    var answer, raw, stripped;
-    raw = fs.readFileSync(filename, 'utf8');
-    stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw;
-    answer = compile(stripped, {
-      filename: filename,
-      sourceMap: true,
-      literate: helpers.isLiterate(filename)
-    });
-    sourceMaps[filename] = answer.sourceMap;
-    return module._compile(answer.js, filename);
-  };
-
-  if (require.extensions) {
-    _ref = ['.coffee', '.litcoffee', '.coffee.md'];
-    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-      ext = _ref[_i];
-      require.extensions[ext] = loadFile;
-    }
-    Module = require('module');
-    findExtension = function(filename) {
-      var curExtension, extensions;
-      extensions = path.basename(filename).split('.');
-      if (extensions[0] === '') {
-        extensions.shift();
-      }
-      while (extensions.shift()) {
-        curExtension = '.' + extensions.join('.');
-        if (Module._extensions[curExtension]) {
-          return curExtension;
-        }
-      }
-      return '.js';
-    };
-    Module.prototype.load = function(filename) {
-      var extension;
-      this.filename = filename;
-      this.paths = Module._nodeModulePaths(path.dirname(filename));
-      extension = findExtension(filename);
-      Module._extensions[extension](this, filename);
-      return this.loaded = true;
-    };
-  }
-
-  if (child_process) {
-    fork = child_process.fork;
-    child_process.fork = function(path, args, options) {
-      var execPath;
-      if (args == null) {
-        args = [];
-      }
-      if (options == null) {
-        options = {};
-      }
-      execPath = helpers.isCoffee(path) ? 'coffee' : null;
-      if (!Array.isArray(args)) {
-        args = [];
-        options = args || {};
-      }
-      options.execPath || (options.execPath = execPath);
-      return fork(path, args, options);
-    };
-  }
-
-  lexer = new Lexer;
-
-  parser.lexer = {
-    lex: function() {
-      var tag, token;
-      token = this.tokens[this.pos++];
-      if (token) {
-        tag = token[0], this.yytext = token[1], this.yylloc = token[2];
-        this.yylineno = this.yylloc.first_line;
-      } else {
-        tag = '';
-      }
-      return tag;
-    },
-    setInput: function(tokens) {
-      this.tokens = tokens;
-      return this.pos = 0;
-    },
-    upcomingInput: function() {
-      return "";
-    }
-  };
-
-  parser.yy = require('./nodes');
-
-  parser.yy.parseError = function(message, _arg) {
-    var token;
-    token = _arg.token;
-    message = "unexpected " + (token === 1 ? 'end of input' : token);
-    return helpers.throwSyntaxError(message, parser.lexer.yylloc);
-  };
-
-  patched = false;
-
-  sourceMaps = {};
-
-  patchStackTrace = function() {
-    var mainModule;
-    if (patched) {
-      return;
-    }
-    patched = true;
-    mainModule = require.main;
-    return Error.prepareStackTrace = function(err, stack) {
-      var frame, frames, getSourceMapping, sourceFiles, _ref1;
-      sourceFiles = {};
-      getSourceMapping = function(filename, line, column) {
-        var answer, sourceMap;
-        sourceMap = sourceMaps[filename];
-        if (sourceMap) {
-          answer = sourceMap.sourceLocation([line - 1, column - 1]);
-        }
-        if (answer) {
-          return [answer[0] + 1, answer[1] + 1];
-        } else {
-          return null;
-        }
-      };
-      frames = (function() {
-        var _j, _len1, _results;
-        _results = [];
-        for (_j = 0, _len1 = stack.length; _j < _len1; _j++) {
-          frame = stack[_j];
-          if (frame.getFunction() === exports.run) {
-            break;
-          }
-          _results.push("  at " + (formatSourcePosition(frame, getSourceMapping)));
-        }
-        return _results;
-      })();
-      return "" + err.name + ": " + ((_ref1 = err.message) != null ? _ref1 : '') + "\n" + (frames.join('\n')) + "\n";
-    };
-  };
-
-  formatSourcePosition = function(frame, getSourceMapping) {
-    var as, column, fileLocation, fileName, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName;
-    fileName = void 0;
-    fileLocation = '';
-    if (frame.isNative()) {
-      fileLocation = "native";
-    } else {
-      if (frame.isEval()) {
-        fileName = frame.getScriptNameOrSourceURL();
-        if (!fileName) {
-          fileLocation = "" + (frame.getEvalOrigin()) + ", ";
-        }
-      } else {
-        fileName = frame.getFileName();
-      }
-      fileName || (fileName = "<anonymous>");
-      line = frame.getLineNumber();
-      column = frame.getColumnNumber();
-      source = getSourceMapping(fileName, line, column);
-      fileLocation = source ? "" + fileName + ":" + source[0] + ":" + source[1] + ", <js>:" + line + ":" + column : "" + fileName + ":" + line + ":" + column;
-    }
-    functionName = frame.getFunctionName();
-    isConstructor = frame.isConstructor();
-    isMethodCall = !(frame.isToplevel() || isConstructor);
-    if (isMethodCall) {
-      methodName = frame.getMethodName();
-      typeName = frame.getTypeName();
-      if (functionName) {
-        tp = as = '';
-        if (typeName && functionName.indexOf(typeName)) {
-          tp = "" + typeName + ".";
-        }
-        if (methodName && functionName.indexOf("." + methodName) !== functionName.length - methodName.length - 1) {
-          as = " [as " + methodName + "]";
-        }
-        return "" + tp + functionName + as + " (" + fileLocation + ")";
-      } else {
-        return "" + typeName + "." + (methodName || '<anonymous>') + " (" + fileLocation + ")";
-      }
-    } else if (isConstructor) {
-      return "new " + (functionName || '<anonymous>') + " (" + fileLocation + ")";
-    } else if (functionName) {
-      return "" + functionName + " (" + fileLocation + ")";
-    } else {
-      return fileLocation;
-    }
-  };
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/command.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/command.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/command.js
deleted file mode 100644
index 26b2554..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/command.js
+++ /dev/null
@@ -1,526 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var BANNER, CoffeeScript, EventEmitter, SWITCHES, compileJoin, compileOptions, compilePath, compileScript, compileStdio, exec, exists, forkNode, fs, helpers, hidden, joinTimeout, notSources, optionParser, optparse, opts, outputPath, parseOptions, path, printLine, printTokens, printWarn, removeSource, sourceCode, sources, spawn, timeLog, unwatchDir, usage, useWinPathSep, version, wait, watch, watchDir, watchers, writeJs, _ref;
-
-  fs = require('fs');
-
-  path = require('path');
-
-  helpers = require('./helpers');
-
-  optparse = require('./optparse');
-
-  CoffeeScript = require('./coffee-script');
-
-  _ref = require('child_process'), spawn = _ref.spawn, exec = _ref.exec;
-
-  EventEmitter = require('events').EventEmitter;
-
-  exists = fs.exists || path.exists;
-
-  useWinPathSep = path.sep === '\\';
-
-  helpers.extend(CoffeeScript, new EventEmitter);
-
-  printLine = function(line) {
-    return process.stdout.write(line + '\n');
-  };
-
-  printWarn = function(line) {
-    return process.stderr.write(line + '\n');
-  };
-
-  hidden = function(file) {
-    return /^\.|~$/.test(file);
-  };
-
-  BANNER = 'Usage: coffee [options] path/to/script.coffee -- [args]\n\nIf called without options, `coffee` will run your script.';
-
-  SWITCHES = [['-b', '--bare', 'compile without a top-level function wrapper'], ['-c', '--compile', 'compile to JavaScript and save as .js files'], ['-e', '--eval', 'pass a string from the command line as input'], ['-h', '--help', 'display this help message'], ['-i', '--interactive', 'run an interactive CoffeeScript REPL'], ['-j', '--join [FILE]', 'concatenate the source CoffeeScript before compiling'], ['-m', '--map', 'generate source map and save as .map files'], ['-n', '--nodes', 'print out the parse tree that the parser produces'], ['--nodejs [ARGS]', 'pass options directly to the "node" binary'], ['-o', '--output [DIR]', 'set the output directory for compiled JavaScript'], ['-p', '--print', 'print out the compiled JavaScript'], ['-s', '--stdio', 'listen for and compile scripts over stdio'], ['-l', '--literate', 'treat stdio as literate style coffee-script'], ['-t', '--tokens', 'print out the tokens that the lexer/rewriter produce'], ['-v', '--version', 'display the version numb
 er'], ['-w', '--watch', 'watch scripts for changes and rerun commands']];
-
-  opts = {};
-
-  sources = [];
-
-  sourceCode = [];
-
-  notSources = {};
-
-  watchers = {};
-
-  optionParser = null;
-
-  exports.run = function() {
-    var literals, source, _i, _len, _results;
-    parseOptions();
-    if (opts.nodejs) {
-      return forkNode();
-    }
-    if (opts.help) {
-      return usage();
-    }
-    if (opts.version) {
-      return version();
-    }
-    if (opts.interactive) {
-      return require('./repl').start();
-    }
-    if (opts.watch && !fs.watch) {
-      return printWarn("The --watch feature depends on Node v0.6.0+. You are running " + process.version + ".");
-    }
-    if (opts.stdio) {
-      return compileStdio();
-    }
-    if (opts["eval"]) {
-      return compileScript(null, sources[0]);
-    }
-    if (!sources.length) {
-      return require('./repl').start();
-    }
-    literals = opts.run ? sources.splice(1) : [];
-    process.argv = process.argv.slice(0, 2).concat(literals);
-    process.argv[0] = 'coffee';
-    _results = [];
-    for (_i = 0, _len = sources.length; _i < _len; _i++) {
-      source = sources[_i];
-      _results.push(compilePath(source, true, path.normalize(source)));
-    }
-    return _results;
-  };
-
-  compilePath = function(source, topLevel, base) {
-    return fs.stat(source, function(err, stats) {
-      if (err && err.code !== 'ENOENT') {
-        throw err;
-      }
-      if ((err != null ? err.code : void 0) === 'ENOENT') {
-        console.error("File not found: " + source);
-        process.exit(1);
-      }
-      if (stats.isDirectory() && path.dirname(source) !== 'node_modules') {
-        if (opts.watch) {
-          watchDir(source, base);
-        }
-        return fs.readdir(source, function(err, files) {
-          var file, index, _ref1, _ref2;
-          if (err && err.code !== 'ENOENT') {
-            throw err;
-          }
-          if ((err != null ? err.code : void 0) === 'ENOENT') {
-            return;
-          }
-          index = sources.indexOf(source);
-          files = files.filter(function(file) {
-            return !hidden(file);
-          });
-          [].splice.apply(sources, [index, index - index + 1].concat(_ref1 = (function() {
-            var _i, _len, _results;
-            _results = [];
-            for (_i = 0, _len = files.length; _i < _len; _i++) {
-              file = files[_i];
-              _results.push(path.join(source, file));
-            }
-            return _results;
-          })())), _ref1;
-          [].splice.apply(sourceCode, [index, index - index + 1].concat(_ref2 = files.map(function() {
-            return null;
-          }))), _ref2;
-          return files.forEach(function(file) {
-            return compilePath(path.join(source, file), false, base);
-          });
-        });
-      } else if (topLevel || helpers.isCoffee(source)) {
-        if (opts.watch) {
-          watch(source, base);
-        }
-        return fs.readFile(source, function(err, code) {
-          if (err && err.code !== 'ENOENT') {
-            throw err;
-          }
-          if ((err != null ? err.code : void 0) === 'ENOENT') {
-            return;
-          }
-          return compileScript(source, code.toString(), base);
-        });
-      } else {
-        notSources[source] = true;
-        return removeSource(source, base);
-      }
-    });
-  };
-
-  compileScript = function(file, input, base) {
-    var compiled, err, message, o, options, t, task, useColors;
-    if (base == null) {
-      base = null;
-    }
-    o = opts;
-    options = compileOptions(file, base);
-    try {
-      t = task = {
-        file: file,
-        input: input,
-        options: options
-      };
-      CoffeeScript.emit('compile', task);
-      if (o.tokens) {
-        return printTokens(CoffeeScript.tokens(t.input, t.options));
-      } else if (o.nodes) {
-        return printLine(CoffeeScript.nodes(t.input, t.options).toString().trim());
-      } else if (o.run) {
-        return CoffeeScript.run(t.input, t.options);
-      } else if (o.join && t.file !== o.join) {
-        if (helpers.isLiterate(file)) {
-          t.input = helpers.invertLiterate(t.input);
-        }
-        sourceCode[sources.indexOf(t.file)] = t.input;
-        return compileJoin();
-      } else {
-        compiled = CoffeeScript.compile(t.input, t.options);
-        t.output = compiled;
-        if (o.map) {
-          t.output = compiled.js;
-          t.sourceMap = compiled.v3SourceMap;
-        }
-        CoffeeScript.emit('success', task);
-        if (o.print) {
-          return printLine(t.output.trim());
-        } else if (o.compile || o.map) {
-          return writeJs(base, t.file, t.output, options.jsPath, t.sourceMap);
-        }
-      }
-    } catch (_error) {
-      err = _error;
-      CoffeeScript.emit('failure', err, task);
-      if (CoffeeScript.listeners('failure').length) {
-        return;
-      }
-      useColors = process.stdout.isTTY && !process.env.NODE_DISABLE_COLORS;
-      message = helpers.prettyErrorMessage(err, file || '[stdin]', input, useColors);
-      if (o.watch) {
-        return printLine(message + '\x07');
-      } else {
-        printWarn(message);
-        return process.exit(1);
-      }
-    }
-  };
-
-  compileStdio = function() {
-    var code, stdin;
-    code = '';
-    stdin = process.openStdin();
-    stdin.on('data', function(buffer) {
-      if (buffer) {
-        return code += buffer.toString();
-      }
-    });
-    return stdin.on('end', function() {
-      return compileScript(null, code);
-    });
-  };
-
-  joinTimeout = null;
-
-  compileJoin = function() {
-    if (!opts.join) {
-      return;
-    }
-    if (!sourceCode.some(function(code) {
-      return code === null;
-    })) {
-      clearTimeout(joinTimeout);
-      return joinTimeout = wait(100, function() {
-        return compileScript(opts.join, sourceCode.join('\n'), opts.join);
-      });
-    }
-  };
-
-  watch = function(source, base) {
-    var compile, compileTimeout, e, prevStats, rewatch, watchErr, watcher;
-    prevStats = null;
-    compileTimeout = null;
-    watchErr = function(e) {
-      if (e.code === 'ENOENT') {
-        if (sources.indexOf(source) === -1) {
-          return;
-        }
-        try {
-          rewatch();
-          return compile();
-        } catch (_error) {
-          e = _error;
-          removeSource(source, base, true);
-          return compileJoin();
-        }
-      } else {
-        throw e;
-      }
-    };
-    compile = function() {
-      clearTimeout(compileTimeout);
-      return compileTimeout = wait(25, function() {
-        return fs.stat(source, function(err, stats) {
-          if (err) {
-            return watchErr(err);
-          }
-          if (prevStats && stats.size === prevStats.size && stats.mtime.getTime() === prevStats.mtime.getTime()) {
-            return rewatch();
-          }
-          prevStats = stats;
-          return fs.readFile(source, function(err, code) {
-            if (err) {
-              return watchErr(err);
-            }
-            compileScript(source, code.toString(), base);
-            return rewatch();
-          });
-        });
-      });
-    };
-    try {
-      watcher = fs.watch(source, compile);
-    } catch (_error) {
-      e = _error;
-      watchErr(e);
-    }
-    return rewatch = function() {
-      if (watcher != null) {
-        watcher.close();
-      }
-      return watcher = fs.watch(source, compile);
-    };
-  };
-
-  watchDir = function(source, base) {
-    var e, readdirTimeout, watcher;
-    readdirTimeout = null;
-    try {
-      return watcher = fs.watch(source, function() {
-        clearTimeout(readdirTimeout);
-        return readdirTimeout = wait(25, function() {
-          return fs.readdir(source, function(err, files) {
-            var file, _i, _len, _results;
-            if (err) {
-              if (err.code !== 'ENOENT') {
-                throw err;
-              }
-              watcher.close();
-              return unwatchDir(source, base);
-            }
-            _results = [];
-            for (_i = 0, _len = files.length; _i < _len; _i++) {
-              file = files[_i];
-              if (!(!hidden(file) && !notSources[file])) {
-                continue;
-              }
-              file = path.join(source, file);
-              if (sources.some(function(s) {
-                return s.indexOf(file) >= 0;
-              })) {
-                continue;
-              }
-              sources.push(file);
-              sourceCode.push(null);
-              _results.push(compilePath(file, false, base));
-            }
-            return _results;
-          });
-        });
-      });
-    } catch (_error) {
-      e = _error;
-      if (e.code !== 'ENOENT') {
-        throw e;
-      }
-    }
-  };
-
-  unwatchDir = function(source, base) {
-    var file, prevSources, toRemove, _i, _len;
-    prevSources = sources.slice(0);
-    toRemove = (function() {
-      var _i, _len, _results;
-      _results = [];
-      for (_i = 0, _len = sources.length; _i < _len; _i++) {
-        file = sources[_i];
-        if (file.indexOf(source) >= 0) {
-          _results.push(file);
-        }
-      }
-      return _results;
-    })();
-    for (_i = 0, _len = toRemove.length; _i < _len; _i++) {
-      file = toRemove[_i];
-      removeSource(file, base, true);
-    }
-    if (!sources.some(function(s, i) {
-      return prevSources[i] !== s;
-    })) {
-      return;
-    }
-    return compileJoin();
-  };
-
-  removeSource = function(source, base, removeJs) {
-    var index, jsPath;
-    index = sources.indexOf(source);
-    sources.splice(index, 1);
-    sourceCode.splice(index, 1);
-    if (removeJs && !opts.join) {
-      jsPath = outputPath(source, base);
-      return exists(jsPath, function(itExists) {
-        if (itExists) {
-          return fs.unlink(jsPath, function(err) {
-            if (err && err.code !== 'ENOENT') {
-              throw err;
-            }
-            return timeLog("removed " + source);
-          });
-        }
-      });
-    }
-  };
-
-  outputPath = function(source, base, extension) {
-    var baseDir, basename, dir, srcDir;
-    if (extension == null) {
-      extension = ".js";
-    }
-    basename = helpers.baseFileName(source, true, useWinPathSep);
-    srcDir = path.dirname(source);
-    baseDir = base === '.' ? srcDir : srcDir.substring(base.length);
-    dir = opts.output ? path.join(opts.output, baseDir) : srcDir;
-    return path.join(dir, basename + extension);
-  };
-
-  writeJs = function(base, sourcePath, js, jsPath, generatedSourceMap) {
-    var compile, jsDir, sourceMapPath;
-    if (generatedSourceMap == null) {
-      generatedSourceMap = null;
-    }
-    sourceMapPath = outputPath(sourcePath, base, ".map");
-    jsDir = path.dirname(jsPath);
-    compile = function() {
-      if (opts.compile) {
-        if (js.length <= 0) {
-          js = ' ';
-        }
-        if (generatedSourceMap) {
-          js = "" + js + "\n/*\n//@ sourceMappingURL=" + (helpers.baseFileName(sourceMapPath, false, useWinPathSep)) + "\n*/\n";
-        }
-        fs.writeFile(jsPath, js, function(err) {
-          if (err) {
-            return printLine(err.message);
-          } else if (opts.compile && opts.watch) {
-            return timeLog("compiled " + sourcePath);
-          }
-        });
-      }
-      if (generatedSourceMap) {
-        return fs.writeFile(sourceMapPath, generatedSourceMap, function(err) {
-          if (err) {
-            return printLine("Could not write source map: " + err.message);
-          }
-        });
-      }
-    };
-    return exists(jsDir, function(itExists) {
-      if (itExists) {
-        return compile();
-      } else {
-        return exec("mkdir -p " + jsDir, compile);
-      }
-    });
-  };
-
-  wait = function(milliseconds, func) {
-    return setTimeout(func, milliseconds);
-  };
-
-  timeLog = function(message) {
-    return console.log("" + ((new Date).toLocaleTimeString()) + " - " + message);
-  };
-
-  printTokens = function(tokens) {
-    var strings, tag, token, value;
-    strings = (function() {
-      var _i, _len, _results;
-      _results = [];
-      for (_i = 0, _len = tokens.length; _i < _len; _i++) {
-        token = tokens[_i];
-        tag = token[0];
-        value = token[1].toString().replace(/\n/, '\\n');
-        _results.push("[" + tag + " " + value + "]");
-      }
-      return _results;
-    })();
-    return printLine(strings.join(' '));
-  };
-
-  parseOptions = function() {
-    var i, o, source, _i, _len;
-    optionParser = new optparse.OptionParser(SWITCHES, BANNER);
-    o = opts = optionParser.parse(process.argv.slice(2));
-    o.compile || (o.compile = !!o.output);
-    o.run = !(o.compile || o.print || o.map);
-    o.print = !!(o.print || (o["eval"] || o.stdio && o.compile));
-    sources = o["arguments"];
-    for (i = _i = 0, _len = sources.length; _i < _len; i = ++_i) {
-      source = sources[i];
-      sourceCode[i] = null;
-    }
-  };
-
-  compileOptions = function(filename, base) {
-    var answer, cwd, jsDir, jsPath;
-    answer = {
-      filename: filename,
-      literate: opts.literate || helpers.isLiterate(filename),
-      bare: opts.bare,
-      header: opts.compile,
-      sourceMap: opts.map
-    };
-    if (filename) {
-      if (base) {
-        cwd = process.cwd();
-        jsPath = outputPath(filename, base);
-        jsDir = path.dirname(jsPath);
-        answer = helpers.merge(answer, {
-          jsPath: jsPath,
-          sourceRoot: path.relative(jsDir, cwd),
-          sourceFiles: [path.relative(cwd, filename)],
-          generatedFile: helpers.baseFileName(jsPath, false, useWinPathSep)
-        });
-      } else {
-        answer = helpers.merge(answer, {
-          sourceRoot: "",
-          sourceFiles: [helpers.baseFileName(filename, false, useWinPathSep)],
-          generatedFile: helpers.baseFileName(filename, true, useWinPathSep) + ".js"
-        });
-      }
-    }
-    return answer;
-  };
-
-  forkNode = function() {
-    var args, nodeArgs;
-    nodeArgs = opts.nodejs.split(/\s+/);
-    args = process.argv.slice(1);
-    args.splice(args.indexOf('--nodejs'), 2);
-    return spawn(process.execPath, nodeArgs.concat(args), {
-      cwd: process.cwd(),
-      env: process.env,
-      customFds: [0, 1, 2]
-    });
-  };
-
-  usage = function() {
-    return printLine((new optparse.OptionParser(SWITCHES, BANNER)).help());
-  };
-
-  version = function() {
-    return printLine("CoffeeScript version " + CoffeeScript.VERSION);
-  };
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/grammar.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/grammar.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/grammar.js
deleted file mode 100644
index 24d5bac..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/grammar.js
+++ /dev/null
@@ -1,625 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var Parser, alt, alternatives, grammar, name, o, operators, token, tokens, unwrap;
-
-  Parser = require('jison').Parser;
-
-  unwrap = /^function\s*\(\)\s*\{\s*return\s*([\s\S]*);\s*\}/;
-
-  o = function(patternString, action, options) {
-    var addLocationDataFn, match, patternCount;
-    patternString = patternString.replace(/\s{2,}/g, ' ');
-    patternCount = patternString.split(' ').length;
-    if (!action) {
-      return [patternString, '$$ = $1;', options];
-    }
-    action = (match = unwrap.exec(action)) ? match[1] : "(" + action + "())";
-    action = action.replace(/\bnew /g, '$&yy.');
-    action = action.replace(/\b(?:Block\.wrap|extend)\b/g, 'yy.$&');
-    addLocationDataFn = function(first, last) {
-      if (!last) {
-        return "yy.addLocationDataFn(@" + first + ")";
-      } else {
-        return "yy.addLocationDataFn(@" + first + ", @" + last + ")";
-      }
-    };
-    action = action.replace(/LOC\(([0-9]*)\)/g, addLocationDataFn('$1'));
-    action = action.replace(/LOC\(([0-9]*),\s*([0-9]*)\)/g, addLocationDataFn('$1', '$2'));
-    return [patternString, "$$ = " + (addLocationDataFn(1, patternCount)) + "(" + action + ");", options];
-  };
-
-  grammar = {
-    Root: [
-      o('', function() {
-        return new Block;
-      }), o('Body'), o('Block TERMINATOR')
-    ],
-    Body: [
-      o('Line', function() {
-        return Block.wrap([$1]);
-      }), o('Body TERMINATOR Line', function() {
-        return $1.push($3);
-      }), o('Body TERMINATOR')
-    ],
-    Line: [o('Expression'), o('Statement')],
-    Statement: [
-      o('Return'), o('Comment'), o('STATEMENT', function() {
-        return new Literal($1);
-      })
-    ],
-    Expression: [o('Value'), o('Invocation'), o('Code'), o('Operation'), o('Assign'), o('If'), o('Try'), o('While'), o('For'), o('Switch'), o('Class'), o('Throw')],
-    Block: [
-      o('INDENT OUTDENT', function() {
-        return new Block;
-      }), o('INDENT Body OUTDENT', function() {
-        return $2;
-      })
-    ],
-    Identifier: [
-      o('IDENTIFIER', function() {
-        return new Literal($1);
-      })
-    ],
-    AlphaNumeric: [
-      o('NUMBER', function() {
-        return new Literal($1);
-      }), o('STRING', function() {
-        return new Literal($1);
-      })
-    ],
-    Literal: [
-      o('AlphaNumeric'), o('JS', function() {
-        return new Literal($1);
-      }), o('REGEX', function() {
-        return new Literal($1);
-      }), o('DEBUGGER', function() {
-        return new Literal($1);
-      }), o('UNDEFINED', function() {
-        return new Undefined;
-      }), o('NULL', function() {
-        return new Null;
-      }), o('BOOL', function() {
-        return new Bool($1);
-      })
-    ],
-    Assign: [
-      o('Assignable = Expression', function() {
-        return new Assign($1, $3);
-      }), o('Assignable = TERMINATOR Expression', function() {
-        return new Assign($1, $4);
-      }), o('Assignable = INDENT Expression OUTDENT', function() {
-        return new Assign($1, $4);
-      })
-    ],
-    AssignObj: [
-      o('ObjAssignable', function() {
-        return new Value($1);
-      }), o('ObjAssignable : Expression', function() {
-        return new Assign(LOC(1)(new Value($1)), $3, 'object');
-      }), o('ObjAssignable :\
-       INDENT Expression OUTDENT', function() {
-        return new Assign(LOC(1)(new Value($1)), $4, 'object');
-      }), o('Comment')
-    ],
-    ObjAssignable: [o('Identifier'), o('AlphaNumeric'), o('ThisProperty')],
-    Return: [
-      o('RETURN Expression', function() {
-        return new Return($2);
-      }), o('RETURN', function() {
-        return new Return;
-      })
-    ],
-    Comment: [
-      o('HERECOMMENT', function() {
-        return new Comment($1);
-      })
-    ],
-    Code: [
-      o('PARAM_START ParamList PARAM_END FuncGlyph Block', function() {
-        return new Code($2, $5, $4);
-      }), o('FuncGlyph Block', function() {
-        return new Code([], $2, $1);
-      })
-    ],
-    FuncGlyph: [
-      o('->', function() {
-        return 'func';
-      }), o('=>', function() {
-        return 'boundfunc';
-      })
-    ],
-    OptComma: [o(''), o(',')],
-    ParamList: [
-      o('', function() {
-        return [];
-      }), o('Param', function() {
-        return [$1];
-      }), o('ParamList , Param', function() {
-        return $1.concat($3);
-      }), o('ParamList OptComma TERMINATOR Param', function() {
-        return $1.concat($4);
-      }), o('ParamList OptComma INDENT ParamList OptComma OUTDENT', function() {
-        return $1.concat($4);
-      })
-    ],
-    Param: [
-      o('ParamVar', function() {
-        return new Param($1);
-      }), o('ParamVar ...', function() {
-        return new Param($1, null, true);
-      }), o('ParamVar = Expression', function() {
-        return new Param($1, $3);
-      })
-    ],
-    ParamVar: [o('Identifier'), o('ThisProperty'), o('Array'), o('Object')],
-    Splat: [
-      o('Expression ...', function() {
-        return new Splat($1);
-      })
-    ],
-    SimpleAssignable: [
-      o('Identifier', function() {
-        return new Value($1);
-      }), o('Value Accessor', function() {
-        return $1.add($2);
-      }), o('Invocation Accessor', function() {
-        return new Value($1, [].concat($2));
-      }), o('ThisProperty')
-    ],
-    Assignable: [
-      o('SimpleAssignable'), o('Array', function() {
-        return new Value($1);
-      }), o('Object', function() {
-        return new Value($1);
-      })
-    ],
-    Value: [
-      o('Assignable'), o('Literal', function() {
-        return new Value($1);
-      }), o('Parenthetical', function() {
-        return new Value($1);
-      }), o('Range', function() {
-        return new Value($1);
-      }), o('This')
-    ],
-    Accessor: [
-      o('.  Identifier', function() {
-        return new Access($2);
-      }), o('?. Identifier', function() {
-        return new Access($2, 'soak');
-      }), o(':: Identifier', function() {
-        return [LOC(1)(new Access(new Literal('prototype'))), LOC(2)(new Access($2))];
-      }), o('?:: Identifier', function() {
-        return [LOC(1)(new Access(new Literal('prototype'), 'soak')), LOC(2)(new Access($2))];
-      }), o('::', function() {
-        return new Access(new Literal('prototype'));
-      }), o('Index')
-    ],
-    Index: [
-      o('INDEX_START IndexValue INDEX_END', function() {
-        return $2;
-      }), o('INDEX_SOAK  Index', function() {
-        return extend($2, {
-          soak: true
-        });
-      })
-    ],
-    IndexValue: [
-      o('Expression', function() {
-        return new Index($1);
-      }), o('Slice', function() {
-        return new Slice($1);
-      })
-    ],
-    Object: [
-      o('{ AssignList OptComma }', function() {
-        return new Obj($2, $1.generated);
-      })
-    ],
-    AssignList: [
-      o('', function() {
-        return [];
-      }), o('AssignObj', function() {
-        return [$1];
-      }), o('AssignList , AssignObj', function() {
-        return $1.concat($3);
-      }), o('AssignList OptComma TERMINATOR AssignObj', function() {
-        return $1.concat($4);
-      }), o('AssignList OptComma INDENT AssignList OptComma OUTDENT', function() {
-        return $1.concat($4);
-      })
-    ],
-    Class: [
-      o('CLASS', function() {
-        return new Class;
-      }), o('CLASS Block', function() {
-        return new Class(null, null, $2);
-      }), o('CLASS EXTENDS Expression', function() {
-        return new Class(null, $3);
-      }), o('CLASS EXTENDS Expression Block', function() {
-        return new Class(null, $3, $4);
-      }), o('CLASS SimpleAssignable', function() {
-        return new Class($2);
-      }), o('CLASS SimpleAssignable Block', function() {
-        return new Class($2, null, $3);
-      }), o('CLASS SimpleAssignable EXTENDS Expression', function() {
-        return new Class($2, $4);
-      }), o('CLASS SimpleAssignable EXTENDS Expression Block', function() {
-        return new Class($2, $4, $5);
-      })
-    ],
-    Invocation: [
-      o('Value OptFuncExist Arguments', function() {
-        return new Call($1, $3, $2);
-      }), o('Invocation OptFuncExist Arguments', function() {
-        return new Call($1, $3, $2);
-      }), o('SUPER', function() {
-        return new Call('super', [new Splat(new Literal('arguments'))]);
-      }), o('SUPER Arguments', function() {
-        return new Call('super', $2);
-      })
-    ],
-    OptFuncExist: [
-      o('', function() {
-        return false;
-      }), o('FUNC_EXIST', function() {
-        return true;
-      })
-    ],
-    Arguments: [
-      o('CALL_START CALL_END', function() {
-        return [];
-      }), o('CALL_START ArgList OptComma CALL_END', function() {
-        return $2;
-      })
-    ],
-    This: [
-      o('THIS', function() {
-        return new Value(new Literal('this'));
-      }), o('@', function() {
-        return new Value(new Literal('this'));
-      })
-    ],
-    ThisProperty: [
-      o('@ Identifier', function() {
-        return new Value(LOC(1)(new Literal('this')), [LOC(2)(new Access($2))], 'this');
-      })
-    ],
-    Array: [
-      o('[ ]', function() {
-        return new Arr([]);
-      }), o('[ ArgList OptComma ]', function() {
-        return new Arr($2);
-      })
-    ],
-    RangeDots: [
-      o('..', function() {
-        return 'inclusive';
-      }), o('...', function() {
-        return 'exclusive';
-      })
-    ],
-    Range: [
-      o('[ Expression RangeDots Expression ]', function() {
-        return new Range($2, $4, $3);
-      })
-    ],
-    Slice: [
-      o('Expression RangeDots Expression', function() {
-        return new Range($1, $3, $2);
-      }), o('Expression RangeDots', function() {
-        return new Range($1, null, $2);
-      }), o('RangeDots Expression', function() {
-        return new Range(null, $2, $1);
-      }), o('RangeDots', function() {
-        return new Range(null, null, $1);
-      })
-    ],
-    ArgList: [
-      o('Arg', function() {
-        return [$1];
-      }), o('ArgList , Arg', function() {
-        return $1.concat($3);
-      }), o('ArgList OptComma TERMINATOR Arg', function() {
-        return $1.concat($4);
-      }), o('INDENT ArgList OptComma OUTDENT', function() {
-        return $2;
-      }), o('ArgList OptComma INDENT ArgList OptComma OUTDENT', function() {
-        return $1.concat($4);
-      })
-    ],
-    Arg: [o('Expression'), o('Splat')],
-    SimpleArgs: [
-      o('Expression'), o('SimpleArgs , Expression', function() {
-        return [].concat($1, $3);
-      })
-    ],
-    Try: [
-      o('TRY Block', function() {
-        return new Try($2);
-      }), o('TRY Block Catch', function() {
-        return new Try($2, $3[0], $3[1]);
-      }), o('TRY Block FINALLY Block', function() {
-        return new Try($2, null, null, $4);
-      }), o('TRY Block Catch FINALLY Block', function() {
-        return new Try($2, $3[0], $3[1], $5);
-      })
-    ],
-    Catch: [
-      o('CATCH Identifier Block', function() {
-        return [$2, $3];
-      }), o('CATCH Object Block', function() {
-        return [LOC(2)(new Value($2)), $3];
-      }), o('CATCH Block', function() {
-        return [null, $2];
-      })
-    ],
-    Throw: [
-      o('THROW Expression', function() {
-        return new Throw($2);
-      })
-    ],
-    Parenthetical: [
-      o('( Body )', function() {
-        return new Parens($2);
-      }), o('( INDENT Body OUTDENT )', function() {
-        return new Parens($3);
-      })
-    ],
-    WhileSource: [
-      o('WHILE Expression', function() {
-        return new While($2);
-      }), o('WHILE Expression WHEN Expression', function() {
-        return new While($2, {
-          guard: $4
-        });
-      }), o('UNTIL Expression', function() {
-        return new While($2, {
-          invert: true
-        });
-      }), o('UNTIL Expression WHEN Expression', function() {
-        return new While($2, {
-          invert: true,
-          guard: $4
-        });
-      })
-    ],
-    While: [
-      o('WhileSource Block', function() {
-        return $1.addBody($2);
-      }), o('Statement  WhileSource', function() {
-        return $2.addBody(LOC(1)(Block.wrap([$1])));
-      }), o('Expression WhileSource', function() {
-        return $2.addBody(LOC(1)(Block.wrap([$1])));
-      }), o('Loop', function() {
-        return $1;
-      })
-    ],
-    Loop: [
-      o('LOOP Block', function() {
-        return new While(LOC(1)(new Literal('true'))).addBody($2);
-      }), o('LOOP Expression', function() {
-        return new While(LOC(1)(new Literal('true'))).addBody(LOC(2)(Block.wrap([$2])));
-      })
-    ],
-    For: [
-      o('Statement  ForBody', function() {
-        return new For($1, $2);
-      }), o('Expression ForBody', function() {
-        return new For($1, $2);
-      }), o('ForBody    Block', function() {
-        return new For($2, $1);
-      })
-    ],
-    ForBody: [
-      o('FOR Range', function() {
-        return {
-          source: LOC(2)(new Value($2))
-        };
-      }), o('ForStart ForSource', function() {
-        $2.own = $1.own;
-        $2.name = $1[0];
-        $2.index = $1[1];
-        return $2;
-      })
-    ],
-    ForStart: [
-      o('FOR ForVariables', function() {
-        return $2;
-      }), o('FOR OWN ForVariables', function() {
-        $3.own = true;
-        return $3;
-      })
-    ],
-    ForValue: [
-      o('Identifier'), o('ThisProperty'), o('Array', function() {
-        return new Value($1);
-      }), o('Object', function() {
-        return new Value($1);
-      })
-    ],
-    ForVariables: [
-      o('ForValue', function() {
-        return [$1];
-      }), o('ForValue , ForValue', function() {
-        return [$1, $3];
-      })
-    ],
-    ForSource: [
-      o('FORIN Expression', function() {
-        return {
-          source: $2
-        };
-      }), o('FOROF Expression', function() {
-        return {
-          source: $2,
-          object: true
-        };
-      }), o('FORIN Expression WHEN Expression', function() {
-        return {
-          source: $2,
-          guard: $4
-        };
-      }), o('FOROF Expression WHEN Expression', function() {
-        return {
-          source: $2,
-          guard: $4,
-          object: true
-        };
-      }), o('FORIN Expression BY Expression', function() {
-        return {
-          source: $2,
-          step: $4
-        };
-      }), o('FORIN Expression WHEN Expression BY Expression', function() {
-        return {
-          source: $2,
-          guard: $4,
-          step: $6
-        };
-      }), o('FORIN Expression BY Expression WHEN Expression', function() {
-        return {
-          source: $2,
-          step: $4,
-          guard: $6
-        };
-      })
-    ],
-    Switch: [
-      o('SWITCH Expression INDENT Whens OUTDENT', function() {
-        return new Switch($2, $4);
-      }), o('SWITCH Expression INDENT Whens ELSE Block OUTDENT', function() {
-        return new Switch($2, $4, $6);
-      }), o('SWITCH INDENT Whens OUTDENT', function() {
-        return new Switch(null, $3);
-      }), o('SWITCH INDENT Whens ELSE Block OUTDENT', function() {
-        return new Switch(null, $3, $5);
-      })
-    ],
-    Whens: [
-      o('When'), o('Whens When', function() {
-        return $1.concat($2);
-      })
-    ],
-    When: [
-      o('LEADING_WHEN SimpleArgs Block', function() {
-        return [[$2, $3]];
-      }), o('LEADING_WHEN SimpleArgs Block TERMINATOR', function() {
-        return [[$2, $3]];
-      })
-    ],
-    IfBlock: [
-      o('IF Expression Block', function() {
-        return new If($2, $3, {
-          type: $1
-        });
-      }), o('IfBlock ELSE IF Expression Block', function() {
-        return $1.addElse(new If($4, $5, {
-          type: $3
-        }));
-      })
-    ],
-    If: [
-      o('IfBlock'), o('IfBlock ELSE Block', function() {
-        return $1.addElse($3);
-      }), o('Statement  POST_IF Expression', function() {
-        return new If($3, LOC(1)(Block.wrap([$1])), {
-          type: $2,
-          statement: true
-        });
-      }), o('Expression POST_IF Expression', function() {
-        return new If($3, LOC(1)(Block.wrap([$1])), {
-          type: $2,
-          statement: true
-        });
-      })
-    ],
-    Operation: [
-      o('UNARY Expression', function() {
-        return new Op($1, $2);
-      }), o('-     Expression', (function() {
-        return new Op('-', $2);
-      }), {
-        prec: 'UNARY'
-      }), o('+     Expression', (function() {
-        return new Op('+', $2);
-      }), {
-        prec: 'UNARY'
-      }), o('-- SimpleAssignable', function() {
-        return new Op('--', $2);
-      }), o('++ SimpleAssignable', function() {
-        return new Op('++', $2);
-      }), o('SimpleAssignable --', function() {
-        return new Op('--', $1, null, true);
-      }), o('SimpleAssignable ++', function() {
-        return new Op('++', $1, null, true);
-      }), o('Expression ?', function() {
-        return new Existence($1);
-      }), o('Expression +  Expression', function() {
-        return new Op('+', $1, $3);
-      }), o('Expression -  Expression', function() {
-        return new Op('-', $1, $3);
-      }), o('Expression MATH     Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression SHIFT    Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression COMPARE  Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression LOGIC    Expression', function() {
-        return new Op($2, $1, $3);
-      }), o('Expression RELATION Expression', function() {
-        if ($2.charAt(0) === '!') {
-          return new Op($2.slice(1), $1, $3).invert();
-        } else {
-          return new Op($2, $1, $3);
-        }
-      }), o('SimpleAssignable COMPOUND_ASSIGN\
-       Expression', function() {
-        return new Assign($1, $3, $2);
-      }), o('SimpleAssignable COMPOUND_ASSIGN\
-       INDENT Expression OUTDENT', function() {
-        return new Assign($1, $4, $2);
-      }), o('SimpleAssignable COMPOUND_ASSIGN TERMINATOR\
-       Expression', function() {
-        return new Assign($1, $4, $2);
-      }), o('SimpleAssignable EXTENDS Expression', function() {
-        return new Extends($1, $3);
-      })
-    ]
-  };
-
-  operators = [['left', '.', '?.', '::', '?::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['right', 'POST_IF']];
-
-  tokens = [];
-
-  for (name in grammar) {
-    alternatives = grammar[name];
-    grammar[name] = (function() {
-      var _i, _j, _len, _len1, _ref, _results;
-      _results = [];
-      for (_i = 0, _len = alternatives.length; _i < _len; _i++) {
-        alt = alternatives[_i];
-        _ref = alt[0].split(' ');
-        for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
-          token = _ref[_j];
-          if (!grammar[token]) {
-            tokens.push(token);
-          }
-        }
-        if (name === 'Root') {
-          alt[1] = "return " + alt[1];
-        }
-        _results.push(alt);
-      }
-      return _results;
-    })();
-  }
-
-  exports.parser = new Parser({
-    tokens: tokens.join(' '),
-    bnf: grammar,
-    operators: operators.reverse(),
-    startSymbol: 'Root'
-  });
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/helpers.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/helpers.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/helpers.js
deleted file mode 100644
index 352dc36..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/helpers.js
+++ /dev/null
@@ -1,223 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var buildLocationData, extend, flatten, last, repeat, _ref;
-
-  exports.starts = function(string, literal, start) {
-    return literal === string.substr(start, literal.length);
-  };
-
-  exports.ends = function(string, literal, back) {
-    var len;
-    len = literal.length;
-    return literal === string.substr(string.length - len - (back || 0), len);
-  };
-
-  exports.repeat = repeat = function(str, n) {
-    var res;
-    res = '';
-    while (n > 0) {
-      if (n & 1) {
-        res += str;
-      }
-      n >>>= 1;
-      str += str;
-    }
-    return res;
-  };
-
-  exports.compact = function(array) {
-    var item, _i, _len, _results;
-    _results = [];
-    for (_i = 0, _len = array.length; _i < _len; _i++) {
-      item = array[_i];
-      if (item) {
-        _results.push(item);
-      }
-    }
-    return _results;
-  };
-
-  exports.count = function(string, substr) {
-    var num, pos;
-    num = pos = 0;
-    if (!substr.length) {
-      return 1 / 0;
-    }
-    while (pos = 1 + string.indexOf(substr, pos)) {
-      num++;
-    }
-    return num;
-  };
-
-  exports.merge = function(options, overrides) {
-    return extend(extend({}, options), overrides);
-  };
-
-  extend = exports.extend = function(object, properties) {
-    var key, val;
-    for (key in properties) {
-      val = properties[key];
-      object[key] = val;
-    }
-    return object;
-  };
-
-  exports.flatten = flatten = function(array) {
-    var element, flattened, _i, _len;
-    flattened = [];
-    for (_i = 0, _len = array.length; _i < _len; _i++) {
-      element = array[_i];
-      if (element instanceof Array) {
-        flattened = flattened.concat(flatten(element));
-      } else {
-        flattened.push(element);
-      }
-    }
-    return flattened;
-  };
-
-  exports.del = function(obj, key) {
-    var val;
-    val = obj[key];
-    delete obj[key];
-    return val;
-  };
-
-  exports.last = last = function(array, back) {
-    return array[array.length - (back || 0) - 1];
-  };
-
-  exports.some = (_ref = Array.prototype.some) != null ? _ref : function(fn) {
-    var e, _i, _len;
-    for (_i = 0, _len = this.length; _i < _len; _i++) {
-      e = this[_i];
-      if (fn(e)) {
-        return true;
-      }
-    }
-    return false;
-  };
-
-  exports.invertLiterate = function(code) {
-    var line, lines, maybe_code;
-    maybe_code = true;
-    lines = (function() {
-      var _i, _len, _ref1, _results;
-      _ref1 = code.split('\n');
-      _results = [];
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        line = _ref1[_i];
-        if (maybe_code && /^([ ]{4}|[ ]{0,3}\t)/.test(line)) {
-          _results.push(line);
-        } else if (maybe_code = /^\s*$/.test(line)) {
-          _results.push(line);
-        } else {
-          _results.push('# ' + line);
-        }
-      }
-      return _results;
-    })();
-    return lines.join('\n');
-  };
-
-  buildLocationData = function(first, last) {
-    if (!last) {
-      return first;
-    } else {
-      return {
-        first_line: first.first_line,
-        first_column: first.first_column,
-        last_line: last.last_line,
-        last_column: last.last_column
-      };
-    }
-  };
-
-  exports.addLocationDataFn = function(first, last) {
-    return function(obj) {
-      if (((typeof obj) === 'object') && (!!obj['updateLocationDataIfMissing'])) {
-        obj.updateLocationDataIfMissing(buildLocationData(first, last));
-      }
-      return obj;
-    };
-  };
-
-  exports.locationDataToString = function(obj) {
-    var locationData;
-    if (("2" in obj) && ("first_line" in obj[2])) {
-      locationData = obj[2];
-    } else if ("first_line" in obj) {
-      locationData = obj;
-    }
-    if (locationData) {
-      return ("" + (locationData.first_line + 1) + ":" + (locationData.first_column + 1) + "-") + ("" + (locationData.last_line + 1) + ":" + (locationData.last_column + 1));
-    } else {
-      return "No location data";
-    }
-  };
-
-  exports.baseFileName = function(file, stripExt, useWinPathSep) {
-    var parts, pathSep;
-    if (stripExt == null) {
-      stripExt = false;
-    }
-    if (useWinPathSep == null) {
-      useWinPathSep = false;
-    }
-    pathSep = useWinPathSep ? /\\|\// : /\//;
-    parts = file.split(pathSep);
-    file = parts[parts.length - 1];
-    if (!stripExt) {
-      return file;
-    }
-    parts = file.split('.');
-    parts.pop();
-    if (parts[parts.length - 1] === 'coffee' && parts.length > 1) {
-      parts.pop();
-    }
-    return parts.join('.');
-  };
-
-  exports.isCoffee = function(file) {
-    return /\.((lit)?coffee|coffee\.md)$/.test(file);
-  };
-
-  exports.isLiterate = function(file) {
-    return /\.(litcoffee|coffee\.md)$/.test(file);
-  };
-
-  exports.throwSyntaxError = function(message, location) {
-    var error;
-    if (location.last_line == null) {
-      location.last_line = location.first_line;
-    }
-    if (location.last_column == null) {
-      location.last_column = location.first_column;
-    }
-    error = new SyntaxError(message);
-    error.location = location;
-    throw error;
-  };
-
-  exports.prettyErrorMessage = function(error, fileName, code, useColors) {
-    var codeLine, colorize, end, first_column, first_line, last_column, last_line, marker, message, start, _ref1;
-    if (!error.location) {
-      return error.stack || ("" + error);
-    }
-    _ref1 = error.location, first_line = _ref1.first_line, first_column = _ref1.first_column, last_line = _ref1.last_line, last_column = _ref1.last_column;
-    codeLine = code.split('\n')[first_line];
-    start = first_column;
-    end = first_line === last_line ? last_column + 1 : codeLine.length;
-    marker = repeat(' ', start) + repeat('^', end - start);
-    if (useColors) {
-      colorize = function(str) {
-        return "\x1B[1;31m" + str + "\x1B[0m";
-      };
-      codeLine = codeLine.slice(0, start) + colorize(codeLine.slice(start, end)) + codeLine.slice(end);
-      marker = colorize(marker);
-    }
-    message = "" + fileName + ":" + (first_line + 1) + ":" + (first_column + 1) + ": error: " + error.message + "\n" + codeLine + "\n" + marker;
-    return message;
-  };
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/index.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/index.js
deleted file mode 100644
index 68787df..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var key, val, _ref;
-
-  _ref = require('./coffee-script');
-  for (key in _ref) {
-    val = _ref[key];
-    exports[key] = val;
-  }
-
-}).call(this);


[04/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/javascript.pegjs
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/javascript.pegjs b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/javascript.pegjs
deleted file mode 100644
index 229a582..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/examples/javascript.pegjs
+++ /dev/null
@@ -1,1530 +0,0 @@
-/*
- * JavaScript parser based on the grammar described in ECMA-262, 5th ed.
- * (http://www.ecma-international.org/publications/standards/Ecma-262.htm)
- *
- * The parser builds a tree representing the parsed JavaScript, composed of
- * basic JavaScript values, arrays and objects (basically JSON). It can be
- * easily used by various JavaScript processors, transformers, etc.
- *
- * Intentional deviations from ECMA-262, 5th ed.:
- *
- *   * The specification does not consider |FunctionDeclaration| and
- *     |FunctionExpression| as statements, but JavaScript implementations do and
- *     so are we. This syntax is actually used in the wild (e.g. by jQuery).
- *
- * Limitations:
- *
- *   * Non-BMP characters are completely ignored to avoid surrogate
- *     pair handling (JavaScript strings in most implementations are AFAIK
- *     encoded in UTF-16, though this is not required by the specification --
- *     see ECMA-262, 5th ed., 4.3.16).
- *
- *   * One can create identifiers containing illegal characters using Unicode
- *     escape sequences. For example, "abcd\u0020efgh" is not a valid
- *     identifier, but it is accepted by the parser.
- *
- *   * Strict mode is not recognized. That means that within strict mode code,
- *     "implements", "interface", "let", "package", "private", "protected",
- *     "public", "static" and "yield" can be used as names. Many other
- *     restrictions and exceptions from ECMA-262, 5th ed., Annex C are also not
- *     applied.
- *
- *   * The parser does not handle regular expression literal syntax (basically,
- *     it treats anything between "/"'s as an opaque character sequence and also
- *     does not recognize invalid flags properly).
- *
- *   * The parser doesn't report any early errors except syntax errors (see
- *     ECMA-262, 5th ed., 16).
- *
- * At least some of these limitations should be fixed sometimes.
- *
- * Many thanks to inimino (http://inimino.org/~inimino/blog/) for his ES5 PEG
- * (http://boshi.inimino.org/3box/asof/1270029991384/PEG/ECMAScript_unified.peg),
- * which helped me to solve some problems (such as automatic semicolon
- * insertion) and also served to double check that I converted the original
- * grammar correctly.
- */
-
-start
-  = __ program:Program __ { return program; }
-
-/* ===== A.1 Lexical Grammar ===== */
-
-SourceCharacter
-  = .
-
-WhiteSpace "whitespace"
-  = [\t\v\f \u00A0\uFEFF]
-  / Zs
-
-LineTerminator
-  = [\n\r\u2028\u2029]
-
-LineTerminatorSequence "end of line"
-  = "\n"
-  / "\r\n"
-  / "\r"
-  / "\u2028" // line spearator
-  / "\u2029" // paragraph separator
-
-Comment "comment"
-  = MultiLineComment
-  / SingleLineComment
-
-MultiLineComment
-  = "/*" (!"*/" SourceCharacter)* "*/"
-
-MultiLineCommentNoLineTerminator
-  = "/*" (!("*/" / LineTerminator) SourceCharacter)* "*/"
-
-SingleLineComment
-  = "//" (!LineTerminator SourceCharacter)*
-
-Identifier "identifier"
-  = !ReservedWord name:IdentifierName { return name; }
-
-IdentifierName "identifier"
-  = start:IdentifierStart parts:IdentifierPart* {
-      return start + parts.join("");
-    }
-
-IdentifierStart
-  = UnicodeLetter
-  / "$"
-  / "_"
-  / "\\" sequence:UnicodeEscapeSequence { return sequence; }
-
-IdentifierPart
-  = IdentifierStart
-  / UnicodeCombiningMark
-  / UnicodeDigit
-  / UnicodeConnectorPunctuation
-  / "\u200C" { return "\u200C"; } // zero-width non-joiner
-  / "\u200D" { return "\u200D"; } // zero-width joiner
-
-UnicodeLetter
-  = Lu
-  / Ll
-  / Lt
-  / Lm
-  / Lo
-  / Nl
-
-UnicodeCombiningMark
-  = Mn
-  / Mc
-
-UnicodeDigit
-  = Nd
-
-UnicodeConnectorPunctuation
-  = Pc
-
-ReservedWord
-  = Keyword
-  / FutureReservedWord
-  / NullLiteral
-  / BooleanLiteral
-
-Keyword
-  = (
-        "break"
-      / "case"
-      / "catch"
-      / "continue"
-      / "debugger"
-      / "default"
-      / "delete"
-      / "do"
-      / "else"
-      / "finally"
-      / "for"
-      / "function"
-      / "if"
-      / "instanceof"
-      / "in"
-      / "new"
-      / "return"
-      / "switch"
-      / "this"
-      / "throw"
-      / "try"
-      / "typeof"
-      / "var"
-      / "void"
-      / "while"
-      / "with"
-    )
-    !IdentifierPart
-
-FutureReservedWord
-  = (
-        "class"
-      / "const"
-      / "enum"
-      / "export"
-      / "extends"
-      / "import"
-      / "super"
-    )
-    !IdentifierPart
-
-/*
- * This rule contains an error in the specification: |RegularExpressionLiteral|
- * is missing.
- */
-Literal
-  = NullLiteral
-  / BooleanLiteral
-  / value:NumericLiteral {
-      return {
-        type:  "NumericLiteral",
-        value: value
-      };
-    }
-  / value:StringLiteral {
-      return {
-        type:  "StringLiteral",
-        value: value
-      };
-    }
-  / RegularExpressionLiteral
-
-NullLiteral
-  = NullToken { return { type: "NullLiteral" }; }
-
-BooleanLiteral
-  = TrueToken  { return { type: "BooleanLiteral", value: true  }; }
-  / FalseToken { return { type: "BooleanLiteral", value: false }; }
-
-NumericLiteral "number"
-  = literal:(HexIntegerLiteral / DecimalLiteral) !IdentifierStart {
-      return literal;
-    }
-
-DecimalLiteral
-  = before:DecimalIntegerLiteral
-    "."
-    after:DecimalDigits?
-    exponent:ExponentPart? {
-      return parseFloat(before + "." + after + exponent);
-    }
-  / "." after:DecimalDigits exponent:ExponentPart? {
-      return parseFloat("." + after + exponent);
-    }
-  / before:DecimalIntegerLiteral exponent:ExponentPart? {
-      return parseFloat(before + exponent);
-    }
-
-DecimalIntegerLiteral
-  = "0" / digit:NonZeroDigit digits:DecimalDigits? { return digit + digits; }
-
-DecimalDigits
-  = digits:DecimalDigit+ { return digits.join(""); }
-
-DecimalDigit
-  = [0-9]
-
-NonZeroDigit
-  = [1-9]
-
-ExponentPart
-  = indicator:ExponentIndicator integer:SignedInteger {
-      return indicator + integer;
-    }
-
-ExponentIndicator
-  = [eE]
-
-SignedInteger
-  = sign:[-+]? digits:DecimalDigits { return sign + digits; }
-
-HexIntegerLiteral
-  = "0" [xX] digits:HexDigit+ { return parseInt("0x" + digits.join("")); }
-
-HexDigit
-  = [0-9a-fA-F]
-
-StringLiteral "string"
-  = parts:('"' DoubleStringCharacters? '"' / "'" SingleStringCharacters? "'") {
-      return parts[1];
-    }
-
-DoubleStringCharacters
-  = chars:DoubleStringCharacter+ { return chars.join(""); }
-
-SingleStringCharacters
-  = chars:SingleStringCharacter+ { return chars.join(""); }
-
-DoubleStringCharacter
-  = !('"' / "\\" / LineTerminator) char_:SourceCharacter { return char_;     }
-  / "\\" sequence:EscapeSequence                         { return sequence;  }
-  / LineContinuation
-
-SingleStringCharacter
-  = !("'" / "\\" / LineTerminator) char_:SourceCharacter { return char_;     }
-  / "\\" sequence:EscapeSequence                         { return sequence;  }
-  / LineContinuation
-
-LineContinuation
-  = "\\" sequence:LineTerminatorSequence { return sequence; }
-
-EscapeSequence
-  = CharacterEscapeSequence
-  / "0" !DecimalDigit { return "\0"; }
-  / HexEscapeSequence
-  / UnicodeEscapeSequence
-
-CharacterEscapeSequence
-  = SingleEscapeCharacter
-  / NonEscapeCharacter
-
-SingleEscapeCharacter
-  = char_:['"\\bfnrtv] {
-      return char_
-        .replace("b", "\b")
-        .replace("f", "\f")
-        .replace("n", "\n")
-        .replace("r", "\r")
-        .replace("t", "\t")
-        .replace("v", "\x0B") // IE does not recognize "\v".
-    }
-
-NonEscapeCharacter
-  = (!EscapeCharacter / LineTerminator) char_:SourceCharacter { return char_; }
-
-EscapeCharacter
-  = SingleEscapeCharacter
-  / DecimalDigit
-  / "x"
-  / "u"
-
-HexEscapeSequence
-  = "x" h1:HexDigit h2:HexDigit {
-      return String.fromCharCode(parseInt("0x" + h1 + h2));
-    }
-
-UnicodeEscapeSequence
-  = "u" h1:HexDigit h2:HexDigit h3:HexDigit h4:HexDigit {
-      return String.fromCharCode(parseInt("0x" + h1 + h2 + h3 + h4));
-    }
-
-RegularExpressionLiteral "regular expression"
-  = "/" body:RegularExpressionBody "/" flags:RegularExpressionFlags {
-      return {
-        type:  "RegularExpressionLiteral",
-        body:  body,
-        flags: flags
-      };
-    }
-
-RegularExpressionBody
-  = char_:RegularExpressionFirstChar chars:RegularExpressionChars {
-      return char_ + chars;
-    }
-
-RegularExpressionChars
-  = chars:RegularExpressionChar* { return chars.join(""); }
-
-RegularExpressionFirstChar
-  = ![*\\/[] char_:RegularExpressionNonTerminator { return char_; }
-  / RegularExpressionBackslashSequence
-  / RegularExpressionClass
-
-RegularExpressionChar
-  = ![\\/[] char_:RegularExpressionNonTerminator { return char_; }
-  / RegularExpressionBackslashSequence
-  / RegularExpressionClass
-
-/*
- * This rule contains an error in the specification: "NonTerminator" instead of
- * "RegularExpressionNonTerminator".
- */
-RegularExpressionBackslashSequence
-  = "\\" char_:RegularExpressionNonTerminator { return "\\" + char_; }
-
-RegularExpressionNonTerminator
-  = !LineTerminator char_:SourceCharacter { return char_; }
-
-RegularExpressionClass
-  = "[" chars:RegularExpressionClassChars "]" { return "[" + chars + "]"; }
-
-RegularExpressionClassChars
-  = chars:RegularExpressionClassChar* { return chars.join(""); }
-
-RegularExpressionClassChar
-  = ![\]\\] char_:RegularExpressionNonTerminator { return char_; }
-  / RegularExpressionBackslashSequence
-
-RegularExpressionFlags
-  = parts:IdentifierPart* { return parts.join(""); }
-
-/* Tokens */
-
-BreakToken      = "break"            !IdentifierPart
-CaseToken       = "case"             !IdentifierPart
-CatchToken      = "catch"            !IdentifierPart
-ContinueToken   = "continue"         !IdentifierPart
-DebuggerToken   = "debugger"         !IdentifierPart
-DefaultToken    = "default"          !IdentifierPart
-DeleteToken     = "delete"           !IdentifierPart { return "delete"; }
-DoToken         = "do"               !IdentifierPart
-ElseToken       = "else"             !IdentifierPart
-FalseToken      = "false"            !IdentifierPart
-FinallyToken    = "finally"          !IdentifierPart
-ForToken        = "for"              !IdentifierPart
-FunctionToken   = "function"         !IdentifierPart
-GetToken        = "get"              !IdentifierPart
-IfToken         = "if"               !IdentifierPart
-InstanceofToken = "instanceof"       !IdentifierPart { return "instanceof"; }
-InToken         = "in"               !IdentifierPart { return "in"; }
-NewToken        = "new"              !IdentifierPart
-NullToken       = "null"             !IdentifierPart
-ReturnToken     = "return"           !IdentifierPart
-SetToken        = "set"              !IdentifierPart
-SwitchToken     = "switch"           !IdentifierPart
-ThisToken       = "this"             !IdentifierPart
-ThrowToken      = "throw"            !IdentifierPart
-TrueToken       = "true"             !IdentifierPart
-TryToken        = "try"              !IdentifierPart
-TypeofToken     = "typeof"           !IdentifierPart { return "typeof"; }
-VarToken        = "var"              !IdentifierPart
-VoidToken       = "void"             !IdentifierPart { return "void"; }
-WhileToken      = "while"            !IdentifierPart
-WithToken       = "with"             !IdentifierPart
-
-/*
- * Unicode Character Categories
- *
- * Source: http://www.fileformat.info/info/unicode/category/index.htm
- */
-
-/*
- * Non-BMP characters are completely ignored to avoid surrogate pair handling
- * (JavaScript strings in most implementations are encoded in UTF-16, though
- * this is not required by the specification -- see ECMA-262, 5th ed., 4.3.16).
- *
- * If you ever need to correctly recognize all the characters, please feel free
- * to implement that and send a patch.
- */
-
-// Letter, Lowercase
-Ll = [\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007A\u00AA\u00B5\u00BA\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E\u017F\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199\u019A\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD\u01BE\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\
 u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233\u0234\u0235\u0236\u0237\u0238\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F\u0250\u0251\u0252\u0253\u0254\u0255\u0256\u0257\u0258\u0259\u025A\u025B\u025C\u025D\u025E\u025F\u0260\u0261\u0262\u0263\u0264\u0265\u0266\u0267\u0268\u0269\u026A\u026B\u026C\u026D\u026E\u026F\u0270\u0271\u0272\u0273\u0274\u0275\u0276\u0277\u0278\u0279\u027A\u027B\u027C\u027D\u027E\u027F\u0280\u0281\u0282\u0283\u0284\u0285\u0286\u0287\u0288\u0289\u028A\u028B\u028C\u028D\u028E\u028F\u0290\u0291\u0292\u0293\u0295\u0296\u0297\u0298\u0299\u029A\u029B\u029C\u029D\u029E\u029F\u02A0\u02A1\u02A2\u02A3\u02A4\u02A5\u02A6\u02A7\u02A8\u02A9\u02AA\u02AB\u02AC\u02AD\u02AE\u02AF\u0371\u0373\u0377\u037B\u037C\u037D\u0390\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u
 03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\u03D0\u03D1\u03D5\u03D6\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF\u03F0\u03F1\u03F2\u03F3\u03F5\u03F8\u03FB\u03FC\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0450\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\u045D\u045E\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u0
 4EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056A\u056B\u056C\u056D\u056E\u056F\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057A\u057B\u057C\u057D\u057E\u057F\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u1D00\u1D01\u1D02\u1D03\u1D04\u1D05\u1D06\u1D07\u1D08\u1D09\u1D0A\u1D0B\u1D0C\u1D0D\u1D0E\u1D0F\u1D10\u1D11\u1D12\u1D13\u1D14\u1D15\u1D16\u1D17\u1D18\u1D19\u1D1A\u1D1B\u1D1C\u1D1D\u1D1E\u1D1F\u1D20\u1D21\u1D22\u1D23\u1D24\u1D25\u1D26\u1D27\u1D28\u1D29\u1D2A\u1D2B\u1D62\u1D63\u1D64\u1D65\u1D66\u1D67\u1D68\u1D69\u1D6A\u1D6B\u1D6C\u1D6D\u1D6E\u1D6F\u1D70\u1D71\u1D72\u1D73\u1D74\u1D75\u1D76\u1D77\u1D79\u1D7A\u1D7B\u1D7C\u1D7D\u1D7E\u1D7F\u1D80\u1D81\u1D82\u1D83\u1D84\u1D85\u1D86\u1D87\u1D88\u1D89\u1D8A\u1D8B\u1D8C\u1D8D\u1D8E\u1D8F\u1D90\u1D91\u1D92\u1D93\u1D94\u1D95\u1D96\u1D97\u1D98\u1D
 99\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95\u1E96\u1E97\u1E98\u1E99\u1E9A\u1E9B\u1E9C\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF\u1F00\u1F01\u1F02\u1F03\u1F04\u1F05\u1F06\u1F07\u1F10\u1F11\u1F12\u1F13\u1F14\u1F15\u1F20\u1F21\u1F22\u1F23\u1F24\u1F25\u1F26\u1F27\u1F30\u1F31\u1F32\u1F33\u1F34\u1F35\u1F36\u1F37\u1F40\u1F41\u1F4
 2\u1F43\u1F44\u1F45\u1F50\u1F51\u1F52\u1F53\u1F54\u1F55\u1F56\u1F57\u1F60\u1F61\u1F62\u1F63\u1F64\u1F65\u1F66\u1F67\u1F70\u1F71\u1F72\u1F73\u1F74\u1F75\u1F76\u1F77\u1F78\u1F79\u1F7A\u1F7B\u1F7C\u1F7D\u1F80\u1F81\u1F82\u1F83\u1F84\u1F85\u1F86\u1F87\u1F90\u1F91\u1F92\u1F93\u1F94\u1F95\u1F96\u1F97\u1FA0\u1FA1\u1FA2\u1FA3\u1FA4\u1FA5\u1FA6\u1FA7\u1FB0\u1FB1\u1FB2\u1FB3\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2\u1FC3\u1FC4\u1FC6\u1FC7\u1FD0\u1FD1\u1FD2\u1FD3\u1FD6\u1FD7\u1FE0\u1FE1\u1FE2\u1FE3\u1FE4\u1FE5\u1FE6\u1FE7\u1FF2\u1FF3\u1FF4\u1FF6\u1FF7\u2071\u207F\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146\u2147\u2148\u2149\u214E\u2184\u2C30\u2C31\u2C32\u2C33\u2C34\u2C35\u2C36\u2C37\u2C38\u2C39\u2C3A\u2C3B\u2C3C\u2C3D\u2C3E\u2C3F\u2C40\u2C41\u2C42\u2C43\u2C44\u2C45\u2C46\u2C47\u2C48\u2C49\u2C4A\u2C4B\u2C4C\u2C4D\u2C4E\u2C4F\u2C50\u2C51\u2C52\u2C53\u2C54\u2C55\u2C56\u2C57\u2C58\u2C59\u2C5A\u2C5B\u2C5C\u2C5D\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76\u2C77\u2C78\u2C79
 \u2C7A\u2C7B\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2D00\u2D01\u2D02\u2D03\u2D04\u2D05\u2D06\u2D07\u2D08\u2D09\u2D0A\u2D0B\u2D0C\u2D0D\u2D0E\u2D0F\u2D10\u2D11\u2D12\u2D13\u2D14\u2D15\u2D16\u2D17\u2D18\u2D19\u2D1A\u2D1B\u2D1C\u2D1D\u2D1E\u2D1F\u2D20\u2D21\u2D22\u2D23\u2D24\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F\uA730\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\
 uA771\uA772\uA773\uA774\uA775\uA776\uA777\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00\uFB01\uFB02\uFB03\uFB04\uFB05\uFB06\uFB13\uFB14\uFB15\uFB16\uFB17\uFF41\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59\uFF5A]
-
-// Letter, Modifier
-Lm = [\u02B0\u02B1\u02B2\u02B3\u02B4\u02B5\u02B6\u02B7\u02B8\u02B9\u02BA\u02BB\u02BC\u02BD\u02BE\u02BF\u02C0\u02C1\u02C6\u02C7\u02C8\u02C9\u02CA\u02CB\u02CC\u02CD\u02CE\u02CF\u02D0\u02D1\u02E0\u02E1\u02E2\u02E3\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1C78\u1C79\u1C7A\u1C7B\u1C7C\u1C7D\u1D2C\u1D2D\u1D2E\u1D2F\u1D30\u1D31\u1D32\u1D33\u1D34\u1D35\u1D36\u1D37\u1D38\u1D39\u1D3A\u1D3B\u1D3C\u1D3D\u1D3E\u1D3F\u1D40\u1D41\u1D42\u1D43\u1D44\u1D45\u1D46\u1D47\u1D48\u1D49\u1D4A\u1D4B\u1D4C\u1D4D\u1D4E\u1D4F\u1D50\u1D51\u1D52\u1D53\u1D54\u1D55\u1D56\u1D57\u1D58\u1D59\u1D5A\u1D5B\u1D5C\u1D5D\u1D5E\u1D5F\u1D60\u1D61\u1D78\u1D9B\u1D9C\u1D9D\u1D9E\u1D9F\u1DA0\u1DA1\u1DA2\u1DA3\u1DA4\u1DA5\u1DA6\u1DA7\u1DA8\u1DA9\u1DAA\u1DAB\u1DAC\u1DAD\u1DAE\u1DAF\u1DB0\u1DB1\u1DB2\u1DB3\u1DB4\u1DB5\u1DB6\u1DB7\u1DB8\u1DB9\u1DBA\u1DBB\u1DBC\u1DBD\u1DBE\u1DBF\u2090\u2091\u2092\u2093\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031\u3032\u3033\u3034\u3035\u303B\
 u309D\u309E\u30FC\u30FD\u30FE\uA015\uA60C\uA67F\uA717\uA718\uA719\uA71A\uA71B\uA71C\uA71D\uA71E\uA71F\uA770\uA788\uFF70\uFF9E\uFF9F]
-
-// Letter, Other
-Lo = [\u01BB\u01C0\u01C1\u01C2\u01C3\u0294\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\u05F0\u05F1\u05F2\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\u063B\u063C\u063D\u063E\u063F\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u066E\u066F\u0671\u0672\u0673\u0674\u0675\u0676\u0677\u0678\u0679\u067A\u067B\u067C\u067D\u067E\u067F\u0680\u0681\u0682\u0683\u0684\u0685\u0686\u0687\u0688\u0689\u068A\u068B\u068C\u068D\u068E\u068F\u0690\u0691\u0692\u0693\u0694\u0695\u0696\u0697\u0698\u0699\u069A\u069B\u069C\u069D\u069E\u069F\u06A0\u06A1\u06A2\u06A3\u06A4\u06A5\u06A6\u06A7\u06A8\u06A9\u06AA\u06AB\u06AC\u06AD\u06AE\u06AF\u06B0\u06B1\u06B2\u06B3\u06B4\u06B5\u06B6\u06B7\u06B8\u06B9\u06BA\u06BB\u06BC\u06BD\u06BE\u06BF\u06C0\u06C1\u06C2\u06C3\u06C4\u06C5\u06C6\
 u06C7\u06C8\u06C9\u06CA\u06CB\u06CC\u06CD\u06CE\u06CF\u06D0\u06D1\u06D2\u06D3\u06D5\u06EE\u06EF\u06FA\u06FB\u06FC\u06FF\u0710\u0712\u0713\u0714\u0715\u0716\u0717\u0718\u0719\u071A\u071B\u071C\u071D\u071E\u071F\u0720\u0721\u0722\u0723\u0724\u0725\u0726\u0727\u0728\u0729\u072A\u072B\u072C\u072D\u072E\u072F\u074D\u074E\u074F\u0750\u0751\u0752\u0753\u0754\u0755\u0756\u0757\u0758\u0759\u075A\u075B\u075C\u075D\u075E\u075F\u0760\u0761\u0762\u0763\u0764\u0765\u0766\u0767\u0768\u0769\u076A\u076B\u076C\u076D\u076E\u076F\u0770\u0771\u0772\u0773\u0774\u0775\u0776\u0777\u0778\u0779\u077A\u077B\u077C\u077D\u077E\u077F\u0780\u0781\u0782\u0783\u0784\u0785\u0786\u0787\u0788\u0789\u078A\u078B\u078C\u078D\u078E\u078F\u0790\u0791\u0792\u0793\u0794\u0795\u0796\u0797\u0798\u0799\u079A\u079B\u079C\u079D\u079E\u079F\u07A0\u07A1\u07A2\u07A3\u07A4\u07A5\u07B1\u07CA\u07CB\u07CC\u07CD\u07CE\u07CF\u07D0\u07D1\u07D2\u07D3\u07D4\u07D5\u07D6\u07D7\u07D8\u07D9\u07DA\u07DB\u07DC\u07DD\u07DE\u07DF\u07E0\u07E1\u07E2\u
 07E3\u07E4\u07E5\u07E6\u07E7\u07E8\u07E9\u07EA\u0904\u0905\u0906\u0907\u0908\u0909\u090A\u090B\u090C\u090D\u090E\u090F\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091A\u091B\u091C\u091D\u091E\u091F\u0920\u0921\u0922\u0923\u0924\u0925\u0926\u0927\u0928\u0929\u092A\u092B\u092C\u092D\u092E\u092F\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093D\u0950\u0958\u0959\u095A\u095B\u095C\u095D\u095E\u095F\u0960\u0961\u0972\u097B\u097C\u097D\u097E\u097F\u0985\u0986\u0987\u0988\u0989\u098A\u098B\u098C\u098F\u0990\u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099A\u099B\u099C\u099D\u099E\u099F\u09A0\u09A1\u09A2\u09A3\u09A4\u09A5\u09A6\u09A7\u09A8\u09AA\u09AB\u09AC\u09AD\u09AE\u09AF\u09B0\u09B2\u09B6\u09B7\u09B8\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF\u09E0\u09E1\u09F0\u09F1\u0A05\u0A06\u0A07\u0A08\u0A09\u0A0A\u0A0F\u0A10\u0A13\u0A14\u0A15\u0A16\u0A17\u0A18\u0A19\u0A1A\u0A1B\u0A1C\u0A1D\u0A1E\u0A1F\u0A20\u0A21\u0A22\u0A23\u0A24\u0A25\u0A26\u0A27\u0A28\u0A2A\u0A2B\u0A2C\u0
 A2D\u0A2E\u0A2F\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5A\u0A5B\u0A5C\u0A5E\u0A72\u0A73\u0A74\u0A85\u0A86\u0A87\u0A88\u0A89\u0A8A\u0A8B\u0A8C\u0A8D\u0A8F\u0A90\u0A91\u0A93\u0A94\u0A95\u0A96\u0A97\u0A98\u0A99\u0A9A\u0A9B\u0A9C\u0A9D\u0A9E\u0A9F\u0AA0\u0AA1\u0AA2\u0AA3\u0AA4\u0AA5\u0AA6\u0AA7\u0AA8\u0AAA\u0AAB\u0AAC\u0AAD\u0AAE\u0AAF\u0AB0\u0AB2\u0AB3\u0AB5\u0AB6\u0AB7\u0AB8\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05\u0B06\u0B07\u0B08\u0B09\u0B0A\u0B0B\u0B0C\u0B0F\u0B10\u0B13\u0B14\u0B15\u0B16\u0B17\u0B18\u0B19\u0B1A\u0B1B\u0B1C\u0B1D\u0B1E\u0B1F\u0B20\u0B21\u0B22\u0B23\u0B24\u0B25\u0B26\u0B27\u0B28\u0B2A\u0B2B\u0B2C\u0B2D\u0B2E\u0B2F\u0B30\u0B32\u0B33\u0B35\u0B36\u0B37\u0B38\u0B39\u0B3D\u0B5C\u0B5D\u0B5F\u0B60\u0B61\u0B71\u0B83\u0B85\u0B86\u0B87\u0B88\u0B89\u0B8A\u0B8E\u0B8F\u0B90\u0B92\u0B93\u0B94\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BA9\u0BAA\u0BAE\u0BAF\u0BB0\u0BB1\u0BB2\u0BB3\u0BB4\u0BB5\u0BB6\u0BB7\u0BB8\u0BB9\u0BD0\u0C05\u0C06\u0C07\u0C08\u0C09\u0C0A\u0C
 0B\u0C0C\u0C0E\u0C0F\u0C10\u0C12\u0C13\u0C14\u0C15\u0C16\u0C17\u0C18\u0C19\u0C1A\u0C1B\u0C1C\u0C1D\u0C1E\u0C1F\u0C20\u0C21\u0C22\u0C23\u0C24\u0C25\u0C26\u0C27\u0C28\u0C2A\u0C2B\u0C2C\u0C2D\u0C2E\u0C2F\u0C30\u0C31\u0C32\u0C33\u0C35\u0C36\u0C37\u0C38\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85\u0C86\u0C87\u0C88\u0C89\u0C8A\u0C8B\u0C8C\u0C8E\u0C8F\u0C90\u0C92\u0C93\u0C94\u0C95\u0C96\u0C97\u0C98\u0C99\u0C9A\u0C9B\u0C9C\u0C9D\u0C9E\u0C9F\u0CA0\u0CA1\u0CA2\u0CA3\u0CA4\u0CA5\u0CA6\u0CA7\u0CA8\u0CAA\u0CAB\u0CAC\u0CAD\u0CAE\u0CAF\u0CB0\u0CB1\u0CB2\u0CB3\u0CB5\u0CB6\u0CB7\u0CB8\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0D05\u0D06\u0D07\u0D08\u0D09\u0D0A\u0D0B\u0D0C\u0D0E\u0D0F\u0D10\u0D12\u0D13\u0D14\u0D15\u0D16\u0D17\u0D18\u0D19\u0D1A\u0D1B\u0D1C\u0D1D\u0D1E\u0D1F\u0D20\u0D21\u0D22\u0D23\u0D24\u0D25\u0D26\u0D27\u0D28\u0D2A\u0D2B\u0D2C\u0D2D\u0D2E\u0D2F\u0D30\u0D31\u0D32\u0D33\u0D34\u0D35\u0D36\u0D37\u0D38\u0D39\u0D3D\u0D60\u0D61\u0D7A\u0D7B\u0D7C\u0D7D\u0D7E\u0D7F\u0D85\u0D86\u0D87\u0D88\u0D89\u0D8A\u0D8
 B\u0D8C\u0D8D\u0D8E\u0D8F\u0D90\u0D91\u0D92\u0D93\u0D94\u0D95\u0D96\u0D9A\u0D9B\u0D9C\u0D9D\u0D9E\u0D9F\u0DA0\u0DA1\u0DA2\u0DA3\u0DA4\u0DA5\u0DA6\u0DA7\u0DA8\u0DA9\u0DAA\u0DAB\u0DAC\u0DAD\u0DAE\u0DAF\u0DB0\u0DB1\u0DB3\u0DB4\u0DB5\u0DB6\u0DB7\u0DB8\u0DB9\u0DBA\u0DBB\u0DBD\u0DC0\u0DC1\u0DC2\u0DC3\u0DC4\u0DC5\u0DC6\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E32\u0E33\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EAF\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EDC\u0EDD\u0F00\u0F40\u0F41\u0F42\u0F43\u0F44\u0F45\u0F46\u0F47\u0F49\u0F4A\u0F4B\u0F4C\u0F4D\u0F4E\u0F4F\u0F50\u0F51\u0F52
 \u0F53\u0F54\u0F55\u0F56\u0F57\u0F58\u0F59\u0F5A\u0F5B\u0F5C\u0F5D\u0F5E\u0F5F\u0F60\u0F61\u0F62\u0F63\u0F64\u0F65\u0F66\u0F67\u0F68\u0F69\u0F6A\u0F6B\u0F6C\u0F88\u0F89\u0F8A\u0F8B\u1000\u1001\u1002\u1003\u1004\u1005\u1006\u1007\u1008\u1009\u100A\u100B\u100C\u100D\u100E\u100F\u1010\u1011\u1012\u1013\u1014\u1015\u1016\u1017\u1018\u1019\u101A\u101B\u101C\u101D\u101E\u101F\u1020\u1021\u1022\u1023\u1024\u1025\u1026\u1027\u1028\u1029\u102A\u103F\u1050\u1051\u1052\u1053\u1054\u1055\u105A\u105B\u105C\u105D\u1061\u1065\u1066\u106E\u106F\u1070\u1075\u1076\u1077\u1078\u1079\u107A\u107B\u107C\u107D\u107E\u107F\u1080\u1081\u108E\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\u10F7\u10F8\u10F9\u10FA\u1100\u1101\u1102\u1103\u1104\u1105\u1106\u1107\u1108\u1109\u110A\u110B\u110C\u110D\u110E\u110F\u1110\u1111\u1112\
 u1113\u1114\u1115\u1116\u1117\u1118\u1119\u111A\u111B\u111C\u111D\u111E\u111F\u1120\u1121\u1122\u1123\u1124\u1125\u1126\u1127\u1128\u1129\u112A\u112B\u112C\u112D\u112E\u112F\u1130\u1131\u1132\u1133\u1134\u1135\u1136\u1137\u1138\u1139\u113A\u113B\u113C\u113D\u113E\u113F\u1140\u1141\u1142\u1143\u1144\u1145\u1146\u1147\u1148\u1149\u114A\u114B\u114C\u114D\u114E\u114F\u1150\u1151\u1152\u1153\u1154\u1155\u1156\u1157\u1158\u1159\u115F\u1160\u1161\u1162\u1163\u1164\u1165\u1166\u1167\u1168\u1169\u116A\u116B\u116C\u116D\u116E\u116F\u1170\u1171\u1172\u1173\u1174\u1175\u1176\u1177\u1178\u1179\u117A\u117B\u117C\u117D\u117E\u117F\u1180\u1181\u1182\u1183\u1184\u1185\u1186\u1187\u1188\u1189\u118A\u118B\u118C\u118D\u118E\u118F\u1190\u1191\u1192\u1193\u1194\u1195\u1196\u1197\u1198\u1199\u119A\u119B\u119C\u119D\u119E\u119F\u11A0\u11A1\u11A2\u11A8\u11A9\u11AA\u11AB\u11AC\u11AD\u11AE\u11AF\u11B0\u11B1\u11B2\u11B3\u11B4\u11B5\u11B6\u11B7\u11B8\u11B9\u11BA\u11BB\u11BC\u11BD\u11BE\u11BF\u11C0\u11C1\u11C2\u
 11C3\u11C4\u11C5\u11C6\u11C7\u11C8\u11C9\u11CA\u11CB\u11CC\u11CD\u11CE\u11CF\u11D0\u11D1\u11D2\u11D3\u11D4\u11D5\u11D6\u11D7\u11D8\u11D9\u11DA\u11DB\u11DC\u11DD\u11DE\u11DF\u11E0\u11E1\u11E2\u11E3\u11E4\u11E5\u11E6\u11E7\u11E8\u11E9\u11EA\u11EB\u11EC\u11ED\u11EE\u11EF\u11F0\u11F1\u11F2\u11F3\u11F4\u11F5\u11F6\u11F7\u11F8\u11F9\u1200\u1201\u1202\u1203\u1204\u1205\u1206\u1207\u1208\u1209\u120A\u120B\u120C\u120D\u120E\u120F\u1210\u1211\u1212\u1213\u1214\u1215\u1216\u1217\u1218\u1219\u121A\u121B\u121C\u121D\u121E\u121F\u1220\u1221\u1222\u1223\u1224\u1225\u1226\u1227\u1228\u1229\u122A\u122B\u122C\u122D\u122E\u122F\u1230\u1231\u1232\u1233\u1234\u1235\u1236\u1237\u1238\u1239\u123A\u123B\u123C\u123D\u123E\u123F\u1240\u1241\u1242\u1243\u1244\u1245\u1246\u1247\u1248\u124A\u124B\u124C\u124D\u1250\u1251\u1252\u1253\u1254\u1255\u1256\u1258\u125A\u125B\u125C\u125D\u1260\u1261\u1262\u1263\u1264\u1265\u1266\u1267\u1268\u1269\u126A\u126B\u126C\u126D\u126E\u126F\u1270\u1271\u1272\u1273\u1274\u1275\u1
 276\u1277\u1278\u1279\u127A\u127B\u127C\u127D\u127E\u127F\u1280\u1281\u1282\u1283\u1284\u1285\u1286\u1287\u1288\u128A\u128B\u128C\u128D\u1290\u1291\u1292\u1293\u1294\u1295\u1296\u1297\u1298\u1299\u129A\u129B\u129C\u129D\u129E\u129F\u12A0\u12A1\u12A2\u12A3\u12A4\u12A5\u12A6\u12A7\u12A8\u12A9\u12AA\u12AB\u12AC\u12AD\u12AE\u12AF\u12B0\u12B2\u12B3\u12B4\u12B5\u12B8\u12B9\u12BA\u12BB\u12BC\u12BD\u12BE\u12C0\u12C2\u12C3\u12C4\u12C5\u12C8\u12C9\u12CA\u12CB\u12CC\u12CD\u12CE\u12CF\u12D0\u12D1\u12D2\u12D3\u12D4\u12D5\u12D6\u12D8\u12D9\u12DA\u12DB\u12DC\u12DD\u12DE\u12DF\u12E0\u12E1\u12E2\u12E3\u12E4\u12E5\u12E6\u12E7\u12E8\u12E9\u12EA\u12EB\u12EC\u12ED\u12EE\u12EF\u12F0\u12F1\u12F2\u12F3\u12F4\u12F5\u12F6\u12F7\u12F8\u12F9\u12FA\u12FB\u12FC\u12FD\u12FE\u12FF\u1300\u1301\u1302\u1303\u1304\u1305\u1306\u1307\u1308\u1309\u130A\u130B\u130C\u130D\u130E\u130F\u1310\u1312\u1313\u1314\u1315\u1318\u1319\u131A\u131B\u131C\u131D\u131E\u131F\u1320\u1321\u1322\u1323\u1324\u1325\u1326\u1327\u1328\u1329\u13
 2A\u132B\u132C\u132D\u132E\u132F\u1330\u1331\u1332\u1333\u1334\u1335\u1336\u1337\u1338\u1339\u133A\u133B\u133C\u133D\u133E\u133F\u1340\u1341\u1342\u1343\u1344\u1345\u1346\u1347\u1348\u1349\u134A\u134B\u134C\u134D\u134E\u134F\u1350\u1351\u1352\u1353\u1354\u1355\u1356\u1357\u1358\u1359\u135A\u1380\u1381\u1382\u1383\u1384\u1385\u1386\u1387\u1388\u1389\u138A\u138B\u138C\u138D\u138E\u138F\u13A0\u13A1\u13A2\u13A3\u13A4\u13A5\u13A6\u13A7\u13A8\u13A9\u13AA\u13AB\u13AC\u13AD\u13AE\u13AF\u13B0\u13B1\u13B2\u13B3\u13B4\u13B5\u13B6\u13B7\u13B8\u13B9\u13BA\u13BB\u13BC\u13BD\u13BE\u13BF\u13C0\u13C1\u13C2\u13C3\u13C4\u13C5\u13C6\u13C7\u13C8\u13C9\u13CA\u13CB\u13CC\u13CD\u13CE\u13CF\u13D0\u13D1\u13D2\u13D3\u13D4\u13D5\u13D6\u13D7\u13D8\u13D9\u13DA\u13DB\u13DC\u13DD\u13DE\u13DF\u13E0\u13E1\u13E2\u13E3\u13E4\u13E5\u13E6\u13E7\u13E8\u13E9\u13EA\u13EB\u13EC\u13ED\u13EE\u13EF\u13F0\u13F1\u13F2\u13F3\u13F4\u1401\u1402\u1403\u1404\u1405\u1406\u1407\u1408\u1409\u140A\u140B\u140C\u140D\u140E\u140F\u1410\u141
 1\u1412\u1413\u1414\u1415\u1416\u1417\u1418\u1419\u141A\u141B\u141C\u141D\u141E\u141F\u1420\u1421\u1422\u1423\u1424\u1425\u1426\u1427\u1428\u1429\u142A\u142B\u142C\u142D\u142E\u142F\u1430\u1431\u1432\u1433\u1434\u1435\u1436\u1437\u1438\u1439\u143A\u143B\u143C\u143D\u143E\u143F\u1440\u1441\u1442\u1443\u1444\u1445\u1446\u1447\u1448\u1449\u144A\u144B\u144C\u144D\u144E\u144F\u1450\u1451\u1452\u1453\u1454\u1455\u1456\u1457\u1458\u1459\u145A\u145B\u145C\u145D\u145E\u145F\u1460\u1461\u1462\u1463\u1464\u1465\u1466\u1467\u1468\u1469\u146A\u146B\u146C\u146D\u146E\u146F\u1470\u1471\u1472\u1473\u1474\u1475\u1476\u1477\u1478\u1479\u147A\u147B\u147C\u147D\u147E\u147F\u1480\u1481\u1482\u1483\u1484\u1485\u1486\u1487\u1488\u1489\u148A\u148B\u148C\u148D\u148E\u148F\u1490\u1491\u1492\u1493\u1494\u1495\u1496\u1497\u1498\u1499\u149A\u149B\u149C\u149D\u149E\u149F\u14A0\u14A1\u14A2\u14A3\u14A4\u14A5\u14A6\u14A7\u14A8\u14A9\u14AA\u14AB\u14AC\u14AD\u14AE\u14AF\u14B0\u14B1\u14B2\u14B3\u14B4\u14B5\u14B6\u14B7
 \u14B8\u14B9\u14BA\u14BB\u14BC\u14BD\u14BE\u14BF\u14C0\u14C1\u14C2\u14C3\u14C4\u14C5\u14C6\u14C7\u14C8\u14C9\u14CA\u14CB\u14CC\u14CD\u14CE\u14CF\u14D0\u14D1\u14D2\u14D3\u14D4\u14D5\u14D6\u14D7\u14D8\u14D9\u14DA\u14DB\u14DC\u14DD\u14DE\u14DF\u14E0\u14E1\u14E2\u14E3\u14E4\u14E5\u14E6\u14E7\u14E8\u14E9\u14EA\u14EB\u14EC\u14ED\u14EE\u14EF\u14F0\u14F1\u14F2\u14F3\u14F4\u14F5\u14F6\u14F7\u14F8\u14F9\u14FA\u14FB\u14FC\u14FD\u14FE\u14FF\u1500\u1501\u1502\u1503\u1504\u1505\u1506\u1507\u1508\u1509\u150A\u150B\u150C\u150D\u150E\u150F\u1510\u1511\u1512\u1513\u1514\u1515\u1516\u1517\u1518\u1519\u151A\u151B\u151C\u151D\u151E\u151F\u1520\u1521\u1522\u1523\u1524\u1525\u1526\u1527\u1528\u1529\u152A\u152B\u152C\u152D\u152E\u152F\u1530\u1531\u1532\u1533\u1534\u1535\u1536\u1537\u1538\u1539\u153A\u153B\u153C\u153D\u153E\u153F\u1540\u1541\u1542\u1543\u1544\u1545\u1546\u1547\u1548\u1549\u154A\u154B\u154C\u154D\u154E\u154F\u1550\u1551\u1552\u1553\u1554\u1555\u1556\u1557\u1558\u1559\u155A\u155B\u155C\u155D\
 u155E\u155F\u1560\u1561\u1562\u1563\u1564\u1565\u1566\u1567\u1568\u1569\u156A\u156B\u156C\u156D\u156E\u156F\u1570\u1571\u1572\u1573\u1574\u1575\u1576\u1577\u1578\u1579\u157A\u157B\u157C\u157D\u157E\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u1586\u1587\u1588\u1589\u158A\u158B\u158C\u158D\u158E\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1596\u1597\u1598\u1599\u159A\u159B\u159C\u159D\u159E\u159F\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u15A7\u15A8\u15A9\u15AA\u15AB\u15AC\u15AD\u15AE\u15AF\u15B0\u15B1\u15B2\u15B3\u15B4\u15B5\u15B6\u15B7\u15B8\u15B9\u15BA\u15BB\u15BC\u15BD\u15BE\u15BF\u15C0\u15C1\u15C2\u15C3\u15C4\u15C5\u15C6\u15C7\u15C8\u15C9\u15CA\u15CB\u15CC\u15CD\u15CE\u15CF\u15D0\u15D1\u15D2\u15D3\u15D4\u15D5\u15D6\u15D7\u15D8\u15D9\u15DA\u15DB\u15DC\u15DD\u15DE\u15DF\u15E0\u15E1\u15E2\u15E3\u15E4\u15E5\u15E6\u15E7\u15E8\u15E9\u15EA\u15EB\u15EC\u15ED\u15EE\u15EF\u15F0\u15F1\u15F2\u15F3\u15F4\u15F5\u15F6\u15F7\u15F8\u15F9\u15FA\u15FB\u15FC\u15FD\u15FE\u15FF\u1600\u1601\u1602\u1603\u
 1604\u1605\u1606\u1607\u1608\u1609\u160A\u160B\u160C\u160D\u160E\u160F\u1610\u1611\u1612\u1613\u1614\u1615\u1616\u1617\u1618\u1619\u161A\u161B\u161C\u161D\u161E\u161F\u1620\u1621\u1622\u1623\u1624\u1625\u1626\u1627\u1628\u1629\u162A\u162B\u162C\u162D\u162E\u162F\u1630\u1631\u1632\u1633\u1634\u1635\u1636\u1637\u1638\u1639\u163A\u163B\u163C\u163D\u163E\u163F\u1640\u1641\u1642\u1643\u1644\u1645\u1646\u1647\u1648\u1649\u164A\u164B\u164C\u164D\u164E\u164F\u1650\u1651\u1652\u1653\u1654\u1655\u1656\u1657\u1658\u1659\u165A\u165B\u165C\u165D\u165E\u165F\u1660\u1661\u1662\u1663\u1664\u1665\u1666\u1667\u1668\u1669\u166A\u166B\u166C\u166F\u1670\u1671\u1672\u1673\u1674\u1675\u1676\u1681\u1682\u1683\u1684\u1685\u1686\u1687\u1688\u1689\u168A\u168B\u168C\u168D\u168E\u168F\u1690\u1691\u1692\u1693\u1694\u1695\u1696\u1697\u1698\u1699\u169A\u16A0\u16A1\u16A2\u16A3\u16A4\u16A5\u16A6\u16A7\u16A8\u16A9\u16AA\u16AB\u16AC\u16AD\u16AE\u16AF\u16B0\u16B1\u16B2\u16B3\u16B4\u16B5\u16B6\u16B7\u16B8\u16B9\u16BA\u1
 6BB\u16BC\u16BD\u16BE\u16BF\u16C0\u16C1\u16C2\u16C3\u16C4\u16C5\u16C6\u16C7\u16C8\u16C9\u16CA\u16CB\u16CC\u16CD\u16CE\u16CF\u16D0\u16D1\u16D2\u16D3\u16D4\u16D5\u16D6\u16D7\u16D8\u16D9\u16DA\u16DB\u16DC\u16DD\u16DE\u16DF\u16E0\u16E1\u16E2\u16E3\u16E4\u16E5\u16E6\u16E7\u16E8\u16E9\u16EA\u1700\u1701\u1702\u1703\u1704\u1705\u1706\u1707\u1708\u1709\u170A\u170B\u170C\u170E\u170F\u1710\u1711\u1720\u1721\u1722\u1723\u1724\u1725\u1726\u1727\u1728\u1729\u172A\u172B\u172C\u172D\u172E\u172F\u1730\u1731\u1740\u1741\u1742\u1743\u1744\u1745\u1746\u1747\u1748\u1749\u174A\u174B\u174C\u174D\u174E\u174F\u1750\u1751\u1760\u1761\u1762\u1763\u1764\u1765\u1766\u1767\u1768\u1769\u176A\u176B\u176C\u176E\u176F\u1770\u1780\u1781\u1782\u1783\u1784\u1785\u1786\u1787\u1788\u1789\u178A\u178B\u178C\u178D\u178E\u178F\u1790\u1791\u1792\u1793\u1794\u1795\u1796\u1797\u1798\u1799\u179A\u179B\u179C\u179D\u179E\u179F\u17A0\u17A1\u17A2\u17A3\u17A4\u17A5\u17A6\u17A7\u17A8\u17A9\u17AA\u17AB\u17AC\u17AD\u17AE\u17AF\u17B0\u17
 B1\u17B2\u17B3\u17DC\u1820\u1821\u1822\u1823\u1824\u1825\u1826\u1827\u1828\u1829\u182A\u182B\u182C\u182D\u182E\u182F\u1830\u1831\u1832\u1833\u1834\u1835\u1836\u1837\u1838\u1839\u183A\u183B\u183C\u183D\u183E\u183F\u1840\u1841\u1842\u1844\u1845\u1846\u1847\u1848\u1849\u184A\u184B\u184C\u184D\u184E\u184F\u1850\u1851\u1852\u1853\u1854\u1855\u1856\u1857\u1858\u1859\u185A\u185B\u185C\u185D\u185E\u185F\u1860\u1861\u1862\u1863\u1864\u1865\u1866\u1867\u1868\u1869\u186A\u186B\u186C\u186D\u186E\u186F\u1870\u1871\u1872\u1873\u1874\u1875\u1876\u1877\u1880\u1881\u1882\u1883\u1884\u1885\u1886\u1887\u1888\u1889\u188A\u188B\u188C\u188D\u188E\u188F\u1890\u1891\u1892\u1893\u1894\u1895\u1896\u1897\u1898\u1899\u189A\u189B\u189C\u189D\u189E\u189F\u18A0\u18A1\u18A2\u18A3\u18A4\u18A5\u18A6\u18A7\u18A8\u18AA\u1900\u1901\u1902\u1903\u1904\u1905\u1906\u1907\u1908\u1909\u190A\u190B\u190C\u190D\u190E\u190F\u1910\u1911\u1912\u1913\u1914\u1915\u1916\u1917\u1918\u1919\u191A\u191B\u191C\u1950\u1951\u1952\u1953\u195
 4\u1955\u1956\u1957\u1958\u1959\u195A\u195B\u195C\u195D\u195E\u195F\u1960\u1961\u1962\u1963\u1964\u1965\u1966\u1967\u1968\u1969\u196A\u196B\u196C\u196D\u1970\u1971\u1972\u1973\u1974\u1980\u1981\u1982\u1983\u1984\u1985\u1986\u1987\u1988\u1989\u198A\u198B\u198C\u198D\u198E\u198F\u1990\u1991\u1992\u1993\u1994\u1995\u1996\u1997\u1998\u1999\u199A\u199B\u199C\u199D\u199E\u199F\u19A0\u19A1\u19A2\u19A3\u19A4\u19A5\u19A6\u19A7\u19A8\u19A9\u19C1\u19C2\u19C3\u19C4\u19C5\u19C6\u19C7\u1A00\u1A01\u1A02\u1A03\u1A04\u1A05\u1A06\u1A07\u1A08\u1A09\u1A0A\u1A0B\u1A0C\u1A0D\u1A0E\u1A0F\u1A10\u1A11\u1A12\u1A13\u1A14\u1A15\u1A16\u1B05\u1B06\u1B07\u1B08\u1B09\u1B0A\u1B0B\u1B0C\u1B0D\u1B0E\u1B0F\u1B10\u1B11\u1B12\u1B13\u1B14\u1B15\u1B16\u1B17\u1B18\u1B19\u1B1A\u1B1B\u1B1C\u1B1D\u1B1E\u1B1F\u1B20\u1B21\u1B22\u1B23\u1B24\u1B25\u1B26\u1B27\u1B28\u1B29\u1B2A\u1B2B\u1B2C\u1B2D\u1B2E\u1B2F\u1B30\u1B31\u1B32\u1B33\u1B45\u1B46\u1B47\u1B48\u1B49\u1B4A\u1B4B\u1B83\u1B84\u1B85\u1B86\u1B87\u1B88\u1B89\u1B8A\u1B8B\u1B8C
 \u1B8D\u1B8E\u1B8F\u1B90\u1B91\u1B92\u1B93\u1B94\u1B95\u1B96\u1B97\u1B98\u1B99\u1B9A\u1B9B\u1B9C\u1B9D\u1B9E\u1B9F\u1BA0\u1BAE\u1BAF\u1C00\u1C01\u1C02\u1C03\u1C04\u1C05\u1C06\u1C07\u1C08\u1C09\u1C0A\u1C0B\u1C0C\u1C0D\u1C0E\u1C0F\u1C10\u1C11\u1C12\u1C13\u1C14\u1C15\u1C16\u1C17\u1C18\u1C19\u1C1A\u1C1B\u1C1C\u1C1D\u1C1E\u1C1F\u1C20\u1C21\u1C22\u1C23\u1C4D\u1C4E\u1C4F\u1C5A\u1C5B\u1C5C\u1C5D\u1C5E\u1C5F\u1C60\u1C61\u1C62\u1C63\u1C64\u1C65\u1C66\u1C67\u1C68\u1C69\u1C6A\u1C6B\u1C6C\u1C6D\u1C6E\u1C6F\u1C70\u1C71\u1C72\u1C73\u1C74\u1C75\u1C76\u1C77\u2135\u2136\u2137\u2138\u2D30\u2D31\u2D32\u2D33\u2D34\u2D35\u2D36\u2D37\u2D38\u2D39\u2D3A\u2D3B\u2D3C\u2D3D\u2D3E\u2D3F\u2D40\u2D41\u2D42\u2D43\u2D44\u2D45\u2D46\u2D47\u2D48\u2D49\u2D4A\u2D4B\u2D4C\u2D4D\u2D4E\u2D4F\u2D50\u2D51\u2D52\u2D53\u2D54\u2D55\u2D56\u2D57\u2D58\u2D59\u2D5A\u2D5B\u2D5C\u2D5D\u2D5E\u2D5F\u2D60\u2D61\u2D62\u2D63\u2D64\u2D65\u2D80\u2D81\u2D82\u2D83\u2D84\u2D85\u2D86\u2D87\u2D88\u2D89\u2D8A\u2D8B\u2D8C\u2D8D\u2D8E\u2D8F\u2D90\
 u2D91\u2D92\u2D93\u2D94\u2D95\u2D96\u2DA0\u2DA1\u2DA2\u2DA3\u2DA4\u2DA5\u2DA6\u2DA8\u2DA9\u2DAA\u2DAB\u2DAC\u2DAD\u2DAE\u2DB0\u2DB1\u2DB2\u2DB3\u2DB4\u2DB5\u2DB6\u2DB8\u2DB9\u2DBA\u2DBB\u2DBC\u2DBD\u2DBE\u2DC0\u2DC1\u2DC2\u2DC3\u2DC4\u2DC5\u2DC6\u2DC8\u2DC9\u2DCA\u2DCB\u2DCC\u2DCD\u2DCE\u2DD0\u2DD1\u2DD2\u2DD3\u2DD4\u2DD5\u2DD6\u2DD8\u2DD9\u2DDA\u2DDB\u2DDC\u2DDD\u2DDE\u3006\u303C\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093\u3094\u3095\u3096\u309F\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE\u30AF\u
 30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6\u30F7\u30F8\u30F9\u30FA\u30FF\u3105\u3106\u3107\u3108\u3109\u310A\u310B\u310C\u310D\u310E\u310F\u3110\u3111\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129\u312A\u312B\u312C\u312D\u3131\u3132\u3133\u3134\u3135\u3136\u3137\u3138\u3139\u313A\u313B\u313C\u313D\u313E\u313F\u3140\u3141\u3142\u3143\u3144\u3145\u3146\u3147\u3148\u3149\u314A\u314B\u314C\u314D\u314E\u314F\u3150\u3151\u3152\u3153\u3154\u3155\u3156\u3157\u3158\u3159\u315A\u315B\u315C\u315D\u315E\u315F\u3160\u3161\u3
 162\u3163\u3164\u3165\u3166\u3167\u3168\u3169\u316A\u316B\u316C\u316D\u316E\u316F\u3170\u3171\u3172\u3173\u3174\u3175\u3176\u3177\u3178\u3179\u317A\u317B\u317C\u317D\u317E\u317F\u3180\u3181\u3182\u3183\u3184\u3185\u3186\u3187\u3188\u3189\u318A\u318B\u318C\u318D\u318E\u31A0\u31A1\u31A2\u31A3\u31A4\u31A5\u31A6\u31A7\u31A8\u31A9\u31AA\u31AB\u31AC\u31AD\u31AE\u31AF\u31B0\u31B1\u31B2\u31B3\u31B4\u31B5\u31B6\u31B7\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3400\u4DB5\u4E00\u9FC3\uA000\uA001\uA002\uA003\uA004\uA005\uA006\uA007\uA008\uA009\uA00A\uA00B\uA00C\uA00D\uA00E\uA00F\uA010\uA011\uA012\uA013\uA014\uA016\uA017\uA018\uA019\uA01A\uA01B\uA01C\uA01D\uA01E\uA01F\uA020\uA021\uA022\uA023\uA024\uA025\uA026\uA027\uA028\uA029\uA02A\uA02B\uA02C\uA02D\uA02E\uA02F\uA030\uA031\uA032\uA033\uA034\uA035\uA036\uA037\uA038\uA039\uA03A\uA03B\uA03C\uA03D\uA03E\uA03F\uA040\uA041\uA042\uA043\uA044\uA045\uA046\uA047\uA048\uA049\uA04A\uA04B\uA04C\uA04D\uA0
 4E\uA04F\uA050\uA051\uA052\uA053\uA054\uA055\uA056\uA057\uA058\uA059\uA05A\uA05B\uA05C\uA05D\uA05E\uA05F\uA060\uA061\uA062\uA063\uA064\uA065\uA066\uA067\uA068\uA069\uA06A\uA06B\uA06C\uA06D\uA06E\uA06F\uA070\uA071\uA072\uA073\uA074\uA075\uA076\uA077\uA078\uA079\uA07A\uA07B\uA07C\uA07D\uA07E\uA07F\uA080\uA081\uA082\uA083\uA084\uA085\uA086\uA087\uA088\uA089\uA08A\uA08B\uA08C\uA08D\uA08E\uA08F\uA090\uA091\uA092\uA093\uA094\uA095\uA096\uA097\uA098\uA099\uA09A\uA09B\uA09C\uA09D\uA09E\uA09F\uA0A0\uA0A1\uA0A2\uA0A3\uA0A4\uA0A5\uA0A6\uA0A7\uA0A8\uA0A9\uA0AA\uA0AB\uA0AC\uA0AD\uA0AE\uA0AF\uA0B0\uA0B1\uA0B2\uA0B3\uA0B4\uA0B5\uA0B6\uA0B7\uA0B8\uA0B9\uA0BA\uA0BB\uA0BC\uA0BD\uA0BE\uA0BF\uA0C0\uA0C1\uA0C2\uA0C3\uA0C4\uA0C5\uA0C6\uA0C7\uA0C8\uA0C9\uA0CA\uA0CB\uA0CC\uA0CD\uA0CE\uA0CF\uA0D0\uA0D1\uA0D2\uA0D3\uA0D4\uA0D5\uA0D6\uA0D7\uA0D8\uA0D9\uA0DA\uA0DB\uA0DC\uA0DD\uA0DE\uA0DF\uA0E0\uA0E1\uA0E2\uA0E3\uA0E4\uA0E5\uA0E6\uA0E7\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE\uA0EF\uA0F0\uA0F1\uA0F2\uA0F3\uA0F
 4\uA0F5\uA0F6\uA0F7\uA0F8\uA0F9\uA0FA\uA0FB\uA0FC\uA0FD\uA0FE\uA0FF\uA100\uA101\uA102\uA103\uA104\uA105\uA106\uA107\uA108\uA109\uA10A\uA10B\uA10C\uA10D\uA10E\uA10F\uA110\uA111\uA112\uA113\uA114\uA115\uA116\uA117\uA118\uA119\uA11A\uA11B\uA11C\uA11D\uA11E\uA11F\uA120\uA121\uA122\uA123\uA124\uA125\uA126\uA127\uA128\uA129\uA12A\uA12B\uA12C\uA12D\uA12E\uA12F\uA130\uA131\uA132\uA133\uA134\uA135\uA136\uA137\uA138\uA139\uA13A\uA13B\uA13C\uA13D\uA13E\uA13F\uA140\uA141\uA142\uA143\uA144\uA145\uA146\uA147\uA148\uA149\uA14A\uA14B\uA14C\uA14D\uA14E\uA14F\uA150\uA151\uA152\uA153\uA154\uA155\uA156\uA157\uA158\uA159\uA15A\uA15B\uA15C\uA15D\uA15E\uA15F\uA160\uA161\uA162\uA163\uA164\uA165\uA166\uA167\uA168\uA169\uA16A\uA16B\uA16C\uA16D\uA16E\uA16F\uA170\uA171\uA172\uA173\uA174\uA175\uA176\uA177\uA178\uA179\uA17A\uA17B\uA17C\uA17D\uA17E\uA17F\uA180\uA181\uA182\uA183\uA184\uA185\uA186\uA187\uA188\uA189\uA18A\uA18B\uA18C\uA18D\uA18E\uA18F\uA190\uA191\uA192\uA193\uA194\uA195\uA196\uA197\uA198\uA199\uA19A
 \uA19B\uA19C\uA19D\uA19E\uA19F\uA1A0\uA1A1\uA1A2\uA1A3\uA1A4\uA1A5\uA1A6\uA1A7\uA1A8\uA1A9\uA1AA\uA1AB\uA1AC\uA1AD\uA1AE\uA1AF\uA1B0\uA1B1\uA1B2\uA1B3\uA1B4\uA1B5\uA1B6\uA1B7\uA1B8\uA1B9\uA1BA\uA1BB\uA1BC\uA1BD\uA1BE\uA1BF\uA1C0\uA1C1\uA1C2\uA1C3\uA1C4\uA1C5\uA1C6\uA1C7\uA1C8\uA1C9\uA1CA\uA1CB\uA1CC\uA1CD\uA1CE\uA1CF\uA1D0\uA1D1\uA1D2\uA1D3\uA1D4\uA1D5\uA1D6\uA1D7\uA1D8\uA1D9\uA1DA\uA1DB\uA1DC\uA1DD\uA1DE\uA1DF\uA1E0\uA1E1\uA1E2\uA1E3\uA1E4\uA1E5\uA1E6\uA1E7\uA1E8\uA1E9\uA1EA\uA1EB\uA1EC\uA1ED\uA1EE\uA1EF\uA1F0\uA1F1\uA1F2\uA1F3\uA1F4\uA1F5\uA1F6\uA1F7\uA1F8\uA1F9\uA1FA\uA1FB\uA1FC\uA1FD\uA1FE\uA1FF\uA200\uA201\uA202\uA203\uA204\uA205\uA206\uA207\uA208\uA209\uA20A\uA20B\uA20C\uA20D\uA20E\uA20F\uA210\uA211\uA212\uA213\uA214\uA215\uA216\uA217\uA218\uA219\uA21A\uA21B\uA21C\uA21D\uA21E\uA21F\uA220\uA221\uA222\uA223\uA224\uA225\uA226\uA227\uA228\uA229\uA22A\uA22B\uA22C\uA22D\uA22E\uA22F\uA230\uA231\uA232\uA233\uA234\uA235\uA236\uA237\uA238\uA239\uA23A\uA23B\uA23C\uA23D\uA23E\uA23F\uA240\
 uA241\uA242\uA243\uA244\uA245\uA246\uA247\uA248\uA249\uA24A\uA24B\uA24C\uA24D\uA24E\uA24F\uA250\uA251\uA252\uA253\uA254\uA255\uA256\uA257\uA258\uA259\uA25A\uA25B\uA25C\uA25D\uA25E\uA25F\uA260\uA261\uA262\uA263\uA264\uA265\uA266\uA267\uA268\uA269\uA26A\uA26B\uA26C\uA26D\uA26E\uA26F\uA270\uA271\uA272\uA273\uA274\uA275\uA276\uA277\uA278\uA279\uA27A\uA27B\uA27C\uA27D\uA27E\uA27F\uA280\uA281\uA282\uA283\uA284\uA285\uA286\uA287\uA288\uA289\uA28A\uA28B\uA28C\uA28D\uA28E\uA28F\uA290\uA291\uA292\uA293\uA294\uA295\uA296\uA297\uA298\uA299\uA29A\uA29B\uA29C\uA29D\uA29E\uA29F\uA2A0\uA2A1\uA2A2\uA2A3\uA2A4\uA2A5\uA2A6\uA2A7\uA2A8\uA2A9\uA2AA\uA2AB\uA2AC\uA2AD\uA2AE\uA2AF\uA2B0\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6\uA2B7\uA2B8\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0\uA2C1\uA2C2\uA2C3\uA2C4\uA2C5\uA2C6\uA2C7\uA2C8\uA2C9\uA2CA\uA2CB\uA2CC\uA2CD\uA2CE\uA2CF\uA2D0\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5\uA2D6\uA2D7\uA2D8\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD\uA2DE\uA2DF\uA2E0\uA2E1\uA2E2\uA2E3\uA2E4\uA2E5\uA2E6\u
 A2E7\uA2E8\uA2E9\uA2EA\uA2EB\uA2EC\uA2ED\uA2EE\uA2EF\uA2F0\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7\uA2F8\uA2F9\uA2FA\uA2FB\uA2FC\uA2FD\uA2FE\uA2FF\uA300\uA301\uA302\uA303\uA304\uA305\uA306\uA307\uA308\uA309\uA30A\uA30B\uA30C\uA30D\uA30E\uA30F\uA310\uA311\uA312\uA313\uA314\uA315\uA316\uA317\uA318\uA319\uA31A\uA31B\uA31C\uA31D\uA31E\uA31F\uA320\uA321\uA322\uA323\uA324\uA325\uA326\uA327\uA328\uA329\uA32A\uA32B\uA32C\uA32D\uA32E\uA32F\uA330\uA331\uA332\uA333\uA334\uA335\uA336\uA337\uA338\uA339\uA33A\uA33B\uA33C\uA33D\uA33E\uA33F\uA340\uA341\uA342\uA343\uA344\uA345\uA346\uA347\uA348\uA349\uA34A\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351\uA352\uA353\uA354\uA355\uA356\uA357\uA358\uA359\uA35A\uA35B\uA35C\uA35D\uA35E\uA35F\uA360\uA361\uA362\uA363\uA364\uA365\uA366\uA367\uA368\uA369\uA36A\uA36B\uA36C\uA36D\uA36E\uA36F\uA370\uA371\uA372\uA373\uA374\uA375\uA376\uA377\uA378\uA379\uA37A\uA37B\uA37C\uA37D\uA37E\uA37F\uA380\uA381\uA382\uA383\uA384\uA385\uA386\uA387\uA388\uA389\uA38A\uA38B\uA38C\uA
 38D\uA38E\uA38F\uA390\uA391\uA392\uA393\uA394\uA395\uA396\uA397\uA398\uA399\uA39A\uA39B\uA39C\uA39D\uA39E\uA39F\uA3A0\uA3A1\uA3A2\uA3A3\uA3A4\uA3A5\uA3A6\uA3A7\uA3A8\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF\uA3B0\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7\uA3B8\uA3B9\uA3BA\uA3BB\uA3BC\uA3BD\uA3BE\uA3BF\uA3C0\uA3C1\uA3C2\uA3C3\uA3C4\uA3C5\uA3C6\uA3C7\uA3C8\uA3C9\uA3CA\uA3CB\uA3CC\uA3CD\uA3CE\uA3CF\uA3D0\uA3D1\uA3D2\uA3D3\uA3D4\uA3D5\uA3D6\uA3D7\uA3D8\uA3D9\uA3DA\uA3DB\uA3DC\uA3DD\uA3DE\uA3DF\uA3E0\uA3E1\uA3E2\uA3E3\uA3E4\uA3E5\uA3E6\uA3E7\uA3E8\uA3E9\uA3EA\uA3EB\uA3EC\uA3ED\uA3EE\uA3EF\uA3F0\uA3F1\uA3F2\uA3F3\uA3F4\uA3F5\uA3F6\uA3F7\uA3F8\uA3F9\uA3FA\uA3FB\uA3FC\uA3FD\uA3FE\uA3FF\uA400\uA401\uA402\uA403\uA404\uA405\uA406\uA407\uA408\uA409\uA40A\uA40B\uA40C\uA40D\uA40E\uA40F\uA410\uA411\uA412\uA413\uA414\uA415\uA416\uA417\uA418\uA419\uA41A\uA41B\uA41C\uA41D\uA41E\uA41F\uA420\uA421\uA422\uA423\uA424\uA425\uA426\uA427\uA428\uA429\uA42A\uA42B\uA42C\uA42D\uA42E\uA42F\uA430\uA431\uA432\uA4
 33\uA434\uA435\uA436\uA437\uA438\uA439\uA43A\uA43B\uA43C\uA43D\uA43E\uA43F\uA440\uA441\uA442\uA443\uA444\uA445\uA446\uA447\uA448\uA449\uA44A\uA44B\uA44C\uA44D\uA44E\uA44F\uA450\uA451\uA452\uA453\uA454\uA455\uA456\uA457\uA458\uA459\uA45A\uA45B\uA45C\uA45D\uA45E\uA45F\uA460\uA461\uA462\uA463\uA464\uA465\uA466\uA467\uA468\uA469\uA46A\uA46B\uA46C\uA46D\uA46E\uA46F\uA470\uA471\uA472\uA473\uA474\uA475\uA476\uA477\uA478\uA479\uA47A\uA47B\uA47C\uA47D\uA47E\uA47F\uA480\uA481\uA482\uA483\uA484\uA485\uA486\uA487\uA488\uA489\uA48A\uA48B\uA48C\uA500\uA501\uA502\uA503\uA504\uA505\uA506\uA507\uA508\uA509\uA50A\uA50B\uA50C\uA50D\uA50E\uA50F\uA510\uA511\uA512\uA513\uA514\uA515\uA516\uA517\uA518\uA519\uA51A\uA51B\uA51C\uA51D\uA51E\uA51F\uA520\uA521\uA522\uA523\uA524\uA525\uA526\uA527\uA528\uA529\uA52A\uA52B\uA52C\uA52D\uA52E\uA52F\uA530\uA531\uA532\uA533\uA534\uA535\uA536\uA537\uA538\uA539\uA53A\uA53B\uA53C\uA53D\uA53E\uA53F\uA540\uA541\uA542\uA543\uA544\uA545\uA546\uA547\uA548\uA549\uA54A\uA54B\uA54
 C\uA54D\uA54E\uA54F\uA550\uA551\uA552\uA553\uA554\uA555\uA556\uA557\uA558\uA559\uA55A\uA55B\uA55C\uA55D\uA55E\uA55F\uA560\uA561\uA562\uA563\uA564\uA565\uA566\uA567\uA568\uA569\uA56A\uA56B\uA56C\uA56D\uA56E\uA56F\uA570\uA571\uA572\uA573\uA574\uA575\uA576\uA577\uA578\uA579\uA57A\uA57B\uA57C\uA57D\uA57E\uA57F\uA580\uA581\uA582\uA583\uA584\uA585\uA586\uA587\uA588\uA589\uA58A\uA58B\uA58C\uA58D\uA58E\uA58F\uA590\uA591\uA592\uA593\uA594\uA595\uA596\uA597\uA598\uA599\uA59A\uA59B\uA59C\uA59D\uA59E\uA59F\uA5A0\uA5A1\uA5A2\uA5A3\uA5A4\uA5A5\uA5A6\uA5A7\uA5A8\uA5A9\uA5AA\uA5AB\uA5AC\uA5AD\uA5AE\uA5AF\uA5B0\uA5B1\uA5B2\uA5B3\uA5B4\uA5B5\uA5B6\uA5B7\uA5B8\uA5B9\uA5BA\uA5BB\uA5BC\uA5BD\uA5BE\uA5BF\uA5C0\uA5C1\uA5C2\uA5C3\uA5C4\uA5C5\uA5C6\uA5C7\uA5C8\uA5C9\uA5CA\uA5CB\uA5CC\uA5CD\uA5CE\uA5CF\uA5D0\uA5D1\uA5D2\uA5D3\uA5D4\uA5D5\uA5D6\uA5D7\uA5D8\uA5D9\uA5DA\uA5DB\uA5DC\uA5DD\uA5DE\uA5DF\uA5E0\uA5E1\uA5E2\uA5E3\uA5E4\uA5E5\uA5E6\uA5E7\uA5E8\uA5E9\uA5EA\uA5EB\uA5EC\uA5ED\uA5EE\uA5EF\uA5F0\uA5F1\uA5F2
 \uA5F3\uA5F4\uA5F5\uA5F6\uA5F7\uA5F8\uA5F9\uA5FA\uA5FB\uA5FC\uA5FD\uA5FE\uA5FF\uA600\uA601\uA602\uA603\uA604\uA605\uA606\uA607\uA608\uA609\uA60A\uA60B\uA610\uA611\uA612\uA613\uA614\uA615\uA616\uA617\uA618\uA619\uA61A\uA61B\uA61C\uA61D\uA61E\uA61F\uA62A\uA62B\uA66E\uA7FB\uA7FC\uA7FD\uA7FE\uA7FF\uA800\uA801\uA803\uA804\uA805\uA807\uA808\uA809\uA80A\uA80C\uA80D\uA80E\uA80F\uA810\uA811\uA812\uA813\uA814\uA815\uA816\uA817\uA818\uA819\uA81A\uA81B\uA81C\uA81D\uA81E\uA81F\uA820\uA821\uA822\uA840\uA841\uA842\uA843\uA844\uA845\uA846\uA847\uA848\uA849\uA84A\uA84B\uA84C\uA84D\uA84E\uA84F\uA850\uA851\uA852\uA853\uA854\uA855\uA856\uA857\uA858\uA859\uA85A\uA85B\uA85C\uA85D\uA85E\uA85F\uA860\uA861\uA862\uA863\uA864\uA865\uA866\uA867\uA868\uA869\uA86A\uA86B\uA86C\uA86D\uA86E\uA86F\uA870\uA871\uA872\uA873\uA882\uA883\uA884\uA885\uA886\uA887\uA888\uA889\uA88A\uA88B\uA88C\uA88D\uA88E\uA88F\uA890\uA891\uA892\uA893\uA894\uA895\uA896\uA897\uA898\uA899\uA89A\uA89B\uA89C\uA89D\uA89E\uA89F\uA8A0\uA8A1\uA8A2\
 uA8A3\uA8A4\uA8A5\uA8A6\uA8A7\uA8A8\uA8A9\uA8AA\uA8AB\uA8AC\uA8AD\uA8AE\uA8AF\uA8B0\uA8B1\uA8B2\uA8B3\uA90A\uA90B\uA90C\uA90D\uA90E\uA90F\uA910\uA911\uA912\uA913\uA914\uA915\uA916\uA917\uA918\uA919\uA91A\uA91B\uA91C\uA91D\uA91E\uA91F\uA920\uA921\uA922\uA923\uA924\uA925\uA930\uA931\uA932\uA933\uA934\uA935\uA936\uA937\uA938\uA939\uA93A\uA93B\uA93C\uA93D\uA93E\uA93F\uA940\uA941\uA942\uA943\uA944\uA945\uA946\uAA00\uAA01\uAA02\uAA03\uAA04\uAA05\uAA06\uAA07\uAA08\uAA09\uAA0A\uAA0B\uAA0C\uAA0D\uAA0E\uAA0F\uAA10\uAA11\uAA12\uAA13\uAA14\uAA15\uAA16\uAA17\uAA18\uAA19\uAA1A\uAA1B\uAA1C\uAA1D\uAA1E\uAA1F\uAA20\uAA21\uAA22\uAA23\uAA24\uAA25\uAA26\uAA27\uAA28\uAA40\uAA41\uAA42\uAA44\uAA45\uAA46\uAA47\uAA48\uAA49\uAA4A\uAA4B\uAC00\uD7A3\uF900\uF901\uF902\uF903\uF904\uF905\uF906\uF907\uF908\uF909\uF90A\uF90B\uF90C\uF90D\uF90E\uF90F\uF910\uF911\uF912\uF913\uF914\uF915\uF916\uF917\uF918\uF919\uF91A\uF91B\uF91C\uF91D\uF91E\uF91F\uF920\uF921\uF922\uF923\uF924\uF925\uF926\uF927\uF928\uF929\uF92A\uF92B\u
 F92C\uF92D\uF92E\uF92F\uF930\uF931\uF932\uF933\uF934\uF935\uF936\uF937\uF938\uF939\uF93A\uF93B\uF93C\uF93D\uF93E\uF93F\uF940\uF941\uF942\uF943\uF944\uF945\uF946\uF947\uF948\uF949\uF94A\uF94B\uF94C\uF94D\uF94E\uF94F\uF950\uF951\uF952\uF953\uF954\uF955\uF956\uF957\uF958\uF959\uF95A\uF95B\uF95C\uF95D\uF95E\uF95F\uF960\uF961\uF962\uF963\uF964\uF965\uF966\uF967\uF968\uF969\uF96A\uF96B\uF96C\uF96D\uF96E\uF96F\uF970\uF971\uF972\uF973\uF974\uF975\uF976\uF977\uF978\uF979\uF97A\uF97B\uF97C\uF97D\uF97E\uF97F\uF980\uF981\uF982\uF983\uF984\uF985\uF986\uF987\uF988\uF989\uF98A\uF98B\uF98C\uF98D\uF98E\uF98F\uF990\uF991\uF992\uF993\uF994\uF995\uF996\uF997\uF998\uF999\uF99A\uF99B\uF99C\uF99D\uF99E\uF99F\uF9A0\uF9A1\uF9A2\uF9A3\uF9A4\uF9A5\uF9A6\uF9A7\uF9A8\uF9A9\uF9AA\uF9AB\uF9AC\uF9AD\uF9AE\uF9AF\uF9B0\uF9B1\uF9B2\uF9B3\uF9B4\uF9B5\uF9B6\uF9B7\uF9B8\uF9B9\uF9BA\uF9BB\uF9BC\uF9BD\uF9BE\uF9BF\uF9C0\uF9C1\uF9C2\uF9C3\uF9C4\uF9C5\uF9C6\uF9C7\uF9C8\uF9C9\uF9CA\uF9CB\uF9CC\uF9CD\uF9CE\uF9CF\uF9D0\uF9D1\uF
 9D2\uF9D3\uF9D4\uF9D5\uF9D6\uF9D7\uF9D8\uF9D9\uF9DA\uF9DB\uF9DC\uF9DD\uF9DE\uF9DF\uF9E0\uF9E1\uF9E2\uF9E3\uF9E4\uF9E5\uF9E6\uF9E7\uF9E8\uF9E9\uF9EA\uF9EB\uF9EC\uF9ED\uF9EE\uF9EF\uF9F0\uF9F1\uF9F2\uF9F3\uF9F4\uF9F5\uF9F6\uF9F7\uF9F8\uF9F9\uF9FA\uF9FB\uF9FC\uF9FD\uF9FE\uF9FF\uFA00\uFA01\uFA02\uFA03\uFA04\uFA05\uFA06\uFA07\uFA08\uFA09\uFA0A\uFA0B\uFA0C\uFA0D\uFA0E\uFA0F\uFA10\uFA11\uFA12\uFA13\uFA14\uFA15\uFA16\uFA17\uFA18\uFA19\uFA1A\uFA1B\uFA1C\uFA1D\uFA1E\uFA1F\uFA20\uFA21\uFA22\uFA23\uFA24\uFA25\uFA26\uFA27\uFA28\uFA29\uFA2A\uFA2B\uFA2C\uFA2D\uFA30\uFA31\uFA32\uFA33\uFA34\uFA35\uFA36\uFA37\uFA38\uFA39\uFA3A\uFA3B\uFA3C\uFA3D\uFA3E\uFA3F\uFA40\uFA41\uFA42\uFA43\uFA44\uFA45\uFA46\uFA47\uFA48\uFA49\uFA4A\uFA4B\uFA4C\uFA4D\uFA4E\uFA4F\uFA50\uFA51\uFA52\uFA53\uFA54\uFA55\uFA56\uFA57\uFA58\uFA59\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\uFA5F\uFA60\uFA61\uFA62\uFA63\uFA64\uFA65\uFA66\uFA67\uFA68\uFA69\uFA6A\uFA70\uFA71\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77\uFA78\uFA79\uFA7A\uFA7B\uFA7C\uFA7D\uFA7E\uFA
 7F\uFA80\uFA81\uFA82\uFA83\uFA84\uFA85\uFA86\uFA87\uFA88\uFA89\uFA8A\uFA8B\uFA8C\uFA8D\uFA8E\uFA8F\uFA90\uFA91\uFA92\uFA93\uFA94\uFA95\uFA96\uFA97\uFA98\uFA99\uFA9A\uFA9B\uFA9C\uFA9D\uFA9E\uFA9F\uFAA0\uFAA1\uFAA2\uFAA3\uFAA4\uFAA5\uFAA6\uFAA7\uFAA8\uFAA9\uFAAA\uFAAB\uFAAC\uFAAD\uFAAE\uFAAF\uFAB0\uFAB1\uFAB2\uFAB3\uFAB4\uFAB5\uFAB6\uFAB7\uFAB8\uFAB9\uFABA\uFABB\uFABC\uFABD\uFABE\uFABF\uFAC0\uFAC1\uFAC2\uFAC3\uFAC4\uFAC5\uFAC6\uFAC7\uFAC8\uFAC9\uFACA\uFACB\uFACC\uFACD\uFACE\uFACF\uFAD0\uFAD1\uFAD2\uFAD3\uFAD4\uFAD5\uFAD6\uFAD7\uFAD8\uFAD9\uFB1D\uFB1F\uFB20\uFB21\uFB22\uFB23\uFB24\uFB25\uFB26\uFB27\uFB28\uFB2A\uFB2B\uFB2C\uFB2D\uFB2E\uFB2F\uFB30\uFB31\uFB32\uFB33\uFB34\uFB35\uFB36\uFB38\uFB39\uFB3A\uFB3B\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46\uFB47\uFB48\uFB49\uFB4A\uFB4B\uFB4C\uFB4D\uFB4E\uFB4F\uFB50\uFB51\uFB52\uFB53\uFB54\uFB55\uFB56\uFB57\uFB58\uFB59\uFB5A\uFB5B\uFB5C\uFB5D\uFB5E\uFB5F\uFB60\uFB61\uFB62\uFB63\uFB64\uFB65\uFB66\uFB67\uFB68\uFB69\uFB6A\uFB6B\uFB6C\uFB6D\uFB6E\uFB6
 F\uFB70\uFB71\uFB72\uFB73\uFB74\uFB75\uFB76\uFB77\uFB78\uFB79\uFB7A\uFB7B\uFB7C\uFB7D\uFB7E\uFB7F\uFB80\uFB81\uFB82\uFB83\uFB84\uFB85\uFB86\uFB87\uFB88\uFB89\uFB8A\uFB8B\uFB8C\uFB8D\uFB8E\uFB8F\uFB90\uFB91\uFB92\uFB93\uFB94\uFB95\uFB96\uFB97\uFB98\uFB99\uFB9A\uFB9B\uFB9C\uFB9D\uFB9E\uFB9F\uFBA0\uFBA1\uFBA2\uFBA3\uFBA4\uFBA5\uFBA6\uFBA7\uFBA8\uFBA9\uFBAA\uFBAB\uFBAC\uFBAD\uFBAE\uFBAF\uFBB0\uFBB1\uFBD3\uFBD4\uFBD5\uFBD6\uFBD7\uFBD8\uFBD9\uFBDA\uFBDB\uFBDC\uFBDD\uFBDE\uFBDF\uFBE0\uFBE1\uFBE2\uFBE3\uFBE4\uFBE5\uFBE6\uFBE7\uFBE8\uFBE9\uFBEA\uFBEB\uFBEC\uFBED\uFBEE\uFBEF\uFBF0\uFBF1\uFBF2\uFBF3\uFBF4\uFBF5\uFBF6\uFBF7\uFBF8\uFBF9\uFBFA\uFBFB\uFBFC\uFBFD\uFBFE\uFBFF\uFC00\uFC01\uFC02\uFC03\uFC04\uFC05\uFC06\uFC07\uFC08\uFC09\uFC0A\uFC0B\uFC0C\uFC0D\uFC0E\uFC0F\uFC10\uFC11\uFC12\uFC13\uFC14\uFC15\uFC16\uFC17\uFC18\uFC19\uFC1A\uFC1B\uFC1C\uFC1D\uFC1E\uFC1F\uFC20\uFC21\uFC22\uFC23\uFC24\uFC25\uFC26\uFC27\uFC28\uFC29\uFC2A\uFC2B\uFC2C\uFC2D\uFC2E\uFC2F\uFC30\uFC31\uFC32\uFC33\uFC34\uFC35\uFC36
 \uFC37\uFC38\uFC39\uFC3A\uFC3B\uFC3C\uFC3D\uFC3E\uFC3F\uFC40\uFC41\uFC42\uFC43\uFC44\uFC45\uFC46\uFC47\uFC48\uFC49\uFC4A\uFC4B\uFC4C\uFC4D\uFC4E\uFC4F\uFC50\uFC51\uFC52\uFC53\uFC54\uFC55\uFC56\uFC57\uFC58\uFC59\uFC5A\uFC5B\uFC5C\uFC5D\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63\uFC64\uFC65\uFC66\uFC67\uFC68\uFC69\uFC6A\uFC6B\uFC6C\uFC6D\uFC6E\uFC6F\uFC70\uFC71\uFC72\uFC73\uFC74\uFC75\uFC76\uFC77\uFC78\uFC79\uFC7A\uFC7B\uFC7C\uFC7D\uFC7E\uFC7F\uFC80\uFC81\uFC82\uFC83\uFC84\uFC85\uFC86\uFC87\uFC88\uFC89\uFC8A\uFC8B\uFC8C\uFC8D\uFC8E\uFC8F\uFC90\uFC91\uFC92\uFC93\uFC94\uFC95\uFC96\uFC97\uFC98\uFC99\uFC9A\uFC9B\uFC9C\uFC9D\uFC9E\uFC9F\uFCA0\uFCA1\uFCA2\uFCA3\uFCA4\uFCA5\uFCA6\uFCA7\uFCA8\uFCA9\uFCAA\uFCAB\uFCAC\uFCAD\uFCAE\uFCAF\uFCB0\uFCB1\uFCB2\uFCB3\uFCB4\uFCB5\uFCB6\uFCB7\uFCB8\uFCB9\uFCBA\uFCBB\uFCBC\uFCBD\uFCBE\uFCBF\uFCC0\uFCC1\uFCC2\uFCC3\uFCC4\uFCC5\uFCC6\uFCC7\uFCC8\uFCC9\uFCCA\uFCCB\uFCCC\uFCCD\uFCCE\uFCCF\uFCD0\uFCD1\uFCD2\uFCD3\uFCD4\uFCD5\uFCD6\uFCD7\uFCD8\uFCD9\uFCDA\uFCDB\uFCDC\
 uFCDD\uFCDE\uFCDF\uFCE0\uFCE1\uFCE2\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7\uFCE8\uFCE9\uFCEA\uFCEB\uFCEC\uFCED\uFCEE\uFCEF\uFCF0\uFCF1\uFCF2\uFCF3\uFCF4\uFCF5\uFCF6\uFCF7\uFCF8\uFCF9\uFCFA\uFCFB\uFCFC\uFCFD\uFCFE\uFCFF\uFD00\uFD01\uFD02\uFD03\uFD04\uFD05\uFD06\uFD07\uFD08\uFD09\uFD0A\uFD0B\uFD0C\uFD0D\uFD0E\uFD0F\uFD10\uFD11\uFD12\uFD13\uFD14\uFD15\uFD16\uFD17\uFD18\uFD19\uFD1A\uFD1B\uFD1C\uFD1D\uFD1E\uFD1F\uFD20\uFD21\uFD22\uFD23\uFD24\uFD25\uFD26\uFD27\uFD28\uFD29\uFD2A\uFD2B\uFD2C\uFD2D\uFD2E\uFD2F\uFD30\uFD31\uFD32\uFD33\uFD34\uFD35\uFD36\uFD37\uFD38\uFD39\uFD3A\uFD3B\uFD3C\uFD3D\uFD50\uFD51\uFD52\uFD53\uFD54\uFD55\uFD56\uFD57\uFD58\uFD59\uFD5A\uFD5B\uFD5C\uFD5D\uFD5E\uFD5F\uFD60\uFD61\uFD62\uFD63\uFD64\uFD65\uFD66\uFD67\uFD68\uFD69\uFD6A\uFD6B\uFD6C\uFD6D\uFD6E\uFD6F\uFD70\uFD71\uFD72\uFD73\uFD74\uFD75\uFD76\uFD77\uFD78\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFD7F\uFD80\uFD81\uFD82\uFD83\uFD84\uFD85\uFD86\uFD87\uFD88\uFD89\uFD8A\uFD8B\uFD8C\uFD8D\uFD8E\uFD8F\uFD92\uFD93\uFD94\uFD95\uFD96\u
 FD97\uFD98\uFD99\uFD9A\uFD9B\uFD9C\uFD9D\uFD9E\uFD9F\uFDA0\uFDA1\uFDA2\uFDA3\uFDA4\uFDA5\uFDA6\uFDA7\uFDA8\uFDA9\uFDAA\uFDAB\uFDAC\uFDAD\uFDAE\uFDAF\uFDB0\uFDB1\uFDB2\uFDB3\uFDB4\uFDB5\uFDB6\uFDB7\uFDB8\uFDB9\uFDBA\uFDBB\uFDBC\uFDBD\uFDBE\uFDBF\uFDC0\uFDC1\uFDC2\uFDC3\uFDC4\uFDC5\uFDC6\uFDC7\uFDF0\uFDF1\uFDF2\uFDF3\uFDF4\uFDF5\uFDF6\uFDF7\uFDF8\uFDF9\uFDFA\uFDFB\uFE70\uFE71\uFE72\uFE73\uFE74\uFE76\uFE77\uFE78\uFE79\uFE7A\uFE7B\uFE7C\uFE7D\uFE7E\uFE7F\uFE80\uFE81\uFE82\uFE83\uFE84\uFE85\uFE86\uFE87\uFE88\uFE89\uFE8A\uFE8B\uFE8C\uFE8D\uFE8E\uFE8F\uFE90\uFE91\uFE92\uFE93\uFE94\uFE95\uFE96\uFE97\uFE98\uFE99\uFE9A\uFE9B\uFE9C\uFE9D\uFE9E\uFE9F\uFEA0\uFEA1\uFEA2\uFEA3\uFEA4\uFEA5\uFEA6\uFEA7\uFEA8\uFEA9\uFEAA\uFEAB\uFEAC\uFEAD\uFEAE\uFEAF\uFEB0\uFEB1\uFEB2\uFEB3\uFEB4\uFEB5\uFEB6\uFEB7\uFEB8\uFEB9\uFEBA\uFEBB\uFEBC\uFEBD\uFEBE\uFEBF\uFEC0\uFEC1\uFEC2\uFEC3\uFEC4\uFEC5\uFEC6\uFEC7\uFEC8\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1\uFED2\uFED3\uFED4\uFED5\uFED6\uFED7\uFED8\uFED9\uF
 EDA\uFEDB\uFEDC\uFEDD\uFEDE\uFEDF\uFEE0\uFEE1\uFEE2\uFEE3\uFEE4\uFEE5\uFEE6\uFEE7\uFEE8\uFEE9\uFEEA\uFEEB\uFEEC\uFEED\uFEEE\uFEEF\uFEF0\uFEF1\uFEF2\uFEF3\uFEF4\uFEF5\uFEF6\uFEF7\uFEF8\uFEF9\uFEFA\uFEFB\uFEFC\uFF66\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D\uFFA0\uFFA1\uFFA2\uFFA3\uFFA4\uFFA5\uFFA6\uFFA7\uFFA8\uFFA9\uFFAA\uFFAB\uFFAC\uFFAD\uFFAE\uFFAF\uFFB0\uFFB1\uFFB2\uFFB3\uFFB4\uFFB5\uFFB6\uFFB7\uFFB8\uFFB9\uFFBA\uFFBB\uFFBC\uFFBD\uFFBE\uFFC2\uFFC3\uFFC4\uFFC5\uFFC6\uFFC7\uFFCA\uFFCB\uFFCC\uFFCD\uFFCE\uFFCF\uFFD2\uFFD3\uFFD4\uFFD5\uFFD6\uFFD7\uFFDA\uFFDB\uFFDC]
-
-// Letter, Titlecase
-Lt = [\u01C5\u01C8\u01CB\u01F2\u1F88\u1F89\u1F8A\u1F8B\u1F8C\u1F8D\u1F8E\u1F8F\u1F98\u1F99\u1F9A\u1F9B\u1F9C\u1F9D\u1F9E\u1F9F\u1FA8\u1FA9\u1FAA\u1FAB\u1FAC\u1FAD\u1FAE\u1FAF\u1FBC\u1FCC\u1FFC]
-
-// Letter, Uppercase
-Lu = [\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005A\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189\u018A\u018B\u018E\u018F\u0190\u0191\u0193\u0194\u0196\u0197\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1\u01B2\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\
 u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6\u01F7\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243\u0244\u0245\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388\u0389\u038A\u038C\u038E\u038F\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03CF\u03D2\u03D3\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD\u03FE\u03FF\u0400\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\u040D\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0460\u0462\u
 0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0531\u0532\u0533\u0534\u0535\u0536\u0537\u0538\u0539\u053A\u053B\u053C\u053D\u053E\u053F\u0540\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054A\u054B\u054C\u054D\u054E\u054F\u0550\u0551\u0552\u0553\u0554\u0555\u0556\u10A0\u10A1\u10A2\u10A3\u10A4\u10A5\u10A6\u10A7\u10A8\u10A9\u10AA\u10AB\u10AC\u10AD\u10AE\u10AF\u10B0\u10B1\u10B2\u10B3\u10B4\u10B5\u10B6\u10B7\u10B8\u10B9\u10BA\u10BB\u10BC\u10BD\u10BE\u10BF\u10C0\u10C1\u10C2\u10C3\u1
 0C4\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08\u1F09\u1F0A\u1F0B\u1F0C\u1F0D\u1F0E\u1F0F\u1F18\u1F19\u1F1A\u1F1B\u1F1C\u1F1D\u1F28\u1F29\u1F2A\u1F2B\u1F2C\u1F2D\u1F2E\u1F2F\u1F38\u1F39\u1F3A\u1F3B\u1F3C\u1F3D\u1F3E\u1F3F\u1F48\u1F49\u1F4A\u1F4B\u1F4C\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F
 68\u1F69\u1F6A\u1F6B\u1F6C\u1F6D\u1F6E\u1F6F\u1FB8\u1FB9\u1FBA\u1FBB\u1FC8\u1FC9\u1FCA\u1FCB\u1FD8\u1FD9\u1FDA\u1FDB\u1FE8\u1FE9\u1FEA\u1FEB\u1FEC\u1FF8\u1FF9\u1FFA\u1FFB\u2102\u2107\u210B\u210C\u210D\u2110\u2111\u2112\u2115\u2119\u211A\u211B\u211C\u211D\u2124\u2126\u2128\u212A\u212B\u212C\u212D\u2130\u2131\u2132\u2133\u213E\u213F\u2145\u2183\u2C00\u2C01\u2C02\u2C03\u2C04\u2C05\u2C06\u2C07\u2C08\u2C09\u2C0A\u2C0B\u2C0C\u2C0D\u2C0E\u2C0F\u2C10\u2C11\u2C12\u2C13\u2C14\u2C15\u2C16\u2C17\u2C18\u2C19\u2C1A\u2C1B\u2C1C\u2C1D\u2C1E\u2C1F\u2C20\u2C21\u2C22\u2C23\u2C24\u2C25\u2C26\u2C27\u2C28\u2C29\u2C2A\u2C2B\u2C2C\u2C2D\u2C2E\u2C60\u2C62\u2C63\u2C64\u2C67\u2C69\u2C6B\u2C6D\u2C6E\u2C6F\u2C72\u2C75\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE
 2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21\uFF22\uFF23\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A]
-
-// Mark, Spacing Combining
-Mc = [\u0903\u093E\u093F\u0940\u0949\u094A\u094B\u094C\u0982\u0983\u09BE\u09BF\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E\u0A3F\u0A40\u0A83\u0ABE\u0ABF\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6\u0BC7\u0BC8\u0BCA\u0BCB\u0BCC\u0BD7\u0C01\u0C02\u0C03\u0C41\u0C42\u0C43\u0C44\u0C82\u0C83\u0CBE\u0CC0\u0CC1\u0CC2\u0CC3\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E\u0D3F\u0D40\u0D46\u0D47\u0D48\u0D4A\u0D4B\u0D4C\u0D57\u0D82\u0D83\u0DCF\u0DD0\u0DD1\u0DD8\u0DD9\u0DDA\u0DDB\u0DDC\u0DDD\u0DDE\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062\u1063\u1064\u1067\u1068\u1069\u106A\u106B\u106C\u106D\u1083\u1084\u1087\u1088\u1089\u108A\u108B\u108C\u108F\u17B6\u17BE\u17BF\u17C0\u17C1\u17C2\u17C3\u17C4\u17C5\u17C7\u17C8\u1923\u1924\u1925\u1926\u1929\u192A\u192B\u1930\u1931\u1933\u1934\u1935\u1936\u1937\u1938\u19B0\u19B1\u19B2\u19B3\u19B4\u19B5\u19B6\u19B7\u19B8\u19B9\u19BA\u19BB\
 u19BC\u19BD\u19BE\u19BF\u19C0\u19C8\u19C9\u1A19\u1A1A\u1A1B\u1B04\u1B35\u1B3B\u1B3D\u1B3E\u1B3F\u1B40\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1C24\u1C25\u1C26\u1C27\u1C28\u1C29\u1C2A\u1C2B\u1C34\u1C35\uA823\uA824\uA827\uA880\uA881\uA8B4\uA8B5\uA8B6\uA8B7\uA8B8\uA8B9\uA8BA\uA8BB\uA8BC\uA8BD\uA8BE\uA8BF\uA8C0\uA8C1\uA8C2\uA8C3\uA952\uA953\uAA2F\uAA30\uAA33\uAA34\uAA4D]
-
-// Mark, Nonspacing
-Mn = [\u0300\u0301\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u0309\u030A\u030B\u030C\u030D\u030E\u030F\u0310\u0311\u0312\u0313\u0314\u0315\u0316\u0317\u0318\u0319\u031A\u031B\u031C\u031D\u031E\u031F\u0320\u0321\u0322\u0323\u0324\u0325\u0326\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F\u0330\u0331\u0332\u0333\u0334\u0335\u0336\u0337\u0338\u0339\u033A\u033B\u033C\u033D\u033E\u033F\u0340\u0341\u0342\u0343\u0344\u0345\u0346\u0347\u0348\u0349\u034A\u034B\u034C\u034D\u034E\u034F\u0350\u0351\u0352\u0353\u0354\u0355\u0356\u0357\u0358\u0359\u035A\u035B\u035C\u035D\u035E\u035F\u0360\u0361\u0362\u0363\u0364\u0365\u0366\u0367\u0368\u0369\u036A\u036B\u036C\u036D\u036E\u036F\u0483\u0484\u0485\u0486\u0487\u0591\u0592\u0593\u0594\u0595\u0596\u0597\u0598\u0599\u059A\u059B\u059C\u059D\u059E\u059F\u05A0\u05A1\u05A2\u05A3\u05A4\u05A5\u05A6\u05A7\u05A8\u05A9\u05AA\u05AB\u05AC\u05AD\u05AE\u05AF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BF\u05C1\u05C2\
 u05C4\u05C5\u05C7\u0610\u0611\u0612\u0613\u0614\u0615\u0616\u0617\u0618\u0619\u061A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\u0653\u0654\u0655\u0656\u0657\u0658\u0659\u065A\u065B\u065C\u065D\u065E\u0670\u06D6\u06D7\u06D8\u06D9\u06DA\u06DB\u06DC\u06DF\u06E0\u06E1\u06E2\u06E3\u06E4\u06E7\u06E8\u06EA\u06EB\u06EC\u06ED\u0711\u0730\u0731\u0732\u0733\u0734\u0735\u0736\u0737\u0738\u0739\u073A\u073B\u073C\u073D\u073E\u073F\u0740\u0741\u0742\u0743\u0744\u0745\u0746\u0747\u0748\u0749\u074A\u07A6\u07A7\u07A8\u07A9\u07AA\u07AB\u07AC\u07AD\u07AE\u07AF\u07B0\u07EB\u07EC\u07ED\u07EE\u07EF\u07F0\u07F1\u07F2\u07F3\u0901\u0902\u093C\u0941\u0942\u0943\u0944\u0945\u0946\u0947\u0948\u094D\u0951\u0952\u0953\u0954\u0962\u0963\u0981\u09BC\u09C1\u09C2\u09C3\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1\u0AC2\u0AC3\u0AC4\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41\u0B42\u0B43\u0B44\u0B4D\u0B56\u0B62\u
 0B63\u0B82\u0BC0\u0BCD\u0C3E\u0C3F\u0C40\u0C46\u0C47\u0C48\u0C4A\u0C4B\u0C4C\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41\u0D42\u0D43\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2\u0DD3\u0DD4\u0DD6\u0E31\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0EB1\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBB\u0EBC\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71\u0F72\u0F73\u0F74\u0F75\u0F76\u0F77\u0F78\u0F79\u0F7A\u0F7B\u0F7C\u0F7D\u0F7E\u0F80\u0F81\u0F82\u0F83\u0F84\u0F86\u0F87\u0F90\u0F91\u0F92\u0F93\u0F94\u0F95\u0F96\u0F97\u0F99\u0F9A\u0F9B\u0F9C\u0F9D\u0F9E\u0F9F\u0FA0\u0FA1\u0FA2\u0FA3\u0FA4\u0FA5\u0FA6\u0FA7\u0FA8\u0FA9\u0FAA\u0FAB\u0FAC\u0FAD\u0FAE\u0FAF\u0FB0\u0FB1\u0FB2\u0FB3\u0FB4\u0FB5\u0FB6\u0FB7\u0FB8\u0FB9\u0FBA\u0FBB\u0FBC\u0FC6\u102D\u102E\u102F\u1030\u1032\u1033\u1034\u1035\u1036\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E\u105F\u1060\u1071\u1072\u1073\u1074\u1082\u1085\u1086\u108D\u1
 35F\u1712\u1713\u1714\u1732\u1733\u1734\u1752\u1753\u1772\u1773\u17B7\u17B8\u17B9\u17BA\u17BB\u17BC\u17BD\u17C6\u17C9\u17CA\u17CB\u17CC\u17CD\u17CE\u17CF\u17D0\u17D1\u17D2\u17D3\u17DD\u180B\u180C\u180D\u18A9\u1920\u1921\u1922\u1927\u1928\u1932\u1939\u193A\u193B\u1A17\u1A18\u1B00\u1B01\u1B02\u1B03\u1B34\u1B36\u1B37\u1B38\u1B39\u1B3A\u1B3C\u1B42\u1B6B\u1B6C\u1B6D\u1B6E\u1B6F\u1B70\u1B71\u1B72\u1B73\u1B80\u1B81\u1BA2\u1BA3\u1BA4\u1BA5\u1BA8\u1BA9\u1C2C\u1C2D\u1C2E\u1C2F\u1C30\u1C31\u1C32\u1C33\u1C36\u1C37\u1DC0\u1DC1\u1DC2\u1DC3\u1DC4\u1DC5\u1DC6\u1DC7\u1DC8\u1DC9\u1DCA\u1DCB\u1DCC\u1DCD\u1DCE\u1DCF\u1DD0\u1DD1\u1DD2\u1DD3\u1DD4\u1DD5\u1DD6\u1DD7\u1DD8\u1DD9\u1DDA\u1DDB\u1DDC\u1DDD\u1DDE\u1DDF\u1DE0\u1DE1\u1DE2\u1DE3\u1DE4\u1DE5\u1DE6\u1DFE\u1DFF\u20D0\u20D1\u20D2\u20D3\u20D4\u20D5\u20D6\u20D7\u20D8\u20D9\u20DA\u20DB\u20DC\u20E1\u20E5\u20E6\u20E7\u20E8\u20E9\u20EA\u20EB\u20EC\u20ED\u20EE\u20EF\u20F0\u2DE0\u2DE1\u2DE2\u2DE3\u2DE4\u2DE5\u2DE6\u2DE7\u2DE8\u2DE9\u2DEA\u2DEB\u2DEC\u2DED\u2D
 EE\u2DEF\u2DF0\u2DF1\u2DF2\u2DF3\u2DF4\u2DF5\u2DF6\u2DF7\u2DF8\u2DF9\u2DFA\u2DFB\u2DFC\u2DFD\u2DFE\u2DFF\u302A\u302B\u302C\u302D\u302E\u302F\u3099\u309A\uA66F\uA67C\uA67D\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA926\uA927\uA928\uA929\uA92A\uA92B\uA92C\uA92D\uA947\uA948\uA949\uA94A\uA94B\uA94C\uA94D\uA94E\uA94F\uA950\uA951\uAA29\uAA2A\uAA2B\uAA2C\uAA2D\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uFB1E\uFE00\uFE01\uFE02\uFE03\uFE04\uFE05\uFE06\uFE07\uFE08\uFE09\uFE0A\uFE0B\uFE0C\uFE0D\uFE0E\uFE0F\uFE20\uFE21\uFE22\uFE23\uFE24\uFE25\uFE26]
-
-// Number, Decimal Digit
-Nd = [\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u07C0\u07C1\u07C2\u07C3\u07C4\u07C5\u07C6\u07C7\u07C8\u07C9\u0966\u0967\u0968\u0969\u096A\u096B\u096C\u096D\u096E\u096F\u09E6\u09E7\u09E8\u09E9\u09EA\u09EB\u09EC\u09ED\u09EE\u09EF\u0A66\u0A67\u0A68\u0A69\u0A6A\u0A6B\u0A6C\u0A6D\u0A6E\u0A6F\u0AE6\u0AE7\u0AE8\u0AE9\u0AEA\u0AEB\u0AEC\u0AED\u0AEE\u0AEF\u0B66\u0B67\u0B68\u0B69\u0B6A\u0B6B\u0B6C\u0B6D\u0B6E\u0B6F\u0BE6\u0BE7\u0BE8\u0BE9\u0BEA\u0BEB\u0BEC\u0BED\u0BEE\u0BEF\u0C66\u0C67\u0C68\u0C69\u0C6A\u0C6B\u0C6C\u0C6D\u0C6E\u0C6F\u0CE6\u0CE7\u0CE8\u0CE9\u0CEA\u0CEB\u0CEC\u0CED\u0CEE\u0CEF\u0D66\u0D67\u0D68\u0D69\u0D6A\u0D6B\u0D6C\u0D6D\u0D6E\u0D6F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\u0F20\u0F21\u0F22\u0F23\u0F24\u0F25\u0F26\u0F27\u0F28\u0F29\u1040\u1041\u1042\u1043\u1044\
 u1045\u1046\u1047\u1048\u1049\u1090\u1091\u1092\u1093\u1094\u1095\u1096\u1097\u1098\u1099\u17E0\u17E1\u17E2\u17E3\u17E4\u17E5\u17E6\u17E7\u17E8\u17E9\u1810\u1811\u1812\u1813\u1814\u1815\u1816\u1817\u1818\u1819\u1946\u1947\u1948\u1949\u194A\u194B\u194C\u194D\u194E\u194F\u19D0\u19D1\u19D2\u19D3\u19D4\u19D5\u19D6\u19D7\u19D8\u19D9\u1B50\u1B51\u1B52\u1B53\u1B54\u1B55\u1B56\u1B57\u1B58\u1B59\u1BB0\u1BB1\u1BB2\u1BB3\u1BB4\u1BB5\u1BB6\u1BB7\u1BB8\u1BB9\u1C40\u1C41\u1C42\u1C43\u1C44\u1C45\u1C46\u1C47\u1C48\u1C49\u1C50\u1C51\u1C52\u1C53\u1C54\u1C55\u1C56\u1C57\u1C58\u1C59\uA620\uA621\uA622\uA623\uA624\uA625\uA626\uA627\uA628\uA629\uA8D0\uA8D1\uA8D2\uA8D3\uA8D4\uA8D5\uA8D6\uA8D7\uA8D8\uA8D9\uA900\uA901\uA902\uA903\uA904\uA905\uA906\uA907\uA908\uA909\uAA50\uAA51\uAA52\uAA53\uAA54\uAA55\uAA56\uAA57\uAA58\uAA59\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19]
-
-// Number, Letter
-Nl = [\u16EE\u16EF\u16F0\u2160\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168\u2169\u216A\u216B\u216C\u216D\u216E\u216F\u2170\u2171\u2172\u2173\u2174\u2175\u2176\u2177\u2178\u2179\u217A\u217B\u217C\u217D\u217E\u217F\u2180\u2181\u2182\u2185\u2186\u2187\u2188\u3007\u3021\u3022\u3023\u3024\u3025\u3026\u3027\u3028\u3029\u3038\u3039\u303A]
-
-// Punctuation, Connector
-Pc = [\u005F\u203F\u2040\u2054\uFE33\uFE34\uFE4D\uFE4E\uFE4F\uFF3F]
-
-// Separator, Space
-Zs = [\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]
-
-/* Automatic Semicolon Insertion */
-
-EOS
-  = __ ";"
-  / _ LineTerminatorSequence
-  / _ &"}"
-  / __ EOF
-
-EOSNoLineTerminator
-  = _ ";"
-  / _ LineTerminatorSequence
-  / _ &"}"
-  / _ EOF
-
-EOF
-  = !.
-
-/* Whitespace */
-
-_
-  = (WhiteSpace / MultiLineCommentNoLineTerminator / SingleLineComment)*
-
-__
-  = (WhiteSpace / LineTerminatorSequence / Comment)*
-
-/* ===== A.2 Number Conversions ===== */
-
-/*
- * Rules from this section are either unused or merged into previous section of
- * the grammar.
- */
-
-/* ===== A.3 Expressions ===== */
-
-PrimaryExpression
-  = ThisToken       { return { type: "This" }; }
-  / name:Identifier { return { type: "Variable", name: name }; }
-  / Literal
-  / ArrayLiteral
-  / ObjectLiteral
-  / "(" __ expression:Expression __ ")" { return expression; }
-
-ArrayLiteral
-  = "[" __ elements:ElementList? __ (Elision __)? "]" {
-      return {
-        type:     "ArrayLiteral",
-        elements: elements !== "" ? elements : []
-      };
-    }
-
-ElementList
-  = (Elision __)?
-    head:AssignmentExpression
-    tail:(__ "," __ Elision? __ AssignmentExpression)* {
-      var result = [head];
-      for (var i = 0; i < tail.length; i++) {
-        result.push(tail[i][5]);
-      }
-      return result;
-    }
-
-Elision
-  = "," (__ ",")*
-
-ObjectLiteral
-  = "{" __ properties:(PropertyNameAndValueList __ ("," __)?)? "}" {
-      return {
-        type:       "ObjectLiteral",
-        properties: properties !== "" ? properties[0] : []
-      };
-    }
-
-PropertyNameAndValueList
-  = head:PropertyAssignment tail:(__ "," __ PropertyAssignment)* {
-      var result = [head];
-      for (var i = 0; i < tail.length; i++) {
-        result.push(tail[i][3]);
-      }
-      return result;
-    }
-
-PropertyAssignment
-  = name:PropertyName __ ":" __ value:AssignmentExpression {
-      return {
-        type:  "PropertyAssignment",
-        name:  name,
-        value: value
-      };
-    }
-  / GetToken __ name:PropertyName __
-    "(" __ ")" __
-    "{" __ body:FunctionBody __ "}" {
-      return {
-        type: "GetterDefinition",
-        name: name,
-        body: body
-      };
-    }
-  / SetToken __ name:PropertyName __
-    "(" __ param:PropertySetParameterList __ ")" __
-    "{" __ body:FunctionBody __ "}" {
-      return {
-        type:  "SetterDefinition",
-        name:  name,
-        param: param,
-        body:  body
-      };
-    }
-
-PropertyName
-  = IdentifierName
-  / StringLiteral
-  / NumericLiteral
-
-PropertySetParameterList
-  = Identifier
-
-MemberExpression
-  = base:(
-        PrimaryExpression
-      / FunctionExpression
-      / NewToken __ constructor:MemberExpression __ arguments:Arguments {
-          return {
-            type:        "NewOperator",
-            constructor: constructor,
-            arguments:   arguments
-          };
-        }
-    )
-    accessors:(
-        __ "[" __ name:Expression __ "]" { return name; }
-      / __ "." __ name:IdentifierName    { return name; }
-    )* {
-      var result = base;
-      for (var i = 0; i < accessors.length; i++) {
-        result = {
-          type: "PropertyAccess",
-          base: result,
-          name: accessors[i]
-        };
-      }
-      return result;
-    }
-
-NewExpression
-  = MemberExpression
-  / NewToken __ constructor:NewExpression {
-      return {
-        type:        "NewOperator",
-        constructor: constructor,
-        arguments:   []
-      };
-    }
-
-CallExpression
-  = base:(
-      name:MemberExpression __ arguments:Arguments {
-        return {
-          type:      "FunctionCall",
-          name:      name,
-          arguments: arguments
-        };
-      }
-    )
-    argumentsOrAccessors:(
-        __ arguments:Arguments {
-          return {
-            type:      "FunctionCallArguments",
-            arguments: arguments
-          };
-        }
-      / __ "[" __ name:Expression __ "]" {
-          return {
-            type: "PropertyAccessProperty",
-            name: name
-          };
-        }
-      / __ "." __ name:IdentifierName {
-          return {
-            type: "PropertyAccessProperty",
-            name: name
-          };
-        }
-    )* {
-      var result = base;
-      for (var i = 0; i < argumentsOrAccessors.length; i++) {
-        switch (argumentsOrAccessors[i].type) {
-          case "FunctionCallArguments":
-            result = {
-              type:      "FuctionCall",
-              name:      result,
-              arguments: argumentsOrAccessors[i].arguments
-            };
-            break;
-          case "PropertyAccessProperty":
-            result = {
-              type: "PropertyAccess",
-              base: result,
-              name: argumentsOrAccessors[i].name
-            };
-            break;
-          default:
-            throw new Error(
-              "Invalid expression type: " + argumentsOrAccessors[i].type
-            );
-        }
-      }
-      return result;
-    }
-
-Arguments
-  = "(" __ arguments:ArgumentList? __ ")" {
-    return arguments !== "" ? arguments : [];
-  }
-
-ArgumentList
-  = head:AssignmentExpression tail:(__ "," __ AssignmentExpression)* {
-    var result = [head];
-    for (var i = 0; i < tail.length; i++) {
-      result.push(tail[i][3]);
-    }
-    return result;
-  }
-
-LeftHandSideExpression
-  = CallExpression
-  / NewExpression
-
-PostfixExpression
-  = expression:LeftHandSideExpression _ operator:PostfixOperator {
-      return {
-        type:       "PostfixExpression",
-        operator:   operator,
-        expression: expression
-      };
-    }
-  / LeftHandSideExpression
-
-PostfixOperator
-  = "++"
-  / "--"
-
-UnaryExpression
-  = PostfixExpression
-  / operator:UnaryOperator __ expression:UnaryExpression {
-      return {
-        type:       "UnaryExpression",
-        operator:   operator,
-        expression: expression
-      };
-    }
-
-UnaryOperator
-  = DeleteToken
-  / VoidToken
-  / TypeofToken
-  / "++"
-  / "--"
-  / "+"
-  / "-"
-  / "~"
-  /  "!"
-
-MultiplicativeExpression
-  = head:UnaryExpression
-    tail:(__ MultiplicativeOperator __ UnaryExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-MultiplicativeOperator
-  = operator:("*" / "/" / "%") !"=" { return operator; }
-
-AdditiveExpression
-  = head:MultiplicativeExpression
-    tail:(__ AdditiveOperator __ MultiplicativeExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-AdditiveOperator
-  = "+" !("+" / "=") { return "+"; }
-  / "-" !("-" / "=") { return "-"; }
-
-ShiftExpression
-  = head:AdditiveExpression
-    tail:(__ ShiftOperator __ AdditiveExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-ShiftOperator
-  = "<<"
-  / ">>>"
-  / ">>"
-
-RelationalExpression
-  = head:ShiftExpression
-    tail:(__ RelationalOperator __ ShiftExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-RelationalOperator
-  = "<="
-  / ">="
-  / "<"
-  / ">"
-  / InstanceofToken
-  / InToken
-
-RelationalExpressionNoIn
-  = head:ShiftExpression
-    tail:(__ RelationalOperatorNoIn __ ShiftExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-RelationalOperatorNoIn
-  = "<="
-  / ">="
-  / "<"
-  / ">"
-  / InstanceofToken
-
-EqualityExpression
-  = head:RelationalExpression
-    tail:(__ EqualityOperator __ RelationalExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-EqualityExpressionNoIn
-  = head:RelationalExpressionNoIn
-    tail:(__ EqualityOperator __ RelationalExpressionNoIn)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-EqualityOperator
-  = "==="
-  / "!=="
-  / "=="
-  / "!="
-
-BitwiseANDExpression
-  = head:EqualityExpression
-    tail:(__ BitwiseANDOperator __ EqualityExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-BitwiseANDExpressionNoIn
-  = head:EqualityExpressionNoIn
-    tail:(__ BitwiseANDOperator __ EqualityExpressionNoIn)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-BitwiseANDOperator
-  = "&" !("&" / "=") { return "&"; }
-
-BitwiseXORExpression
-  = head:BitwiseANDExpression
-    tail:(__ BitwiseXOROperator __ BitwiseANDExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-BitwiseXORExpressionNoIn
-  = head:BitwiseANDExpressionNoIn
-    tail:(__ BitwiseXOROperator __ BitwiseANDExpressionNoIn)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-BitwiseXOROperator
-  = "^" !("^" / "=") { return "^"; }
-
-BitwiseORExpression
-  = head:BitwiseXORExpression
-    tail:(__ BitwiseOROperator __ BitwiseXORExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-BitwiseORExpressionNoIn
-  = head:BitwiseXORExpressionNoIn
-    tail:(__ BitwiseOROperator __ BitwiseXORExpressionNoIn)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-BitwiseOROperator
-  = "|" !("|" / "=") { return "|"; }
-
-LogicalANDExpression
-  = head:BitwiseORExpression
-    tail:(__ LogicalANDOperator __ BitwiseORExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-LogicalANDExpressionNoIn
-  = head:BitwiseORExpressionNoIn
-    tail:(__ LogicalANDOperator __ BitwiseORExpressionNoIn)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-LogicalANDOperator
-  = "&&" !"=" { return "&&"; }
-
-LogicalORExpression
-  = head:LogicalANDExpression
-    tail:(__ LogicalOROperator __ LogicalANDExpression)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-LogicalORExpressionNoIn
-  = head:LogicalANDExpressionNoIn
-    tail:(__ LogicalOROperator __ LogicalANDExpressionNoIn)* {
-      var result = head;
-      for (var i = 0; i < tail.length; i++) {
-        result = {
-          type:     "BinaryExpression",
-          operator: tail[i][1],
-          left:     result,
-          right:    tail[i][3]
-        };
-      }
-      return result;
-    }
-
-LogicalOROperator
-  = "||" !"=" { return "||"; }
-
-ConditionalExpression
-  = condition:LogicalORExpression __
-    "?" __ trueExpression:AssignmentExpression __
-    ":" __ falseExpression:AssignmentExpression {
-      return {
-        type:            "ConditionalExpression",
-        condition:       condition,
-        trueExpression:  trueExpression,
-        falseExpression: falseExpression
-      };
-    }
-  / LogicalORExpression
-
-ConditionalExpressionNoIn
-  = condition:LogicalORExpressionNoIn __
-    "?" __ trueExpression:AssignmentExpressionNoIn __
-    ":" __ falseExpression:AssignmentExpressionNoIn {
-      return {
-        type:            "ConditionalExpression",
-        condition:       condition,
-        trueExpression:  trueExpression,
-        falseExpression: falseExpression
-      };
-    }
-  / LogicalORExpressionNoIn
-
-AssignmentExpression
-  = left:LeftHandSideExpression __
-    operator:AssignmentOperator __
-    right:AssignmentExpression {
-      return {
-        type:     "AssignmentExpression",
-        operator: 

<TRUNCATED>

[11/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/test-parseFile.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-parseFile.js b/blackberry10/node_modules/plugman/node_modules/plist/tests/test-parseFile.js
deleted file mode 100644
index 3815f73..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-parseFile.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var path = require('path')
-  , plist = require('../');
-
-exports.testParseFileSmallItunesXML = function(test) {
-  var file = path.join(__dirname, 'iTunes-small.xml');
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-
-    test.ifError(err);
-    test.equal(dict['Application Version'], '9.0.3');
-    test.equal(dict['Library Persistent ID'], '6F81D37F95101437');
-
-    test.done();
-  });
-}
-
-exports.testParseFile = function(test) {
-  var file = path.join(__dirname, 'sample2.plist');
-
-  plist.parseFile(file, function(err, dicts) {
-    var dict = dicts[0];
-    test.ifError(err);
-
-    test.equal(dict['PopupMenu'][2]['Key'], "\n        \n        #import &lt;Cocoa/Cocoa.h&gt;\n\n#import &lt;MacRuby/MacRuby.h&gt;\n\nint main(int argc, char *argv[])\n{\n  return macruby_main(\"rb_main.rb\", argc, argv);\n}\n\n");
-  
-    test.done();
-  });
-}
-
-exports.testParseFileSync = function(test) {
-  var file = path.join(__dirname, 'sample2.plist');
-  test.doesNotThrow(function(){
-    var dict = plist.parseFileSync(file);
-    test.equal(dict['PopupMenu'][2]['Key'], "\n        \n        #import &lt;Cocoa/Cocoa.h&gt;\n\n#import &lt;MacRuby/MacRuby.h&gt;\n\nint main(int argc, char *argv[])\n{\n  return macruby_main(\"rb_main.rb\", argc, argv);\n}\n\n");
-  });
-  test.done();
-}
-
-exports.testParseFileAirplayXML = function(test) {
-  var file = path.join(__dirname, 'airplay.xml');
-
-  plist.parseFile(file, function(err, dicts) {
-    var dict;
-    test.ifError(err);
-    dict = dicts[0];
-    
-    test.equal(dict['duration'], 5555.0495000000001);
-    test.equal(dict['position'], 4.6269989039999997);
-
-    test.done();
-  });
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/test-parseString.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-parseString.js b/blackberry10/node_modules/plugman/node_modules/plist/tests/test-parseString.js
deleted file mode 100644
index 9aebd03..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/test-parseString.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var plist = require('../');
-
-exports.testString = function(test) {
-  plist.parseString('<string>Hello World!</string>', function(err, res) {
-    test.ifError(err);
-    test.equal(res, 'Hello World!');
-    test.done();
-  });
-}
-
-exports.testParseStringSync = function(test) {
-  test.doesNotThrow(function(){
-    var res = plist.parseStringSync('<plist><dict><key>test</key><integer>101</integer></dict></plist>');
-    test.equal(Object.keys(res)[0], 'test');
-    test.equal(res.test, 101);
-    test.done();
-  });
-}
-
-exports.testParseStringSyncFailsOnInvalidXML = function(test) {
-  test.throws(function(){
-    var res = plist.parseStringSync('<string>Hello World!</string>');
-  });
-  test.done();
-}
-
-exports.testDict = function(test) {
-  plist.parseString('<plist><dict><key>test</key><integer>101</integer></dict></plist>', function(err, res) {
-    test.ifError(err);
-  
-    test.ok(Array.isArray(res));
-    test.equal(res.length, 1);
-    test.equal(Object.keys(res[0])[0], 'test');
-    test.equal(res[0].test, 101);
-    test.done();
-  });
-}
-
-exports.testCDATA = function(test) {
-  plist.parseString('<string><![CDATA[Hello World!&lt;M]]></string>', function(err, res) {
-    test.ifError(err);
-    test.equal(res, 'Hello World!&lt;M');
-    test.done();
-  });
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/utf8data.xml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/utf8data.xml b/blackberry10/node_modules/plugman/node_modules/plist/tests/utf8data.xml
deleted file mode 100644
index a14b119..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/utf8data.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-	<dict>
-		<key>Smart Info</key>
-		<data>4pyTIMOgIGxhIG1vZGU=</data>
-		<key>Newlines</key>
-		<data>4pyTIMOgIGxhIG1vZGU=</data>
-	</dict>
-</plist>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/.npmignore b/blackberry10/node_modules/plugman/node_modules/semver/.npmignore
deleted file mode 100644
index 7300fbc..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-# nada

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/LICENSE b/blackberry10/node_modules/plugman/node_modules/semver/LICENSE
deleted file mode 100644
index 0c44ae7..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/Makefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/Makefile b/blackberry10/node_modules/plugman/node_modules/semver/Makefile
deleted file mode 100644
index e171f70..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-files =  semver.browser.js \
-         semver.min.js \
-				 semver.browser.js.gz \
-				 semver.min.js.gz
-
-all: $(files)
-
-clean:
-	rm $(files)
-
-semver.browser.js: head.js semver.js foot.js
-	( cat head.js; \
-		cat semver.js | \
-			egrep -v '^ *\/\* nomin \*\/' | \
-			perl -pi -e 's/debug\([^\)]+\)//g'; \
-		cat foot.js ) > semver.browser.js
-
-semver.min.js: semver.browser.js
-	uglifyjs -m <semver.browser.js >semver.min.js
-
-%.gz: %
-	gzip --stdout -9 <$< >$@
-
-.PHONY: all clean

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/README.md b/blackberry10/node_modules/plugman/node_modules/semver/README.md
deleted file mode 100644
index 2c499a9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/README.md
+++ /dev/null
@@ -1,111 +0,0 @@
-semver(1) -- The semantic versioner for npm
-===========================================
-
-## Usage
-
-    $ npm install semver
-
-    semver.valid('1.2.3') // '1.2.3'
-    semver.valid('a.b.c') // null
-    semver.clean('  =v1.2.3   ') // '1.2.3'
-    semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true
-    semver.gt('1.2.3', '9.8.7') // false
-    semver.lt('1.2.3', '9.8.7') // true
-
-As a command-line utility:
-
-    $ semver -h
-
-    Usage: semver <version> [<version> [...]] [-r <range> | -i <inc> | -d <dec>]
-    Test if version(s) satisfy the supplied range(s), and sort them.
-
-    Multiple versions or ranges may be supplied, unless increment
-    or decrement options are specified.  In that case, only a single
-    version may be used, and it is incremented by the specified level
-
-    Program exits successfully if any valid version satisfies
-    all supplied ranges, and prints all satisfying versions.
-
-    If no versions are valid, or ranges are not satisfied,
-    then exits failure.
-
-    Versions are printed in ascending order, so supplying
-    multiple versions to the utility will just sort them.
-
-## Versions
-
-A "version" is described by the v2.0.0 specification found at
-<http://semver.org/>.
-
-A leading `"="` or `"v"` character is stripped off and ignored.
-
-## Ranges
-
-The following range styles are supported:
-
-* `1.2.3` A specific version.  When nothing else will do.  Note that
-  build metadata is still ignored, so `1.2.3+build2012` will satisfy
-  this range.
-* `>1.2.3` Greater than a specific version.
-* `<1.2.3` Less than a specific version.  If there is no prerelease
-  tag on the version range, then no prerelease version will be allowed
-  either, even though these are technically "less than".
-* `>=1.2.3` Greater than or equal to.  Note that prerelease versions
-  are NOT equal to their "normal" equivalents, so `1.2.3-beta` will
-  not satisfy this range, but `2.3.0-beta` will.
-* `<=1.2.3` Less than or equal to.  In this case, prerelease versions
-  ARE allowed, so `1.2.3-beta` would satisfy.
-* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`
-* `~1.2.3` := `>=1.2.3-0 <1.3.0-0`  "Reasonably close to 1.2.3".  When
-  using tilde operators, prerelease versions are supported as well,
-  but a prerelease of the next significant digit will NOT be
-  satisfactory, so `1.3.0-beta` will not satisfy `~1.2.3`.
-* `~1.2` := `>=1.2.0-0 <1.3.0-0` "Any version starting with 1.2"
-* `1.2.x` := `>=1.2.0-0 <1.3.0-0` "Any version starting with 1.2"
-* `~1` := `>=1.0.0-0 <2.0.0-0` "Any version starting with 1"
-* `1.x` := `>=1.0.0-0 <2.0.0-0` "Any version starting with 1"
-
-
-Ranges can be joined with either a space (which implies "and") or a
-`||` (which implies "or").
-
-## Functions
-
-All methods and classes take a final `loose` boolean argument that, if
-true, will be more forgiving about not-quite-valid semver strings.
-The resulting output will always be 100% strict, of course.
-
-Strict-mode Comparators and Ranges will be strict about the SemVer
-strings that they parse.
-
-* valid(v): Return the parsed version, or null if it's not valid.
-* inc(v, release): Return the version incremented by the release type
-  (major, minor, patch, or prerelease), or null if it's not valid.
-
-### Comparison
-
-* gt(v1, v2): `v1 > v2`
-* gte(v1, v2): `v1 >= v2`
-* lt(v1, v2): `v1 < v2`
-* lte(v1, v2): `v1 <= v2`
-* eq(v1, v2): `v1 == v2` This is true if they're logically equivalent,
-  even if they're not the exact same string.  You already know how to
-  compare strings.
-* neq(v1, v2): `v1 != v2` The opposite of eq.
-* cmp(v1, comparator, v2): Pass in a comparison string, and it'll call
-  the corresponding function above.  `"==="` and `"!=="` do simple
-  string comparison, but are included for completeness.  Throws if an
-  invalid comparison string is provided.
-* compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if
-  v2 is greater.  Sorts in ascending order if passed to Array.sort().
-* rcompare(v1, v2): The reverse of compare.  Sorts an array of versions
-  in descending order when passed to Array.sort().
-
-
-### Ranges
-
-* validRange(range): Return the valid range or null if it's not valid
-* satisfies(version, range): Return true if the version satisfies the
-  range.
-* maxSatisfying(versions, range): Return the highest version in the list
-  that satisfies the range, or null if none of them do.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/bin/semver
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/bin/semver b/blackberry10/node_modules/plugman/node_modules/semver/bin/semver
deleted file mode 100755
index a6390b8..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/bin/semver
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env node
-// Standalone semver comparison program.
-// Exits successfully and prints matching version(s) if
-// any supplied version is valid and passes all tests.
-
-var argv = process.argv.slice(2)
-  , versions = []
-  , range = []
-  , gt = []
-  , lt = []
-  , eq = []
-  , inc = null
-  , version = require("../package.json").version
-  , loose = false
-  , semver = require("../semver")
-
-main()
-
-function main () {
-  if (!argv.length) return help()
-  while (argv.length) {
-    var a = argv.shift()
-    var i = a.indexOf('=')
-    if (i !== -1) {
-      a = a.slice(0, i)
-      argv.unshift(a.slice(i + 1))
-    }
-    switch (a) {
-      case "-l": case "--loose":
-        loose = true
-        break
-      case "-v": case "--version":
-        versions.push(argv.shift())
-        break
-      case "-i": case "--inc": case "--increment":
-        switch (argv[0]) {
-          case "major": case "minor": case "patch": case "prerelease":
-            inc = argv.shift()
-            break
-          default:
-            inc = "patch"
-            break
-        }
-        break
-      case "-r": case "--range":
-        range.push(argv.shift())
-        break
-      case "-h": case "--help": case "-?":
-        return help()
-      default:
-        versions.push(a)
-        break
-    }
-  }
-
-  versions = versions.filter(function (v) {
-    return semver.valid(v, loose)
-  })
-  if (!versions.length) return fail()
-  if (inc && (versions.length !== 1 || range.length))
-    return failInc()
-
-  for (var i = 0, l = range.length; i < l ; i ++) {
-    versions = versions.filter(function (v) {
-      return semver.satisfies(v, range[i], loose)
-    })
-    if (!versions.length) return fail()
-  }
-  return success(versions)
-}
-
-function failInc () {
-  console.error("--inc can only be used on a single version with no range")
-  fail()
-}
-
-function fail () { process.exit(1) }
-
-function success () {
-  versions.sort(function (a, b) {
-    return semver.compare(a, b, loose)
-  }).map(function (v) {
-    return semver.clean(v, loose)
-  }).map(function (v) {
-    return inc ? semver.inc(v, inc, loose) : v
-  }).forEach(function (v,i,_) { console.log(v) })
-}
-
-function help () {
-  console.log(["SemVer " + version
-              ,""
-              ,"A JavaScript implementation of the http://semver.org/ specification"
-              ,"Copyright Isaac Z. Schlueter"
-              ,""
-              ,"Usage: semver [options] <version> [<version> [...]]"
-              ,"Prints valid versions sorted by SemVer precedence"
-              ,""
-              ,"Options:"
-              ,"-r --range <range>"
-              ,"        Print versions that match the specified range."
-              ,""
-              ,"-i --increment [<level>]"
-              ,"        Increment a version by the specified level.  Level can"
-              ,"        be one of: major, minor, patch, or prerelease"
-              ,"        Default level is 'patch'."
-              ,"        Only one version may be specified."
-              ,""
-              ,"-l --loose"
-              ,"        Interpret versions and ranges loosely"
-              ,""
-              ,"Program exits successfully if any valid version satisfies"
-              ,"all supplied ranges, and prints all satisfying versions."
-              ,""
-              ,"If no satisfying versions are found, then exits failure."
-              ,""
-              ,"Versions are printed in ascending order, so supplying"
-              ,"multiple versions to the utility will just sort them."
-              ].join("\n"))
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/foot.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/foot.js b/blackberry10/node_modules/plugman/node_modules/semver/foot.js
deleted file mode 100644
index 8f83c20..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/foot.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-})(
-  typeof exports === 'object' ? exports :
-  typeof define === 'function' && define.amd ? {} :
-  semver = {}
-);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/head.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/head.js b/blackberry10/node_modules/plugman/node_modules/semver/head.js
deleted file mode 100644
index 6536865..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/head.js
+++ /dev/null
@@ -1,2 +0,0 @@
-;(function(exports) {
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/package.json b/blackberry10/node_modules/plugman/node_modules/semver/package.json
deleted file mode 100644
index eaea6bf..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
-  "name": "semver",
-  "version": "2.0.11",
-  "description": "The semantic version parser used by npm.",
-  "main": "semver.js",
-  "browser": "semver.browser.js",
-  "min": "semver.min.js",
-  "scripts": {
-    "test": "tap test/*.js",
-    "prepublish": "make"
-  },
-  "devDependencies": {
-    "tap": "0.x >=0.0.4",
-    "uglify-js": "~2.3.6"
-  },
-  "license": "BSD",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/node-semver.git"
-  },
-  "bin": {
-    "semver": "./bin/semver"
-  },
-  "readme": "semver(1) -- The semantic versioner for npm\n===========================================\n\n## Usage\n\n    $ npm install semver\n\n    semver.valid('1.2.3') // '1.2.3'\n    semver.valid('a.b.c') // null\n    semver.clean('  =v1.2.3   ') // '1.2.3'\n    semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true\n    semver.gt('1.2.3', '9.8.7') // false\n    semver.lt('1.2.3', '9.8.7') // true\n\nAs a command-line utility:\n\n    $ semver -h\n\n    Usage: semver <version> [<version> [...]] [-r <range> | -i <inc> | -d <dec>]\n    Test if version(s) satisfy the supplied range(s), and sort them.\n\n    Multiple versions or ranges may be supplied, unless increment\n    or decrement options are specified.  In that case, only a single\n    version may be used, and it is incremented by the specified level\n\n    Program exits successfully if any valid version satisfies\n    all supplied ranges, and prints all satisfying versions.\n\n    If no versions are valid, or ra
 nges are not satisfied,\n    then exits failure.\n\n    Versions are printed in ascending order, so supplying\n    multiple versions to the utility will just sort them.\n\n## Versions\n\nA \"version\" is described by the v2.0.0 specification found at\n<http://semver.org/>.\n\nA leading `\"=\"` or `\"v\"` character is stripped off and ignored.\n\n## Ranges\n\nThe following range styles are supported:\n\n* `1.2.3` A specific version.  When nothing else will do.  Note that\n  build metadata is still ignored, so `1.2.3+build2012` will satisfy\n  this range.\n* `>1.2.3` Greater than a specific version.\n* `<1.2.3` Less than a specific version.  If there is no prerelease\n  tag on the version range, then no prerelease version will be allowed\n  either, even though these are technically \"less than\".\n* `>=1.2.3` Greater than or equal to.  Note that prerelease versions\n  are NOT equal to their \"normal\" equivalents, so `1.2.3-beta` will\n  not satisfy this range, but `2.3.0-beta` will.\
 n* `<=1.2.3` Less than or equal to.  In this case, prerelease versions\n  ARE allowed, so `1.2.3-beta` would satisfy.\n* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`\n* `~1.2.3` := `>=1.2.3-0 <1.3.0-0`  \"Reasonably close to 1.2.3\".  When\n  using tilde operators, prerelease versions are supported as well,\n  but a prerelease of the next significant digit will NOT be\n  satisfactory, so `1.3.0-beta` will not satisfy `~1.2.3`.\n* `~1.2` := `>=1.2.0-0 <1.3.0-0` \"Any version starting with 1.2\"\n* `1.2.x` := `>=1.2.0-0 <1.3.0-0` \"Any version starting with 1.2\"\n* `~1` := `>=1.0.0-0 <2.0.0-0` \"Any version starting with 1\"\n* `1.x` := `>=1.0.0-0 <2.0.0-0` \"Any version starting with 1\"\n\n\nRanges can be joined with either a space (which implies \"and\") or a\n`||` (which implies \"or\").\n\n## Functions\n\nAll methods and classes take a final `loose` boolean argument that, if\ntrue, will be more forgiving about not-quite-valid semver strings.\nThe resulting output will always be 100% str
 ict, of course.\n\nStrict-mode Comparators and Ranges will be strict about the SemVer\nstrings that they parse.\n\n* valid(v): Return the parsed version, or null if it's not valid.\n* inc(v, release): Return the version incremented by the release type\n  (major, minor, patch, or prerelease), or null if it's not valid.\n\n### Comparison\n\n* gt(v1, v2): `v1 > v2`\n* gte(v1, v2): `v1 >= v2`\n* lt(v1, v2): `v1 < v2`\n* lte(v1, v2): `v1 <= v2`\n* eq(v1, v2): `v1 == v2` This is true if they're logically equivalent,\n  even if they're not the exact same string.  You already know how to\n  compare strings.\n* neq(v1, v2): `v1 != v2` The opposite of eq.\n* cmp(v1, comparator, v2): Pass in a comparison string, and it'll call\n  the corresponding function above.  `\"===\"` and `\"!==\"` do simple\n  string comparison, but are included for completeness.  Throws if an\n  invalid comparison string is provided.\n* compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if\n  v2 is gre
 ater.  Sorts in ascending order if passed to Array.sort().\n* rcompare(v1, v2): The reverse of compare.  Sorts an array of versions\n  in descending order when passed to Array.sort().\n\n\n### Ranges\n\n* validRange(range): Return the valid range or null if it's not valid\n* satisfies(version, range): Return true if the version satisfies the\n  range.\n* maxSatisfying(versions, range): Return the highest version in the list\n  that satisfies the range, or null if none of them do.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/node-semver/issues"
-  },
-  "_id": "semver@2.0.11",
-  "_from": "semver@2.0.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/r.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/r.js b/blackberry10/node_modules/plugman/node_modules/semver/r.js
deleted file mode 100644
index 3273d7d..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/r.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var semver = require('./')
-var r = new semver.Range('git+https://user:password0123@github.com/foo/bar.git', true)
-r.inspect = null
-console.log(r)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/semver.browser.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/semver.browser.js b/blackberry10/node_modules/plugman/node_modules/semver/semver.browser.js
deleted file mode 100644
index d19f104..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/semver.browser.js
+++ /dev/null
@@ -1,851 +0,0 @@
-;(function(exports) {
-
-// export the class if we are in a Node-like system.
-if (typeof module === 'object' && module.exports === exports)
-  exports = module.exports = SemVer;
-
-// The debug function is excluded entirely from the minified version.
-
-// Note: this is the semver.org version of the spec that it implements
-// Not necessarily the package version of this code.
-exports.SEMVER_SPEC_VERSION = '2.0.0';
-
-// The actual regexps go on exports.re
-var re = exports.re = [];
-var src = exports.src = [];
-var R = 0;
-
-// The following Regular Expressions can be used for tokenizing,
-// validating, and parsing SemVer version strings.
-
-// ## Numeric Identifier
-// A single `0`, or a non-zero digit followed by zero or more digits.
-
-var NUMERICIDENTIFIER = R++;
-src[NUMERICIDENTIFIER] = '0|[1-9]\\d*';
-var NUMERICIDENTIFIERLOOSE = R++;
-src[NUMERICIDENTIFIERLOOSE] = '[0-9]+';
-
-
-// ## Non-numeric Identifier
-// Zero or more digits, followed by a letter or hyphen, and then zero or
-// more letters, digits, or hyphens.
-
-var NONNUMERICIDENTIFIER = R++;
-src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*';
-
-
-// ## Main Version
-// Three dot-separated numeric identifiers.
-
-var MAINVERSION = R++;
-src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
-                   '(' + src[NUMERICIDENTIFIER] + ')\\.' +
-                   '(' + src[NUMERICIDENTIFIER] + ')';
-
-var MAINVERSIONLOOSE = R++;
-src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
-                        '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
-                        '(' + src[NUMERICIDENTIFIERLOOSE] + ')';
-
-// ## Pre-release Version Identifier
-// A numeric identifier, or a non-numeric identifier.
-
-var PRERELEASEIDENTIFIER = R++;
-src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
-                            '|' + src[NONNUMERICIDENTIFIER] + ')';
-
-var PRERELEASEIDENTIFIERLOOSE = R++;
-src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
-                                 '|' + src[NONNUMERICIDENTIFIER] + ')';
-
-
-// ## Pre-release Version
-// Hyphen, followed by one or more dot-separated pre-release version
-// identifiers.
-
-var PRERELEASE = R++;
-src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
-                  '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))';
-
-var PRERELEASELOOSE = R++;
-src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
-                       '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))';
-
-// ## Build Metadata Identifier
-// Any combination of digits, letters, or hyphens.
-
-var BUILDIDENTIFIER = R++;
-src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+';
-
-// ## Build Metadata
-// Plus sign, followed by one or more period-separated build metadata
-// identifiers.
-
-var BUILD = R++;
-src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
-             '(?:\\.' + src[BUILDIDENTIFIER] + ')*))';
-
-
-// ## Full Version String
-// A main version, followed optionally by a pre-release version and
-// build metadata.
-
-// Note that the only major, minor, patch, and pre-release sections of
-// the version string are capturing groups.  The build metadata is not a
-// capturing group, because it should not ever be used in version
-// comparison.
-
-var FULL = R++;
-var FULLPLAIN = 'v?' + src[MAINVERSION] +
-                src[PRERELEASE] + '?' +
-                src[BUILD] + '?';
-
-src[FULL] = '^' + FULLPLAIN + '$';
-
-// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
-// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
-// common in the npm registry.
-var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
-                 src[PRERELEASELOOSE] + '?' +
-                 src[BUILD] + '?';
-
-var LOOSE = R++;
-src[LOOSE] = '^' + LOOSEPLAIN + '$';
-
-var GTLT = R++;
-src[GTLT] = '((?:<|>)?=?)';
-
-// Something like "2.*" or "1.2.x".
-// Note that "x.x" is a valid xRange identifer, meaning "any version"
-// Only the first item is strictly required.
-var XRANGEIDENTIFIERLOOSE = R++;
-src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*';
-var XRANGEIDENTIFIER = R++;
-src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*';
-
-var XRANGEPLAIN = R++;
-src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
-                   '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
-                   '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
-                   '(?:(' + src[PRERELEASE] + ')' +
-                   ')?)?)?';
-
-var XRANGEPLAINLOOSE = R++;
-src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
-                        '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
-                        '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
-                        '(?:(' + src[PRERELEASELOOSE] + ')' +
-                        ')?)?)?';
-
-// >=2.x, for example, means >=2.0.0-0
-// <1.x would be the same as "<1.0.0-0", though.
-var XRANGE = R++;
-src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$';
-var XRANGELOOSE = R++;
-src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$';
-
-// Tilde ranges.
-// Meaning is "reasonably at or greater than"
-var LONETILDE = R++;
-src[LONETILDE] = '(?:~>?)';
-
-var TILDETRIM = R++;
-src[TILDETRIM] = src[LONETILDE] + '\\s+';
-var tildeTrimReplace = '~';
-
-var TILDE = R++;
-src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$';
-var TILDELOOSE = R++;
-src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$';
-
-
-// A simple gt/lt/eq thing, or just "" to indicate "any version"
-var COMPARATORLOOSE = R++;
-src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$';
-var COMPARATOR = R++;
-src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$';
-
-
-// An expression to strip any whitespace between the gtlt and the thing
-// it modifies, so that `> 1.2.3` ==> `>1.2.3`
-var COMPARATORTRIM = R++;
-src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
-                      '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')';
-
-// this one has to use the /g flag
-re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g');
-var comparatorTrimReplace = '$1$2$3';
-
-
-// Something like `1.2.3 - 1.2.4`
-// Note that these all use the loose form, because they'll be
-// checked against either the strict or loose comparator form
-// later.
-var HYPHENRANGE = R++;
-src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
-                   '\\s+-\\s+' +
-                   '(' + src[XRANGEPLAIN] + ')' +
-                   '\\s*$';
-
-var HYPHENRANGELOOSE = R++;
-src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
-                        '\\s+-\\s+' +
-                        '(' + src[XRANGEPLAINLOOSE] + ')' +
-                        '\\s*$';
-
-// Star ranges basically just allow anything at all.
-var STAR = R++;
-src[STAR] = '(<|>)?=?\\s*\\*';
-
-// Compile to actual regexp objects.
-// All are flag-free, unless they were created above with a flag.
-for (var i = 0; i < R; i++) {
-  ;
-  if (!re[i])
-    re[i] = new RegExp(src[i]);
-}
-
-exports.parse = parse;
-function parse(version, loose) {
-  var r = loose ? re[LOOSE] : re[FULL];
-  return (r.test(version)) ? new SemVer(version, loose) : null;
-}
-
-exports.valid = valid;
-function valid(version, loose) {
-  var v = parse(version, loose);
-  return v ? v.version : null;
-}
-
-
-exports.clean = clean;
-function clean(version, loose) {
-  var s = parse(version, loose);
-  return s ? s.version : null;
-}
-
-exports.SemVer = SemVer;
-
-function SemVer(version, loose) {
-  if (version instanceof SemVer) {
-    if (version.loose === loose)
-      return version;
-    else
-      version = version.version;
-  }
-
-  if (!(this instanceof SemVer))
-    return new SemVer(version, loose);
-
-  ;
-  this.loose = loose;
-  var m = version.trim().match(loose ? re[LOOSE] : re[FULL]);
-
-  if (!m)
-    throw new TypeError('Invalid Version: ' + version);
-
-  this.raw = version;
-
-  // these are actually numbers
-  this.major = +m[1];
-  this.minor = +m[2];
-  this.patch = +m[3];
-
-  // numberify any prerelease numeric ids
-  if (!m[4])
-    this.prerelease = [];
-  else
-    this.prerelease = m[4].split('.').map(function(id) {
-      return (/^[0-9]+$/.test(id)) ? +id : id;
-    });
-
-  this.build = m[5] ? m[5].split('.') : [];
-  this.format();
-}
-
-SemVer.prototype.format = function() {
-  this.version = this.major + '.' + this.minor + '.' + this.patch;
-  if (this.prerelease.length)
-    this.version += '-' + this.prerelease.join('.');
-  return this.version;
-};
-
-SemVer.prototype.inspect = function() {
-  return '<SemVer "' + this + '">';
-};
-
-SemVer.prototype.toString = function() {
-  return this.version;
-};
-
-SemVer.prototype.compare = function(other) {
-  ;
-  if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
-
-  return this.compareMain(other) || this.comparePre(other);
-};
-
-SemVer.prototype.compareMain = function(other) {
-  if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
-
-  return compareIdentifiers(this.major, other.major) ||
-         compareIdentifiers(this.minor, other.minor) ||
-         compareIdentifiers(this.patch, other.patch);
-};
-
-SemVer.prototype.comparePre = function(other) {
-  if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
-
-  // NOT having a prerelease is > having one
-  if (this.prerelease.length && !other.prerelease.length)
-    return -1;
-  else if (!this.prerelease.length && other.prerelease.length)
-    return 1;
-  else if (!this.prerelease.lenth && !other.prerelease.length)
-    return 0;
-
-  var i = 0;
-  do {
-    var a = this.prerelease[i];
-    var b = other.prerelease[i];
-    ;
-    if (a === undefined && b === undefined)
-      return 0;
-    else if (b === undefined)
-      return 1;
-    else if (a === undefined)
-      return -1;
-    else if (a === b)
-      continue;
-    else
-      return compareIdentifiers(a, b);
-  } while (++i);
-};
-
-SemVer.prototype.inc = function(release) {
-  switch (release) {
-    case 'major':
-      this.major++;
-      this.minor = -1;
-    case 'minor':
-      this.minor++;
-      this.patch = -1;
-    case 'patch':
-      this.patch++;
-      this.prerelease = [];
-      break;
-    case 'prerelease':
-      if (this.prerelease.length === 0)
-        this.prerelease = [0];
-      else {
-        var i = this.prerelease.length;
-        while (--i >= 0) {
-          if (typeof this.prerelease[i] === 'number') {
-            this.prerelease[i]++;
-            i = -2;
-          }
-        }
-        if (i === -1) // didn't increment anything
-          this.prerelease.push(0);
-      }
-      break;
-
-    default:
-      throw new Error('invalid increment argument: ' + release);
-  }
-  this.format();
-  return this;
-};
-
-exports.inc = inc;
-function inc(version, release, loose) {
-  try {
-    return new SemVer(version, loose).inc(release).version;
-  } catch (er) {
-    return null;
-  }
-}
-
-exports.compareIdentifiers = compareIdentifiers;
-
-var numeric = /^[0-9]+$/;
-function compareIdentifiers(a, b) {
-  var anum = numeric.test(a);
-  var bnum = numeric.test(b);
-
-  if (anum && bnum) {
-    a = +a;
-    b = +b;
-  }
-
-  return (anum && !bnum) ? -1 :
-         (bnum && !anum) ? 1 :
-         a < b ? -1 :
-         a > b ? 1 :
-         0;
-}
-
-exports.rcompareIdentifiers = rcompareIdentifiers;
-function rcompareIdentifiers(a, b) {
-  return compareIdentifiers(b, a);
-}
-
-exports.compare = compare;
-function compare(a, b, loose) {
-  return new SemVer(a, loose).compare(b);
-}
-
-exports.compareLoose = compareLoose;
-function compareLoose(a, b) {
-  return compare(a, b, true);
-}
-
-exports.rcompare = rcompare;
-function rcompare(a, b, loose) {
-  return compare(b, a, loose);
-}
-
-exports.sort = sort;
-function sort(list, loose) {
-  return list.sort(function(a, b) {
-    return exports.compare(a, b, loose);
-  });
-}
-
-exports.rsort = rsort;
-function rsort(list, loose) {
-  return list.sort(function(a, b) {
-    return exports.rcompare(a, b, loose);
-  });
-}
-
-exports.gt = gt;
-function gt(a, b, loose) {
-  return compare(a, b, loose) > 0;
-}
-
-exports.lt = lt;
-function lt(a, b, loose) {
-  return compare(a, b, loose) < 0;
-}
-
-exports.eq = eq;
-function eq(a, b, loose) {
-  return compare(a, b, loose) === 0;
-}
-
-exports.neq = neq;
-function neq(a, b, loose) {
-  return compare(a, b, loose) !== 0;
-}
-
-exports.gte = gte;
-function gte(a, b, loose) {
-  return compare(a, b, loose) >= 0;
-}
-
-exports.lte = lte;
-function lte(a, b, loose) {
-  return compare(a, b, loose) <= 0;
-}
-
-exports.cmp = cmp;
-function cmp(a, op, b, loose) {
-  var ret;
-  switch (op) {
-    case '===': ret = a === b; break;
-    case '!==': ret = a !== b; break;
-    case '': case '=': case '==': ret = eq(a, b, loose); break;
-    case '!=': ret = neq(a, b, loose); break;
-    case '>': ret = gt(a, b, loose); break;
-    case '>=': ret = gte(a, b, loose); break;
-    case '<': ret = lt(a, b, loose); break;
-    case '<=': ret = lte(a, b, loose); break;
-    default: throw new TypeError('Invalid operator: ' + op);
-  }
-  return ret;
-}
-
-exports.Comparator = Comparator;
-function Comparator(comp, loose) {
-  if (comp instanceof Comparator) {
-    if (comp.loose === loose)
-      return comp;
-    else
-      comp = comp.value;
-  }
-
-  if (!(this instanceof Comparator))
-    return new Comparator(comp, loose);
-
-  ;
-  this.loose = loose;
-  this.parse(comp);
-
-  if (this.semver === ANY)
-    this.value = '';
-  else
-    this.value = this.operator + this.semver.version;
-}
-
-var ANY = {};
-Comparator.prototype.parse = function(comp) {
-  var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
-  var m = comp.match(r);
-
-  if (!m)
-    throw new TypeError('Invalid comparator: ' + comp);
-
-  this.operator = m[1];
-  // if it literally is just '>' or '' then allow anything.
-  if (!m[2])
-    this.semver = ANY;
-  else {
-    this.semver = new SemVer(m[2], this.loose);
-
-    // <1.2.3-rc DOES allow 1.2.3-beta (has prerelease)
-    // >=1.2.3 DOES NOT allow 1.2.3-beta
-    // <=1.2.3 DOES allow 1.2.3-beta
-    // However, <1.2.3 does NOT allow 1.2.3-beta,
-    // even though `1.2.3-beta < 1.2.3`
-    // The assumption is that the 1.2.3 version has something you
-    // *don't* want, so we push the prerelease down to the minimum.
-    if (this.operator === '<' && !this.semver.prerelease.length) {
-      this.semver.prerelease = ['0'];
-      this.semver.format();
-    }
-  }
-};
-
-Comparator.prototype.inspect = function() {
-  return '<SemVer Comparator "' + this + '">';
-};
-
-Comparator.prototype.toString = function() {
-  return this.value;
-};
-
-Comparator.prototype.test = function(version) {
-  ;
-  return (this.semver === ANY) ? true :
-         cmp(version, this.operator, this.semver, this.loose);
-};
-
-
-exports.Range = Range;
-function Range(range, loose) {
-  if ((range instanceof Range) && range.loose === loose)
-    return range;
-
-  if (!(this instanceof Range))
-    return new Range(range, loose);
-
-  this.loose = loose;
-
-  // First, split based on boolean or ||
-  this.raw = range;
-  this.set = range.split(/\s*\|\|\s*/).map(function(range) {
-    return this.parseRange(range.trim());
-  }, this).filter(function(c) {
-    // throw out any that are not relevant for whatever reason
-    return c.length;
-  });
-
-  if (!this.set.length) {
-    throw new TypeError('Invalid SemVer Range: ' + range);
-  }
-
-  this.format();
-}
-
-Range.prototype.inspect = function() {
-  return '<SemVer Range "' + this.range + '">';
-};
-
-Range.prototype.format = function() {
-  this.range = this.set.map(function(comps) {
-    return comps.join(' ').trim();
-  }).join('||').trim();
-  return this.range;
-};
-
-Range.prototype.toString = function() {
-  return this.range;
-};
-
-Range.prototype.parseRange = function(range) {
-  var loose = this.loose;
-  range = range.trim();
-  ;
-  // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
-  var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE];
-  range = range.replace(hr, hyphenReplace);
-  ;
-  // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
-  range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace);
-  ;
-
-  // `~ 1.2.3` => `~1.2.3`
-  range = range.replace(re[TILDETRIM], tildeTrimReplace);
-
-  // normalize spaces
-  range = range.split(/\s+/).join(' ');
-
-  // At this point, the range is completely trimmed and
-  // ready to be split into comparators.
-
-  var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
-  var set = range.split(' ').map(function(comp) {
-    return parseComparator(comp, loose);
-  }).join(' ').split(/\s+/);
-  if (this.loose) {
-    // in loose mode, throw out any that are not valid comparators
-    set = set.filter(function(comp) {
-      return !!comp.match(compRe);
-    });
-  }
-  set = set.map(function(comp) {
-    return new Comparator(comp, loose);
-  });
-
-  return set;
-};
-
-// Mostly just for testing and legacy API reasons
-exports.toComparators = toComparators;
-function toComparators(range, loose) {
-  return new Range(range, loose).set.map(function(comp) {
-    return comp.map(function(c) {
-      return c.value;
-    }).join(' ').trim().split(' ');
-  });
-}
-
-// comprised of xranges, tildes, stars, and gtlt's at this point.
-// already replaced the hyphen ranges
-// turn into a set of JUST comparators.
-function parseComparator(comp, loose) {
-  ;
-  comp = replaceTildes(comp, loose);
-  ;
-  comp = replaceXRanges(comp, loose);
-  ;
-  comp = replaceStars(comp, loose);
-  ;
-  return comp;
-}
-
-function isX(id) {
-  return !id || id.toLowerCase() === 'x' || id === '*';
-}
-
-// ~, ~> --> * (any, kinda silly)
-// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
-// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
-// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
-// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
-// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
-function replaceTildes(comp, loose) {
-  return comp.trim().split(/\s+/).map(function(comp) {
-    return replaceTilde(comp, loose);
-  }).join(' ');
-}
-
-function replaceTilde(comp, loose) {
-  var r = loose ? re[TILDELOOSE] : re[TILDE];
-  return comp.replace(r, function(_, M, m, p, pr) {
-    ;
-    var ret;
-
-    if (isX(M))
-      ret = '';
-    else if (isX(m))
-      ret = '>=' + M + '.0.0-0 <' + (+M + 1) + '.0.0-0';
-    else if (isX(p))
-      // ~1.2 == >=1.2.0- <1.3.0-
-      ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
-    else if (pr) {
-      ;
-      if (pr.charAt(0) !== '-')
-        pr = '-' + pr;
-      ret = '>=' + M + '.' + m + '.' + p + pr +
-            ' <' + M + '.' + (+m + 1) + '.0-0';
-    } else
-      // ~1.2.3 == >=1.2.3-0 <1.3.0-0
-      ret = '>=' + M + '.' + m + '.' + p + '-0' +
-            ' <' + M + '.' + (+m + 1) + '.0-0';
-
-    ;
-    return ret;
-  });
-}
-
-function replaceXRanges(comp, loose) {
-  ;
-  return comp.split(/\s+/).map(function(comp) {
-    return replaceXRange(comp, loose);
-  }).join(' ');
-}
-
-function replaceXRange(comp, loose) {
-  comp = comp.trim();
-  var r = loose ? re[XRANGELOOSE] : re[XRANGE];
-  return comp.replace(r, function(ret, gtlt, M, m, p, pr) {
-    ;
-    var xM = isX(M);
-    var xm = xM || isX(m);
-    var xp = xm || isX(p);
-    var anyX = xp;
-
-    if (gtlt === '=' && anyX)
-      gtlt = '';
-
-    if (gtlt && anyX) {
-      // replace X with 0, and then append the -0 min-prerelease
-      if (xM)
-        M = 0;
-      if (xm)
-        m = 0;
-      if (xp)
-        p = 0;
-
-      if (gtlt === '>') {
-        // >1 => >=2.0.0-0
-        // >1.2 => >=1.3.0-0
-        // >1.2.3 => >= 1.2.4-0
-        gtlt = '>=';
-        if (xM) {
-          // no change
-        } else if (xm) {
-          M = +M + 1;
-          m = 0;
-          p = 0;
-        } else if (xp) {
-          m = +m + 1;
-          p = 0;
-        }
-      }
-
-
-      ret = gtlt + M + '.' + m + '.' + p + '-0';
-    } else if (xM) {
-      // allow any
-      ret = '*';
-    } else if (xm) {
-      // append '-0' onto the version, otherwise
-      // '1.x.x' matches '2.0.0-beta', since the tag
-      // *lowers* the version value
-      ret = '>=' + M + '.0.0-0 <' + (+M + 1) + '.0.0-0';
-    } else if (xp) {
-      ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
-    }
-
-    ;
-
-    return ret;
-  });
-}
-
-// Because * is AND-ed with everything else in the comparator,
-// and '' means "any version", just remove the *s entirely.
-function replaceStars(comp, loose) {
-  ;
-  // Looseness is ignored here.  star is always as loose as it gets!
-  return comp.trim().replace(re[STAR], '');
-}
-
-// This function is passed to string.replace(re[HYPHENRANGE])
-// M, m, patch, prerelease, build
-// 1.2 - 3.4.5 => >=1.2.0-0 <=3.4.5
-// 1.2.3 - 3.4 => >=1.2.0-0 <3.5.0-0 Any 3.4.x will do
-// 1.2 - 3.4 => >=1.2.0-0 <3.5.0-0
-function hyphenReplace($0,
-                       from, fM, fm, fp, fpr, fb,
-                       to, tM, tm, tp, tpr, tb) {
-
-  if (isX(fM))
-    from = '';
-  else if (isX(fm))
-    from = '>=' + fM + '.0.0-0';
-  else if (isX(fp))
-    from = '>=' + fM + '.' + fm + '.0-0';
-  else
-    from = '>=' + from;
-
-  if (isX(tM))
-    to = '';
-  else if (isX(tm))
-    to = '<' + (+tM + 1) + '.0.0-0';
-  else if (isX(tp))
-    to = '<' + tM + '.' + (+tm + 1) + '.0-0';
-  else if (tpr)
-    to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr;
-  else
-    to = '<=' + to;
-
-  return (from + ' ' + to).trim();
-}
-
-
-// if ANY of the sets match ALL of its comparators, then pass
-Range.prototype.test = function(version) {
-  if (!version)
-    return false;
-  for (var i = 0; i < this.set.length; i++) {
-    if (testSet(this.set[i], version))
-      return true;
-  }
-  return false;
-};
-
-function testSet(set, version) {
-  for (var i = 0; i < set.length; i++) {
-    if (!set[i].test(version))
-      return false;
-  }
-  return true;
-}
-
-exports.satisfies = satisfies;
-function satisfies(version, range, loose) {
-  try {
-    range = new Range(range, loose);
-  } catch (er) {
-    return false;
-  }
-  return range.test(version);
-}
-
-exports.maxSatisfying = maxSatisfying;
-function maxSatisfying(versions, range, loose) {
-  return versions.filter(function(version) {
-    return satisfies(version, range, loose);
-  }).sort(function(a, b) {
-    return rcompare(a, b, loose);
-  })[0] || null;
-}
-
-exports.validRange = validRange;
-function validRange(range, loose) {
-  try {
-    // Return '*' instead of '' so that truthiness works.
-    // This will throw if it's invalid anyway
-    return new Range(range, loose).range || '*';
-  } catch (er) {
-    return null;
-  }
-}
-
-// Use the define() function if we're in AMD land
-if (typeof define === 'function' && define.amd)
-  define(exports);
-
-})(
-  typeof exports === 'object' ? exports :
-  typeof define === 'function' && define.amd ? {} :
-  semver = {}
-);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/semver.browser.js.gz
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/semver.browser.js.gz b/blackberry10/node_modules/plugman/node_modules/semver/semver.browser.js.gz
deleted file mode 100644
index eca788e..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/semver/semver.browser.js.gz and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/semver.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/semver.js b/blackberry10/node_modules/plugman/node_modules/semver/semver.js
deleted file mode 100644
index 28fa1c0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/semver.js
+++ /dev/null
@@ -1,855 +0,0 @@
-// export the class if we are in a Node-like system.
-if (typeof module === 'object' && module.exports === exports)
-  exports = module.exports = SemVer;
-
-// The debug function is excluded entirely from the minified version.
-/* nomin */ var debug;
-/* nomin */ if (typeof process === 'object' &&
-    /* nomin */ process.env &&
-    /* nomin */ process.env.NODE_DEBUG &&
-    /* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG))
-  /* nomin */ debug = function() {
-    /* nomin */ var args = Array.prototype.slice.call(arguments, 0);
-    /* nomin */ args.unshift('SEMVER');
-    /* nomin */ console.log.apply(console, args);
-    /* nomin */ };
-/* nomin */ else
-  /* nomin */ debug = function() {};
-
-// Note: this is the semver.org version of the spec that it implements
-// Not necessarily the package version of this code.
-exports.SEMVER_SPEC_VERSION = '2.0.0';
-
-// The actual regexps go on exports.re
-var re = exports.re = [];
-var src = exports.src = [];
-var R = 0;
-
-// The following Regular Expressions can be used for tokenizing,
-// validating, and parsing SemVer version strings.
-
-// ## Numeric Identifier
-// A single `0`, or a non-zero digit followed by zero or more digits.
-
-var NUMERICIDENTIFIER = R++;
-src[NUMERICIDENTIFIER] = '0|[1-9]\\d*';
-var NUMERICIDENTIFIERLOOSE = R++;
-src[NUMERICIDENTIFIERLOOSE] = '[0-9]+';
-
-
-// ## Non-numeric Identifier
-// Zero or more digits, followed by a letter or hyphen, and then zero or
-// more letters, digits, or hyphens.
-
-var NONNUMERICIDENTIFIER = R++;
-src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*';
-
-
-// ## Main Version
-// Three dot-separated numeric identifiers.
-
-var MAINVERSION = R++;
-src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
-                   '(' + src[NUMERICIDENTIFIER] + ')\\.' +
-                   '(' + src[NUMERICIDENTIFIER] + ')';
-
-var MAINVERSIONLOOSE = R++;
-src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
-                        '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
-                        '(' + src[NUMERICIDENTIFIERLOOSE] + ')';
-
-// ## Pre-release Version Identifier
-// A numeric identifier, or a non-numeric identifier.
-
-var PRERELEASEIDENTIFIER = R++;
-src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
-                            '|' + src[NONNUMERICIDENTIFIER] + ')';
-
-var PRERELEASEIDENTIFIERLOOSE = R++;
-src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
-                                 '|' + src[NONNUMERICIDENTIFIER] + ')';
-
-
-// ## Pre-release Version
-// Hyphen, followed by one or more dot-separated pre-release version
-// identifiers.
-
-var PRERELEASE = R++;
-src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
-                  '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))';
-
-var PRERELEASELOOSE = R++;
-src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
-                       '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))';
-
-// ## Build Metadata Identifier
-// Any combination of digits, letters, or hyphens.
-
-var BUILDIDENTIFIER = R++;
-src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+';
-
-// ## Build Metadata
-// Plus sign, followed by one or more period-separated build metadata
-// identifiers.
-
-var BUILD = R++;
-src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
-             '(?:\\.' + src[BUILDIDENTIFIER] + ')*))';
-
-
-// ## Full Version String
-// A main version, followed optionally by a pre-release version and
-// build metadata.
-
-// Note that the only major, minor, patch, and pre-release sections of
-// the version string are capturing groups.  The build metadata is not a
-// capturing group, because it should not ever be used in version
-// comparison.
-
-var FULL = R++;
-var FULLPLAIN = 'v?' + src[MAINVERSION] +
-                src[PRERELEASE] + '?' +
-                src[BUILD] + '?';
-
-src[FULL] = '^' + FULLPLAIN + '$';
-
-// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
-// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
-// common in the npm registry.
-var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
-                 src[PRERELEASELOOSE] + '?' +
-                 src[BUILD] + '?';
-
-var LOOSE = R++;
-src[LOOSE] = '^' + LOOSEPLAIN + '$';
-
-var GTLT = R++;
-src[GTLT] = '((?:<|>)?=?)';
-
-// Something like "2.*" or "1.2.x".
-// Note that "x.x" is a valid xRange identifer, meaning "any version"
-// Only the first item is strictly required.
-var XRANGEIDENTIFIERLOOSE = R++;
-src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*';
-var XRANGEIDENTIFIER = R++;
-src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*';
-
-var XRANGEPLAIN = R++;
-src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
-                   '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
-                   '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
-                   '(?:(' + src[PRERELEASE] + ')' +
-                   ')?)?)?';
-
-var XRANGEPLAINLOOSE = R++;
-src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
-                        '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
-                        '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
-                        '(?:(' + src[PRERELEASELOOSE] + ')' +
-                        ')?)?)?';
-
-// >=2.x, for example, means >=2.0.0-0
-// <1.x would be the same as "<1.0.0-0", though.
-var XRANGE = R++;
-src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$';
-var XRANGELOOSE = R++;
-src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$';
-
-// Tilde ranges.
-// Meaning is "reasonably at or greater than"
-var LONETILDE = R++;
-src[LONETILDE] = '(?:~>?)';
-
-var TILDETRIM = R++;
-src[TILDETRIM] = src[LONETILDE] + '\\s+';
-var tildeTrimReplace = '~';
-
-var TILDE = R++;
-src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$';
-var TILDELOOSE = R++;
-src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$';
-
-
-// A simple gt/lt/eq thing, or just "" to indicate "any version"
-var COMPARATORLOOSE = R++;
-src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$';
-var COMPARATOR = R++;
-src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$';
-
-
-// An expression to strip any whitespace between the gtlt and the thing
-// it modifies, so that `> 1.2.3` ==> `>1.2.3`
-var COMPARATORTRIM = R++;
-src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
-                      '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')';
-
-// this one has to use the /g flag
-re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g');
-var comparatorTrimReplace = '$1$2$3';
-
-
-// Something like `1.2.3 - 1.2.4`
-// Note that these all use the loose form, because they'll be
-// checked against either the strict or loose comparator form
-// later.
-var HYPHENRANGE = R++;
-src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
-                   '\\s+-\\s+' +
-                   '(' + src[XRANGEPLAIN] + ')' +
-                   '\\s*$';
-
-var HYPHENRANGELOOSE = R++;
-src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
-                        '\\s+-\\s+' +
-                        '(' + src[XRANGEPLAINLOOSE] + ')' +
-                        '\\s*$';
-
-// Star ranges basically just allow anything at all.
-var STAR = R++;
-src[STAR] = '(<|>)?=?\\s*\\*';
-
-// Compile to actual regexp objects.
-// All are flag-free, unless they were created above with a flag.
-for (var i = 0; i < R; i++) {
-  debug(i, src[i]);
-  if (!re[i])
-    re[i] = new RegExp(src[i]);
-}
-
-exports.parse = parse;
-function parse(version, loose) {
-  var r = loose ? re[LOOSE] : re[FULL];
-  return (r.test(version)) ? new SemVer(version, loose) : null;
-}
-
-exports.valid = valid;
-function valid(version, loose) {
-  var v = parse(version, loose);
-  return v ? v.version : null;
-}
-
-
-exports.clean = clean;
-function clean(version, loose) {
-  var s = parse(version, loose);
-  return s ? s.version : null;
-}
-
-exports.SemVer = SemVer;
-
-function SemVer(version, loose) {
-  if (version instanceof SemVer) {
-    if (version.loose === loose)
-      return version;
-    else
-      version = version.version;
-  }
-
-  if (!(this instanceof SemVer))
-    return new SemVer(version, loose);
-
-  debug('SemVer', version, loose);
-  this.loose = loose;
-  var m = version.trim().match(loose ? re[LOOSE] : re[FULL]);
-
-  if (!m)
-    throw new TypeError('Invalid Version: ' + version);
-
-  this.raw = version;
-
-  // these are actually numbers
-  this.major = +m[1];
-  this.minor = +m[2];
-  this.patch = +m[3];
-
-  // numberify any prerelease numeric ids
-  if (!m[4])
-    this.prerelease = [];
-  else
-    this.prerelease = m[4].split('.').map(function(id) {
-      return (/^[0-9]+$/.test(id)) ? +id : id;
-    });
-
-  this.build = m[5] ? m[5].split('.') : [];
-  this.format();
-}
-
-SemVer.prototype.format = function() {
-  this.version = this.major + '.' + this.minor + '.' + this.patch;
-  if (this.prerelease.length)
-    this.version += '-' + this.prerelease.join('.');
-  return this.version;
-};
-
-SemVer.prototype.inspect = function() {
-  return '<SemVer "' + this + '">';
-};
-
-SemVer.prototype.toString = function() {
-  return this.version;
-};
-
-SemVer.prototype.compare = function(other) {
-  debug('SemVer.compare', this.version, this.loose, other);
-  if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
-
-  return this.compareMain(other) || this.comparePre(other);
-};
-
-SemVer.prototype.compareMain = function(other) {
-  if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
-
-  return compareIdentifiers(this.major, other.major) ||
-         compareIdentifiers(this.minor, other.minor) ||
-         compareIdentifiers(this.patch, other.patch);
-};
-
-SemVer.prototype.comparePre = function(other) {
-  if (!(other instanceof SemVer))
-    other = new SemVer(other, this.loose);
-
-  // NOT having a prerelease is > having one
-  if (this.prerelease.length && !other.prerelease.length)
-    return -1;
-  else if (!this.prerelease.length && other.prerelease.length)
-    return 1;
-  else if (!this.prerelease.lenth && !other.prerelease.length)
-    return 0;
-
-  var i = 0;
-  do {
-    var a = this.prerelease[i];
-    var b = other.prerelease[i];
-    debug('prerelease compare', i, a, b);
-    if (a === undefined && b === undefined)
-      return 0;
-    else if (b === undefined)
-      return 1;
-    else if (a === undefined)
-      return -1;
-    else if (a === b)
-      continue;
-    else
-      return compareIdentifiers(a, b);
-  } while (++i);
-};
-
-SemVer.prototype.inc = function(release) {
-  switch (release) {
-    case 'major':
-      this.major++;
-      this.minor = -1;
-    case 'minor':
-      this.minor++;
-      this.patch = -1;
-    case 'patch':
-      this.patch++;
-      this.prerelease = [];
-      break;
-    case 'prerelease':
-      if (this.prerelease.length === 0)
-        this.prerelease = [0];
-      else {
-        var i = this.prerelease.length;
-        while (--i >= 0) {
-          if (typeof this.prerelease[i] === 'number') {
-            this.prerelease[i]++;
-            i = -2;
-          }
-        }
-        if (i === -1) // didn't increment anything
-          this.prerelease.push(0);
-      }
-      break;
-
-    default:
-      throw new Error('invalid increment argument: ' + release);
-  }
-  this.format();
-  return this;
-};
-
-exports.inc = inc;
-function inc(version, release, loose) {
-  try {
-    return new SemVer(version, loose).inc(release).version;
-  } catch (er) {
-    return null;
-  }
-}
-
-exports.compareIdentifiers = compareIdentifiers;
-
-var numeric = /^[0-9]+$/;
-function compareIdentifiers(a, b) {
-  var anum = numeric.test(a);
-  var bnum = numeric.test(b);
-
-  if (anum && bnum) {
-    a = +a;
-    b = +b;
-  }
-
-  return (anum && !bnum) ? -1 :
-         (bnum && !anum) ? 1 :
-         a < b ? -1 :
-         a > b ? 1 :
-         0;
-}
-
-exports.rcompareIdentifiers = rcompareIdentifiers;
-function rcompareIdentifiers(a, b) {
-  return compareIdentifiers(b, a);
-}
-
-exports.compare = compare;
-function compare(a, b, loose) {
-  return new SemVer(a, loose).compare(b);
-}
-
-exports.compareLoose = compareLoose;
-function compareLoose(a, b) {
-  return compare(a, b, true);
-}
-
-exports.rcompare = rcompare;
-function rcompare(a, b, loose) {
-  return compare(b, a, loose);
-}
-
-exports.sort = sort;
-function sort(list, loose) {
-  return list.sort(function(a, b) {
-    return exports.compare(a, b, loose);
-  });
-}
-
-exports.rsort = rsort;
-function rsort(list, loose) {
-  return list.sort(function(a, b) {
-    return exports.rcompare(a, b, loose);
-  });
-}
-
-exports.gt = gt;
-function gt(a, b, loose) {
-  return compare(a, b, loose) > 0;
-}
-
-exports.lt = lt;
-function lt(a, b, loose) {
-  return compare(a, b, loose) < 0;
-}
-
-exports.eq = eq;
-function eq(a, b, loose) {
-  return compare(a, b, loose) === 0;
-}
-
-exports.neq = neq;
-function neq(a, b, loose) {
-  return compare(a, b, loose) !== 0;
-}
-
-exports.gte = gte;
-function gte(a, b, loose) {
-  return compare(a, b, loose) >= 0;
-}
-
-exports.lte = lte;
-function lte(a, b, loose) {
-  return compare(a, b, loose) <= 0;
-}
-
-exports.cmp = cmp;
-function cmp(a, op, b, loose) {
-  var ret;
-  switch (op) {
-    case '===': ret = a === b; break;
-    case '!==': ret = a !== b; break;
-    case '': case '=': case '==': ret = eq(a, b, loose); break;
-    case '!=': ret = neq(a, b, loose); break;
-    case '>': ret = gt(a, b, loose); break;
-    case '>=': ret = gte(a, b, loose); break;
-    case '<': ret = lt(a, b, loose); break;
-    case '<=': ret = lte(a, b, loose); break;
-    default: throw new TypeError('Invalid operator: ' + op);
-  }
-  return ret;
-}
-
-exports.Comparator = Comparator;
-function Comparator(comp, loose) {
-  if (comp instanceof Comparator) {
-    if (comp.loose === loose)
-      return comp;
-    else
-      comp = comp.value;
-  }
-
-  if (!(this instanceof Comparator))
-    return new Comparator(comp, loose);
-
-  debug('comparator', comp, loose);
-  this.loose = loose;
-  this.parse(comp);
-
-  if (this.semver === ANY)
-    this.value = '';
-  else
-    this.value = this.operator + this.semver.version;
-}
-
-var ANY = {};
-Comparator.prototype.parse = function(comp) {
-  var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
-  var m = comp.match(r);
-
-  if (!m)
-    throw new TypeError('Invalid comparator: ' + comp);
-
-  this.operator = m[1];
-  // if it literally is just '>' or '' then allow anything.
-  if (!m[2])
-    this.semver = ANY;
-  else {
-    this.semver = new SemVer(m[2], this.loose);
-
-    // <1.2.3-rc DOES allow 1.2.3-beta (has prerelease)
-    // >=1.2.3 DOES NOT allow 1.2.3-beta
-    // <=1.2.3 DOES allow 1.2.3-beta
-    // However, <1.2.3 does NOT allow 1.2.3-beta,
-    // even though `1.2.3-beta < 1.2.3`
-    // The assumption is that the 1.2.3 version has something you
-    // *don't* want, so we push the prerelease down to the minimum.
-    if (this.operator === '<' && !this.semver.prerelease.length) {
-      this.semver.prerelease = ['0'];
-      this.semver.format();
-    }
-  }
-};
-
-Comparator.prototype.inspect = function() {
-  return '<SemVer Comparator "' + this + '">';
-};
-
-Comparator.prototype.toString = function() {
-  return this.value;
-};
-
-Comparator.prototype.test = function(version) {
-  debug('Comparator.test', version, this.loose);
-  return (this.semver === ANY) ? true :
-         cmp(version, this.operator, this.semver, this.loose);
-};
-
-
-exports.Range = Range;
-function Range(range, loose) {
-  if ((range instanceof Range) && range.loose === loose)
-    return range;
-
-  if (!(this instanceof Range))
-    return new Range(range, loose);
-
-  this.loose = loose;
-
-  // First, split based on boolean or ||
-  this.raw = range;
-  this.set = range.split(/\s*\|\|\s*/).map(function(range) {
-    return this.parseRange(range.trim());
-  }, this).filter(function(c) {
-    // throw out any that are not relevant for whatever reason
-    return c.length;
-  });
-
-  if (!this.set.length) {
-    throw new TypeError('Invalid SemVer Range: ' + range);
-  }
-
-  this.format();
-}
-
-Range.prototype.inspect = function() {
-  return '<SemVer Range "' + this.range + '">';
-};
-
-Range.prototype.format = function() {
-  this.range = this.set.map(function(comps) {
-    return comps.join(' ').trim();
-  }).join('||').trim();
-  return this.range;
-};
-
-Range.prototype.toString = function() {
-  return this.range;
-};
-
-Range.prototype.parseRange = function(range) {
-  var loose = this.loose;
-  range = range.trim();
-  debug('range', range, loose);
-  // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
-  var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE];
-  range = range.replace(hr, hyphenReplace);
-  debug('hyphen replace', range);
-  // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
-  range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace);
-  debug('comparator trim', range, re[COMPARATORTRIM]);
-
-  // `~ 1.2.3` => `~1.2.3`
-  range = range.replace(re[TILDETRIM], tildeTrimReplace);
-
-  // normalize spaces
-  range = range.split(/\s+/).join(' ');
-
-  // At this point, the range is completely trimmed and
-  // ready to be split into comparators.
-
-  var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
-  var set = range.split(' ').map(function(comp) {
-    return parseComparator(comp, loose);
-  }).join(' ').split(/\s+/);
-  if (this.loose) {
-    // in loose mode, throw out any that are not valid comparators
-    set = set.filter(function(comp) {
-      return !!comp.match(compRe);
-    });
-  }
-  set = set.map(function(comp) {
-    return new Comparator(comp, loose);
-  });
-
-  return set;
-};
-
-// Mostly just for testing and legacy API reasons
-exports.toComparators = toComparators;
-function toComparators(range, loose) {
-  return new Range(range, loose).set.map(function(comp) {
-    return comp.map(function(c) {
-      return c.value;
-    }).join(' ').trim().split(' ');
-  });
-}
-
-// comprised of xranges, tildes, stars, and gtlt's at this point.
-// already replaced the hyphen ranges
-// turn into a set of JUST comparators.
-function parseComparator(comp, loose) {
-  debug('comp', comp);
-  comp = replaceTildes(comp, loose);
-  debug('tildes', comp);
-  comp = replaceXRanges(comp, loose);
-  debug('xrange', comp);
-  comp = replaceStars(comp, loose);
-  debug('stars', comp);
-  return comp;
-}
-
-function isX(id) {
-  return !id || id.toLowerCase() === 'x' || id === '*';
-}
-
-// ~, ~> --> * (any, kinda silly)
-// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
-// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
-// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
-// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
-// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
-function replaceTildes(comp, loose) {
-  return comp.trim().split(/\s+/).map(function(comp) {
-    return replaceTilde(comp, loose);
-  }).join(' ');
-}
-
-function replaceTilde(comp, loose) {
-  var r = loose ? re[TILDELOOSE] : re[TILDE];
-  return comp.replace(r, function(_, M, m, p, pr) {
-    debug('tilde', comp, _, M, m, p, pr);
-    var ret;
-
-    if (isX(M))
-      ret = '';
-    else if (isX(m))
-      ret = '>=' + M + '.0.0-0 <' + (+M + 1) + '.0.0-0';
-    else if (isX(p))
-      // ~1.2 == >=1.2.0- <1.3.0-
-      ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
-    else if (pr) {
-      debug('replaceTilde pr', pr);
-      if (pr.charAt(0) !== '-')
-        pr = '-' + pr;
-      ret = '>=' + M + '.' + m + '.' + p + pr +
-            ' <' + M + '.' + (+m + 1) + '.0-0';
-    } else
-      // ~1.2.3 == >=1.2.3-0 <1.3.0-0
-      ret = '>=' + M + '.' + m + '.' + p + '-0' +
-            ' <' + M + '.' + (+m + 1) + '.0-0';
-
-    debug('tilde return', ret);
-    return ret;
-  });
-}
-
-function replaceXRanges(comp, loose) {
-  debug('replaceXRanges', comp, loose);
-  return comp.split(/\s+/).map(function(comp) {
-    return replaceXRange(comp, loose);
-  }).join(' ');
-}
-
-function replaceXRange(comp, loose) {
-  comp = comp.trim();
-  var r = loose ? re[XRANGELOOSE] : re[XRANGE];
-  return comp.replace(r, function(ret, gtlt, M, m, p, pr) {
-    debug('xRange', comp, ret, gtlt, M, m, p, pr);
-    var xM = isX(M);
-    var xm = xM || isX(m);
-    var xp = xm || isX(p);
-    var anyX = xp;
-
-    if (gtlt === '=' && anyX)
-      gtlt = '';
-
-    if (gtlt && anyX) {
-      // replace X with 0, and then append the -0 min-prerelease
-      if (xM)
-        M = 0;
-      if (xm)
-        m = 0;
-      if (xp)
-        p = 0;
-
-      if (gtlt === '>') {
-        // >1 => >=2.0.0-0
-        // >1.2 => >=1.3.0-0
-        // >1.2.3 => >= 1.2.4-0
-        gtlt = '>=';
-        if (xM) {
-          // no change
-        } else if (xm) {
-          M = +M + 1;
-          m = 0;
-          p = 0;
-        } else if (xp) {
-          m = +m + 1;
-          p = 0;
-        }
-      }
-
-
-      ret = gtlt + M + '.' + m + '.' + p + '-0';
-    } else if (xM) {
-      // allow any
-      ret = '*';
-    } else if (xm) {
-      // append '-0' onto the version, otherwise
-      // '1.x.x' matches '2.0.0-beta', since the tag
-      // *lowers* the version value
-      ret = '>=' + M + '.0.0-0 <' + (+M + 1) + '.0.0-0';
-    } else if (xp) {
-      ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
-    }
-
-    debug('xRange return', ret);
-
-    return ret;
-  });
-}
-
-// Because * is AND-ed with everything else in the comparator,
-// and '' means "any version", just remove the *s entirely.
-function replaceStars(comp, loose) {
-  debug('replaceStars', comp, loose);
-  // Looseness is ignored here.  star is always as loose as it gets!
-  return comp.trim().replace(re[STAR], '');
-}
-
-// This function is passed to string.replace(re[HYPHENRANGE])
-// M, m, patch, prerelease, build
-// 1.2 - 3.4.5 => >=1.2.0-0 <=3.4.5
-// 1.2.3 - 3.4 => >=1.2.0-0 <3.5.0-0 Any 3.4.x will do
-// 1.2 - 3.4 => >=1.2.0-0 <3.5.0-0
-function hyphenReplace($0,
-                       from, fM, fm, fp, fpr, fb,
-                       to, tM, tm, tp, tpr, tb) {
-
-  if (isX(fM))
-    from = '';
-  else if (isX(fm))
-    from = '>=' + fM + '.0.0-0';
-  else if (isX(fp))
-    from = '>=' + fM + '.' + fm + '.0-0';
-  else
-    from = '>=' + from;
-
-  if (isX(tM))
-    to = '';
-  else if (isX(tm))
-    to = '<' + (+tM + 1) + '.0.0-0';
-  else if (isX(tp))
-    to = '<' + tM + '.' + (+tm + 1) + '.0-0';
-  else if (tpr)
-    to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr;
-  else
-    to = '<=' + to;
-
-  return (from + ' ' + to).trim();
-}
-
-
-// if ANY of the sets match ALL of its comparators, then pass
-Range.prototype.test = function(version) {
-  if (!version)
-    return false;
-  for (var i = 0; i < this.set.length; i++) {
-    if (testSet(this.set[i], version))
-      return true;
-  }
-  return false;
-};
-
-function testSet(set, version) {
-  for (var i = 0; i < set.length; i++) {
-    if (!set[i].test(version))
-      return false;
-  }
-  return true;
-}
-
-exports.satisfies = satisfies;
-function satisfies(version, range, loose) {
-  try {
-    range = new Range(range, loose);
-  } catch (er) {
-    return false;
-  }
-  return range.test(version);
-}
-
-exports.maxSatisfying = maxSatisfying;
-function maxSatisfying(versions, range, loose) {
-  return versions.filter(function(version) {
-    return satisfies(version, range, loose);
-  }).sort(function(a, b) {
-    return rcompare(a, b, loose);
-  })[0] || null;
-}
-
-exports.validRange = validRange;
-function validRange(range, loose) {
-  try {
-    // Return '*' instead of '' so that truthiness works.
-    // This will throw if it's invalid anyway
-    return new Range(range, loose).range || '*';
-  } catch (er) {
-    return null;
-  }
-}
-
-// Use the define() function if we're in AMD land
-if (typeof define === 'function' && define.amd)
-  define(exports);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/semver.min.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/semver.min.js b/blackberry10/node_modules/plugman/node_modules/semver/semver.min.js
deleted file mode 100644
index 90ccff3..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/semver.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=O;e.SEMVER_SPEC_VERSION="2.0.0";var r=e.re=[];var t=e.src=[];var n=0;var i=n++;t[i]="0|[1-9]\\d*";var s=n++;t[s]="[0-9]+";var o=n++;t[o]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var a=n++;t[a]="("+t[i]+")\\."+"("+t[i]+")\\."+"("+t[i]+")";var u=n++;t[u]="("+t[s]+")\\."+"("+t[s]+")\\."+"("+t[s]+")";var f=n++;t[f]="(?:"+t[i]+"|"+t[o]+")";var c=n++;t[c]="(?:"+t[s]+"|"+t[o]+")";var l=n++;t[l]="(?:-("+t[f]+"(?:\\."+t[f]+")*))";var p=n++;t[p]="(?:-?("+t[c]+"(?:\\."+t[c]+")*))";var h=n++;t[h]="[0-9A-Za-z-]+";var v=n++;t[v]="(?:\\+("+t[h]+"(?:\\."+t[h]+")*))";var m=n++;var g="v?"+t[a]+t[l]+"?"+t[v]+"?";t[m]="^"+g+"$";var d="[v=\\s]*"+t[u]+t[p]+"?"+t[v]+"?";var w=n++;t[w]="^"+d+"$";var y=n++;t[y]="((?:<|>)?=?)";var $=n++;t[$]=t[s]+"|x|X|\\*";var j=n++;t[j]=t[i]+"|x|X|\\*";var b=n++;t[b]="[v=\\s]*("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:("+t[l]+")"+")?)?)?";var S=n++;t[S]="[v=\\s]*("+t[$]+")"+"(?:\\.("+t[$]+")"+"(?:
 \\.("+t[$]+")"+"(?:("+t[p]+")"+")?)?)?";var E=n++;t[E]="^"+t[y]+"\\s*"+t[b]+"$";var k=n++;t[k]="^"+t[y]+"\\s*"+t[S]+"$";var x=n++;t[x]="(?:~>?)";var R=n++;t[R]=t[x]+"\\s+";var V="~";var I=n++;t[I]="^"+t[x]+t[b]+"$";var C=n++;t[C]="^"+t[x]+t[S]+"$";var A=n++;t[A]="^"+t[y]+"\\s*("+d+")$|^$";var T=n++;t[T]="^"+t[y]+"\\s*("+g+")$|^$";var z=n++;t[z]="(\\s*)"+t[y]+"\\s*("+d+"|"+t[b]+")";r[z]=new RegExp(t[z],"g");var M="$1$2$3";var P=n++;t[P]="^\\s*("+t[b]+")"+"\\s+-\\s+"+"("+t[b]+")"+"\\s*$";var Z=n++;t[Z]="^\\s*("+t[S]+")"+"\\s+-\\s+"+"("+t[S]+")"+"\\s*$";var q=n++;t[q]="(<|>)?=?\\s*\\*";for(var L=0;L<n;L++){if(!r[L])r[L]=new RegExp(t[L])}e.parse=X;function X(e,t){var n=t?r[w]:r[m];return n.test(e)?new O(e,t):null}e.valid=_;function _(e,r){var t=X(e,r);return t?t.version:null}e.clean=N;function N(e,r){var t=X(e,r);return t?t.version:null}e.SemVer=O;function O(e,t){if(e instanceof O){if(e.loose===t)return e;else e=e.version}if(!(this instanceof O))return new O(e,t);this.loose=t;var n=e.tr
 im().match(t?r[w]:r[m]);if(!n)throw new TypeError("Invalid Version: "+e);this.raw=e;this.major=+n[1];this.minor=+n[2];this.patch=+n[3];if(!n[4])this.prerelease=[];else this.prerelease=n[4].split(".").map(function(e){return/^[0-9]+$/.test(e)?+e:e});this.build=n[5]?n[5].split("."):[];this.format()}O.prototype.format=function(){this.version=this.major+"."+this.minor+"."+this.patch;if(this.prerelease.length)this.version+="-"+this.prerelease.join(".");return this.version};O.prototype.inspect=function(){return'<SemVer "'+this+'">'};O.prototype.toString=function(){return this.version};O.prototype.compare=function(e){if(!(e instanceof O))e=new O(e,this.loose);return this.compareMain(e)||this.comparePre(e)};O.prototype.compareMain=function(e){if(!(e instanceof O))e=new O(e,this.loose);return F(this.major,e.major)||F(this.minor,e.minor)||F(this.patch,e.patch)};O.prototype.comparePre=function(e){if(!(e instanceof O))e=new O(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1
 ;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.lenth&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return F(t,n)}while(++r)};O.prototype.inc=function(e){switch(e){case"major":this.major++;this.minor=-1;case"minor":this.minor++;this.patch=-1;case"patch":this.patch++;this.prerelease=[];break;case"prerelease":if(this.prerelease.length===0)this.prerelease=[0];else{var r=this.prerelease.length;while(--r>=0){if(typeof this.prerelease[r]==="number"){this.prerelease[r]++;r=-2}}if(r===-1)this.prerelease.push(0)}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=B;function B(e,r,t){try{return new O(e,t).inc(r).version}catch(n){return null}}e.compareIdentifiers=F;var D=/^[0-9]+$/;function F(e,r){var t=D.test(e);var n=D.test(r);if(t&&n){e
 =+e;r=+r}return t&&!n?-1:n&&!t?1:e<r?-1:e>r?1:0}e.rcompareIdentifiers=G;function G(e,r){return F(r,e)}e.compare=H;function H(e,r,t){return new O(e,t).compare(r)}e.compareLoose=J;function J(e,r){return H(e,r,true)}e.rcompare=K;function K(e,r,t){return H(r,e,t)}e.sort=Q;function Q(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=U;function U(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=W;function W(e,r,t){return H(e,r,t)>0}e.lt=Y;function Y(e,r,t){return H(e,r,t)<0}e.eq=er;function er(e,r,t){return H(e,r,t)===0}e.neq=rr;function rr(e,r,t){return H(e,r,t)!==0}e.gte=tr;function tr(e,r,t){return H(e,r,t)>=0}e.lte=nr;function nr(e,r,t){return H(e,r,t)<=0}e.cmp=ir;function ir(e,r,t,n){var i;switch(r){case"===":i=e===t;break;case"!==":i=e!==t;break;case"":case"=":case"==":i=er(e,t,n);break;case"!=":i=rr(e,t,n);break;case">":i=W(e,t,n);break;case">=":i=tr(e,t,n);break;case"<":i=Y(e,t,n);break;case"<=":i=nr(e,t,n);break;default:throw new TypeError("Invali
 d operator: "+r)}return i}e.Comparator=sr;function sr(e,r){if(e instanceof sr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof sr))return new sr(e,r);this.loose=r;this.parse(e);if(this.semver===or)this.value="";else this.value=this.operator+this.semver.version}var or={};sr.prototype.parse=function(e){var t=this.loose?r[A]:r[T];var n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1];if(!n[2])this.semver=or;else{this.semver=new O(n[2],this.loose);if(this.operator==="<"&&!this.semver.prerelease.length){this.semver.prerelease=["0"];this.semver.format()}}};sr.prototype.inspect=function(){return'<SemVer Comparator "'+this+'">'};sr.prototype.toString=function(){return this.value};sr.prototype.test=function(e){return this.semver===or?true:ir(e,this.operator,this.semver,this.loose)};e.Range=ar;function ar(e,r){if(e instanceof ar&&e.loose===r)return e;if(!(this instanceof ar))return new ar(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).
 map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}ar.prototype.inspect=function(){return'<SemVer Range "'+this.range+'">'};ar.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};ar.prototype.toString=function(){return this.range};ar.prototype.parseRange=function(e){var t=this.loose;e=e.trim();var n=t?r[Z]:r[P];e=e.replace(n,gr);e=e.replace(r[z],M);e=e.replace(r[R],V);e=e.split(/\s+/).join(" ");var i=t?r[A]:r[T];var s=e.split(" ").map(function(e){return fr(e,t)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new sr(e,t)});return s};e.toComparators=ur;function ur(e,r){return new ar(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function fr(e,r){e=lr(e,r);e=hr(e,r);e=mr(e,r);
 return e}function cr(e){return!e||e.toLowerCase()==="x"||e==="*"}function lr(e,r){return e.trim().split(/\s+/).map(function(e){return pr(e,r)}).join(" ")}function pr(e,t){var n=t?r[C]:r[I];return e.replace(n,function(e,r,t,n,i){var s;if(cr(r))s="";else if(cr(t))s=">="+r+".0.0-0 <"+(+r+1)+".0.0-0";else if(cr(n))s=">="+r+"."+t+".0-0 <"+r+"."+(+t+1)+".0-0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0-0"}else s=">="+r+"."+t+"."+n+"-0"+" <"+r+"."+(+t+1)+".0-0";return s})}function hr(e,r){return e.split(/\s+/).map(function(e){return vr(e,r)}).join(" ")}function vr(e,t){e=e.trim();var n=t?r[k]:r[E];return e.replace(n,function(e,r,t,n,i,s){var o=cr(t);var a=o||cr(n);var u=a||cr(i);var f=u;if(r==="="&&f)r="";if(r&&f){if(o)t=0;if(a)n=0;if(u)i=0;if(r===">"){r=">=";if(o){}else if(a){t=+t+1;n=0;i=0}else if(u){n=+n+1;i=0}}e=r+t+"."+n+"."+i+"-0"}else if(o){e="*"}else if(a){e=">="+t+".0.0-0 <"+(+t+1)+".0.0-0"}else if(u){e=">="+t+"."+n+".0-0 <"+t+"."+(+n+1)+".
 0-0"}return e})}function mr(e,t){return e.trim().replace(r[q],"")}function gr(e,r,t,n,i,s,o,a,u,f,c,l,p){if(cr(t))r="";else if(cr(n))r=">="+t+".0.0-0";else if(cr(i))r=">="+t+"."+n+".0-0";else r=">="+r;if(cr(u))a="";else if(cr(f))a="<"+(+u+1)+".0.0-0";else if(cr(c))a="<"+u+"."+(+f+1)+".0-0";else if(l)a="<="+u+"."+f+"."+c+"-"+l;else a="<="+a;return(r+" "+a).trim()}ar.prototype.test=function(e){if(!e)return false;for(var r=0;r<this.set.length;r++){if(dr(this.set[r],e))return true}return false};function dr(e,r){for(var t=0;t<e.length;t++){if(!e[t].test(r))return false}return true}e.satisfies=wr;function wr(e,r,t){try{r=new ar(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=yr;function yr(e,r,t){return e.filter(function(e){return wr(e,r,t)}).sort(function(e,r){return K(e,r,t)})[0]||null}e.validRange=$r;function $r(e,r){try{return new ar(e,r).range||"*"}catch(t){return null}}if(typeof define==="function"&&define.amd)define(e)}(typeof exports==="object"?exports:typeof define===
 "function"&&define.amd?{}:semver={});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/semver.min.js.gz
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/semver.min.js.gz b/blackberry10/node_modules/plugman/node_modules/semver/semver.min.js.gz
deleted file mode 100644
index ef9cc01..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/semver/semver.min.js.gz and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/semver/test/amd.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/semver/test/amd.js b/blackberry10/node_modules/plugman/node_modules/semver/test/amd.js
deleted file mode 100644
index a604134..0000000
--- a/blackberry10/node_modules/plugman/node_modules/semver/test/amd.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var tap = require('tap');
-var test = tap.test;
-
-test('amd', function(t) {
-  global.define = define;
-  define.amd = true;
-  var defined = null;
-  function define(stuff) {
-    defined = stuff;
-  }
-  var fromRequire = require('../');
-  t.ok(defined, 'amd function called');
-  t.equal(fromRequire, defined, 'amd stuff same as require stuff');
-  t.end();
-});


[28/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/requirejs/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/requirejs/package.json b/blackberry10/node_modules/jasmine-node/node_modules/requirejs/package.json
deleted file mode 100644
index 294b055..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/requirejs/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "name": "requirejs",
-  "description": "Node adapter for RequireJS, for loading AMD modules. Includes RequireJS optimizer",
-  "version": "2.1.8",
-  "homepage": "http://github.com/jrburke/r.js",
-  "author": {
-    "name": "James Burke",
-    "email": "jrburke@gmail.com",
-    "url": "http://github.com/jrburke"
-  },
-  "licenses": [
-    {
-      "type": "BSD",
-      "url": "https://github.com/jrburke/r.js/blob/master/LICENSE"
-    },
-    {
-      "type": "MIT",
-      "url": "https://github.com/jrburke/r.js/blob/master/LICENSE"
-    }
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jrburke/r.js.git"
-  },
-  "main": "./bin/r.js",
-  "bin": {
-    "r.js": "./bin/r.js"
-  },
-  "engines": {
-    "node": ">=0.4.0"
-  },
-  "readme": "# requirejs\n\nRequireJS for use in Node. includes:\n\n* r.js: the RequireJS optimizer, and AMD runtime for use in Node.\n* require.js: The browser-based AMD loader.\n\nMore information at http://requirejs.org\n\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/jrburke/r.js/issues"
-  },
-  "_id": "requirejs@2.1.8",
-  "dist": {
-    "shasum": "6a99e83b8f4b604288b7ed1ff2232581d299a723"
-  },
-  "_from": "requirejs@>=0.27.1",
-  "_resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.8.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/requirejs/require.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/requirejs/require.js b/blackberry10/node_modules/jasmine-node/node_modules/requirejs/require.js
deleted file mode 100644
index 52c2b07..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/requirejs/require.js
+++ /dev/null
@@ -1,2053 +0,0 @@
-/** vim: et:ts=4:sw=4:sts=4
- * @license RequireJS 2.1.8 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
- * Available via the MIT or new BSD license.
- * see: http://github.com/jrburke/requirejs for details
- */
-//Not using strict: uneven strict support in browsers, #392, and causes
-//problems with requirejs.exec()/transpiler plugins that may not be strict.
-/*jslint regexp: true, nomen: true, sloppy: true */
-/*global window, navigator, document, importScripts, setTimeout, opera */
-
-var requirejs, require, define;
-(function (global) {
-    var req, s, head, baseElement, dataMain, src,
-        interactiveScript, currentlyAddingScript, mainScript, subPath,
-        version = '2.1.8',
-        commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
-        cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
-        jsSuffixRegExp = /\.js$/,
-        currDirRegExp = /^\.\//,
-        op = Object.prototype,
-        ostring = op.toString,
-        hasOwn = op.hasOwnProperty,
-        ap = Array.prototype,
-        apsp = ap.splice,
-        isBrowser = !!(typeof window !== 'undefined' && navigator && window.document),
-        isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
-        //PS3 indicates loaded and complete, but need to wait for complete
-        //specifically. Sequence is 'loading', 'loaded', execution,
-        // then 'complete'. The UA check is unfortunate, but not sure how
-        //to feature test w/o causing perf issues.
-        readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ?
-                      /^complete$/ : /^(complete|loaded)$/,
-        defContextName = '_',
-        //Oh the tragedy, detecting opera. See the usage of isOpera for reason.
-        isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]',
-        contexts = {},
-        cfg = {},
-        globalDefQueue = [],
-        useInteractive = false;
-
-    function isFunction(it) {
-        return ostring.call(it) === '[object Function]';
-    }
-
-    function isArray(it) {
-        return ostring.call(it) === '[object Array]';
-    }
-
-    /**
-     * Helper function for iterating over an array. If the func returns
-     * a true value, it will break out of the loop.
-     */
-    function each(ary, func) {
-        if (ary) {
-            var i;
-            for (i = 0; i < ary.length; i += 1) {
-                if (ary[i] && func(ary[i], i, ary)) {
-                    break;
-                }
-            }
-        }
-    }
-
-    /**
-     * Helper function for iterating over an array backwards. If the func
-     * returns a true value, it will break out of the loop.
-     */
-    function eachReverse(ary, func) {
-        if (ary) {
-            var i;
-            for (i = ary.length - 1; i > -1; i -= 1) {
-                if (ary[i] && func(ary[i], i, ary)) {
-                    break;
-                }
-            }
-        }
-    }
-
-    function hasProp(obj, prop) {
-        return hasOwn.call(obj, prop);
-    }
-
-    function getOwn(obj, prop) {
-        return hasProp(obj, prop) && obj[prop];
-    }
-
-    /**
-     * Cycles over properties in an object and calls a function for each
-     * property value. If the function returns a truthy value, then the
-     * iteration is stopped.
-     */
-    function eachProp(obj, func) {
-        var prop;
-        for (prop in obj) {
-            if (hasProp(obj, prop)) {
-                if (func(obj[prop], prop)) {
-                    break;
-                }
-            }
-        }
-    }
-
-    /**
-     * Simple function to mix in properties from source into target,
-     * but only if target does not already have a property of the same name.
-     */
-    function mixin(target, source, force, deepStringMixin) {
-        if (source) {
-            eachProp(source, function (value, prop) {
-                if (force || !hasProp(target, prop)) {
-                    if (deepStringMixin && typeof value !== 'string') {
-                        if (!target[prop]) {
-                            target[prop] = {};
-                        }
-                        mixin(target[prop], value, force, deepStringMixin);
-                    } else {
-                        target[prop] = value;
-                    }
-                }
-            });
-        }
-        return target;
-    }
-
-    //Similar to Function.prototype.bind, but the 'this' object is specified
-    //first, since it is easier to read/figure out what 'this' will be.
-    function bind(obj, fn) {
-        return function () {
-            return fn.apply(obj, arguments);
-        };
-    }
-
-    function scripts() {
-        return document.getElementsByTagName('script');
-    }
-
-    function defaultOnError(err) {
-        throw err;
-    }
-
-    //Allow getting a global that expressed in
-    //dot notation, like 'a.b.c'.
-    function getGlobal(value) {
-        if (!value) {
-            return value;
-        }
-        var g = global;
-        each(value.split('.'), function (part) {
-            g = g[part];
-        });
-        return g;
-    }
-
-    /**
-     * Constructs an error with a pointer to an URL with more information.
-     * @param {String} id the error ID that maps to an ID on a web page.
-     * @param {String} message human readable error.
-     * @param {Error} [err] the original error, if there is one.
-     *
-     * @returns {Error}
-     */
-    function makeError(id, msg, err, requireModules) {
-        var e = new Error(msg + '\nhttp://requirejs.org/docs/errors.html#' + id);
-        e.requireType = id;
-        e.requireModules = requireModules;
-        if (err) {
-            e.originalError = err;
-        }
-        return e;
-    }
-
-    if (typeof define !== 'undefined') {
-        //If a define is already in play via another AMD loader,
-        //do not overwrite.
-        return;
-    }
-
-    if (typeof requirejs !== 'undefined') {
-        if (isFunction(requirejs)) {
-            //Do not overwrite and existing requirejs instance.
-            return;
-        }
-        cfg = requirejs;
-        requirejs = undefined;
-    }
-
-    //Allow for a require config object
-    if (typeof require !== 'undefined' && !isFunction(require)) {
-        //assume it is a config object.
-        cfg = require;
-        require = undefined;
-    }
-
-    function newContext(contextName) {
-        var inCheckLoaded, Module, context, handlers,
-            checkLoadedTimeoutId,
-            config = {
-                //Defaults. Do not set a default for map
-                //config to speed up normalize(), which
-                //will run faster if there is no default.
-                waitSeconds: 7,
-                baseUrl: './',
-                paths: {},
-                pkgs: {},
-                shim: {},
-                config: {}
-            },
-            registry = {},
-            //registry of just enabled modules, to speed
-            //cycle breaking code when lots of modules
-            //are registered, but not activated.
-            enabledRegistry = {},
-            undefEvents = {},
-            defQueue = [],
-            defined = {},
-            urlFetched = {},
-            requireCounter = 1,
-            unnormalizedCounter = 1;
-
-        /**
-         * Trims the . and .. from an array of path segments.
-         * It will keep a leading path segment if a .. will become
-         * the first path segment, to help with module name lookups,
-         * which act like paths, but can be remapped. But the end result,
-         * all paths that use this function should look normalized.
-         * NOTE: this method MODIFIES the input array.
-         * @param {Array} ary the array of path segments.
-         */
-        function trimDots(ary) {
-            var i, part;
-            for (i = 0; ary[i]; i += 1) {
-                part = ary[i];
-                if (part === '.') {
-                    ary.splice(i, 1);
-                    i -= 1;
-                } else if (part === '..') {
-                    if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {
-                        //End of the line. Keep at least one non-dot
-                        //path segment at the front so it can be mapped
-                        //correctly to disk. Otherwise, there is likely
-                        //no path mapping for a path starting with '..'.
-                        //This can still fail, but catches the most reasonable
-                        //uses of ..
-                        break;
-                    } else if (i > 0) {
-                        ary.splice(i - 1, 2);
-                        i -= 2;
-                    }
-                }
-            }
-        }
-
-        /**
-         * Given a relative module name, like ./something, normalize it to
-         * a real name that can be mapped to a path.
-         * @param {String} name the relative name
-         * @param {String} baseName a real name that the name arg is relative
-         * to.
-         * @param {Boolean} applyMap apply the map config to the value. Should
-         * only be done if this normalization is for a dependency ID.
-         * @returns {String} normalized name
-         */
-        function normalize(name, baseName, applyMap) {
-            var pkgName, pkgConfig, mapValue, nameParts, i, j, nameSegment,
-                foundMap, foundI, foundStarMap, starI,
-                baseParts = baseName && baseName.split('/'),
-                normalizedBaseParts = baseParts,
-                map = config.map,
-                starMap = map && map['*'];
-
-            //Adjust any relative paths.
-            if (name && name.charAt(0) === '.') {
-                //If have a base name, try to normalize against it,
-                //otherwise, assume it is a top-level require that will
-                //be relative to baseUrl in the end.
-                if (baseName) {
-                    if (getOwn(config.pkgs, baseName)) {
-                        //If the baseName is a package name, then just treat it as one
-                        //name to concat the name with.
-                        normalizedBaseParts = baseParts = [baseName];
-                    } else {
-                        //Convert baseName to array, and lop off the last part,
-                        //so that . matches that 'directory' and not name of the baseName's
-                        //module. For instance, baseName of 'one/two/three', maps to
-                        //'one/two/three.js', but we want the directory, 'one/two' for
-                        //this normalization.
-                        normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
-                    }
-
-                    name = normalizedBaseParts.concat(name.split('/'));
-                    trimDots(name);
-
-                    //Some use of packages may use a . path to reference the
-                    //'main' module name, so normalize for that.
-                    pkgConfig = getOwn(config.pkgs, (pkgName = name[0]));
-                    name = name.join('/');
-                    if (pkgConfig && name === pkgName + '/' + pkgConfig.main) {
-                        name = pkgName;
-                    }
-                } else if (name.indexOf('./') === 0) {
-                    // No baseName, so this is ID is resolved relative
-                    // to baseUrl, pull off the leading dot.
-                    name = name.substring(2);
-                }
-            }
-
-            //Apply map config if available.
-            if (applyMap && map && (baseParts || starMap)) {
-                nameParts = name.split('/');
-
-                for (i = nameParts.length; i > 0; i -= 1) {
-                    nameSegment = nameParts.slice(0, i).join('/');
-
-                    if (baseParts) {
-                        //Find the longest baseName segment match in the config.
-                        //So, do joins on the biggest to smallest lengths of baseParts.
-                        for (j = baseParts.length; j > 0; j -= 1) {
-                            mapValue = getOwn(map, baseParts.slice(0, j).join('/'));
-
-                            //baseName segment has config, find if it has one for
-                            //this name.
-                            if (mapValue) {
-                                mapValue = getOwn(mapValue, nameSegment);
-                                if (mapValue) {
-                                    //Match, update name to the new value.
-                                    foundMap = mapValue;
-                                    foundI = i;
-                                    break;
-                                }
-                            }
-                        }
-                    }
-
-                    if (foundMap) {
-                        break;
-                    }
-
-                    //Check for a star map match, but just hold on to it,
-                    //if there is a shorter segment match later in a matching
-                    //config, then favor over this star map.
-                    if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {
-                        foundStarMap = getOwn(starMap, nameSegment);
-                        starI = i;
-                    }
-                }
-
-                if (!foundMap && foundStarMap) {
-                    foundMap = foundStarMap;
-                    foundI = starI;
-                }
-
-                if (foundMap) {
-                    nameParts.splice(0, foundI, foundMap);
-                    name = nameParts.join('/');
-                }
-            }
-
-            return name;
-        }
-
-        function removeScript(name) {
-            if (isBrowser) {
-                each(scripts(), function (scriptNode) {
-                    if (scriptNode.getAttribute('data-requiremodule') === name &&
-                            scriptNode.getAttribute('data-requirecontext') === context.contextName) {
-                        scriptNode.parentNode.removeChild(scriptNode);
-                        return true;
-                    }
-                });
-            }
-        }
-
-        function hasPathFallback(id) {
-            var pathConfig = getOwn(config.paths, id);
-            if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {
-                removeScript(id);
-                //Pop off the first array value, since it failed, and
-                //retry
-                pathConfig.shift();
-                context.require.undef(id);
-                context.require([id]);
-                return true;
-            }
-        }
-
-        //Turns a plugin!resource to [plugin, resource]
-        //with the plugin being undefined if the name
-        //did not have a plugin prefix.
-        function splitPrefix(name) {
-            var prefix,
-                index = name ? name.indexOf('!') : -1;
-            if (index > -1) {
-                prefix = name.substring(0, index);
-                name = name.substring(index + 1, name.length);
-            }
-            return [prefix, name];
-        }
-
-        /**
-         * Creates a module mapping that includes plugin prefix, module
-         * name, and path. If parentModuleMap is provided it will
-         * also normalize the name via require.normalize()
-         *
-         * @param {String} name the module name
-         * @param {String} [parentModuleMap] parent module map
-         * for the module name, used to resolve relative names.
-         * @param {Boolean} isNormalized: is the ID already normalized.
-         * This is true if this call is done for a define() module ID.
-         * @param {Boolean} applyMap: apply the map config to the ID.
-         * Should only be true if this map is for a dependency.
-         *
-         * @returns {Object}
-         */
-        function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {
-            var url, pluginModule, suffix, nameParts,
-                prefix = null,
-                parentName = parentModuleMap ? parentModuleMap.name : null,
-                originalName = name,
-                isDefine = true,
-                normalizedName = '';
-
-            //If no name, then it means it is a require call, generate an
-            //internal name.
-            if (!name) {
-                isDefine = false;
-                name = '_@r' + (requireCounter += 1);
-            }
-
-            nameParts = splitPrefix(name);
-            prefix = nameParts[0];
-            name = nameParts[1];
-
-            if (prefix) {
-                prefix = normalize(prefix, parentName, applyMap);
-                pluginModule = getOwn(defined, prefix);
-            }
-
-            //Account for relative paths if there is a base name.
-            if (name) {
-                if (prefix) {
-                    if (pluginModule && pluginModule.normalize) {
-                        //Plugin is loaded, use its normalize method.
-                        normalizedName = pluginModule.normalize(name, function (name) {
-                            return normalize(name, parentName, applyMap);
-                        });
-                    } else {
-                        normalizedName = normalize(name, parentName, applyMap);
-                    }
-                } else {
-                    //A regular module.
-                    normalizedName = normalize(name, parentName, applyMap);
-
-                    //Normalized name may be a plugin ID due to map config
-                    //application in normalize. The map config values must
-                    //already be normalized, so do not need to redo that part.
-                    nameParts = splitPrefix(normalizedName);
-                    prefix = nameParts[0];
-                    normalizedName = nameParts[1];
-                    isNormalized = true;
-
-                    url = context.nameToUrl(normalizedName);
-                }
-            }
-
-            //If the id is a plugin id that cannot be determined if it needs
-            //normalization, stamp it with a unique ID so two matching relative
-            //ids that may conflict can be separate.
-            suffix = prefix && !pluginModule && !isNormalized ?
-                     '_unnormalized' + (unnormalizedCounter += 1) :
-                     '';
-
-            return {
-                prefix: prefix,
-                name: normalizedName,
-                parentMap: parentModuleMap,
-                unnormalized: !!suffix,
-                url: url,
-                originalName: originalName,
-                isDefine: isDefine,
-                id: (prefix ?
-                        prefix + '!' + normalizedName :
-                        normalizedName) + suffix
-            };
-        }
-
-        function getModule(depMap) {
-            var id = depMap.id,
-                mod = getOwn(registry, id);
-
-            if (!mod) {
-                mod = registry[id] = new context.Module(depMap);
-            }
-
-            return mod;
-        }
-
-        function on(depMap, name, fn) {
-            var id = depMap.id,
-                mod = getOwn(registry, id);
-
-            if (hasProp(defined, id) &&
-                    (!mod || mod.defineEmitComplete)) {
-                if (name === 'defined') {
-                    fn(defined[id]);
-                }
-            } else {
-                mod = getModule(depMap);
-                if (mod.error && name === 'error') {
-                    fn(mod.error);
-                } else {
-                    mod.on(name, fn);
-                }
-            }
-        }
-
-        function onError(err, errback) {
-            var ids = err.requireModules,
-                notified = false;
-
-            if (errback) {
-                errback(err);
-            } else {
-                each(ids, function (id) {
-                    var mod = getOwn(registry, id);
-                    if (mod) {
-                        //Set error on module, so it skips timeout checks.
-                        mod.error = err;
-                        if (mod.events.error) {
-                            notified = true;
-                            mod.emit('error', err);
-                        }
-                    }
-                });
-
-                if (!notified) {
-                    req.onError(err);
-                }
-            }
-        }
-
-        /**
-         * Internal method to transfer globalQueue items to this context's
-         * defQueue.
-         */
-        function takeGlobalQueue() {
-            //Push all the globalDefQueue items into the context's defQueue
-            if (globalDefQueue.length) {
-                //Array splice in the values since the context code has a
-                //local var ref to defQueue, so cannot just reassign the one
-                //on context.
-                apsp.apply(defQueue,
-                           [defQueue.length - 1, 0].concat(globalDefQueue));
-                globalDefQueue = [];
-            }
-        }
-
-        handlers = {
-            'require': function (mod) {
-                if (mod.require) {
-                    return mod.require;
-                } else {
-                    return (mod.require = context.makeRequire(mod.map));
-                }
-            },
-            'exports': function (mod) {
-                mod.usingExports = true;
-                if (mod.map.isDefine) {
-                    if (mod.exports) {
-                        return mod.exports;
-                    } else {
-                        return (mod.exports = defined[mod.map.id] = {});
-                    }
-                }
-            },
-            'module': function (mod) {
-                if (mod.module) {
-                    return mod.module;
-                } else {
-                    return (mod.module = {
-                        id: mod.map.id,
-                        uri: mod.map.url,
-                        config: function () {
-                            var c,
-                                pkg = getOwn(config.pkgs, mod.map.id);
-                            // For packages, only support config targeted
-                            // at the main module.
-                            c = pkg ? getOwn(config.config, mod.map.id + '/' + pkg.main) :
-                                      getOwn(config.config, mod.map.id);
-                            return  c || {};
-                        },
-                        exports: defined[mod.map.id]
-                    });
-                }
-            }
-        };
-
-        function cleanRegistry(id) {
-            //Clean up machinery used for waiting modules.
-            delete registry[id];
-            delete enabledRegistry[id];
-        }
-
-        function breakCycle(mod, traced, processed) {
-            var id = mod.map.id;
-
-            if (mod.error) {
-                mod.emit('error', mod.error);
-            } else {
-                traced[id] = true;
-                each(mod.depMaps, function (depMap, i) {
-                    var depId = depMap.id,
-                        dep = getOwn(registry, depId);
-
-                    //Only force things that have not completed
-                    //being defined, so still in the registry,
-                    //and only if it has not been matched up
-                    //in the module already.
-                    if (dep && !mod.depMatched[i] && !processed[depId]) {
-                        if (getOwn(traced, depId)) {
-                            mod.defineDep(i, defined[depId]);
-                            mod.check(); //pass false?
-                        } else {
-                            breakCycle(dep, traced, processed);
-                        }
-                    }
-                });
-                processed[id] = true;
-            }
-        }
-
-        function checkLoaded() {
-            var map, modId, err, usingPathFallback,
-                waitInterval = config.waitSeconds * 1000,
-                //It is possible to disable the wait interval by using waitSeconds of 0.
-                expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),
-                noLoads = [],
-                reqCalls = [],
-                stillLoading = false,
-                needCycleCheck = true;
-
-            //Do not bother if this call was a result of a cycle break.
-            if (inCheckLoaded) {
-                return;
-            }
-
-            inCheckLoaded = true;
-
-            //Figure out the state of all the modules.
-            eachProp(enabledRegistry, function (mod) {
-                map = mod.map;
-                modId = map.id;
-
-                //Skip things that are not enabled or in error state.
-                if (!mod.enabled) {
-                    return;
-                }
-
-                if (!map.isDefine) {
-                    reqCalls.push(mod);
-                }
-
-                if (!mod.error) {
-                    //If the module should be executed, and it has not
-                    //been inited and time is up, remember it.
-                    if (!mod.inited && expired) {
-                        if (hasPathFallback(modId)) {
-                            usingPathFallback = true;
-                            stillLoading = true;
-                        } else {
-                            noLoads.push(modId);
-                            removeScript(modId);
-                        }
-                    } else if (!mod.inited && mod.fetched && map.isDefine) {
-                        stillLoading = true;
-                        if (!map.prefix) {
-                            //No reason to keep looking for unfinished
-                            //loading. If the only stillLoading is a
-                            //plugin resource though, keep going,
-                            //because it may be that a plugin resource
-                            //is waiting on a non-plugin cycle.
-                            return (needCycleCheck = false);
-                        }
-                    }
-                }
-            });
-
-            if (expired && noLoads.length) {
-                //If wait time expired, throw error of unloaded modules.
-                err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads);
-                err.contextName = context.contextName;
-                return onError(err);
-            }
-
-            //Not expired, check for a cycle.
-            if (needCycleCheck) {
-                each(reqCalls, function (mod) {
-                    breakCycle(mod, {}, {});
-                });
-            }
-
-            //If still waiting on loads, and the waiting load is something
-            //other than a plugin resource, or there are still outstanding
-            //scripts, then just try back later.
-            if ((!expired || usingPathFallback) && stillLoading) {
-                //Something is still waiting to load. Wait for it, but only
-                //if a timeout is not already in effect.
-                if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {
-                    checkLoadedTimeoutId = setTimeout(function () {
-                        checkLoadedTimeoutId = 0;
-                        checkLoaded();
-                    }, 50);
-                }
-            }
-
-            inCheckLoaded = false;
-        }
-
-        Module = function (map) {
-            this.events = getOwn(undefEvents, map.id) || {};
-            this.map = map;
-            this.shim = getOwn(config.shim, map.id);
-            this.depExports = [];
-            this.depMaps = [];
-            this.depMatched = [];
-            this.pluginMaps = {};
-            this.depCount = 0;
-
-            /* this.exports this.factory
-               this.depMaps = [],
-               this.enabled, this.fetched
-            */
-        };
-
-        Module.prototype = {
-            init: function (depMaps, factory, errback, options) {
-                options = options || {};
-
-                //Do not do more inits if already done. Can happen if there
-                //are multiple define calls for the same module. That is not
-                //a normal, common case, but it is also not unexpected.
-                if (this.inited) {
-                    return;
-                }
-
-                this.factory = factory;
-
-                if (errback) {
-                    //Register for errors on this module.
-                    this.on('error', errback);
-                } else if (this.events.error) {
-                    //If no errback already, but there are error listeners
-                    //on this module, set up an errback to pass to the deps.
-                    errback = bind(this, function (err) {
-                        this.emit('error', err);
-                    });
-                }
-
-                //Do a copy of the dependency array, so that
-                //source inputs are not modified. For example
-                //"shim" deps are passed in here directly, and
-                //doing a direct modification of the depMaps array
-                //would affect that config.
-                this.depMaps = depMaps && depMaps.slice(0);
-
-                this.errback = errback;
-
-                //Indicate this module has be initialized
-                this.inited = true;
-
-                this.ignore = options.ignore;
-
-                //Could have option to init this module in enabled mode,
-                //or could have been previously marked as enabled. However,
-                //the dependencies are not known until init is called. So
-                //if enabled previously, now trigger dependencies as enabled.
-                if (options.enabled || this.enabled) {
-                    //Enable this module and dependencies.
-                    //Will call this.check()
-                    this.enable();
-                } else {
-                    this.check();
-                }
-            },
-
-            defineDep: function (i, depExports) {
-                //Because of cycles, defined callback for a given
-                //export can be called more than once.
-                if (!this.depMatched[i]) {
-                    this.depMatched[i] = true;
-                    this.depCount -= 1;
-                    this.depExports[i] = depExports;
-                }
-            },
-
-            fetch: function () {
-                if (this.fetched) {
-                    return;
-                }
-                this.fetched = true;
-
-                context.startTime = (new Date()).getTime();
-
-                var map = this.map;
-
-                //If the manager is for a plugin managed resource,
-                //ask the plugin to load it now.
-                if (this.shim) {
-                    context.makeRequire(this.map, {
-                        enableBuildCallback: true
-                    })(this.shim.deps || [], bind(this, function () {
-                        return map.prefix ? this.callPlugin() : this.load();
-                    }));
-                } else {
-                    //Regular dependency.
-                    return map.prefix ? this.callPlugin() : this.load();
-                }
-            },
-
-            load: function () {
-                var url = this.map.url;
-
-                //Regular dependency.
-                if (!urlFetched[url]) {
-                    urlFetched[url] = true;
-                    context.load(this.map.id, url);
-                }
-            },
-
-            /**
-             * Checks if the module is ready to define itself, and if so,
-             * define it.
-             */
-            check: function () {
-                if (!this.enabled || this.enabling) {
-                    return;
-                }
-
-                var err, cjsModule,
-                    id = this.map.id,
-                    depExports = this.depExports,
-                    exports = this.exports,
-                    factory = this.factory;
-
-                if (!this.inited) {
-                    this.fetch();
-                } else if (this.error) {
-                    this.emit('error', this.error);
-                } else if (!this.defining) {
-                    //The factory could trigger another require call
-                    //that would result in checking this module to
-                    //define itself again. If already in the process
-                    //of doing that, skip this work.
-                    this.defining = true;
-
-                    if (this.depCount < 1 && !this.defined) {
-                        if (isFunction(factory)) {
-                            //If there is an error listener, favor passing
-                            //to that instead of throwing an error. However,
-                            //only do it for define()'d  modules. require
-                            //errbacks should not be called for failures in
-                            //their callbacks (#699). However if a global
-                            //onError is set, use that.
-                            if ((this.events.error && this.map.isDefine) ||
-                                req.onError !== defaultOnError) {
-                                try {
-                                    exports = context.execCb(id, factory, depExports, exports);
-                                } catch (e) {
-                                    err = e;
-                                }
-                            } else {
-                                exports = context.execCb(id, factory, depExports, exports);
-                            }
-
-                            if (this.map.isDefine) {
-                                //If setting exports via 'module' is in play,
-                                //favor that over return value and exports. After that,
-                                //favor a non-undefined return value over exports use.
-                                cjsModule = this.module;
-                                if (cjsModule &&
-                                        cjsModule.exports !== undefined &&
-                                        //Make sure it is not already the exports value
-                                        cjsModule.exports !== this.exports) {
-                                    exports = cjsModule.exports;
-                                } else if (exports === undefined && this.usingExports) {
-                                    //exports already set the defined value.
-                                    exports = this.exports;
-                                }
-                            }
-
-                            if (err) {
-                                err.requireMap = this.map;
-                                err.requireModules = this.map.isDefine ? [this.map.id] : null;
-                                err.requireType = this.map.isDefine ? 'define' : 'require';
-                                return onError((this.error = err));
-                            }
-
-                        } else {
-                            //Just a literal value
-                            exports = factory;
-                        }
-
-                        this.exports = exports;
-
-                        if (this.map.isDefine && !this.ignore) {
-                            defined[id] = exports;
-
-                            if (req.onResourceLoad) {
-                                req.onResourceLoad(context, this.map, this.depMaps);
-                            }
-                        }
-
-                        //Clean up
-                        cleanRegistry(id);
-
-                        this.defined = true;
-                    }
-
-                    //Finished the define stage. Allow calling check again
-                    //to allow define notifications below in the case of a
-                    //cycle.
-                    this.defining = false;
-
-                    if (this.defined && !this.defineEmitted) {
-                        this.defineEmitted = true;
-                        this.emit('defined', this.exports);
-                        this.defineEmitComplete = true;
-                    }
-
-                }
-            },
-
-            callPlugin: function () {
-                var map = this.map,
-                    id = map.id,
-                    //Map already normalized the prefix.
-                    pluginMap = makeModuleMap(map.prefix);
-
-                //Mark this as a dependency for this plugin, so it
-                //can be traced for cycles.
-                this.depMaps.push(pluginMap);
-
-                on(pluginMap, 'defined', bind(this, function (plugin) {
-                    var load, normalizedMap, normalizedMod,
-                        name = this.map.name,
-                        parentName = this.map.parentMap ? this.map.parentMap.name : null,
-                        localRequire = context.makeRequire(map.parentMap, {
-                            enableBuildCallback: true
-                        });
-
-                    //If current map is not normalized, wait for that
-                    //normalized name to load instead of continuing.
-                    if (this.map.unnormalized) {
-                        //Normalize the ID if the plugin allows it.
-                        if (plugin.normalize) {
-                            name = plugin.normalize(name, function (name) {
-                                return normalize(name, parentName, true);
-                            }) || '';
-                        }
-
-                        //prefix and name should already be normalized, no need
-                        //for applying map config again either.
-                        normalizedMap = makeModuleMap(map.prefix + '!' + name,
-                                                      this.map.parentMap);
-                        on(normalizedMap,
-                            'defined', bind(this, function (value) {
-                                this.init([], function () { return value; }, null, {
-                                    enabled: true,
-                                    ignore: true
-                                });
-                            }));
-
-                        normalizedMod = getOwn(registry, normalizedMap.id);
-                        if (normalizedMod) {
-                            //Mark this as a dependency for this plugin, so it
-                            //can be traced for cycles.
-                            this.depMaps.push(normalizedMap);
-
-                            if (this.events.error) {
-                                normalizedMod.on('error', bind(this, function (err) {
-                                    this.emit('error', err);
-                                }));
-                            }
-                            normalizedMod.enable();
-                        }
-
-                        return;
-                    }
-
-                    load = bind(this, function (value) {
-                        this.init([], function () { return value; }, null, {
-                            enabled: true
-                        });
-                    });
-
-                    load.error = bind(this, function (err) {
-                        this.inited = true;
-                        this.error = err;
-                        err.requireModules = [id];
-
-                        //Remove temp unnormalized modules for this module,
-                        //since they will never be resolved otherwise now.
-                        eachProp(registry, function (mod) {
-                            if (mod.map.id.indexOf(id + '_unnormalized') === 0) {
-                                cleanRegistry(mod.map.id);
-                            }
-                        });
-
-                        onError(err);
-                    });
-
-                    //Allow plugins to load other code without having to know the
-                    //context or how to 'complete' the load.
-                    load.fromText = bind(this, function (text, textAlt) {
-                        /*jslint evil: true */
-                        var moduleName = map.name,
-                            moduleMap = makeModuleMap(moduleName),
-                            hasInteractive = useInteractive;
-
-                        //As of 2.1.0, support just passing the text, to reinforce
-                        //fromText only being called once per resource. Still
-                        //support old style of passing moduleName but discard
-                        //that moduleName in favor of the internal ref.
-                        if (textAlt) {
-                            text = textAlt;
-                        }
-
-                        //Turn off interactive script matching for IE for any define
-                        //calls in the text, then turn it back on at the end.
-                        if (hasInteractive) {
-                            useInteractive = false;
-                        }
-
-                        //Prime the system by creating a module instance for
-                        //it.
-                        getModule(moduleMap);
-
-                        //Transfer any config to this other module.
-                        if (hasProp(config.config, id)) {
-                            config.config[moduleName] = config.config[id];
-                        }
-
-                        try {
-                            req.exec(text);
-                        } catch (e) {
-                            return onError(makeError('fromtexteval',
-                                             'fromText eval for ' + id +
-                                            ' failed: ' + e,
-                                             e,
-                                             [id]));
-                        }
-
-                        if (hasInteractive) {
-                            useInteractive = true;
-                        }
-
-                        //Mark this as a dependency for the plugin
-                        //resource
-                        this.depMaps.push(moduleMap);
-
-                        //Support anonymous modules.
-                        context.completeLoad(moduleName);
-
-                        //Bind the value of that module to the value for this
-                        //resource ID.
-                        localRequire([moduleName], load);
-                    });
-
-                    //Use parentName here since the plugin's name is not reliable,
-                    //could be some weird string with no path that actually wants to
-                    //reference the parentName's path.
-                    plugin.load(map.name, localRequire, load, config);
-                }));
-
-                context.enable(pluginMap, this);
-                this.pluginMaps[pluginMap.id] = pluginMap;
-            },
-
-            enable: function () {
-                enabledRegistry[this.map.id] = this;
-                this.enabled = true;
-
-                //Set flag mentioning that the module is enabling,
-                //so that immediate calls to the defined callbacks
-                //for dependencies do not trigger inadvertent load
-                //with the depCount still being zero.
-                this.enabling = true;
-
-                //Enable each dependency
-                each(this.depMaps, bind(this, function (depMap, i) {
-                    var id, mod, handler;
-
-                    if (typeof depMap === 'string') {
-                        //Dependency needs to be converted to a depMap
-                        //and wired up to this module.
-                        depMap = makeModuleMap(depMap,
-                                               (this.map.isDefine ? this.map : this.map.parentMap),
-                                               false,
-                                               !this.skipMap);
-                        this.depMaps[i] = depMap;
-
-                        handler = getOwn(handlers, depMap.id);
-
-                        if (handler) {
-                            this.depExports[i] = handler(this);
-                            return;
-                        }
-
-                        this.depCount += 1;
-
-                        on(depMap, 'defined', bind(this, function (depExports) {
-                            this.defineDep(i, depExports);
-                            this.check();
-                        }));
-
-                        if (this.errback) {
-                            on(depMap, 'error', bind(this, this.errback));
-                        }
-                    }
-
-                    id = depMap.id;
-                    mod = registry[id];
-
-                    //Skip special modules like 'require', 'exports', 'module'
-                    //Also, don't call enable if it is already enabled,
-                    //important in circular dependency cases.
-                    if (!hasProp(handlers, id) && mod && !mod.enabled) {
-                        context.enable(depMap, this);
-                    }
-                }));
-
-                //Enable each plugin that is used in
-                //a dependency
-                eachProp(this.pluginMaps, bind(this, function (pluginMap) {
-                    var mod = getOwn(registry, pluginMap.id);
-                    if (mod && !mod.enabled) {
-                        context.enable(pluginMap, this);
-                    }
-                }));
-
-                this.enabling = false;
-
-                this.check();
-            },
-
-            on: function (name, cb) {
-                var cbs = this.events[name];
-                if (!cbs) {
-                    cbs = this.events[name] = [];
-                }
-                cbs.push(cb);
-            },
-
-            emit: function (name, evt) {
-                each(this.events[name], function (cb) {
-                    cb(evt);
-                });
-                if (name === 'error') {
-                    //Now that the error handler was triggered, remove
-                    //the listeners, since this broken Module instance
-                    //can stay around for a while in the registry.
-                    delete this.events[name];
-                }
-            }
-        };
-
-        function callGetModule(args) {
-            //Skip modules already defined.
-            if (!hasProp(defined, args[0])) {
-                getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);
-            }
-        }
-
-        function removeListener(node, func, name, ieName) {
-            //Favor detachEvent because of IE9
-            //issue, see attachEvent/addEventListener comment elsewhere
-            //in this file.
-            if (node.detachEvent && !isOpera) {
-                //Probably IE. If not it will throw an error, which will be
-                //useful to know.
-                if (ieName) {
-                    node.detachEvent(ieName, func);
-                }
-            } else {
-                node.removeEventListener(name, func, false);
-            }
-        }
-
-        /**
-         * Given an event from a script node, get the requirejs info from it,
-         * and then removes the event listeners on the node.
-         * @param {Event} evt
-         * @returns {Object}
-         */
-        function getScriptData(evt) {
-            //Using currentTarget instead of target for Firefox 2.0's sake. Not
-            //all old browsers will be supported, but this one was easy enough
-            //to support and still makes sense.
-            var node = evt.currentTarget || evt.srcElement;
-
-            //Remove the listeners once here.
-            removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange');
-            removeListener(node, context.onScriptError, 'error');
-
-            return {
-                node: node,
-                id: node && node.getAttribute('data-requiremodule')
-            };
-        }
-
-        function intakeDefines() {
-            var args;
-
-            //Any defined modules in the global queue, intake them now.
-            takeGlobalQueue();
-
-            //Make sure any remaining defQueue items get properly processed.
-            while (defQueue.length) {
-                args = defQueue.shift();
-                if (args[0] === null) {
-                    return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' + args[args.length - 1]));
-                } else {
-                    //args are id, deps, factory. Should be normalized by the
-                    //define() function.
-                    callGetModule(args);
-                }
-            }
-        }
-
-        context = {
-            config: config,
-            contextName: contextName,
-            registry: registry,
-            defined: defined,
-            urlFetched: urlFetched,
-            defQueue: defQueue,
-            Module: Module,
-            makeModuleMap: makeModuleMap,
-            nextTick: req.nextTick,
-            onError: onError,
-
-            /**
-             * Set a configuration for the context.
-             * @param {Object} cfg config object to integrate.
-             */
-            configure: function (cfg) {
-                //Make sure the baseUrl ends in a slash.
-                if (cfg.baseUrl) {
-                    if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
-                        cfg.baseUrl += '/';
-                    }
-                }
-
-                //Save off the paths and packages since they require special processing,
-                //they are additive.
-                var pkgs = config.pkgs,
-                    shim = config.shim,
-                    objs = {
-                        paths: true,
-                        config: true,
-                        map: true
-                    };
-
-                eachProp(cfg, function (value, prop) {
-                    if (objs[prop]) {
-                        if (prop === 'map') {
-                            if (!config.map) {
-                                config.map = {};
-                            }
-                            mixin(config[prop], value, true, true);
-                        } else {
-                            mixin(config[prop], value, true);
-                        }
-                    } else {
-                        config[prop] = value;
-                    }
-                });
-
-                //Merge shim
-                if (cfg.shim) {
-                    eachProp(cfg.shim, function (value, id) {
-                        //Normalize the structure
-                        if (isArray(value)) {
-                            value = {
-                                deps: value
-                            };
-                        }
-                        if ((value.exports || value.init) && !value.exportsFn) {
-                            value.exportsFn = context.makeShimExports(value);
-                        }
-                        shim[id] = value;
-                    });
-                    config.shim = shim;
-                }
-
-                //Adjust packages if necessary.
-                if (cfg.packages) {
-                    each(cfg.packages, function (pkgObj) {
-                        var location;
-
-                        pkgObj = typeof pkgObj === 'string' ? { name: pkgObj } : pkgObj;
-                        location = pkgObj.location;
-
-                        //Create a brand new object on pkgs, since currentPackages can
-                        //be passed in again, and config.pkgs is the internal transformed
-                        //state for all package configs.
-                        pkgs[pkgObj.name] = {
-                            name: pkgObj.name,
-                            location: location || pkgObj.name,
-                            //Remove leading dot in main, so main paths are normalized,
-                            //and remove any trailing .js, since different package
-                            //envs have different conventions: some use a module name,
-                            //some use a file name.
-                            main: (pkgObj.main || 'main')
-                                  .replace(currDirRegExp, '')
-                                  .replace(jsSuffixRegExp, '')
-                        };
-                    });
-
-                    //Done with modifications, assing packages back to context config
-                    config.pkgs = pkgs;
-                }
-
-                //If there are any "waiting to execute" modules in the registry,
-                //update the maps for them, since their info, like URLs to load,
-                //may have changed.
-                eachProp(registry, function (mod, id) {
-                    //If module already has init called, since it is too
-                    //late to modify them, and ignore unnormalized ones
-                    //since they are transient.
-                    if (!mod.inited && !mod.map.unnormalized) {
-                        mod.map = makeModuleMap(id);
-                    }
-                });
-
-                //If a deps array or a config callback is specified, then call
-                //require with those args. This is useful when require is defined as a
-                //config object before require.js is loaded.
-                if (cfg.deps || cfg.callback) {
-                    context.require(cfg.deps || [], cfg.callback);
-                }
-            },
-
-            makeShimExports: function (value) {
-                function fn() {
-                    var ret;
-                    if (value.init) {
-                        ret = value.init.apply(global, arguments);
-                    }
-                    return ret || (value.exports && getGlobal(value.exports));
-                }
-                return fn;
-            },
-
-            makeRequire: function (relMap, options) {
-                options = options || {};
-
-                function localRequire(deps, callback, errback) {
-                    var id, map, requireMod;
-
-                    if (options.enableBuildCallback && callback && isFunction(callback)) {
-                        callback.__requireJsBuild = true;
-                    }
-
-                    if (typeof deps === 'string') {
-                        if (isFunction(callback)) {
-                            //Invalid call
-                            return onError(makeError('requireargs', 'Invalid require call'), errback);
-                        }
-
-                        //If require|exports|module are requested, get the
-                        //value for them from the special handlers. Caveat:
-                        //this only works while module is being defined.
-                        if (relMap && hasProp(handlers, deps)) {
-                            return handlers[deps](registry[relMap.id]);
-                        }
-
-                        //Synchronous access to one module. If require.get is
-                        //available (as in the Node adapter), prefer that.
-                        if (req.get) {
-                            return req.get(context, deps, relMap, localRequire);
-                        }
-
-                        //Normalize module name, if it contains . or ..
-                        map = makeModuleMap(deps, relMap, false, true);
-                        id = map.id;
-
-                        if (!hasProp(defined, id)) {
-                            return onError(makeError('notloaded', 'Module name "' +
-                                        id +
-                                        '" has not been loaded yet for context: ' +
-                                        contextName +
-                                        (relMap ? '' : '. Use require([])')));
-                        }
-                        return defined[id];
-                    }
-
-                    //Grab defines waiting in the global queue.
-                    intakeDefines();
-
-                    //Mark all the dependencies as needing to be loaded.
-                    context.nextTick(function () {
-                        //Some defines could have been added since the
-                        //require call, collect them.
-                        intakeDefines();
-
-                        requireMod = getModule(makeModuleMap(null, relMap));
-
-                        //Store if map config should be applied to this require
-                        //call for dependencies.
-                        requireMod.skipMap = options.skipMap;
-
-                        requireMod.init(deps, callback, errback, {
-                            enabled: true
-                        });
-
-                        checkLoaded();
-                    });
-
-                    return localRequire;
-                }
-
-                mixin(localRequire, {
-                    isBrowser: isBrowser,
-
-                    /**
-                     * Converts a module name + .extension into an URL path.
-                     * *Requires* the use of a module name. It does not support using
-                     * plain URLs like nameToUrl.
-                     */
-                    toUrl: function (moduleNamePlusExt) {
-                        var ext,
-                            index = moduleNamePlusExt.lastIndexOf('.'),
-                            segment = moduleNamePlusExt.split('/')[0],
-                            isRelative = segment === '.' || segment === '..';
-
-                        //Have a file extension alias, and it is not the
-                        //dots from a relative path.
-                        if (index !== -1 && (!isRelative || index > 1)) {
-                            ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);
-                            moduleNamePlusExt = moduleNamePlusExt.substring(0, index);
-                        }
-
-                        return context.nameToUrl(normalize(moduleNamePlusExt,
-                                                relMap && relMap.id, true), ext,  true);
-                    },
-
-                    defined: function (id) {
-                        return hasProp(defined, makeModuleMap(id, relMap, false, true).id);
-                    },
-
-                    specified: function (id) {
-                        id = makeModuleMap(id, relMap, false, true).id;
-                        return hasProp(defined, id) || hasProp(registry, id);
-                    }
-                });
-
-                //Only allow undef on top level require calls
-                if (!relMap) {
-                    localRequire.undef = function (id) {
-                        //Bind any waiting define() calls to this context,
-                        //fix for #408
-                        takeGlobalQueue();
-
-                        var map = makeModuleMap(id, relMap, true),
-                            mod = getOwn(registry, id);
-
-                        delete defined[id];
-                        delete urlFetched[map.url];
-                        delete undefEvents[id];
-
-                        if (mod) {
-                            //Hold on to listeners in case the
-                            //module will be attempted to be reloaded
-                            //using a different config.
-                            if (mod.events.defined) {
-                                undefEvents[id] = mod.events;
-                            }
-
-                            cleanRegistry(id);
-                        }
-                    };
-                }
-
-                return localRequire;
-            },
-
-            /**
-             * Called to enable a module if it is still in the registry
-             * awaiting enablement. A second arg, parent, the parent module,
-             * is passed in for context, when this method is overriden by
-             * the optimizer. Not shown here to keep code compact.
-             */
-            enable: function (depMap) {
-                var mod = getOwn(registry, depMap.id);
-                if (mod) {
-                    getModule(depMap).enable();
-                }
-            },
-
-            /**
-             * Internal method used by environment adapters to complete a load event.
-             * A load event could be a script load or just a load pass from a synchronous
-             * load call.
-             * @param {String} moduleName the name of the module to potentially complete.
-             */
-            completeLoad: function (moduleName) {
-                var found, args, mod,
-                    shim = getOwn(config.shim, moduleName) || {},
-                    shExports = shim.exports;
-
-                takeGlobalQueue();
-
-                while (defQueue.length) {
-                    args = defQueue.shift();
-                    if (args[0] === null) {
-                        args[0] = moduleName;
-                        //If already found an anonymous module and bound it
-                        //to this name, then this is some other anon module
-                        //waiting for its completeLoad to fire.
-                        if (found) {
-                            break;
-                        }
-                        found = true;
-                    } else if (args[0] === moduleName) {
-                        //Found matching define call for this script!
-                        found = true;
-                    }
-
-                    callGetModule(args);
-                }
-
-                //Do this after the cycle of callGetModule in case the result
-                //of those calls/init calls changes the registry.
-                mod = getOwn(registry, moduleName);
-
-                if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {
-                    if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {
-                        if (hasPathFallback(moduleName)) {
-                            return;
-                        } else {
-                            return onError(makeError('nodefine',
-                                             'No define call for ' + moduleName,
-                                             null,
-                                             [moduleName]));
-                        }
-                    } else {
-                        //A script that does not call define(), so just simulate
-                        //the call for it.
-                        callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);
-                    }
-                }
-
-                checkLoaded();
-            },
-
-            /**
-             * Converts a module name to a file path. Supports cases where
-             * moduleName may actually be just an URL.
-             * Note that it **does not** call normalize on the moduleName,
-             * it is assumed to have already been normalized. This is an
-             * internal API, not a public one. Use toUrl for the public API.
-             */
-            nameToUrl: function (moduleName, ext, skipExt) {
-                var paths, pkgs, pkg, pkgPath, syms, i, parentModule, url,
-                    parentPath;
-
-                //If a colon is in the URL, it indicates a protocol is used and it is just
-                //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)
-                //or ends with .js, then assume the user meant to use an url and not a module id.
-                //The slash is important for protocol-less URLs as well as full paths.
-                if (req.jsExtRegExp.test(moduleName)) {
-                    //Just a plain path, not module name lookup, so just return it.
-                    //Add extension if it is included. This is a bit wonky, only non-.js things pass
-                    //an extension, this method probably needs to be reworked.
-                    url = moduleName + (ext || '');
-                } else {
-                    //A module that needs to be converted to a path.
-                    paths = config.paths;
-                    pkgs = config.pkgs;
-
-                    syms = moduleName.split('/');
-                    //For each module name segment, see if there is a path
-                    //registered for it. Start with most specific name
-                    //and work up from it.
-                    for (i = syms.length; i > 0; i -= 1) {
-                        parentModule = syms.slice(0, i).join('/');
-                        pkg = getOwn(pkgs, parentModule);
-                        parentPath = getOwn(paths, parentModule);
-                        if (parentPath) {
-                            //If an array, it means there are a few choices,
-                            //Choose the one that is desired
-                            if (isArray(parentPath)) {
-                                parentPath = parentPath[0];
-                            }
-                            syms.splice(0, i, parentPath);
-                            break;
-                        } else if (pkg) {
-                            //If module name is just the package name, then looking
-                            //for the main module.
-                            if (moduleName === pkg.name) {
-                                pkgPath = pkg.location + '/' + pkg.main;
-                            } else {
-                                pkgPath = pkg.location;
-                            }
-                            syms.splice(0, i, pkgPath);
-                            break;
-                        }
-                    }
-
-                    //Join the path parts together, then figure out if baseUrl is needed.
-                    url = syms.join('/');
-                    url += (ext || (/\?/.test(url) || skipExt ? '' : '.js'));
-                    url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url;
-                }
-
-                return config.urlArgs ? url +
-                                        ((url.indexOf('?') === -1 ? '?' : '&') +
-                                         config.urlArgs) : url;
-            },
-
-            //Delegates to req.load. Broken out as a separate function to
-            //allow overriding in the optimizer.
-            load: function (id, url) {
-                req.load(context, id, url);
-            },
-
-            /**
-             * Executes a module callback function. Broken out as a separate function
-             * solely to allow the build system to sequence the files in the built
-             * layer in the right sequence.
-             *
-             * @private
-             */
-            execCb: function (name, callback, args, exports) {
-                return callback.apply(exports, args);
-            },
-
-            /**
-             * callback for script loads, used to check status of loading.
-             *
-             * @param {Event} evt the event from the browser for the script
-             * that was loaded.
-             */
-            onScriptLoad: function (evt) {
-                //Using currentTarget instead of target for Firefox 2.0's sake. Not
-                //all old browsers will be supported, but this one was easy enough
-                //to support and still makes sense.
-                if (evt.type === 'load' ||
-                        (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {
-                    //Reset interactive script so a script node is not held onto for
-                    //to long.
-                    interactiveScript = null;
-
-                    //Pull out the name of the module and the context.
-                    var data = getScriptData(evt);
-                    context.completeLoad(data.id);
-                }
-            },
-
-            /**
-             * Callback for script errors.
-             */
-            onScriptError: function (evt) {
-                var data = getScriptData(evt);
-                if (!hasPathFallback(data.id)) {
-                    return onError(makeError('scripterror', 'Script error for: ' + data.id, evt, [data.id]));
-                }
-            }
-        };
-
-        context.require = context.makeRequire();
-        return context;
-    }
-
-    /**
-     * Main entry point.
-     *
-     * If the only argument to require is a string, then the module that
-     * is represented by that string is fetched for the appropriate context.
-     *
-     * If the first argument is an array, then it will be treated as an array
-     * of dependency string names to fetch. An optional function callback can
-     * be specified to execute when all of those dependencies are available.
-     *
-     * Make a local req variable to help Caja compliance (it assumes things
-     * on a require that are not standardized), and to give a short
-     * name for minification/local scope use.
-     */
-    req = requirejs = function (deps, callback, errback, optional) {
-
-        //Find the right context, use default
-        var context, config,
-            contextName = defContextName;
-
-        // Determine if have config object in the call.
-        if (!isArray(deps) && typeof deps !== 'string') {
-            // deps is a config object
-            config = deps;
-            if (isArray(callback)) {
-                // Adjust args if there are dependencies
-                deps = callback;
-                callback = errback;
-                errback = optional;
-            } else {
-                deps = [];
-            }
-        }
-
-        if (config && config.context) {
-            contextName = config.context;
-        }
-
-        context = getOwn(contexts, contextName);
-        if (!context) {
-            context = contexts[contextName] = req.s.newContext(contextName);
-        }
-
-        if (config) {
-            context.configure(config);
-        }
-
-        return context.require(deps, callback, errback);
-    };
-
-    /**
-     * Support require.config() to make it easier to cooperate with other
-     * AMD loaders on globally agreed names.
-     */
-    req.config = function (config) {
-        return req(config);
-    };
-
-    /**
-     * Execute something after the current tick
-     * of the event loop. Override for other envs
-     * that have a better solution than setTimeout.
-     * @param  {Function} fn function to execute later.
-     */
-    req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
-        setTimeout(fn, 4);
-    } : function (fn) { fn(); };
-
-    /**
-     * Export require as a global, but only if it does not already exist.
-     */
-    if (!require) {
-        require = req;
-    }
-
-    req.version = version;
-
-    //Used to filter out dependencies that are already paths.
-    req.jsExtRegExp = /^\/|:|\?|\.js$/;
-    req.isBrowser = isBrowser;
-    s = req.s = {
-        contexts: contexts,
-        newContext: newContext
-    };
-
-    //Create default context.
-    req({});
-
-    //Exports some context-sensitive methods on global require.
-    each([
-        'toUrl',
-        'undef',
-        'defined',
-        'specified'
-    ], function (prop) {
-        //Reference from contexts instead of early binding to default context,
-        //so that during builds, the latest instance of the default context
-        //with its config gets used.
-        req[prop] = function () {
-            var ctx = contexts[defContextName];
-            return ctx.require[prop].apply(ctx, arguments);
-        };
-    });
-
-    if (isBrowser) {
-        head = s.head = document.getElementsByTagName('head')[0];
-        //If BASE tag is in play, using appendChild is a problem for IE6.
-        //When that browser dies, this can be removed. Details in this jQuery bug:
-        //http://dev.jquery.com/ticket/2709
-        baseElement = document.getElementsByTagName('base')[0];
-        if (baseElement) {
-            head = s.head = baseElement.parentNode;
-        }
-    }
-
-    /**
-     * Any errors that require explicitly generates will be passed to this
-     * function. Intercept/override it if you want custom error handling.
-     * @param {Error} err the error object.
-     */
-    req.onError = defaultOnError;
-
-    /**
-     * Creates the node for the load command. Only used in browser envs.
-     */
-    req.createNode = function (config, moduleName, url) {
-        var node = config.xhtml ?
-                document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') :
-                document.createElement('script');
-        node.type = config.scriptType || 'text/javascript';
-        node.charset = 'utf-8';
-        node.async = true;
-        return node;
-    };
-
-    /**
-     * Does the request to load a module for the browser case.
-     * Make this a separate function to allow other environments
-     * to override it.
-     *
-     * @param {Object} context the require context to find state.
-     * @param {String} moduleName the name of the module.
-     * @param {Object} url the URL to the module.
-     */
-    req.load = function (context, moduleName, url) {
-        var config = (context && context.config) || {},
-            node;
-        if (isBrowser) {
-            //In the browser so use a script tag
-            node = req.createNode(config, moduleName, url);
-
-            node.setAttribute('data-requirecontext', context.contextName);
-            node.setAttribute('data-requiremodule', moduleName);
-
-            //Set up load listener. Test attachEvent first because IE9 has
-            //a subtle issue in its addEventListener and script onload firings
-            //that do not match the behavior of all other browsers with
-            //addEventListener support, which fire the onload event for a
-            //script right after the script execution. See:
-            //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution
-            //UNFORTUNATELY Opera implements attachEvent but does not follow the script
-            //script execution mode.
-            if (node.attachEvent &&
-                    //Check if node.attachEvent is artificially added by custom script or
-                    //natively supported by browser
-                    //read https://github.com/jrburke/requirejs/issues/187
-                    //if we can NOT find [native code] then it must NOT natively supported.
-                    //in IE8, node.attachEvent does not have toString()
-                    //Note the test for "[native code" with no closing brace, see:
-                    //https://github.com/jrburke/requirejs/issues/273
-                    !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&
-                    !isOpera) {
-                //Probably IE. IE (at least 6-8) do not fire
-                //script onload right after executing the script, so
-                //we cannot tie the anonymous define call to a name.
-                //However, IE reports the script as being in 'interactive'
-                //readyState at the time of the define call.
-                useInteractive = true;
-
-                node.attachEvent('onreadystatechange', context.onScriptLoad);
-                //It would be great to add an error handler here to catch
-                //404s in IE9+. However, onreadystatechange will fire before
-                //the error handler, so that does not help. If addEventListener
-                //is used, then IE will fire error before load, but we cannot
-                //use that pathway given the connect.microsoft.com issue
-                //mentioned above about not doing the 'script execute,
-                //then fire the script load event listener before execute
-                //next script' that other browsers do.
-                //Best hope: IE10 fixes the issues,
-                //and then destroys all installs of IE 6-9.
-                //node.attachEvent('onerror', context.onScriptError);
-            } else {
-                node.addEventListener('load', context.onScriptLoad, false);
-                node.addEventListener('error', context.onScriptError, false);
-            }
-            node.src = url;
-
-            //For some cache cases in IE 6-8, the script executes before the end
-            //of the appendChild execution, so to tie an anonymous define
-            //call to the module name (which is stored on the node), hold on
-            //to a reference to this node, but clear after the DOM insertion.
-            currentlyAddingScript = node;
-            if (baseElement) {
-                head.insertBefore(node, baseElement);
-            } else {
-                head.appendChild(node);
-            }
-            currentlyAddingScript = null;
-
-            return node;
-        } else if (isWebWorker) {
-            try {
-                //In a web worker, use importScripts. This is not a very
-                //efficient use of importScripts, importScripts will block until
-                //its script is downloaded and evaluated. However, if web workers
-                //are in play, the expectation that a build has been done so that
-                //only one script needs to be loaded anyway. This may need to be
-                //reevaluated if other use cases become common.
-                importScripts(url);
-
-                //Account for anonymous modules
-                context.completeLoad(moduleName);
-            } catch (e) {
-                context.onError(makeError('importscripts',
-                                'importScripts failed for ' +
-                                    moduleName + ' at ' + url,
-                                e,
-                                [moduleName]));
-            }
-        }
-    };
-
-    function getInteractiveScript() {
-        if (interactiveScript && interactiveScript.readyState === 'interactive') {
-            return interactiveScript;
-        }
-
-        eachReverse(scripts(), function (script) {
-            if (script.readyState === 'interactive') {
-                return (interactiveScript = script);
-            }
-        });
-        return interactiveScript;
-    }
-
-    //Look for a data-main script attribute, which could also adjust the baseUrl.
-    if (isBrowser) {
-        //Figure out baseUrl. Get it from the script tag with require.js in it.
-        eachReverse(scripts(), function (script) {
-            //Set the 'head' where we can append children by
-            //using the script's parent.
-            if (!head) {
-                head = script.parentNode;
-            }
-
-            //Look for a data-main attribute to set main script for the page
-            //to load. If it is there, the path to data main becomes the
-            //baseUrl, if it is not already set.
-            dataMain = script.getAttribute('data-main');
-            if (dataMain) {
-                //Preserve dataMain in case it is a path (i.e. contains '?')
-                mainScript = dataMain;
-
-                //Set final baseUrl if there is not already an explicit one.
-                if (!cfg.baseUrl) {
-                    //Pull off the directory of data-main for use as the
-                    //baseUrl.
-                    src = mainScript.split('/');
-                    mainScript = src.pop();
-                    subPath = src.length ? src.join('/')  + '/' : './';
-
-                    cfg.baseUrl = subPath;
-                }
-
-                //Strip off any trailing .js since mainScript is now
-                //like a module name.
-                mainScript = mainScript.replace(jsSuffixRegExp, '');
-
-                 //If mainScript is still a path, fall back to dataMain
-                if (req.jsExtRegExp.test(mainScript)) {
-                    mainScript = dataMain;
-                }
-
-                //Put the data-main script in the files to load.
-                cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript];
-
-                return true;
-            }
-        });
-    }
-
-    /**
-     * The function that handles definitions of modules. Differs from
-     * require() in that a string for the module should be the first argument,
-     * and the function to execute after dependencies are loaded should
-     * return a value to define the module corresponding to the first argument's
-     * name.
-     */
-    define = function (name, deps, callback) {
-        var node, context;
-
-        //Allow for anonymous modules
-        if (typeof name !== 'string') {
-            //Adjust args appropriately
-            callback = deps;
-            deps = name;
-            name = null;
-        }
-
-        //This module may not have dependencies
-        if (!isArray(deps)) {
-            callback = deps;
-            deps = null;
-        }
-
-        //If no name, and callback is a function, then figure out if it a
-        //CommonJS thing with dependencies.
-        if (!deps && isFunction(callback)) {
-            deps = [];
-            //Remove comments from the callback string,
-            //look for require calls, and pull them into the dependencies,
-            //but only if there are function args.
-            if (callback.length) {
-                callback
-                    .toString()
-                    .replace(commentRegExp, '')
-                    .replace(cjsRequireRegExp, function (match, dep) {
-                        deps.push(dep);
-                    });
-
-                //May be a CommonJS thing even without require calls, but still
-                //could use exports, and module. Avoid doing exports and module
-                //work though if it just needs require.
-                //REQUIRES the function to expect the CommonJS variables in the
-                //order listed below.
-                deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps);
-            }
-        }
-
-        //If in IE 6-8 and hit an anonymous define() call, do the interactive
-        //work.
-        if (useInteractive) {
-            node = currentlyAddingScript || getInteractiveScript();
-            if (node) {
-                if (!name) {
-                    name = node.getAttribute('data-requiremodule');
-                }
-                context = contexts[node.getAttribute('data-requirecontext')];
-            }
-        }
-
-        //Always save off evaluating the def call until the script onload handler.
-        //This allows multiple modules to be in a file without prematurely
-        //tracing dependencies, and allows for anonymous module support,
-        //where the module name is not known until the script onload event
-        //occurs. If no context, use the global queue, and get it processed
-        //in the onscript load callback.
-        (context ? context.defQueue : globalDefQueue).push([name, deps, callback]);
-    };
-
-    define.amd = {
-        jQuery: true
-    };
-
-
-    /**
-     * Executes the text. Normally just uses eval, but can be modified
-     * to use a better, environment-specific call. Only used for transpiling
-     * loader plugins, not for plain JS modules.
-     * @param {String} text the text to execute/evaluate.
-     */
-    req.exec = function (text) {
-        /*jslint evil: true */
-        return eval(text);
-    };
-
-    //Set up with config info.
-    req(cfg);
-}(this));

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/underscore/.npmignore
deleted file mode 100644
index cfff910..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-test/
-Rakefile
-docs/
-raw/
-index.html
-underscore-min.js

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/.travis.yml b/blackberry10/node_modules/jasmine-node/node_modules/underscore/.travis.yml
deleted file mode 100644
index 99dc771..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-notifications:
-  email: false

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/underscore/CNAME
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/underscore/CNAME b/blackberry10/node_modules/jasmine-node/node_modules/underscore/CNAME
deleted file mode 100644
index a007e65..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/underscore/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-underscorejs.org


[31/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine-html.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine-html.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine-html.js
deleted file mode 100644
index c59f2de..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine-html.js
+++ /dev/null
@@ -1,182 +0,0 @@
-jasmine.TrivialReporter = function(doc) {
-  this.document = doc || document;
-  this.suiteDivs = {};
-  this.logRunningSpecs = false;
-};
-
-jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
-  var el = document.createElement(type);
-
-  for (var i = 2; i < arguments.length; i++) {
-    var child = arguments[i];
-
-    if (typeof child === 'string') {
-      el.appendChild(document.createTextNode(child));
-    } else {
-      if (child) { el.appendChild(child); }
-    }
-  }
-
-  for (var attr in attrs) {
-    if (attr == "className") {
-      el[attr] = attrs[attr];
-    } else {
-      el.setAttribute(attr, attrs[attr]);
-    }
-  }
-
-  return el;
-};
-
-jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
-  var showPassed, showSkipped;
-
-  this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
-      this.createDom('div', { className: 'banner' },
-        this.createDom('div', { className: 'logo' },
-            this.createDom('a', { href: 'http://pivotal.github.com/jasmine/', target: "_blank" }, "Jasmine"),
-            this.createDom('span', { className: 'version' }, runner.env.versionString())),
-        this.createDom('div', { className: 'options' },
-            "Show ",
-            showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
-            this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
-            showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
-            this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
-            )
-          ),
-
-      this.runnerDiv = this.createDom('div', { className: 'runner running' },
-          this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
-          this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
-          this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
-      );
-
-  this.document.body.appendChild(this.outerDiv);
-
-  var suites = runner.suites();
-  for (var i = 0; i < suites.length; i++) {
-    var suite = suites[i];
-    var suiteDiv = this.createDom('div', { className: 'suite' },
-        this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
-        this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
-    this.suiteDivs[suite.id] = suiteDiv;
-    var parentDiv = this.outerDiv;
-    if (suite.parentSuite) {
-      parentDiv = this.suiteDivs[suite.parentSuite.id];
-    }
-    parentDiv.appendChild(suiteDiv);
-  }
-
-  this.startedAt = new Date();
-
-  var self = this;
-  showPassed.onchange = function(evt) {
-    if (evt.target.checked) {
-      self.outerDiv.className += ' show-passed';
-    } else {
-      self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
-    }
-  };
-
-  showSkipped.onchange = function(evt) {
-    if (evt.target.checked) {
-      self.outerDiv.className += ' show-skipped';
-    } else {
-      self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
-    }
-  };
-};
-
-jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
-  var results = runner.results();
-  var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
-  this.runnerDiv.setAttribute("class", className);
-  //do it twice for IE
-  this.runnerDiv.setAttribute("className", className);
-  var specs = runner.specs();
-  var specCount = 0;
-  for (var i = 0; i < specs.length; i++) {
-    if (this.specFilter(specs[i])) {
-      specCount++;
-    }
-  }
-  var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
-  message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
-  this.runnerMessageSpan.replaceChild(this.createDom('a', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
-
-  this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
-};
-
-jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
-  var results = suite.results();
-  var status = results.passed() ? 'passed' : 'failed';
-  if (results.totalCount == 0) { // todo: change this to check results.skipped
-    status = 'skipped';
-  }
-  this.suiteDivs[suite.id].className += " " + status;
-};
-
-jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
-  if (this.logRunningSpecs) {
-    this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
-  }
-};
-
-jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
-  var results = spec.results();
-  var status = results.passed() ? 'passed' : 'failed';
-  if (results.skipped) {
-    status = 'skipped';
-  }
-  var specDiv = this.createDom('div', { className: 'spec '  + status },
-      this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
-      this.createDom('a', {
-        className: 'description',
-        href: '?spec=' + encodeURIComponent(spec.getFullName()),
-        title: spec.getFullName()
-      }, spec.description));
-
-
-  var resultItems = results.getItems();
-  var messagesDiv = this.createDom('div', { className: 'messages' });
-  for (var i = 0; i < resultItems.length; i++) {
-    var result = resultItems[i];
-
-    if (result.type == 'log') {
-      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
-    } else if (result.type == 'expect' && result.passed && !result.passed()) {
-      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
-
-      if (result.trace.stack) {
-        messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
-      }
-    }
-  }
-
-  if (messagesDiv.childNodes.length > 0) {
-    specDiv.appendChild(messagesDiv);
-  }
-
-  this.suiteDivs[spec.suite.id].appendChild(specDiv);
-};
-
-jasmine.TrivialReporter.prototype.log = function() {
-  var console = jasmine.getGlobal().console;
-  if (console && console.log) console.log.apply(console, arguments);
-};
-
-jasmine.TrivialReporter.prototype.getLocation = function() {
-  return this.document.location;
-};
-
-jasmine.TrivialReporter.prototype.specFilter = function(spec) {
-  var paramMap = {};
-  var params = this.getLocation().search.substring(1).split('&');
-  for (var i = 0; i < params.length; i++) {
-    var p = params[i].split('=');
-    paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
-  }
-
-  if (!paramMap["spec"]) return true;
-  return spec.getFullName().indexOf(paramMap["spec"]) == 0;
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine.css
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine.css b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine.css
deleted file mode 100644
index 6583fe7..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine.css
+++ /dev/null
@@ -1,166 +0,0 @@
-body {
-  font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
-}
-
-
-.jasmine_reporter a:visited, .jasmine_reporter a {
-  color: #303; 
-}
-
-.jasmine_reporter a:hover, .jasmine_reporter a:active {
-  color: blue; 
-}
-
-.run_spec {
-  float:right;
-  padding-right: 5px;
-  font-size: .8em;
-  text-decoration: none;
-}
-
-.jasmine_reporter {
-  margin: 0 5px;
-}
-
-.banner {
-  color: #303;
-  background-color: #fef;
-  padding: 5px;
-}
-
-.logo {
-  float: left;
-  font-size: 1.1em;
-  padding-left: 5px;
-}
-
-.logo .version {
-  font-size: .6em;
-  padding-left: 1em;
-}
-
-.runner.running {
-  background-color: yellow;
-}
-
-
-.options {
-  text-align: right;
-  font-size: .8em;
-}
-
-
-
-
-.suite {
-  border: 1px outset gray;
-  margin: 5px 0;
-  padding-left: 1em;
-}
-
-.suite .suite {
-  margin: 5px; 
-}
-
-.suite.passed {
-  background-color: #dfd;
-}
-
-.suite.failed {
-  background-color: #fdd;
-}
-
-.spec {
-  margin: 5px;
-  padding-left: 1em;
-  clear: both;
-}
-
-.spec.failed, .spec.passed, .spec.skipped {
-  padding-bottom: 5px;
-  border: 1px solid gray;
-}
-
-.spec.failed {
-  background-color: #fbb;
-  border-color: red;
-}
-
-.spec.passed {
-  background-color: #bfb;
-  border-color: green;
-}
-
-.spec.skipped {
-  background-color: #bbb;
-}
-
-.messages {
-  border-left: 1px dashed gray;
-  padding-left: 1em;
-  padding-right: 1em;
-}
-
-.passed {
-  background-color: #cfc;
-  display: none;
-}
-
-.failed {
-  background-color: #fbb;
-}
-
-.skipped {
-  color: #777;
-  background-color: #eee;
-  display: none;
-}
-
-
-/*.resultMessage {*/
-  /*white-space: pre;*/
-/*}*/
-
-.resultMessage span.result {
-  display: block;
-  line-height: 2em;
-  color: black;
-}
-
-.resultMessage .mismatch {
-  color: black;
-}
-
-.stackTrace {
-  white-space: pre;
-  font-size: .8em;
-  margin-left: 10px;
-  max-height: 5em;
-  overflow: auto;
-  border: 1px inset red;
-  padding: 1em;
-  background: #eef;
-}
-
-.finished-at {
-  padding-left: 1em;
-  font-size: .6em;
-}
-
-.show-passed .passed,
-.show-skipped .skipped {
-  display: block;
-}
-
-
-#jasmine_content {
-  position:fixed;
-  right: 100%;
-}
-
-.runner {
-  border: 1px solid gray;
-  display: block;
-  margin: 5px 0;
-  padding: 2px 0 2px 10px;
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine.js
deleted file mode 100644
index 68baf53..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jasmine.js
+++ /dev/null
@@ -1,2421 +0,0 @@
-/**
- * Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework.
- *
- * @namespace
- */
-var jasmine = {};
-
-/**
- * @private
- */
-jasmine.unimplementedMethod_ = function() {
-  throw new Error("unimplemented method");
-};
-
-/**
- * Use <code>jasmine.undefined</code> instead of <code>undefined</code>, since <code>undefined</code> is just
- * a plain old variable and may be redefined by somebody else.
- *
- * @private
- */
-jasmine.undefined = jasmine.___undefined___;
-
-/**
- * Default interval in milliseconds for event loop yields (e.g. to allow network activity or to refresh the screen with the HTML-based runner). Small values here may result in slow test running. Zero means no updates until all tests have completed.
- *
- */
-jasmine.DEFAULT_UPDATE_INTERVAL = 250;
-
-/**
- * Default timeout interval in milliseconds for waitsFor() blocks.
- */
-jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000;
-
-jasmine.getGlobal = function() {
-  function getGlobal() {
-    return this;
-  }
-
-  return getGlobal();
-};
-
-/**
- * Allows for bound functions to be compared.  Internal use only.
- *
- * @ignore
- * @private
- * @param base {Object} bound 'this' for the function
- * @param name {Function} function to find
- */
-jasmine.bindOriginal_ = function(base, name) {
-  var original = base[name];
-  if (original.apply) {
-    return function() {
-      return original.apply(base, arguments);
-    };
-  } else {
-    // IE support
-    return jasmine.getGlobal()[name];
-  }
-};
-
-jasmine.setTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'setTimeout');
-jasmine.clearTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearTimeout');
-jasmine.setInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'setInterval');
-jasmine.clearInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearInterval');
-
-jasmine.MessageResult = function(values) {
-  this.type = 'log';
-  this.values = values;
-  this.trace = new Error(); // todo: test better
-};
-
-jasmine.MessageResult.prototype.toString = function() {
-  var text = "";
-  for(var i = 0; i < this.values.length; i++) {
-    if (i > 0) text += " ";
-    if (jasmine.isString_(this.values[i])) {
-      text += this.values[i];
-    } else {
-      text += jasmine.pp(this.values[i]);
-    }
-  }
-  return text;
-};
-
-jasmine.ExpectationResult = function(params) {
-  this.type = 'expect';
-  this.matcherName = params.matcherName;
-  this.passed_ = params.passed;
-  this.expected = params.expected;
-  this.actual = params.actual;
-
-  this.message = this.passed_ ? 'Passed.' : params.message;
-  this.trace = this.passed_ ? '' : new Error(this.message);
-};
-
-jasmine.ExpectationResult.prototype.toString = function () {
-  return this.message;
-};
-
-jasmine.ExpectationResult.prototype.passed = function () {
-  return this.passed_;
-};
-
-/**
- * Getter for the Jasmine environment. Ensures one gets created
- */
-jasmine.getEnv = function() {
-  return jasmine.currentEnv_ = jasmine.currentEnv_ || new jasmine.Env();
-};
-
-/**
- * @ignore
- * @private
- * @param value
- * @returns {Boolean}
- */
-jasmine.isArray_ = function(value) {
-  return jasmine.isA_("Array", value);  
-};
-
-/**
- * @ignore
- * @private
- * @param value
- * @returns {Boolean}
- */
-jasmine.isString_ = function(value) {
-  return jasmine.isA_("String", value);
-};
-
-/**
- * @ignore
- * @private
- * @param value
- * @returns {Boolean}
- */
-jasmine.isNumber_ = function(value) {
-  return jasmine.isA_("Number", value);
-};
-
-/**
- * @ignore
- * @private
- * @param {String} typeName
- * @param value
- * @returns {Boolean}
- */
-jasmine.isA_ = function(typeName, value) {
-  return Object.prototype.toString.apply(value) === '[object ' + typeName + ']';
-};
-
-/**
- * Pretty printer for expecations.  Takes any object and turns it into a human-readable string.
- *
- * @param value {Object} an object to be outputted
- * @returns {String}
- */
-jasmine.pp = function(value) {
-  var stringPrettyPrinter = new jasmine.StringPrettyPrinter();
-  stringPrettyPrinter.format(value);
-  return stringPrettyPrinter.string;
-};
-
-/**
- * Returns true if the object is a DOM Node.
- *
- * @param {Object} obj object to check
- * @returns {Boolean}
- */
-jasmine.isDomNode = function(obj) {
-  return obj['nodeType'] > 0;
-};
-
-/**
- * Returns a matchable 'generic' object of the class type.  For use in expecations of type when values don't matter.
- *
- * @example
- * // don't care about which function is passed in, as long as it's a function
- * expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function));
- *
- * @param {Class} clazz
- * @returns matchable object of the type clazz
- */
-jasmine.any = function(clazz) {
-  return new jasmine.Matchers.Any(clazz);
-};
-
-/**
- * Jasmine Spies are test doubles that can act as stubs, spies, fakes or when used in an expecation, mocks.
- *
- * Spies should be created in test setup, before expectations.  They can then be checked, using the standard Jasmine
- * expectation syntax. Spies can be checked if they were called or not and what the calling params were.
- *
- * A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs).
- *
- * Spies are torn down at the end of every spec.
- *
- * Note: Do <b>not</b> call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
- *
- * @example
- * // a stub
- * var myStub = jasmine.createSpy('myStub');  // can be used anywhere
- *
- * // spy example
- * var foo = {
- *   not: function(bool) { return !bool; }
- * }
- *
- * // actual foo.not will not be called, execution stops
- * spyOn(foo, 'not');
-
- // foo.not spied upon, execution will continue to implementation
- * spyOn(foo, 'not').andCallThrough();
- *
- * // fake example
- * var foo = {
- *   not: function(bool) { return !bool; }
- * }
- *
- * // foo.not(val) will return val
- * spyOn(foo, 'not').andCallFake(function(value) {return value;});
- *
- * // mock example
- * foo.not(7 == 7);
- * expect(foo.not).toHaveBeenCalled();
- * expect(foo.not).toHaveBeenCalledWith(true);
- *
- * @constructor
- * @see spyOn, jasmine.createSpy, jasmine.createSpyObj
- * @param {String} name
- */
-jasmine.Spy = function(name) {
-  /**
-   * The name of the spy, if provided.
-   */
-  this.identity = name || 'unknown';
-  /**
-   *  Is this Object a spy?
-   */
-  this.isSpy = true;
-  /**
-   * The actual function this spy stubs.
-   */
-  this.plan = function() {
-  };
-  /**
-   * Tracking of the most recent call to the spy.
-   * @example
-   * var mySpy = jasmine.createSpy('foo');
-   * mySpy(1, 2);
-   * mySpy.mostRecentCall.args = [1, 2];
-   */
-  this.mostRecentCall = {};
-
-  /**
-   * Holds arguments for each call to the spy, indexed by call count
-   * @example
-   * var mySpy = jasmine.createSpy('foo');
-   * mySpy(1, 2);
-   * mySpy(7, 8);
-   * mySpy.mostRecentCall.args = [7, 8];
-   * mySpy.argsForCall[0] = [1, 2];
-   * mySpy.argsForCall[1] = [7, 8];
-   */
-  this.argsForCall = [];
-  this.calls = [];
-};
-
-/**
- * Tells a spy to call through to the actual implemenatation.
- *
- * @example
- * var foo = {
- *   bar: function() { // do some stuff }
- * }
- *
- * // defining a spy on an existing property: foo.bar
- * spyOn(foo, 'bar').andCallThrough();
- */
-jasmine.Spy.prototype.andCallThrough = function() {
-  this.plan = this.originalValue;
-  return this;
-};
-
-/**
- * For setting the return value of a spy.
- *
- * @example
- * // defining a spy from scratch: foo() returns 'baz'
- * var foo = jasmine.createSpy('spy on foo').andReturn('baz');
- *
- * // defining a spy on an existing property: foo.bar() returns 'baz'
- * spyOn(foo, 'bar').andReturn('baz');
- *
- * @param {Object} value
- */
-jasmine.Spy.prototype.andReturn = function(value) {
-  this.plan = function() {
-    return value;
-  };
-  return this;
-};
-
-/**
- * For throwing an exception when a spy is called.
- *
- * @example
- * // defining a spy from scratch: foo() throws an exception w/ message 'ouch'
- * var foo = jasmine.createSpy('spy on foo').andThrow('baz');
- *
- * // defining a spy on an existing property: foo.bar() throws an exception w/ message 'ouch'
- * spyOn(foo, 'bar').andThrow('baz');
- *
- * @param {String} exceptionMsg
- */
-jasmine.Spy.prototype.andThrow = function(exceptionMsg) {
-  this.plan = function() {
-    throw exceptionMsg;
-  };
-  return this;
-};
-
-/**
- * Calls an alternate implementation when a spy is called.
- *
- * @example
- * var baz = function() {
- *   // do some stuff, return something
- * }
- * // defining a spy from scratch: foo() calls the function baz
- * var foo = jasmine.createSpy('spy on foo').andCall(baz);
- *
- * // defining a spy on an existing property: foo.bar() calls an anonymnous function
- * spyOn(foo, 'bar').andCall(function() { return 'baz';} );
- *
- * @param {Function} fakeFunc
- */
-jasmine.Spy.prototype.andCallFake = function(fakeFunc) {
-  this.plan = fakeFunc;
-  return this;
-};
-
-/**
- * Resets all of a spy's the tracking variables so that it can be used again.
- *
- * @example
- * spyOn(foo, 'bar');
- *
- * foo.bar();
- *
- * expect(foo.bar.callCount).toEqual(1);
- *
- * foo.bar.reset();
- *
- * expect(foo.bar.callCount).toEqual(0);
- */
-jasmine.Spy.prototype.reset = function() {
-  this.wasCalled = false;
-  this.callCount = 0;
-  this.argsForCall = [];
-  this.calls = [];
-  this.mostRecentCall = {};
-};
-
-jasmine.createSpy = function(name) {
-
-  var spyObj = function() {
-    spyObj.wasCalled = true;
-    spyObj.callCount++;
-    var args = jasmine.util.argsToArray(arguments);
-    spyObj.mostRecentCall.object = this;
-    spyObj.mostRecentCall.args = args;
-    spyObj.argsForCall.push(args);
-    spyObj.calls.push({object: this, args: args});
-    return spyObj.plan.apply(this, arguments);
-  };
-
-  var spy = new jasmine.Spy(name);
-
-  for (var prop in spy) {
-    spyObj[prop] = spy[prop];
-  }
-
-  spyObj.reset();
-
-  return spyObj;
-};
-
-/**
- * Determines whether an object is a spy.
- *
- * @param {jasmine.Spy|Object} putativeSpy
- * @returns {Boolean}
- */
-jasmine.isSpy = function(putativeSpy) {
-  return putativeSpy && putativeSpy.isSpy;
-};
-
-/**
- * Creates a more complicated spy: an Object that has every property a function that is a spy.  Used for stubbing something
- * large in one call.
- *
- * @param {String} baseName name of spy class
- * @param {Array} methodNames array of names of methods to make spies
- */
-jasmine.createSpyObj = function(baseName, methodNames) {
-  if (!jasmine.isArray_(methodNames) || methodNames.length == 0) {
-    throw new Error('createSpyObj requires a non-empty array of method names to create spies for');
-  }
-  var obj = {};
-  for (var i = 0; i < methodNames.length; i++) {
-    obj[methodNames[i]] = jasmine.createSpy(baseName + '.' + methodNames[i]);
-  }
-  return obj;
-};
-
-/**
- * All parameters are pretty-printed and concatenated together, then written to the current spec's output.
- *
- * Be careful not to leave calls to <code>jasmine.log</code> in production code.
- */
-jasmine.log = function() {
-  var spec = jasmine.getEnv().currentSpec;
-  spec.log.apply(spec, arguments);
-};
-
-/**
- * Function that installs a spy on an existing object's method name.  Used within a Spec to create a spy.
- *
- * @example
- * // spy example
- * var foo = {
- *   not: function(bool) { return !bool; }
- * }
- * spyOn(foo, 'not'); // actual foo.not will not be called, execution stops
- *
- * @see jasmine.createSpy
- * @param obj
- * @param methodName
- * @returns a Jasmine spy that can be chained with all spy methods
- */
-var spyOn = function(obj, methodName) {
-  return jasmine.getEnv().currentSpec.spyOn(obj, methodName);
-};
-
-/**
- * Creates a Jasmine spec that will be added to the current suite.
- *
- * // TODO: pending tests
- *
- * @example
- * it('should be true', function() {
- *   expect(true).toEqual(true);
- * });
- *
- * @param {String} desc description of this specification
- * @param {Function} func defines the preconditions and expectations of the spec
- */
-var it = function(desc, func) {
-  return jasmine.getEnv().it(desc, func);
-};
-
-/**
- * Creates a <em>disabled</em> Jasmine spec.
- *
- * A convenience method that allows existing specs to be disabled temporarily during development.
- *
- * @param {String} desc description of this specification
- * @param {Function} func defines the preconditions and expectations of the spec
- */
-var xit = function(desc, func) {
-  return jasmine.getEnv().xit(desc, func);
-};
-
-/**
- * Starts a chain for a Jasmine expectation.
- *
- * It is passed an Object that is the actual value and should chain to one of the many
- * jasmine.Matchers functions.
- *
- * @param {Object} actual Actual value to test against and expected value
- */
-var expect = function(actual) {
-  return jasmine.getEnv().currentSpec.expect(actual);
-};
-
-/**
- * Defines part of a jasmine spec.  Used in cominbination with waits or waitsFor in asynchrnous specs.
- *
- * @param {Function} func Function that defines part of a jasmine spec.
- */
-var runs = function(func) {
-  jasmine.getEnv().currentSpec.runs(func);
-};
-
-/**
- * Waits a fixed time period before moving to the next block.
- *
- * @deprecated Use waitsFor() instead
- * @param {Number} timeout milliseconds to wait
- */
-var waits = function(timeout) {
-  jasmine.getEnv().currentSpec.waits(timeout);
-};
-
-/**
- * Waits for the latchFunction to return true before proceeding to the next block.
- *
- * @param {Function} latchFunction
- * @param {String} optional_timeoutMessage
- * @param {Number} optional_timeout
- */
-var waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
-  jasmine.getEnv().currentSpec.waitsFor.apply(jasmine.getEnv().currentSpec, arguments);
-};
-
-/**
- * A function that is called before each spec in a suite.
- *
- * Used for spec setup, including validating assumptions.
- *
- * @param {Function} beforeEachFunction
- */
-var beforeEach = function(beforeEachFunction) {
-  jasmine.getEnv().beforeEach(beforeEachFunction);
-};
-
-/**
- * A function that is called after each spec in a suite.
- *
- * Used for restoring any state that is hijacked during spec execution.
- *
- * @param {Function} afterEachFunction
- */
-var afterEach = function(afterEachFunction) {
-  jasmine.getEnv().afterEach(afterEachFunction);
-};
-
-/**
- * Defines a suite of specifications.
- *
- * Stores the description and all defined specs in the Jasmine environment as one suite of specs. Variables declared
- * are accessible by calls to beforeEach, it, and afterEach. Describe blocks can be nested, allowing for specialization
- * of setup in some tests.
- *
- * @example
- * // TODO: a simple suite
- *
- * // TODO: a simple suite with a nested describe block
- *
- * @param {String} description A string, usually the class under test.
- * @param {Function} specDefinitions function that defines several specs.
- */
-var describe = function(description, specDefinitions) {
-  return jasmine.getEnv().describe(description, specDefinitions);
-};
-
-/**
- * Disables a suite of specifications.  Used to disable some suites in a file, or files, temporarily during development.
- *
- * @param {String} description A string, usually the class under test.
- * @param {Function} specDefinitions function that defines several specs.
- */
-var xdescribe = function(description, specDefinitions) {
-  return jasmine.getEnv().xdescribe(description, specDefinitions);
-};
-
-
-// Provide the XMLHttpRequest class for IE 5.x-6.x:
-jasmine.XmlHttpRequest = (typeof XMLHttpRequest == "undefined") ? function() {
-  try {
-    return new ActiveXObject("Msxml2.XMLHTTP.6.0");
-  } catch(e) {
-  }
-  try {
-    return new ActiveXObject("Msxml2.XMLHTTP.3.0");
-  } catch(e) {
-  }
-  try {
-    return new ActiveXObject("Msxml2.XMLHTTP");
-  } catch(e) {
-  }
-  try {
-    return new ActiveXObject("Microsoft.XMLHTTP");
-  } catch(e) {
-  }
-  throw new Error("This browser does not support XMLHttpRequest.");
-} : XMLHttpRequest;
-/**
- * @namespace
- */
-jasmine.util = {};
-
-/**
- * Declare that a child class inherit it's prototype from the parent class.
- *
- * @private
- * @param {Function} childClass
- * @param {Function} parentClass
- */
-jasmine.util.inherit = function(childClass, parentClass) {
-  /**
-   * @private
-   */
-  var subclass = function() {
-  };
-  subclass.prototype = parentClass.prototype;
-  childClass.prototype = new subclass;
-};
-
-jasmine.util.formatException = function(e) {
-  var lineNumber;
-  if (e.line) {
-    lineNumber = e.line;
-  }
-  else if (e.lineNumber) {
-    lineNumber = e.lineNumber;
-  }
-
-  var file;
-
-  if (e.sourceURL) {
-    file = e.sourceURL;
-  }
-  else if (e.fileName) {
-    file = e.fileName;
-  }
-
-  var message = (e.name && e.message) ? (e.name + ': ' + e.message) : e.toString();
-
-  if (file && lineNumber) {
-    message += ' in ' + file + ' (line ' + lineNumber + ')';
-  }
-
-  return message;
-};
-
-jasmine.util.htmlEscape = function(str) {
-  if (!str) return str;
-  return str.replace(/&/g, '&amp;')
-    .replace(/</g, '&lt;')
-    .replace(/>/g, '&gt;');
-};
-
-jasmine.util.argsToArray = function(args) {
-  var arrayOfArgs = [];
-  for (var i = 0; i < args.length; i++) arrayOfArgs.push(args[i]);
-  return arrayOfArgs;
-};
-
-jasmine.util.extend = function(destination, source) {
-  for (var property in source) destination[property] = source[property];
-  return destination;
-};
-
-/**
- * Environment for Jasmine
- *
- * @constructor
- */
-jasmine.Env = function() {
-  this.currentSpec = null;
-  this.currentSuite = null;
-  this.currentRunner_ = new jasmine.Runner(this);
-
-  this.reporter = new jasmine.MultiReporter();
-
-  this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL;
-  this.defaultTimeoutInterval = jasmine.DEFAULT_TIMEOUT_INTERVAL;
-  this.lastUpdate = 0;
-  this.specFilter = function() {
-    return true;
-  };
-
-  this.nextSpecId_ = 0;
-  this.nextSuiteId_ = 0;
-  this.equalityTesters_ = [];
-
-  // wrap matchers
-  this.matchersClass = function() {
-    jasmine.Matchers.apply(this, arguments);
-  };
-  jasmine.util.inherit(this.matchersClass, jasmine.Matchers);
-
-  jasmine.Matchers.wrapInto_(jasmine.Matchers.prototype, this.matchersClass);
-};
-
-
-jasmine.Env.prototype.setTimeout = jasmine.setTimeout;
-jasmine.Env.prototype.clearTimeout = jasmine.clearTimeout;
-jasmine.Env.prototype.setInterval = jasmine.setInterval;
-jasmine.Env.prototype.clearInterval = jasmine.clearInterval;
-
-/**
- * @returns an object containing jasmine version build info, if set.
- */
-jasmine.Env.prototype.version = function () {
-  if (jasmine.version_) {
-    return jasmine.version_;
-  } else {
-    throw new Error('Version not set');
-  }
-};
-
-/**
- * @returns string containing jasmine version build info, if set.
- */
-jasmine.Env.prototype.versionString = function() {
-  if (jasmine.version_) {
-    var version = this.version();
-    return version.major + "." + version.minor + "." + version.build + " revision " + version.revision;
-  } else {
-    return "version unknown";
-  }
-};
-
-/**
- * @returns a sequential integer starting at 0
- */
-jasmine.Env.prototype.nextSpecId = function () {
-  return this.nextSpecId_++;
-};
-
-/**
- * @returns a sequential integer starting at 0
- */
-jasmine.Env.prototype.nextSuiteId = function () {
-  return this.nextSuiteId_++;
-};
-
-/**
- * Register a reporter to receive status updates from Jasmine.
- * @param {jasmine.Reporter} reporter An object which will receive status updates.
- */
-jasmine.Env.prototype.addReporter = function(reporter) {
-  this.reporter.addReporter(reporter);
-};
-
-jasmine.Env.prototype.execute = function() {
-  this.currentRunner_.execute();
-};
-
-jasmine.Env.prototype.describe = function(description, specDefinitions) {
-  var suite = new jasmine.Suite(this, description, specDefinitions, this.currentSuite);
-
-  var parentSuite = this.currentSuite;
-  if (parentSuite) {
-    parentSuite.add(suite);
-  } else {
-    this.currentRunner_.add(suite);
-  }
-
-  this.currentSuite = suite;
-
-  var declarationError = null;
-  try {
-    specDefinitions.call(suite);
-  } catch(e) {
-    declarationError = e;
-  }
-
-  this.currentSuite = parentSuite;
-
-  if (declarationError) {
-    this.it("encountered a declaration exception", function() {
-      throw declarationError;
-    });
-  }
-
-  return suite;
-};
-
-jasmine.Env.prototype.beforeEach = function(beforeEachFunction) {
-  if (this.currentSuite) {
-    this.currentSuite.beforeEach(beforeEachFunction);
-  } else {
-    this.currentRunner_.beforeEach(beforeEachFunction);
-  }
-};
-
-jasmine.Env.prototype.currentRunner = function () {
-  return this.currentRunner_;
-};
-
-jasmine.Env.prototype.afterEach = function(afterEachFunction) {
-  if (this.currentSuite) {
-    this.currentSuite.afterEach(afterEachFunction);
-  } else {
-    this.currentRunner_.afterEach(afterEachFunction);
-  }
-
-};
-
-jasmine.Env.prototype.xdescribe = function(desc, specDefinitions) {
-  return {
-    execute: function() {
-    }
-  };
-};
-
-jasmine.Env.prototype.it = function(description, func) {
-  var spec = new jasmine.Spec(this, this.currentSuite, description);
-  this.currentSuite.add(spec);
-  this.currentSpec = spec;
-
-  if (func) {
-    spec.runs(func);
-  }
-
-  return spec;
-};
-
-jasmine.Env.prototype.xit = function(desc, func) {
-  return {
-    id: this.nextSpecId(),
-    runs: function() {
-    }
-  };
-};
-
-jasmine.Env.prototype.compareObjects_ = function(a, b, mismatchKeys, mismatchValues) {
-  if (a.__Jasmine_been_here_before__ === b && b.__Jasmine_been_here_before__ === a) {
-    return true;
-  }
-
-  a.__Jasmine_been_here_before__ = b;
-  b.__Jasmine_been_here_before__ = a;
-
-  var hasKey = function(obj, keyName) {
-    return obj != null && obj[keyName] !== jasmine.undefined;
-  };
-
-  for (var property in b) {
-    if (!hasKey(a, property) && hasKey(b, property)) {
-      mismatchKeys.push("expected has key '" + property + "', but missing from actual.");
-    }
-  }
-  for (property in a) {
-    if (!hasKey(b, property) && hasKey(a, property)) {
-      mismatchKeys.push("expected missing key '" + property + "', but present in actual.");
-    }
-  }
-  for (property in b) {
-    if (property == '__Jasmine_been_here_before__') continue;
-    if (!this.equals_(a[property], b[property], mismatchKeys, mismatchValues)) {
-      mismatchValues.push("'" + property + "' was '" + (b[property] ? jasmine.util.htmlEscape(b[property].toString()) : b[property]) + "' in expected, but was '" + (a[property] ? jasmine.util.htmlEscape(a[property].toString()) : a[property]) + "' in actual.");
-    }
-  }
-
-  if (jasmine.isArray_(a) && jasmine.isArray_(b) && a.length != b.length) {
-    mismatchValues.push("arrays were not the same length");
-  }
-
-  delete a.__Jasmine_been_here_before__;
-  delete b.__Jasmine_been_here_before__;
-  return (mismatchKeys.length == 0 && mismatchValues.length == 0);
-};
-
-jasmine.Env.prototype.equals_ = function(a, b, mismatchKeys, mismatchValues) {
-  mismatchKeys = mismatchKeys || [];
-  mismatchValues = mismatchValues || [];
-
-  for (var i = 0; i < this.equalityTesters_.length; i++) {
-    var equalityTester = this.equalityTesters_[i];
-    var result = equalityTester(a, b, this, mismatchKeys, mismatchValues);
-    if (result !== jasmine.undefined) return result;
-  }
-
-  if (a === b) return true;
-
-  if (a === jasmine.undefined || a === null || b === jasmine.undefined || b === null) {
-    return (a == jasmine.undefined && b == jasmine.undefined);
-  }
-
-  if (jasmine.isDomNode(a) && jasmine.isDomNode(b)) {
-    return a === b;
-  }
-
-  if (a instanceof Date && b instanceof Date) {
-    return a.getTime() == b.getTime();
-  }
-
-  if (a instanceof jasmine.Matchers.Any) {
-    return a.matches(b);
-  }
-
-  if (b instanceof jasmine.Matchers.Any) {
-    return b.matches(a);
-  }
-
-  if (jasmine.isString_(a) && jasmine.isString_(b)) {
-    return (a == b);
-  }
-
-  if (jasmine.isNumber_(a) && jasmine.isNumber_(b)) {
-    return (a == b);
-  }
-
-  if (typeof a === "object" && typeof b === "object") {
-    return this.compareObjects_(a, b, mismatchKeys, mismatchValues);
-  }
-
-  //Straight check
-  return (a === b);
-};
-
-jasmine.Env.prototype.contains_ = function(haystack, needle) {
-  if (jasmine.isArray_(haystack)) {
-    for (var i = 0; i < haystack.length; i++) {
-      if (this.equals_(haystack[i], needle)) return true;
-    }
-    return false;
-  }
-  return haystack.indexOf(needle) >= 0;
-};
-
-jasmine.Env.prototype.addEqualityTester = function(equalityTester) {
-  this.equalityTesters_.push(equalityTester);
-};
-/** No-op base class for Jasmine reporters.
- *
- * @constructor
- */
-jasmine.Reporter = function() {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportRunnerStarting = function(runner) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportRunnerResults = function(runner) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportSuiteResults = function(suite) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportSpecStarting = function(spec) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportSpecResults = function(spec) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.log = function(str) {
-};
-
-/**
- * Blocks are functions with executable code that make up a spec.
- *
- * @constructor
- * @param {jasmine.Env} env
- * @param {Function} func
- * @param {jasmine.Spec} spec
- */
-jasmine.Block = function(env, func, spec) {
-  this.env = env;
-  this.func = func;
-  this.spec = spec;
-};
-
-jasmine.Block.prototype.execute = function(onComplete) {  
-  try {
-    this.func.apply(this.spec);
-  } catch (e) {
-    this.spec.fail(e);
-  }
-  onComplete();
-};
-/** JavaScript API reporter.
- *
- * @constructor
- */
-jasmine.JsApiReporter = function() {
-  this.started = false;
-  this.finished = false;
-  this.suites_ = [];
-  this.results_ = {};
-};
-
-jasmine.JsApiReporter.prototype.reportRunnerStarting = function(runner) {
-  this.started = true;
-  var suites = runner.topLevelSuites();
-  for (var i = 0; i < suites.length; i++) {
-    var suite = suites[i];
-    this.suites_.push(this.summarize_(suite));
-  }
-};
-
-jasmine.JsApiReporter.prototype.suites = function() {
-  return this.suites_;
-};
-
-jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) {
-  var isSuite = suiteOrSpec instanceof jasmine.Suite;
-  var summary = {
-    id: suiteOrSpec.id,
-    name: suiteOrSpec.description,
-    type: isSuite ? 'suite' : 'spec',
-    children: []
-  };
-  
-  if (isSuite) {
-    var children = suiteOrSpec.children();
-    for (var i = 0; i < children.length; i++) {
-      summary.children.push(this.summarize_(children[i]));
-    }
-  }
-  return summary;
-};
-
-jasmine.JsApiReporter.prototype.results = function() {
-  return this.results_;
-};
-
-jasmine.JsApiReporter.prototype.resultsForSpec = function(specId) {
-  return this.results_[specId];
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.JsApiReporter.prototype.reportRunnerResults = function(runner) {
-  this.finished = true;
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.JsApiReporter.prototype.reportSuiteResults = function(suite) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.JsApiReporter.prototype.reportSpecResults = function(spec) {
-  this.results_[spec.id] = {
-    messages: spec.results().getItems(),
-    result: spec.results().failedCount > 0 ? "failed" : "passed"
-  };
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.JsApiReporter.prototype.log = function(str) {
-};
-
-jasmine.JsApiReporter.prototype.resultsForSpecs = function(specIds){
-  var results = {};
-  for (var i = 0; i < specIds.length; i++) {
-    var specId = specIds[i];
-    results[specId] = this.summarizeResult_(this.results_[specId]);
-  }
-  return results;
-};
-
-jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
-  var summaryMessages = [];
-  var messagesLength = result.messages.length;
-  for (var messageIndex = 0; messageIndex < messagesLength; messageIndex++) {
-    var resultMessage = result.messages[messageIndex];
-    summaryMessages.push({
-      text: resultMessage.type == 'log' ? resultMessage.toString() : jasmine.undefined,
-      passed: resultMessage.passed ? resultMessage.passed() : true,
-      type: resultMessage.type,
-      message: resultMessage.message,
-      trace: {
-        stack: resultMessage.passed && !resultMessage.passed() ? resultMessage.trace.stack : jasmine.undefined
-      }
-    });
-  }
-
-  return {
-    result : result.result,
-    messages : summaryMessages
-  };
-};
-
-/**
- * @constructor
- * @param {jasmine.Env} env
- * @param actual
- * @param {jasmine.Spec} spec
- */
-jasmine.Matchers = function(env, actual, spec, opt_isNot) {
-  this.env = env;
-  this.actual = actual;
-  this.spec = spec;
-  this.isNot = opt_isNot || false;
-  this.reportWasCalled_ = false;
-};
-
-// todo: @deprecated as of Jasmine 0.11, remove soon [xw]
-jasmine.Matchers.pp = function(str) {
-  throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!");
-};
-
-// todo: @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. [xw]
-jasmine.Matchers.prototype.report = function(result, failing_message, details) {
-  throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
-};
-
-jasmine.Matchers.wrapInto_ = function(prototype, matchersClass) {
-  for (var methodName in prototype) {
-    if (methodName == 'report') continue;
-    var orig = prototype[methodName];
-    matchersClass.prototype[methodName] = jasmine.Matchers.matcherFn_(methodName, orig);
-  }
-};
-
-jasmine.Matchers.matcherFn_ = function(matcherName, matcherFunction) {
-  return function() {
-    var matcherArgs = jasmine.util.argsToArray(arguments);
-    var result = matcherFunction.apply(this, arguments);
-
-    if (this.isNot) {
-      result = !result;
-    }
-
-    if (this.reportWasCalled_) return result;
-
-    var message;
-    if (!result) {
-      if (this.message) {
-        message = this.message.apply(this, arguments);
-        if (jasmine.isArray_(message)) {
-          message = message[this.isNot ? 1 : 0];
-        }
-      } else {
-        var englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); });
-        message = "Expected " + jasmine.pp(this.actual) + (this.isNot ? " not " : " ") + englishyPredicate;
-        if (matcherArgs.length > 0) {
-          for (var i = 0; i < matcherArgs.length; i++) {
-            if (i > 0) message += ",";
-            message += " " + jasmine.pp(matcherArgs[i]);
-          }
-        }
-        message += ".";
-      }
-    }
-    var expectationResult = new jasmine.ExpectationResult({
-      matcherName: matcherName,
-      passed: result,
-      expected: matcherArgs.length > 1 ? matcherArgs : matcherArgs[0],
-      actual: this.actual,
-      message: message
-    });
-    this.spec.addMatcherResult(expectationResult);
-    return jasmine.undefined;
-  };
-};
-
-
-
-
-/**
- * toBe: compares the actual to the expected using ===
- * @param expected
- */
-jasmine.Matchers.prototype.toBe = function(expected) {
-  return this.actual === expected;
-};
-
-/**
- * toNotBe: compares the actual to the expected using !==
- * @param expected
- * @deprecated as of 1.0. Use not.toBe() instead.
- */
-jasmine.Matchers.prototype.toNotBe = function(expected) {
-  return this.actual !== expected;
-};
-
-/**
- * toEqual: compares the actual to the expected using common sense equality. Handles Objects, Arrays, etc.
- *
- * @param expected
- */
-jasmine.Matchers.prototype.toEqual = function(expected) {
-  return this.env.equals_(this.actual, expected);
-};
-
-/**
- * toNotEqual: compares the actual to the expected using the ! of jasmine.Matchers.toEqual
- * @param expected
- * @deprecated as of 1.0. Use not.toNotEqual() instead.
- */
-jasmine.Matchers.prototype.toNotEqual = function(expected) {
-  return !this.env.equals_(this.actual, expected);
-};
-
-/**
- * Matcher that compares the actual to the expected using a regular expression.  Constructs a RegExp, so takes
- * a pattern or a String.
- *
- * @param expected
- */
-jasmine.Matchers.prototype.toMatch = function(expected) {
-  return new RegExp(expected).test(this.actual);
-};
-
-/**
- * Matcher that compares the actual to the expected using the boolean inverse of jasmine.Matchers.toMatch
- * @param expected
- * @deprecated as of 1.0. Use not.toMatch() instead.
- */
-jasmine.Matchers.prototype.toNotMatch = function(expected) {
-  return !(new RegExp(expected).test(this.actual));
-};
-
-/**
- * Matcher that compares the actual to jasmine.undefined.
- */
-jasmine.Matchers.prototype.toBeDefined = function() {
-  return (this.actual !== jasmine.undefined);
-};
-
-/**
- * Matcher that compares the actual to jasmine.undefined.
- */
-jasmine.Matchers.prototype.toBeUndefined = function() {
-  return (this.actual === jasmine.undefined);
-};
-
-/**
- * Matcher that compares the actual to null.
- */
-jasmine.Matchers.prototype.toBeNull = function() {
-  return (this.actual === null);
-};
-
-/**
- * Matcher that boolean not-nots the actual.
- */
-jasmine.Matchers.prototype.toBeTruthy = function() {
-  return !!this.actual;
-};
-
-
-/**
- * Matcher that boolean nots the actual.
- */
-jasmine.Matchers.prototype.toBeFalsy = function() {
-  return !this.actual;
-};
-
-
-/**
- * Matcher that checks to see if the actual, a Jasmine spy, was called.
- */
-jasmine.Matchers.prototype.toHaveBeenCalled = function() {
-  if (arguments.length > 0) {
-    throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
-  }
-
-  if (!jasmine.isSpy(this.actual)) {
-    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
-  }
-
-  this.message = function() {
-    return [
-      "Expected spy " + this.actual.identity + " to have been called.",
-      "Expected spy " + this.actual.identity + " not to have been called."
-    ];
-  };
-
-  return this.actual.wasCalled;
-};
-
-/** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
-jasmine.Matchers.prototype.wasCalled = jasmine.Matchers.prototype.toHaveBeenCalled;
-
-/**
- * Matcher that checks to see if the actual, a Jasmine spy, was not called.
- *
- * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
- */
-jasmine.Matchers.prototype.wasNotCalled = function() {
-  if (arguments.length > 0) {
-    throw new Error('wasNotCalled does not take arguments');
-  }
-
-  if (!jasmine.isSpy(this.actual)) {
-    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
-  }
-
-  this.message = function() {
-    return [
-      "Expected spy " + this.actual.identity + " to not have been called.",
-      "Expected spy " + this.actual.identity + " to have been called."
-    ];
-  };
-
-  return !this.actual.wasCalled;
-};
-
-/**
- * Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
- *
- * @example
- *
- */
-jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
-  var expectedArgs = jasmine.util.argsToArray(arguments);
-  if (!jasmine.isSpy(this.actual)) {
-    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
-  }
-  this.message = function() {
-    if (this.actual.callCount == 0) {
-      // todo: what should the failure message for .not.toHaveBeenCalledWith() be? is this right? test better. [xw]
-      return [
-        "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.",
-        "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was."
-      ];
-    } else {
-      return [
-        "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall),
-        "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall)
-      ];
-    }
-  };
-
-  return this.env.contains_(this.actual.argsForCall, expectedArgs);
-};
-
-/** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
-jasmine.Matchers.prototype.wasCalledWith = jasmine.Matchers.prototype.toHaveBeenCalledWith;
-
-/** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
-jasmine.Matchers.prototype.wasNotCalledWith = function() {
-  var expectedArgs = jasmine.util.argsToArray(arguments);
-  if (!jasmine.isSpy(this.actual)) {
-    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
-  }
-
-  this.message = function() {
-    return [
-      "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was",
-      "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was"
-    ]
-  };
-
-  return !this.env.contains_(this.actual.argsForCall, expectedArgs);
-};
-
-/**
- * Matcher that checks that the expected item is an element in the actual Array.
- *
- * @param {Object} expected
- */
-jasmine.Matchers.prototype.toContain = function(expected) {
-  return this.env.contains_(this.actual, expected);
-};
-
-/**
- * Matcher that checks that the expected item is NOT an element in the actual Array.
- *
- * @param {Object} expected
- * @deprecated as of 1.0. Use not.toNotContain() instead.
- */
-jasmine.Matchers.prototype.toNotContain = function(expected) {
-  return !this.env.contains_(this.actual, expected);
-};
-
-jasmine.Matchers.prototype.toBeLessThan = function(expected) {
-  return this.actual < expected;
-};
-
-jasmine.Matchers.prototype.toBeGreaterThan = function(expected) {
-  return this.actual > expected;
-};
-
-/**
- * Matcher that checks that the expected exception was thrown by the actual.
- *
- * @param {String} expected
- */
-jasmine.Matchers.prototype.toThrow = function(expected) {
-  var result = false;
-  var exception;
-  if (typeof this.actual != 'function') {
-    throw new Error('Actual is not a function');
-  }
-  try {
-    this.actual();
-  } catch (e) {
-    exception = e;
-  }
-  if (exception) {
-    result = (expected === jasmine.undefined || this.env.equals_(exception.message || exception, expected.message || expected));
-  }
-
-  var not = this.isNot ? "not " : "";
-
-  this.message = function() {
-    if (exception && (expected === jasmine.undefined || !this.env.equals_(exception.message || exception, expected.message || expected))) {
-      return ["Expected function " + not + "to throw", expected ? expected.message || expected : " an exception", ", but it threw", exception.message || exception].join(' ');
-    } else {
-      return "Expected function to throw an exception.";
-    }
-  };
-
-  return result;
-};
-
-jasmine.Matchers.Any = function(expectedClass) {
-  this.expectedClass = expectedClass;
-};
-
-jasmine.Matchers.Any.prototype.matches = function(other) {
-  if (this.expectedClass == String) {
-    return typeof other == 'string' || other instanceof String;
-  }
-
-  if (this.expectedClass == Number) {
-    return typeof other == 'number' || other instanceof Number;
-  }
-
-  if (this.expectedClass == Function) {
-    return typeof other == 'function' || other instanceof Function;
-  }
-
-  if (this.expectedClass == Object) {
-    return typeof other == 'object';
-  }
-
-  return other instanceof this.expectedClass;
-};
-
-jasmine.Matchers.Any.prototype.toString = function() {
-  return '<jasmine.any(' + this.expectedClass + ')>';
-};
-
-/**
- * @constructor
- */
-jasmine.MultiReporter = function() {
-  this.subReporters_ = [];
-};
-jasmine.util.inherit(jasmine.MultiReporter, jasmine.Reporter);
-
-jasmine.MultiReporter.prototype.addReporter = function(reporter) {
-  this.subReporters_.push(reporter);
-};
-
-(function() {
-  var functionNames = [
-    "reportRunnerStarting",
-    "reportRunnerResults",
-    "reportSuiteResults",
-    "reportSpecStarting",
-    "reportSpecResults",
-    "log"
-  ];
-  for (var i = 0; i < functionNames.length; i++) {
-    var functionName = functionNames[i];
-    jasmine.MultiReporter.prototype[functionName] = (function(functionName) {
-      return function() {
-        for (var j = 0; j < this.subReporters_.length; j++) {
-          var subReporter = this.subReporters_[j];
-          if (subReporter[functionName]) {
-            subReporter[functionName].apply(subReporter, arguments);
-          }
-        }
-      };
-    })(functionName);
-  }
-})();
-/**
- * Holds results for a set of Jasmine spec. Allows for the results array to hold another jasmine.NestedResults
- *
- * @constructor
- */
-jasmine.NestedResults = function() {
-  /**
-   * The total count of results
-   */
-  this.totalCount = 0;
-  /**
-   * Number of passed results
-   */
-  this.passedCount = 0;
-  /**
-   * Number of failed results
-   */
-  this.failedCount = 0;
-  /**
-   * Was this suite/spec skipped?
-   */
-  this.skipped = false;
-  /**
-   * @ignore
-   */
-  this.items_ = [];
-};
-
-/**
- * Roll up the result counts.
- *
- * @param result
- */
-jasmine.NestedResults.prototype.rollupCounts = function(result) {
-  this.totalCount += result.totalCount;
-  this.passedCount += result.passedCount;
-  this.failedCount += result.failedCount;
-};
-
-/**
- * Adds a log message.
- * @param values Array of message parts which will be concatenated later.
- */
-jasmine.NestedResults.prototype.log = function(values) {
-  this.items_.push(new jasmine.MessageResult(values));
-};
-
-/**
- * Getter for the results: message & results.
- */
-jasmine.NestedResults.prototype.getItems = function() {
-  return this.items_;
-};
-
-/**
- * Adds a result, tracking counts (total, passed, & failed)
- * @param {jasmine.ExpectationResult|jasmine.NestedResults} result
- */
-jasmine.NestedResults.prototype.addResult = function(result) {
-  if (result.type != 'log') {
-    if (result.items_) {
-      this.rollupCounts(result);
-    } else {
-      this.totalCount++;
-      if (result.passed()) {
-        this.passedCount++;
-      } else {
-        this.failedCount++;
-      }
-    }
-  }
-  this.items_.push(result);
-};
-
-/**
- * @returns {Boolean} True if <b>everything</b> below passed
- */
-jasmine.NestedResults.prototype.passed = function() {
-  return this.passedCount === this.totalCount;
-};
-/**
- * Base class for pretty printing for expectation results.
- */
-jasmine.PrettyPrinter = function() {
-  this.ppNestLevel_ = 0;
-};
-
-/**
- * Formats a value in a nice, human-readable string.
- *
- * @param value
- */
-jasmine.PrettyPrinter.prototype.format = function(value) {
-  if (this.ppNestLevel_ > 40) {
-    throw new Error('jasmine.PrettyPrinter: format() nested too deeply!');
-  }
-
-  this.ppNestLevel_++;
-  try {
-    if (value === jasmine.undefined) {
-      this.emitScalar('undefined');
-    } else if (value === null) {
-      this.emitScalar('null');
-    } else if (value === jasmine.getGlobal()) {
-      this.emitScalar('<global>');
-    } else if (value instanceof jasmine.Matchers.Any) {
-      this.emitScalar(value.toString());
-    } else if (typeof value === 'string') {
-      this.emitString(value);
-    } else if (jasmine.isSpy(value)) {
-      this.emitScalar("spy on " + value.identity);
-    } else if (value instanceof RegExp) {
-      this.emitScalar(value.toString());
-    } else if (typeof value === 'function') {
-      this.emitScalar('Function');
-    } else if (typeof value.nodeType === 'number') {
-      this.emitScalar('HTMLNode');
-    } else if (value instanceof Date) {
-      this.emitScalar('Date(' + value + ')');
-    } else if (value.__Jasmine_been_here_before__) {
-      this.emitScalar('<circular reference: ' + (jasmine.isArray_(value) ? 'Array' : 'Object') + '>');
-    } else if (jasmine.isArray_(value) || typeof value == 'object') {
-      value.__Jasmine_been_here_before__ = true;
-      if (jasmine.isArray_(value)) {
-        this.emitArray(value);
-      } else {
-        this.emitObject(value);
-      }
-      delete value.__Jasmine_been_here_before__;
-    } else {
-      this.emitScalar(value.toString());
-    }
-  } finally {
-    this.ppNestLevel_--;
-  }
-};
-
-jasmine.PrettyPrinter.prototype.iterateObject = function(obj, fn) {
-  for (var property in obj) {
-    if (property == '__Jasmine_been_here_before__') continue;
-    fn(property, obj.__lookupGetter__ ? (obj.__lookupGetter__(property) != null) : false);
-  }
-};
-
-jasmine.PrettyPrinter.prototype.emitArray = jasmine.unimplementedMethod_;
-jasmine.PrettyPrinter.prototype.emitObject = jasmine.unimplementedMethod_;
-jasmine.PrettyPrinter.prototype.emitScalar = jasmine.unimplementedMethod_;
-jasmine.PrettyPrinter.prototype.emitString = jasmine.unimplementedMethod_;
-
-jasmine.StringPrettyPrinter = function() {
-  jasmine.PrettyPrinter.call(this);
-
-  this.string = '';
-};
-jasmine.util.inherit(jasmine.StringPrettyPrinter, jasmine.PrettyPrinter);
-
-jasmine.StringPrettyPrinter.prototype.emitScalar = function(value) {
-  this.append(value);
-};
-
-jasmine.StringPrettyPrinter.prototype.emitString = function(value) {
-  this.append("'" + value + "'");
-};
-
-jasmine.StringPrettyPrinter.prototype.emitArray = function(array) {
-  this.append('[ ');
-  for (var i = 0; i < array.length; i++) {
-    if (i > 0) {
-      this.append(', ');
-    }
-    this.format(array[i]);
-  }
-  this.append(' ]');
-};
-
-jasmine.StringPrettyPrinter.prototype.emitObject = function(obj) {
-  var self = this;
-  this.append('{ ');
-  var first = true;
-
-  this.iterateObject(obj, function(property, isGetter) {
-    if (first) {
-      first = false;
-    } else {
-      self.append(', ');
-    }
-
-    self.append(property);
-    self.append(' : ');
-    if (isGetter) {
-      self.append('<getter>');
-    } else {
-      self.format(obj[property]);
-    }
-  });
-
-  this.append(' }');
-};
-
-jasmine.StringPrettyPrinter.prototype.append = function(value) {
-  this.string += value;
-};
-jasmine.Queue = function(env) {
-  this.env = env;
-  this.blocks = [];
-  this.running = false;
-  this.index = 0;
-  this.offset = 0;
-  this.abort = false;
-};
-
-jasmine.Queue.prototype.addBefore = function(block) {
-  this.blocks.unshift(block);
-};
-
-jasmine.Queue.prototype.add = function(block) {
-  this.blocks.push(block);
-};
-
-jasmine.Queue.prototype.insertNext = function(block) {
-  this.blocks.splice((this.index + this.offset + 1), 0, block);
-  this.offset++;
-};
-
-jasmine.Queue.prototype.start = function(onComplete) {
-  this.running = true;
-  this.onComplete = onComplete;
-  this.next_();
-};
-
-jasmine.Queue.prototype.isRunning = function() {
-  return this.running;
-};
-
-jasmine.Queue.LOOP_DONT_RECURSE = true;
-
-jasmine.Queue.prototype.next_ = function() {
-  var self = this;
-  var goAgain = true;
-
-  while (goAgain) {
-    goAgain = false;
-    
-    if (self.index < self.blocks.length && !this.abort) {
-      var calledSynchronously = true;
-      var completedSynchronously = false;
-
-      var onComplete = function () {
-        if (jasmine.Queue.LOOP_DONT_RECURSE && calledSynchronously) {
-          completedSynchronously = true;
-          return;
-        }
-
-        if (self.blocks[self.index].abort) {
-          self.abort = true;
-        }
-
-        self.offset = 0;
-        self.index++;
-
-        var now = new Date().getTime();
-        if (self.env.updateInterval && now - self.env.lastUpdate > self.env.updateInterval) {
-          self.env.lastUpdate = now;
-          self.env.setTimeout(function() {
-            self.next_();
-          }, 0);
-        } else {
-          if (jasmine.Queue.LOOP_DONT_RECURSE && completedSynchronously) {
-            goAgain = true;
-          } else {
-            self.next_();
-          }
-        }
-      };
-      self.blocks[self.index].execute(onComplete);
-
-      calledSynchronously = false;
-      if (completedSynchronously) {
-        onComplete();
-      }
-      
-    } else {
-      self.running = false;
-      if (self.onComplete) {
-        self.onComplete();
-      }
-    }
-  }
-};
-
-jasmine.Queue.prototype.results = function() {
-  var results = new jasmine.NestedResults();
-  for (var i = 0; i < this.blocks.length; i++) {
-    if (this.blocks[i].results) {
-      results.addResult(this.blocks[i].results());
-    }
-  }
-  return results;
-};
-
-
-/**
- * Runner
- *
- * @constructor
- * @param {jasmine.Env} env
- */
-jasmine.Runner = function(env) {
-  var self = this;
-  self.env = env;
-  self.queue = new jasmine.Queue(env);
-  self.before_ = [];
-  self.after_ = [];
-  self.suites_ = [];
-};
-
-jasmine.Runner.prototype.execute = function() {
-  var self = this;
-  if (self.env.reporter.reportRunnerStarting) {
-    self.env.reporter.reportRunnerStarting(this);
-  }
-  self.queue.start(function () {
-    self.finishCallback();
-  });
-};
-
-jasmine.Runner.prototype.beforeEach = function(beforeEachFunction) {
-  beforeEachFunction.typeName = 'beforeEach';
-  this.before_.splice(0,0,beforeEachFunction);
-};
-
-jasmine.Runner.prototype.afterEach = function(afterEachFunction) {
-  afterEachFunction.typeName = 'afterEach';
-  this.after_.splice(0,0,afterEachFunction);
-};
-
-
-jasmine.Runner.prototype.finishCallback = function() {
-  this.env.reporter.reportRunnerResults(this);
-};
-
-jasmine.Runner.prototype.addSuite = function(suite) {
-  this.suites_.push(suite);
-};
-
-jasmine.Runner.prototype.add = function(block) {
-  if (block instanceof jasmine.Suite) {
-    this.addSuite(block);
-  }
-  this.queue.add(block);
-};
-
-jasmine.Runner.prototype.specs = function () {
-  var suites = this.suites();
-  var specs = [];
-  for (var i = 0; i < suites.length; i++) {
-    specs = specs.concat(suites[i].specs());
-  }
-  return specs;
-};
-
-jasmine.Runner.prototype.suites = function() {
-  return this.suites_;
-};
-
-jasmine.Runner.prototype.topLevelSuites = function() {
-  var topLevelSuites = [];
-  for (var i = 0; i < this.suites_.length; i++) {
-    if (!this.suites_[i].parentSuite) {
-      topLevelSuites.push(this.suites_[i]);
-    }
-  }
-  return topLevelSuites;
-};
-
-jasmine.Runner.prototype.results = function() {
-  return this.queue.results();
-};
-/**
- * Internal representation of a Jasmine specification, or test.
- *
- * @constructor
- * @param {jasmine.Env} env
- * @param {jasmine.Suite} suite
- * @param {String} description
- */
-jasmine.Spec = function(env, suite, description) {
-  if (!env) {
-    throw new Error('jasmine.Env() required');
-  }
-  if (!suite) {
-    throw new Error('jasmine.Suite() required');
-  }
-  var spec = this;
-  spec.id = env.nextSpecId ? env.nextSpecId() : null;
-  spec.env = env;
-  spec.suite = suite;
-  spec.description = description;
-  spec.queue = new jasmine.Queue(env);
-
-  spec.afterCallbacks = [];
-  spec.spies_ = [];
-
-  spec.results_ = new jasmine.NestedResults();
-  spec.results_.description = description;
-  spec.matchersClass = null;
-};
-
-jasmine.Spec.prototype.getFullName = function() {
-  return this.suite.getFullName() + ' ' + this.description + '.';
-};
-
-
-jasmine.Spec.prototype.results = function() {
-  return this.results_;
-};
-
-/**
- * All parameters are pretty-printed and concatenated together, then written to the spec's output.
- *
- * Be careful not to leave calls to <code>jasmine.log</code> in production code.
- */
-jasmine.Spec.prototype.log = function() {
-  return this.results_.log(arguments);
-};
-
-jasmine.Spec.prototype.runs = function (func) {
-  var block = new jasmine.Block(this.env, func, this);
-  this.addToQueue(block);
-  return this;
-};
-
-jasmine.Spec.prototype.addToQueue = function (block) {
-  if (this.queue.isRunning()) {
-    this.queue.insertNext(block);
-  } else {
-    this.queue.add(block);
-  }
-};
-
-/**
- * @param {jasmine.ExpectationResult} result
- */
-jasmine.Spec.prototype.addMatcherResult = function(result) {
-  this.results_.addResult(result);
-};
-
-jasmine.Spec.prototype.expect = function(actual) {
-  var positive = new (this.getMatchersClass_())(this.env, actual, this);
-  positive.not = new (this.getMatchersClass_())(this.env, actual, this, true);
-  return positive;
-};
-
-/**
- * Waits a fixed time period before moving to the next block.
- *
- * @deprecated Use waitsFor() instead
- * @param {Number} timeout milliseconds to wait
- */
-jasmine.Spec.prototype.waits = function(timeout) {
-  var waitsFunc = new jasmine.WaitsBlock(this.env, timeout, this);
-  this.addToQueue(waitsFunc);
-  return this;
-};
-
-/**
- * Waits for the latchFunction to return true before proceeding to the next block.
- *
- * @param {Function} latchFunction
- * @param {String} optional_timeoutMessage
- * @param {Number} optional_timeout
- */
-jasmine.Spec.prototype.waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
-  var latchFunction_ = null;
-  var optional_timeoutMessage_ = null;
-  var optional_timeout_ = null;
-
-  for (var i = 0; i < arguments.length; i++) {
-    var arg = arguments[i];
-    switch (typeof arg) {
-      case 'function':
-        latchFunction_ = arg;
-        break;
-      case 'string':
-        optional_timeoutMessage_ = arg;
-        break;
-      case 'number':
-        optional_timeout_ = arg;
-        break;
-    }
-  }
-
-  var waitsForFunc = new jasmine.WaitsForBlock(this.env, optional_timeout_, latchFunction_, optional_timeoutMessage_, this);
-  this.addToQueue(waitsForFunc);
-  return this;
-};
-
-jasmine.Spec.prototype.fail = function (e) {
-  var expectationResult = new jasmine.ExpectationResult({
-    passed: false,
-    message: e ? jasmine.util.formatException(e) : 'Exception'
-  });
-  this.results_.addResult(expectationResult);
-};
-
-jasmine.Spec.prototype.getMatchersClass_ = function() {
-  return this.matchersClass || this.env.matchersClass;
-};
-
-jasmine.Spec.prototype.addMatchers = function(matchersPrototype) {
-  var parent = this.getMatchersClass_();
-  var newMatchersClass = function() {
-    parent.apply(this, arguments);
-  };
-  jasmine.util.inherit(newMatchersClass, parent);
-  jasmine.Matchers.wrapInto_(matchersPrototype, newMatchersClass);
-  this.matchersClass = newMatchersClass;
-};
-
-jasmine.Spec.prototype.finishCallback = function() {
-  this.env.reporter.reportSpecResults(this);
-};
-
-jasmine.Spec.prototype.finish = function(onComplete) {
-  this.removeAllSpies();
-  this.finishCallback();
-  if (onComplete) {
-    onComplete();
-  }
-};
-
-jasmine.Spec.prototype.after = function(doAfter) {
-  if (this.queue.isRunning()) {
-    this.queue.add(new jasmine.Block(this.env, doAfter, this));
-  } else {
-    this.afterCallbacks.unshift(doAfter);
-  }
-};
-
-jasmine.Spec.prototype.execute = function(onComplete) {
-  var spec = this;
-  if (!spec.env.specFilter(spec)) {
-    spec.results_.skipped = true;
-    spec.finish(onComplete);
-    return;
-  }
-
-  this.env.reporter.reportSpecStarting(this);
-
-  spec.env.currentSpec = spec;
-
-  spec.addBeforesAndAftersToQueue();
-
-  spec.queue.start(function () {
-    spec.finish(onComplete);
-  });
-};
-
-jasmine.Spec.prototype.addBeforesAndAftersToQueue = function() {
-  var runner = this.env.currentRunner();
-  var i;
-
-  for (var suite = this.suite; suite; suite = suite.parentSuite) {
-    for (i = 0; i < suite.before_.length; i++) {
-      this.queue.addBefore(new jasmine.Block(this.env, suite.before_[i], this));
-    }
-  }
-  for (i = 0; i < runner.before_.length; i++) {
-    this.queue.addBefore(new jasmine.Block(this.env, runner.before_[i], this));
-  }
-  for (i = 0; i < this.afterCallbacks.length; i++) {
-    this.queue.add(new jasmine.Block(this.env, this.afterCallbacks[i], this));
-  }
-  for (suite = this.suite; suite; suite = suite.parentSuite) {
-    for (i = 0; i < suite.after_.length; i++) {
-      this.queue.add(new jasmine.Block(this.env, suite.after_[i], this));
-    }
-  }
-  for (i = 0; i < runner.after_.length; i++) {
-    this.queue.add(new jasmine.Block(this.env, runner.after_[i], this));
-  }
-};
-
-jasmine.Spec.prototype.explodes = function() {
-  throw 'explodes function should not have been called';
-};
-
-jasmine.Spec.prototype.spyOn = function(obj, methodName, ignoreMethodDoesntExist) {
-  if (obj == jasmine.undefined) {
-    throw "spyOn could not find an object to spy upon for " + methodName + "()";
-  }
-
-  if (!ignoreMethodDoesntExist && obj[methodName] === jasmine.undefined) {
-    throw methodName + '() method does not exist';
-  }
-
-  if (!ignoreMethodDoesntExist && obj[methodName] && obj[methodName].isSpy) {
-    throw new Error(methodName + ' has already been spied upon');
-  }
-
-  var spyObj = jasmine.createSpy(methodName);
-
-  this.spies_.push(spyObj);
-  spyObj.baseObj = obj;
-  spyObj.methodName = methodName;
-  spyObj.originalValue = obj[methodName];
-
-  obj[methodName] = spyObj;
-
-  return spyObj;
-};
-
-jasmine.Spec.prototype.removeAllSpies = function() {
-  for (var i = 0; i < this.spies_.length; i++) {
-    var spy = this.spies_[i];
-    spy.baseObj[spy.methodName] = spy.originalValue;
-  }
-  this.spies_ = [];
-};
-
-/**
- * Internal representation of a Jasmine suite.
- *
- * @constructor
- * @param {jasmine.Env} env
- * @param {String} description
- * @param {Function} specDefinitions
- * @param {jasmine.Suite} parentSuite
- */
-jasmine.Suite = function(env, description, specDefinitions, parentSuite) {
-  var self = this;
-  self.id = env.nextSuiteId ? env.nextSuiteId() : null;
-  self.description = description;
-  self.queue = new jasmine.Queue(env);
-  self.parentSuite = parentSuite;
-  self.env = env;
-  self.before_ = [];
-  self.after_ = [];
-  self.children_ = [];
-  self.suites_ = [];
-  self.specs_ = [];
-};
-
-jasmine.Suite.prototype.getFullName = function() {
-  var fullName = this.description;
-  for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
-    fullName = parentSuite.description + ' ' + fullName;
-  }
-  return fullName;
-};
-
-jasmine.Suite.prototype.finish = function(onComplete) {
-  this.env.reporter.reportSuiteResults(this);
-  this.finished = true;
-  if (typeof(onComplete) == 'function') {
-    onComplete();
-  }
-};
-
-jasmine.Suite.prototype.beforeEach = function(beforeEachFunction) {
-  beforeEachFunction.typeName = 'beforeEach';
-  this.before_.unshift(beforeEachFunction);
-};
-
-jasmine.Suite.prototype.afterEach = function(afterEachFunction) {
-  afterEachFunction.typeName = 'afterEach';
-  this.after_.unshift(afterEachFunction);
-};
-
-jasmine.Suite.prototype.results = function() {
-  return this.queue.results();
-};
-
-jasmine.Suite.prototype.add = function(suiteOrSpec) {
-  this.children_.push(suiteOrSpec);
-  if (suiteOrSpec instanceof jasmine.Suite) {
-    this.suites_.push(suiteOrSpec);
-    this.env.currentRunner().addSuite(suiteOrSpec);
-  } else {
-    this.specs_.push(suiteOrSpec);
-  }
-  this.queue.add(suiteOrSpec);
-};
-
-jasmine.Suite.prototype.specs = function() {
-  return this.specs_;
-};
-
-jasmine.Suite.prototype.suites = function() {
-  return this.suites_;
-};
-
-jasmine.Suite.prototype.children = function() {
-  return this.children_;
-};
-
-jasmine.Suite.prototype.execute = function(onComplete) {
-  var self = this;
-  this.queue.start(function () {
-    self.finish(onComplete);
-  });
-};
-jasmine.WaitsBlock = function(env, timeout, spec) {
-  this.timeout = timeout;
-  jasmine.Block.call(this, env, null, spec);
-};
-
-jasmine.util.inherit(jasmine.WaitsBlock, jasmine.Block);
-
-jasmine.WaitsBlock.prototype.execute = function (onComplete) {
-  this.env.reporter.log('>> Jasmine waiting for ' + this.timeout + ' ms...');
-  this.env.setTimeout(function () {
-    onComplete();
-  }, this.timeout);
-};
-/**
- * A block which waits for some condition to become true, with timeout.
- *
- * @constructor
- * @extends jasmine.Block
- * @param {jasmine.Env} env The Jasmine environment.
- * @param {Number} timeout The maximum time in milliseconds to wait for the condition to become true.
- * @param {Function} latchFunction A function which returns true when the desired condition has been met.
- * @param {String} message The message to display if the desired condition hasn't been met within the given time period.
- * @param {jasmine.Spec} spec The Jasmine spec.
- */
-jasmine.WaitsForBlock = function(env, timeout, latchFunction, message, spec) {
-  this.timeout = timeout || env.defaultTimeoutInterval;
-  this.latchFunction = latchFunction;
-  this.message = message;
-  this.totalTimeSpentWaitingForLatch = 0;
-  jasmine.Block.call(this, env, null, spec);
-};
-jasmine.util.inherit(jasmine.WaitsForBlock, jasmine.Block);
-
-jasmine.WaitsForBlock.TIMEOUT_INCREMENT = 10;
-
-jasmine.WaitsForBlock.prototype.execute = function(onComplete) {
-  this.env.reporter.log('>> Jasmine waiting for ' + (this.message || 'something to happen'));
-  var latchFunctionResult;
-  try {
-    latchFunctionResult = this.latchFunction.apply(this.spec);
-  } catch (e) {
-    this.spec.fail(e);
-    onComplete();
-    return;
-  }
-
-  if (latchFunctionResult) {
-    onComplete();
-  } else if (this.totalTimeSpentWaitingForLatch >= this.timeout) {
-    var message = 'timed out after ' + this.timeout + ' msec waiting for ' + (this.message || 'something to happen');
-    this.spec.fail({
-      name: 'timeout',
-      message: message
-    });
-
-    this.abort = true;
-    onComplete();
-  } else {
-    this.totalTimeSpentWaitingForLatch += jasmine.WaitsForBlock.TIMEOUT_INCREMENT;
-    var self = this;
-    this.env.setTimeout(function() {
-      self.execute(onComplete);
-    }, jasmine.WaitsForBlock.TIMEOUT_INCREMENT);
-  }
-};
-// Mock setTimeout, clearTimeout
-// Contributed by Pivotal Computer Systems, www.pivotalsf.com
-
-jasmine.FakeTimer = function() {
-  this.reset();
-
-  var self = this;
-  self.setTimeout = function(funcToCall, millis) {
-    self.timeoutsMade++;
-    self.scheduleFunction(self.timeoutsMade, funcToCall, millis, false);
-    return self.timeoutsMade;
-  };
-
-  self.setInterval = function(funcToCall, millis) {
-    self.timeoutsMade++;
-    self.scheduleFunction(self.timeoutsMade, funcToCall, millis, true);
-    return self.timeoutsMade;
-  };
-
-  self.clearTimeout = function(timeoutKey) {
-    self.scheduledFunctions[timeoutKey] = jasmine.undefined;
-  };
-
-  self.clearInterval = function(timeoutKey) {
-    self.scheduledFunctions[timeoutKey] = jasmine.undefined;
-  };
-
-};
-
-jasmine.FakeTimer.prototype.reset = function() {
-  this.timeoutsMade = 0;
-  this.scheduledFunctions = {};
-  this.nowMillis = 0;
-};
-
-jasmine.FakeTimer.prototype.tick = function(millis) {
-  var oldMillis = this.nowMillis;
-  var newMillis = oldMillis + millis;
-  this.runFunctionsWithinRange(oldMillis, newMillis);
-  this.nowMillis = newMillis;
-};
-
-jasmine.FakeTimer.prototype.runFunctionsWithinRange = function(oldMillis, nowMillis) {
-  var scheduledFunc;
-  var funcsToRun = [];
-  for (var timeoutKey in this.scheduledFunctions) {
-    scheduledFunc = this.scheduledFunctions[timeoutKey];
-    if (scheduledFunc != jasmine.undefined &&
-        scheduledFunc.runAtMillis >= oldMillis &&
-        scheduledFunc.runAtMillis <= nowMillis) {
-      funcsToRun.push(scheduledFunc);
-      this.scheduledFunctions[timeoutKey] = jasmine.undefined;
-    }
-  }
-
-  if (funcsToRun.length > 0) {
-    funcsToRun.sort(function(a, b) {
-      return a.runAtMillis - b.runAtMillis;
-    });
-    for (var i = 0; i < funcsToRun.length; ++i) {
-      try {
-        var funcToRun = funcsToRun[i];
-        this.nowMillis = funcToRun.runAtMillis;
-        funcToRun.funcToCall();
-        if (funcToRun.recurring) {
-          this.scheduleFunction(funcToRun.timeoutKey,
-              funcToRun.funcToCall,
-              funcToRun.millis,
-              true);
-        }
-      } catch(e) {
-      }
-    }
-    this.runFunctionsWithinRange(oldMillis, nowMillis);
-  }
-};
-
-jasmine.FakeTimer.prototype.scheduleFunction = function(timeoutKey, funcToCall, millis, recurring) {
-  this.scheduledFunctions[timeoutKey] = {
-    runAtMillis: this.nowMillis + millis,
-    funcToCall: funcToCall,
-    recurring: recurring,
-    timeoutKey: timeoutKey,
-    millis: millis
-  };
-};
-
-/**
- * @namespace
- */
-jasmine.Clock = {
-  defaultFakeTimer: new jasmine.FakeTimer(),
-
-  reset: function() {
-    jasmine.Clock.assertInstalled();
-    jasmine.Clock.defaultFakeTimer.reset();
-  },
-
-  tick: function(millis) {
-    jasmine.Clock.assertInstalled();
-    jasmine.Clock.defaultFakeTimer.tick(millis);
-  },
-
-  runFunctionsWithinRange: function(oldMillis, nowMillis) {
-    jasmine.Clock.defaultFakeTimer.runFunctionsWithinRange(oldMillis, nowMillis);
-  },
-
-  scheduleFunction: function(timeoutKey, funcToCall, millis, recurring) {
-    jasmine.Clock.defaultFakeTimer.scheduleFunction(timeoutKey, funcToCall, millis, recurring);
-  },
-
-  useMock: function() {
-    if (!jasmine.Clock.isInstalled()) {
-      var spec = jasmine.getEnv().currentSpec;
-      spec.after(jasmine.Clock.uninstallMock);
-
-      jasmine.Clock.installMock();
-    }
-  },
-
-  installMock: function() {
-    jasmine.Clock.installed = jasmine.Clock.defaultFakeTimer;
-  },
-
-  uninstallMock: function() {
-    jasmine.Clock.assertInstalled();
-    jasmine.Clock.installed = jasmine.Clock.real;
-  },
-
-  real: {
-    setTimeout: jasmine.getGlobal().setTimeout,
-    clearTimeout: jasmine.getGlobal().clearTimeout,
-    setInterval: jasmine.getGlobal().setInterval,
-    clearInterval: jasmine.getGlobal().clearInterval
-  },
-
-  assertInstalled: function() {
-    if (!jasmine.Clock.isInstalled()) {
-      throw new Error("Mock clock is not installed, use jasmine.Clock.useMock()");
-    }
-  },
-
-  isInstalled: function() {
-    return jasmine.Clock.installed == jasmine.Clock.defaultFakeTimer;
-  },
-
-  installed: null
-};
-jasmine.Clock.installed = jasmine.Clock.real;
-
-//else for IE support
-jasmine.getGlobal().setTimeout = function(funcToCall, millis) {
-  if (jasmine.Clock.installed.setTimeout.apply) {
-    return jasmine.Clock.installed.setTimeout.apply(this, arguments);
-  } else {
-    return jasmine.Clock.installed.setTimeout(funcToCall, millis);
-  }
-};
-
-jasmine.getGlobal().setInterval = function(funcToCall, millis) {
-  if (jasmine.Clock.installed.setInterval.apply) {
-    return jasmine.Clock.installed.setInterval.apply(this, arguments);
-  } else {
-    return jasmine.Clock.installed.setInterval(funcToCall, millis);
-  }
-};
-
-jasmine.getGlobal().clearTimeout = function(timeoutKey) {
-  if (jasmine.Clock.installed.clearTimeout.apply) {
-    return jasmine.Clock.installed.clearTimeout.apply(this, arguments);
-  } else {
-    return jasmine.Clock.installed.clearTimeout(timeoutKey);
-  }
-};
-
-jasmine.getGlobal().clearInterval = function(timeoutKey) {
-  if (jasmine.Clock.installed.clearTimeout.apply) {
-    return jasmine.Clock.installed.clearInterval.apply(this, arguments);
-  } else {
-    return jasmine.Clock.installed.clearInterval(timeoutKey);
-  }
-};
-
-
-jasmine.version_= {
-  "major": 1,
-  "minor": 0,
-  "build": 0,
-  "revision": 1284494074
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jline.jar
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jline.jar b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jline.jar
deleted file mode 100644
index 7728bf0..0000000
Binary files a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/jline.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/js.jar
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/js.jar b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/js.jar
deleted file mode 100644
index 2369f99..0000000
Binary files a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/ext/js.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/package.json b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/package.json
deleted file mode 100644
index c6b10bb..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-  "author": {
-    "name": "Larry Myers"
-  },
-  "name": "jasmine-reporters",
-  "description": "Reporters for the Jasmine BDD Framework",
-  "version": "0.2.1",
-  "homepage": "https://github.com/larrymyers/jasmine-reporters",
-  "maintainers": "Ben Loveridge <bl...@movenetworks.com>",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/larrymyers/jasmine-reporters.git"
-  },
-  "main": "./src/load_reporters.js",
-  "dependencies": {},
-  "devDependencies": {},
-  "readme": "# Jasmine Reporters\n\nJasmine Reporters is a collection of javascript jasmine.Reporter classes that can be used with\nthe [JasmineBDD testing framework](http://pivotal.github.com/jasmine/).\n\nRight now the project is focused on two new reporters:\n\n* ConsoleReporter - Report test results to the browser console.\n* JUnitXmlReporter - Report test results to a file (using Rhino or PyPhantomJS) in JUnit XML Report format.\n\n## Usage\n\nExamples are included in the test directory that show how to use the reporters,\nas well a basic runner scripts for Rhino + envjs, and a basic runner for \n[PhantomJS](https://github.com/ariya/phantomjs) (using PyPhantomJS and the\nsaveToFile plugin). Either of these methods could be used in a Continuous\nIntegration project for running headless tests and generating JUnit XML output.\n\n### Rhino + EnvJS\n\nEverything needed to run the tests in Rhino + EnvJS is included in this\nrepository inside the `ext` directory, specifically Rhino 1.
 7r2 and envjs 1.2\nfor Rhino.\n\n### PhantomJS, PyPhantomJS\n\nPhantomJS is included as a submodule inside the `ext` directory. The included\nexample runner makes use of PyPhantomJS to execute the headless tests and\nsave XML output to the filesystem.\n\nWhile PhantomJS and PyPhantomJS both run on MacOS / Linux / Windows, there are\nspecific dependencies for each platform. Specifics on installing these are not\nincluded here, but is left as an exercise for the reader. The [PhantomJS](https://github.com/ariya/phantomjs)\nproject contains links to various documentation, including installation notes.\n\nHere is how I got it working in MacOSX 10.6 (YMMV):\n\n* ensure you are using Python 2.6+\n* install Xcode (this gives you make, et al)\n* install qt (this gives you qmake, et al)\n  * this may be easiest via [homebrew](https://github.com/mxcl/homebrew)\n  * `brew install qt`\n* install the python sip module\n  * `pip install sip # this will fail to fully install sip, keep going`\n  * `
 cd build/sip`\n  * `python configure.py`\n  * `make && sudo make install`\n* install the python pyqt module\n  * `pip install pyqt # this will fail to fully install pyqt, keep going`\n  * `cd build/pyqt`\n  * `python configure.py`\n  * `make && sudo make install`\n",
-  "readmeFilename": "README.markdown",
-  "bugs": {
-    "url": "https://github.com/larrymyers/jasmine-reporters/issues"
-  },
-  "_id": "jasmine-reporters@0.2.1",
-  "_from": "jasmine-reporters@>=0.2.0"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.console_reporter.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.console_reporter.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.console_reporter.js
deleted file mode 100644
index f4ba9b9..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.console_reporter.js
+++ /dev/null
@@ -1,142 +0,0 @@
-(function() {
-    if (! jasmine) {
-        throw new Exception("jasmine library does not exist in global namespace!");
-    }
-
-    /**
-     * Basic reporter that outputs spec results to the browser console.
-     * Useful if you need to test an html page and don't want the TrivialReporter
-     * markup mucking things up.
-     *
-     * Usage:
-     *
-     * jasmine.getEnv().addReporter(new jasmine.ConsoleReporter());
-     * jasmine.getEnv().execute();
-     */
-    var ConsoleReporter = function() {
-        this.started = false;
-        this.finished = false;
-    };
-
-    ConsoleReporter.prototype = {
-        reportRunnerResults: function(runner) {
-            if (this.hasGroupedConsole()) {
-                var suites = runner.suites();
-                startGroup(runner.results(), 'tests');
-                for (var i in suites) {
-                    if (!suites[i].parentSuite) {
-                        suiteResults(suites[i]);
-                    }
-                }
-                console.groupEnd();
-            }
-            else {
-                var dur = (new Date()).getTime() - this.start_time;
-                var failed = this.executed_specs - this.passed_specs;
-                var spec_str = this.executed_specs + (this.executed_specs === 1 ? " spec, " : " specs, ");
-                var fail_str = failed + (failed === 1 ? " failure in " : " failures in ");
-
-                this.log("Runner Finished.");
-                this.log(spec_str + fail_str + (dur/1000) + "s.");
-            }
-            this.finished = true;
-        },
-
-        hasGroupedConsole: function() {
-            var console = jasmine.getGlobal().console;
-            return console && console.info && console.warn && console.group && console.groupEnd && console.groupCollapsed;
-        },
-
-        reportRunnerStarting: function(runner) {
-            this.started = true;
-            if (!this.hasGroupedConsole()) {
-                this.start_time = (new Date()).getTime();
-                this.executed_specs = 0;
-                this.passed_specs = 0;
-                this.log("Runner Started.");
-            }
-        },
-
-        reportSpecResults: function(spec) {
-            if (!this.hasGroupedConsole()) {
-                var resultText = "Failed.";
-
-                if (spec.results().passed()) {
-                    this.passed_specs++;
-                    resultText = "Passed.";
-                }
-
-                this.log(resultText);
-            }
-        },
-
-        reportSpecStarting: function(spec) {
-            if (!this.hasGroupedConsole()) {
-                this.executed_specs++;
-                this.log(spec.suite.description + ' : ' + spec.description + ' ... ');
-            }
-        },
-
-        reportSuiteResults: function(suite) {
-            if (!this.hasGroupedConsole()) {
-                var results = suite.results();
-                this.log(suite.description + ": " + results.passedCount + " of " + results.totalCount + " passed.");
-            }
-        },
-
-        log: function(str) {
-            var console = jasmine.getGlobal().console;
-            if (console && console.log) {
-                console.log(str);
-            }
-        }
-    };
-
-    function suiteResults(suite) {
-        var results = suite.results();
-        startGroup(results, suite.description);
-        var specs = suite.specs();
-        for (var i in specs) {
-            if (specs.hasOwnProperty(i)) {
-                specResults(specs[i]);
-            }
-        }
-        var suites = suite.suites();
-        for (var j in suites) {
-            if (suites.hasOwnProperty(j)) {
-                suiteResults(suites[j]);
-            }
-        }
-        console.groupEnd();
-    }
-
-    function specResults(spec) {
-        var results = spec.results();
-        startGroup(results, spec.description);
-        var items = results.getItems();
-        for (var k in items) {
-            if (items.hasOwnProperty(k)) {
-                itemResults(items[k]);
-            }
-        }
-        console.groupEnd();
-    }
-
-    function itemResults(item) {
-        if (item.passed && !item.passed()) {
-            console.warn({actual:item.actual,expected: item.expected});
-            item.trace.message = item.matcherName;
-            console.error(item.trace);
-        } else {
-            console.info('Passed');
-        }
-    }
-
-    function startGroup(results, description) {
-        var consoleFunc = (results.passed() && console.groupCollapsed) ? 'groupCollapsed' : 'group';
-        console[consoleFunc](description + ' (' + results.passedCount + '/' + results.totalCount + ' passed, ' + results.failedCount + ' failures)');
-    }
-
-    // export public
-    jasmine.ConsoleReporter = ConsoleReporter;
-})();


[06/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxProject.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxProject.js b/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxProject.js
deleted file mode 100644
index d534da6..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxProject.js
+++ /dev/null
@@ -1,646 +0,0 @@
-var util = require('util'),
-    f = util.format,
-    EventEmitter = require('events').EventEmitter,
-    path = require('path'),
-    uuid = require('node-uuid'),
-    fork = require('child_process').fork,
-    pbxWriter = require('./pbxWriter'),
-    pbxFile = require('./pbxFile'),
-    fs = require('fs'),
-    parser = require('./parser/pbxproj'),
-    COMMENT_KEY = /_comment$/
-
-function pbxProject(filename) {
-    if (!(this instanceof pbxProject))
-        return new pbxProject(filename);
-
-    this.filepath = path.resolve(filename)
-}
-
-util.inherits(pbxProject, EventEmitter)
-
-pbxProject.prototype.parse = function (cb) {
-    var worker = fork(__dirname + '/parseJob.js', [this.filepath])
-
-    worker.on('message', function (msg) {
-        if (msg.name == 'SyntaxError' || msg.code) {
-            this.emit('error', msg);
-        } else {
-            this.hash = msg;
-            this.emit('end', null, msg)
-        }
-    }.bind(this));
-
-    if (cb) {
-        this.on('error', cb);
-        this.on('end', cb);
-    }
-
-    return this;
-}
-
-pbxProject.prototype.parseSync = function () {
-    var file_contents = fs.readFileSync(this.filepath, 'utf-8');
-
-    this.hash = parser.parse(file_contents);
-    return this;
-}
-
-pbxProject.prototype.writeSync = function () {
-    this.writer = new pbxWriter(this.hash);
-    return this.writer.writeSync();
-}
-
-pbxProject.prototype.allUuids = function () {
-    var sections = this.hash.project.objects,
-        uuids = [],
-        section;
-
-    for (key in sections) {
-        section = sections[key]
-        uuids = uuids.concat(Object.keys(section))
-    }
-
-    uuids = uuids.filter(function (str) {
-        return !COMMENT_KEY.test(str) && str.length == 24;
-    });
-
-    return uuids;
-}
-
-pbxProject.prototype.generateUuid = function () {
-    var id = uuid.v4()
-                .replace(/-/g,'')
-                .substr(0,24)
-                .toUpperCase()
-
-    if (this.allUuids().indexOf(id) >= 0) {
-        return this.generateUuid();
-    } else {
-        return id;
-    }
-}
-
-pbxProject.prototype.addPluginFile = function (path, opt) {
-    var file = new pbxFile(path, opt);
-
-    file.plugin = true; // durr
-    correctForPluginsPath(file, this);
-
-    // null is better for early errors
-    if (this.hasFile(file.path)) return null;
-
-    file.fileRef = this.generateUuid();
-
-    this.addToPbxFileReferenceSection(file);    // PBXFileReference
-    this.addToPluginsPbxGroup(file);            // PBXGroup
-
-    return file;
-}
-
-pbxProject.prototype.removePluginFile = function (path, opt) {
-    var file = new pbxFile(path, opt);
-    correctForPluginsPath(file, this);
-
-    this.removeFromPbxFileReferenceSection(file);    // PBXFileReference
-    this.removeFromPluginsPbxGroup(file);            // PBXGroup
-
-    return file;
-}
-
-pbxProject.prototype.addSourceFile = function (path, opt) {
-    var file = this.addPluginFile(path, opt);
-
-    if (!file) return false;
-
-    file.uuid = this.generateUuid();
-
-    this.addToPbxBuildFileSection(file);        // PBXBuildFile
-    this.addToPbxSourcesBuildPhase(file);       // PBXSourcesBuildPhase
-
-    return file;
-}
-
-pbxProject.prototype.removeSourceFile = function (path, opt) {
-    var file = this.removePluginFile(path, opt)
-    this.removeFromPbxBuildFileSection(file);        // PBXBuildFile
-    this.removeFromPbxSourcesBuildPhase(file);       // PBXSourcesBuildPhase
-
-    return file;
-}
-
-pbxProject.prototype.addHeaderFile = function (path, opt) {
-    return this.addPluginFile(path, opt)
-}
-
-pbxProject.prototype.removeHeaderFile = function (path, opt) {
-    return this.removePluginFile(path, opt)
-}
-
-pbxProject.prototype.addResourceFile = function (path, opt) {
-    opt = opt || {};
-
-    var file;
-
-    if (opt.plugin) {
-        file = this.addPluginFile(path, opt);
-        if (!file) return false;
-    } else {
-        file = new pbxFile(path, opt);
-        if (this.hasFile(file.path)) return false;
-    }
-
-    file.uuid = this.generateUuid();
-
-    if (!opt.plugin) {
-        correctForResourcesPath(file, this);
-        file.fileRef = this.generateUuid();
-    }
-
-    this.addToPbxBuildFileSection(file);        // PBXBuildFile
-    this.addToPbxResourcesBuildPhase(file);     // PBXResourcesBuildPhase
-
-    if (!opt.plugin) {
-        this.addToPbxFileReferenceSection(file);    // PBXFileReference
-        this.addToResourcesPbxGroup(file);          // PBXGroup
-    }
-
-    return file;
-}
-
-pbxProject.prototype.removeResourceFile = function (path, opt) {
-    var file = new pbxFile(path, opt);
-    
-    correctForResourcesPath(file, this);
-
-    this.removeFromPbxBuildFileSection(file);        // PBXBuildFile
-    this.removeFromPbxFileReferenceSection(file);    // PBXFileReference
-    this.removeFromResourcesPbxGroup(file);          // PBXGroup
-    this.removeFromPbxResourcesBuildPhase(file);     // PBXResourcesBuildPhase
-    
-    return file;
-}
-
-pbxProject.prototype.addFramework = function (path, opt) {
-    var file = new pbxFile(path, opt);
-
-    // catch duplicates
-    if (this.hasFile(file.path)) return false;
-
-    file.uuid = this.generateUuid();
-    file.fileRef = this.generateUuid();
-
-    this.addToPbxBuildFileSection(file);        // PBXBuildFile
-    this.addToPbxFileReferenceSection(file);    // PBXFileReference
-    this.addToFrameworksPbxGroup(file);         // PBXGroup
-    this.addToPbxFrameworksBuildPhase(file);    // PBXFrameworksBuildPhase
-
-    return file;
-}
-
-pbxProject.prototype.removeFramework = function (path, opt) {
-    var file = new pbxFile(path, opt);
-
-    this.removeFromPbxBuildFileSection(file);        // PBXBuildFile
-    this.removeFromPbxFileReferenceSection(file);    // PBXFileReference
-    this.removeFromFrameworksPbxGroup(file);         // PBXGroup
-    this.removeFromPbxFrameworksBuildPhase(file);    // PBXFrameworksBuildPhase
-
-    return file;
-}
-
-pbxProject.prototype.addStaticLibrary = function (path, opt) {
-    opt = opt || {};
-
-    var file;
-
-    if (opt.plugin) {
-        file = this.addPluginFile(path, opt);
-        if (!file) return false;
-    } else {
-        file = new pbxFile(path, opt);
-        if (this.hasFile(file.path)) return false;
-    }
-
-    file.uuid = this.generateUuid();
-
-    if (!opt.plugin) {
-        file.fileRef = this.generateUuid();
-        this.addToPbxFileReferenceSection(file);    // PBXFileReference
-    }
-
-    this.addToPbxBuildFileSection(file);        // PBXBuildFile
-    this.addToPbxFrameworksBuildPhase(file);    // PBXFrameworksBuildPhase
-    this.addToLibrarySearchPaths(file);        // make sure it gets built!
-
-    return file;
-}
-
-// helper addition functions
-pbxProject.prototype.addToPbxBuildFileSection = function (file) {
-    var commentKey = f("%s_comment", file.uuid);
-
-    this.pbxBuildFileSection()[file.uuid] = pbxBuildFileObj(file);
-    this.pbxBuildFileSection()[commentKey] = pbxBuildFileComment(file);
-}
-
-pbxProject.prototype.removeFromPbxBuildFileSection = function (file) {
-    var uuid;
-
-    for(uuid in this.pbxBuildFileSection()) {
-        if(this.pbxBuildFileSection()[uuid].fileRef_comment == file.basename) {
-            file.uuid = uuid;
-            delete this.pbxBuildFileSection()[uuid];
-        }
-    }
-    var commentKey = f("%s_comment", file.uuid);
-    delete this.pbxBuildFileSection()[commentKey];
-}
-
-pbxProject.prototype.addToPbxFileReferenceSection = function (file) {
-    var commentKey = f("%s_comment", file.fileRef);
-
-    this.pbxFileReferenceSection()[file.fileRef] = pbxFileReferenceObj(file);
-    this.pbxFileReferenceSection()[commentKey] = pbxFileReferenceComment(file);
-}
-
-pbxProject.prototype.removeFromPbxFileReferenceSection = function (file) {
-
-    var i;
-    var refObj = pbxFileReferenceObj(file);
-    for(i in this.pbxFileReferenceSection()) {
-        if(this.pbxFileReferenceSection()[i].name == refObj.name ||
-           this.pbxFileReferenceSection()[i].path == refObj.path) {
-            file.fileRef = file.uuid = i;
-            delete this.pbxFileReferenceSection()[i];
-            break;
-        }
-    }
-    var commentKey = f("%s_comment", file.fileRef);
-    if(this.pbxFileReferenceSection()[commentKey] != undefined) {
-        delete this.pbxFileReferenceSection()[commentKey];
-    }
-
-    return file;
-}
-
-pbxProject.prototype.addToPluginsPbxGroup = function (file) {
-    var pluginsGroup = this.pbxGroupByName('Plugins');
-    pluginsGroup.children.push(pbxGroupChild(file));
-}
-
-pbxProject.prototype.removeFromPluginsPbxGroup = function (file) {
-    var pluginsGroupChildren = this.pbxGroupByName('Plugins').children, i;
-    for(i in pluginsGroupChildren) {
-        if(pbxGroupChild(file).value == pluginsGroupChildren[i].value &&
-           pbxGroupChild(file).comment == pluginsGroupChildren[i].comment) {
-            pluginsGroupChildren.splice(i, 1);
-            break;
-        }
-    }
-}
-
-pbxProject.prototype.addToResourcesPbxGroup = function (file) {
-    var pluginsGroup = this.pbxGroupByName('Resources');
-    pluginsGroup.children.push(pbxGroupChild(file));
-}
-
-pbxProject.prototype.removeFromResourcesPbxGroup = function (file) {
-    var pluginsGroupChildren = this.pbxGroupByName('Resources').children, i;
-    for(i in pluginsGroupChildren) {
-        if(pbxGroupChild(file).value == pluginsGroupChildren[i].value &&
-           pbxGroupChild(file).comment == pluginsGroupChildren[i].comment) {
-            pluginsGroupChildren.splice(i, 1);
-            break;
-        }
-    }
-}
-
-pbxProject.prototype.addToFrameworksPbxGroup = function (file) {
-    var pluginsGroup = this.pbxGroupByName('Frameworks');
-    pluginsGroup.children.push(pbxGroupChild(file));
-}
-
-pbxProject.prototype.removeFromFrameworksPbxGroup = function (file) {
-    var pluginsGroupChildren = this.pbxGroupByName('Frameworks').children;
-    
-    for(i in pluginsGroupChildren) {
-        if(pbxGroupChild(file).value == pluginsGroupChildren[i].value &&
-           pbxGroupChild(file).comment == pluginsGroupChildren[i].comment) {
-            pluginsGroupChildren.splice(i, 1);
-            break;
-        }
-    }
-}
-
-pbxProject.prototype.addToPbxSourcesBuildPhase = function (file) {
-    var sources = this.pbxSourcesBuildPhaseObj();
-    sources.files.push(pbxBuildPhaseObj(file));
-}
-
-pbxProject.prototype.removeFromPbxSourcesBuildPhase = function (file) {
-    var sources = this.pbxSourcesBuildPhaseObj(), i;
-    for(i in sources.files) {
-        if(sources.files[i].comment == longComment(file)) {
-            sources.files.splice(i, 1);
-            break; 
-        }
-    }
-}
-
-pbxProject.prototype.addToPbxResourcesBuildPhase = function (file) {
-    var sources = this.pbxResourcesBuildPhaseObj();
-    sources.files.push(pbxBuildPhaseObj(file));
-}
-
-pbxProject.prototype.removeFromPbxResourcesBuildPhase = function (file) {
-    var sources = this.pbxResourcesBuildPhaseObj(), i;
-
-    for(i in sources.files) {
-        if(sources.files[i].comment == longComment(file)) {
-            sources.files.splice(i, 1);
-            break;
-        }
-    }
-}
-
-pbxProject.prototype.addToPbxFrameworksBuildPhase = function (file) {
-    var sources = this.pbxFrameworksBuildPhaseObj();
-    sources.files.push(pbxBuildPhaseObj(file));
-}
-
-pbxProject.prototype.removeFromPbxFrameworksBuildPhase = function (file) {
-    var sources = this.pbxFrameworksBuildPhaseObj();
-    for(i in sources.files) {
-        if(sources.files[i].comment == longComment(file)) {
-            sources.files.splice(i, 1);
-            break;
-        }
-    }
-}
-
-// helper access functions
-pbxProject.prototype.pbxBuildFileSection = function () {
-    return this.hash.project.objects['PBXBuildFile'];
-}
-
-pbxProject.prototype.pbxXCBuildConfigurationSection = function () {
-    return this.hash.project.objects['XCBuildConfiguration'];
-}
-
-pbxProject.prototype.pbxFileReferenceSection = function () {
-    return this.hash.project.objects['PBXFileReference'];
-}
-
-pbxProject.prototype.pbxGroupByName = function (name) {
-    var groups = this.hash.project.objects['PBXGroup'],
-        key, groupKey;
-
-    for (key in groups) {
-        // only look for comments
-        if (!COMMENT_KEY.test(key)) continue;
-
-        if (groups[key] == name) {
-            groupKey = key.split(COMMENT_KEY)[0];
-            return groups[groupKey];
-        }
-    }
-
-    return null;
-}
-
-pbxProject.prototype.pbxSourcesBuildPhaseObj = function () {
-    return this.buildPhaseObject('PBXSourcesBuildPhase', 'Sources');
-}
-
-pbxProject.prototype.pbxResourcesBuildPhaseObj = function () {
-    return this.buildPhaseObject('PBXResourcesBuildPhase', 'Resources');
-}
-
-pbxProject.prototype.pbxFrameworksBuildPhaseObj = function () {
-    return this.buildPhaseObject('PBXFrameworksBuildPhase', 'Frameworks');
-}
-
-pbxProject.prototype.buildPhaseObject = function (name, group) {
-    var section = this.hash.project.objects[name],
-        obj, sectionKey, key;
-
-    for (key in section) {
-        // only look for comments
-        if (!COMMENT_KEY.test(key)) continue;
-
-        if (section[key] == group) {
-            sectionKey = key.split(COMMENT_KEY)[0];
-            return section[sectionKey];
-        }
-    }
-
-    return null;
-}
-
-pbxProject.prototype.updateProductName = function(name) {
-    var config = this.pbxXCBuildConfigurationSection();
-    propReplace(config, 'PRODUCT_NAME', '"' + name + '"');
-}
-
-pbxProject.prototype.removeFromLibrarySearchPaths = function (file) {
-    var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
-        INHERITED = '"$(inherited)"',
-        SEARCH_PATHS = 'LIBRARY_SEARCH_PATHS',
-        config, buildSettings, searchPaths;
-    var new_path = searchPathForFile(file, this);
-
-    for (config in configurations) {
-        buildSettings = configurations[config].buildSettings;
-
-        if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
-            continue;
-
-        if (buildSettings[SEARCH_PATHS]) {
-            var matches = buildSettings[SEARCH_PATHS].filter(function(p) {
-                return p.indexOf(new_path) > -1;
-            });
-            matches.forEach(function(m) {
-                var idx = buildSettings[SEARCH_PATHS].indexOf(m);
-                buildSettings[SEARCH_PATHS].splice(idx, 1);
-            });
-        }
-
-    }
-}
-
-pbxProject.prototype.addToLibrarySearchPaths = function (file) {
-    var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
-        INHERITED = '"$(inherited)"',
-        config, buildSettings, searchPaths;
-
-    for (config in configurations) {
-        buildSettings = configurations[config].buildSettings;
-
-        if (unquote(buildSettings['PRODUCT_NAME']) != this.productName)
-            continue;
-
-        if (!buildSettings['LIBRARY_SEARCH_PATHS']) {
-            buildSettings['LIBRARY_SEARCH_PATHS'] = [INHERITED];
-        }
-
-        buildSettings['LIBRARY_SEARCH_PATHS'].push(searchPathForFile(file, this));
-    }
-}
-
-// a JS getter. hmmm
-pbxProject.prototype.__defineGetter__("productName", function () {
-    var configurations = nonComments(this.pbxXCBuildConfigurationSection()),
-        config, productName;
-
-    for (config in configurations) {
-        productName = configurations[config].buildSettings['PRODUCT_NAME'];
-
-        if (productName) {
-            return unquote(productName);
-        }
-    }
-});
-
-// check if file is present
-pbxProject.prototype.hasFile = function (filePath) {
-    var files = nonComments(this.pbxFileReferenceSection()),
-        file, id;
-
-    for (id in files) {
-        file = files[id];
-
-        if (file.path == filePath || file.path == ('"' + filePath + '"')) {
-            return true;
-        }
-    }
-
-    return false;
-}
-
-// helper recursive prop search+replace
-function propReplace(obj, prop, value) {
-    for (var p in obj) {
-        if (obj.hasOwnProperty(p)) {
-            if (typeof obj[p] == 'object') {
-                propReplace(obj[p], prop, value);
-            } else if (p == prop) {
-                obj[p] = value;
-            }
-        }
-    }
-}
-
-// helper object creation functions
-function pbxBuildFileObj(file) {
-    var obj = Object.create(null);
-
-    obj.isa = 'PBXBuildFile';
-    obj.fileRef = file.fileRef;
-    obj.fileRef_comment = file.basename;
-    if (file.settings) obj.settings = file.settings;
-
-    return obj;
-}
-
-function pbxFileReferenceObj(file) {
-    var obj = Object.create(null);
-
-    obj.isa = 'PBXFileReference';
-    obj.lastKnownFileType = file.lastType;
-    
-    obj.name = "\"" + file.basename + "\"";
-    obj.path = "\"" + file.path + "\"";
-    
-    obj.sourceTree = file.sourceTree;
-
-    if (file.fileEncoding)
-        obj.fileEncoding = file.fileEncoding;
-
-    return obj;
-}
-
-function pbxGroupChild(file) {
-    var obj = Object.create(null);
-
-    obj.value = file.fileRef;
-    obj.comment = file.basename;
-
-    return obj;
-}
-
-function pbxBuildPhaseObj(file) {
-    var obj = Object.create(null);
-
-    obj.value = file.uuid;
-    obj.comment = longComment(file);
-
-    return obj;
-}
-
-function pbxBuildFileComment(file) {
-    return longComment(file);
-}
-
-function pbxFileReferenceComment(file) {
-    return file.basename;
-}
-
-function longComment(file) {
-    return f("%s in %s", file.basename, file.group);
-}
-
-// respect <group> path
-function correctForPluginsPath(file, project) {
-    var r_plugin_dir = /^Plugins\//;
-
-    if (project.pbxGroupByName('Plugins').path)
-        file.path = file.path.replace(r_plugin_dir, '');
-
-    return file;
-}
-
-function correctForResourcesPath(file, project) {
-    var r_resources_dir = /^Resources\//;
-
-    if (project.pbxGroupByName('Resources').path)
-        file.path = file.path.replace(r_resources_dir, '');
-
-    return file;
-}
-
-function searchPathForFile(file, proj) {
-    var pluginsPath = proj.pbxGroupByName('Plugins').path,
-        fileDir = path.dirname(file.path);
-
-    if (fileDir == '.') {
-        fileDir = '';
-    } else {
-        fileDir = '/' + fileDir;
-    }
-
-    if (file.plugin && pluginsPath) {
-        return '"\\"$(SRCROOT)/' + unquote(pluginsPath) + '\\""';
-    } else {
-        return '"\\"$(SRCROOT)/' + proj.productName + fileDir + '\\""';
-    }
-}
-
-function nonComments(obj) {
-    var keys = Object.keys(obj),
-        newObj = {}, i = 0;
-
-    for (i; i < keys.length; i++) {
-        if (!COMMENT_KEY.test(keys[i])) {
-            newObj[keys[i]] = obj[keys[i]];
-        }
-    }
-
-    return newObj;
-}
-
-function unquote(str) {
-    if (str) return str.replace(/^"(.*)"$/, "$1");
-}
-
-module.exports = pbxProject;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxWriter.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxWriter.js b/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxWriter.js
deleted file mode 100644
index a65bcf1..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxWriter.js
+++ /dev/null
@@ -1,282 +0,0 @@
-var pbxProj = require('./pbxProject'),
-    util = require('util'),
-    f = util.format,
-    INDENT = '\t',
-    COMMENT_KEY = /_comment$/,
-    QUOTED = /^"(.*)"$/,
-    EventEmitter = require('events').EventEmitter
-
-// indentation
-function i(x) {
-    if (x <=0)
-        return '';
-    else
-        return INDENT + i(x-1);
-}
-
-function comment(key, parent) {
-    var text = parent[key + '_comment'];
-
-    if (text)
-        return text;
-    else
-        return null;
-}
-
-// copied from underscore
-function isObject(obj) {
-    return obj === Object(obj)
-}
-
-function isArray(obj) {
-    return Array.isArray(obj)
-}
-
-function pbxWriter(contents) {
-    this.contents = contents;
-    this.sync = false;
-    this.indentLevel = 0;
-}
-
-util.inherits(pbxWriter, EventEmitter);
-
-pbxWriter.prototype.write = function (str) {
-    var fmt = f.apply(null, arguments);
-
-    if (this.sync) {
-        this.buffer += f("%s%s", i(this.indentLevel), fmt);
-    } else {
-        // do stream write
-    }
-}
-
-pbxWriter.prototype.writeFlush = function (str) {
-    var oldIndent = this.indentLevel;
-
-    this.indentLevel = 0;
-
-    this.write.apply(this, arguments)
-
-    this.indentLevel = oldIndent;
-}
-
-pbxWriter.prototype.writeSync = function () {
-    this.sync = true;
-    this.buffer = "";
-
-    this.writeHeadComment();
-    this.writeProject();
-
-    return this.buffer;
-}
-
-pbxWriter.prototype.writeHeadComment = function () {
-    if (this.contents.headComment) {
-        this.write("// %s\n", this.contents.headComment)
-    }
-}
-
-pbxWriter.prototype.writeProject = function () {
-    var proj = this.contents.project,
-        key, cmt, obj;
-
-    this.write("{\n")
-
-    if (proj) {
-        this.indentLevel++;
-
-        for (key in proj) {
-            // skip comments
-            if (COMMENT_KEY.test(key)) continue;
-
-            cmt = comment(key, proj);
-            obj = proj[key];
-
-            if (isArray(obj)) {
-                this.writeArray(obj, key)
-            } else if (isObject(obj)) {
-                this.write("%s = {\n", key);
-                this.indentLevel++;
-
-                if (key === 'objects') {
-                    this.writeObjectsSections(obj)
-                } else {
-                    this.writeObject(obj)
-                }
-
-                this.indentLevel--;
-                this.write("};\n");
-            } else if (cmt) {
-                this.write("%s = %s /* %s */;\n", key, obj, cmt)
-            } else {
-                this.write("%s = %s;\n", key, obj)
-            }
-        }
-
-        this.indentLevel--;
-    }
-
-    this.write("}\n")
-}
-
-pbxWriter.prototype.writeObject = function (object) {
-    var key, obj, cmt;
-
-    for (key in object) {
-        if (COMMENT_KEY.test(key)) continue;
-
-        cmt = comment(key, object);
-        obj = object[key];
-
-        if (isArray(obj)) {
-            this.writeArray(obj, key)
-        } else if (isObject(obj)) {
-            this.write("%s = {\n", key);
-            this.indentLevel++;
-
-            this.writeObject(obj)
-
-            this.indentLevel--;
-            this.write("};\n");
-        } else {
-            if (cmt) {
-                this.write("%s = %s /* %s */;\n", key, obj, cmt)
-            } else {
-                this.write("%s = %s;\n", key, obj)
-            }
-        }
-    }
-}
-
-pbxWriter.prototype.writeObjectsSections = function (objects) {
-    var first = true,
-        key, obj;
-
-    for (key in objects) {
-        if (!first) {
-            this.writeFlush("\n")
-        } else {
-            first = false;
-        }
-
-        obj = objects[key];
-
-        if (isObject(obj)) {
-            this.writeSectionComment(key, true);
-
-            this.writeSection(obj);
-
-            this.writeSectionComment(key, false);
-        }
-    }
-}
-
-pbxWriter.prototype.writeArray = function (arr, name) {
-    var i, entry;
-
-    this.write("%s = (\n", name);
-    this.indentLevel++;
-
-    for (i=0; i < arr.length; i++) {
-        entry = arr[i]
-
-        if (entry.value && entry.comment) {
-            this.write('%s /* %s */,\n', entry.value, entry.comment);
-        } else if (isObject(entry)) {
-            this.write('{\n');
-            this.indentLevel++;
-            
-            this.writeObject(entry);
-
-            this.indentLevel--;
-            this.write('},\n');
-        } else {
-            this.write('%s,\n', entry);
-        }
-    }
-
-    this.indentLevel--;
-    this.write(");\n");
-}
-
-pbxWriter.prototype.writeSectionComment = function (name, begin) {
-    if (begin) {
-        this.writeFlush("/* Begin %s section */\n", name)
-    } else { // end
-        this.writeFlush("/* End %s section */\n", name)
-    }
-}
-
-pbxWriter.prototype.writeSection = function (section) {
-    var key, obj, cmt;
-
-    // section should only contain objects
-    for (key in section) {
-        if (COMMENT_KEY.test(key)) continue;
-
-        cmt = comment(key, section);
-        obj = section[key]
-
-        if (obj.isa == 'PBXBuildFile' || obj.isa == 'PBXFileReference') {
-            this.writeInlineObject(key, cmt, obj);
-        } else {
-            if (cmt) {
-                this.write("%s /* %s */ = {\n", key, cmt);
-            } else {
-                this.write("%s = {\n", key);
-            }
-
-            this.indentLevel++
-
-            this.writeObject(obj)
-
-            this.indentLevel--
-            this.write("};\n");
-        }
-    }
-}
-
-pbxWriter.prototype.writeInlineObject = function (n, d, r) {
-    var output = [];
-
-    var inlineObjectHelper = function (name, desc, ref) {
-        var key, cmt, obj;
-
-        if (desc) {
-            output.push(f("%s /* %s */ = {", name, desc));
-        } else {
-            output.push(f("%s = {", name));
-        }
-
-        for (key in ref) {
-            if (COMMENT_KEY.test(key)) continue;
-
-            cmt = comment(key, ref);
-            obj = ref[key];
-
-            if (isArray(obj)) {
-                output.push(f("%s = (", key));
-                
-                for (var i=0; i < obj.length; i++) {
-                    output.push(f("%s, ", obj[i]))
-                }
-
-                output.push("); ");
-            } else if (isObject(obj)) {
-                inlineObjectHelper(key, cmt, obj)
-            } else if (cmt) {
-                output.push(f("%s = %s /* %s */; ", key, obj, cmt))
-            } else {
-                output.push(f("%s = %s; ", key, obj))
-            }
-        }
-
-        output.push("}; ");
-    }
-
-    inlineObjectHelper(n, d, r);
-
-    this.write("%s\n", output.join('').trim());
-}
-
-module.exports = pbxWriter;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/.bin/pegjs
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/.bin/pegjs b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/.bin/pegjs
deleted file mode 120000
index 67b7cec..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/.bin/pegjs
+++ /dev/null
@@ -1 +0,0 @@
-../pegjs/bin/pegjs
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/.npmignore b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/.npmignore
deleted file mode 100644
index fd4f2b0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-.DS_Store

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/LICENSE.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/LICENSE.md b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/LICENSE.md
deleted file mode 100644
index bcdddf9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/LICENSE.md
+++ /dev/null
@@ -1,3 +0,0 @@
-Copyright (c) 2010 Robert Kieffer
-
-Dual licensed under the [MIT](http://en.wikipedia.org/wiki/MIT_License) and [GPL](http://en.wikipedia.org/wiki/GNU_General_Public_License) licenses.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/README.md b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/README.md
deleted file mode 100644
index a44d9a7..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/README.md
+++ /dev/null
@@ -1,199 +0,0 @@
-# node-uuid
-
-Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
-
-Features:
-
-* Generate RFC4122 version 1 or version 4 UUIDs
-* Runs in node.js and all browsers.
-* Cryptographically strong random # generation on supporting platforms
-* 1.1K minified and gzip'ed  (Want something smaller?  Check this [crazy shit](https://gist.github.com/982883) out! )
-* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html)
-
-## Getting Started
-
-Install it in your browser:
-
-```html
-<script src="uuid.js"></script>
-```
-
-Or in node.js:
-
-```
-npm install node-uuid
-```
-
-```javascript
-var uuid = require('node-uuid');
-```
-
-Then create some ids ...
-
-```javascript
-// Generate a v1 (time-based) id
-uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
-
-// Generate a v4 (random) id
-uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
-```
-
-## API
-
-### uuid.v1([`options` [, `buffer` [, `offset`]]])
-
-Generate and return a RFC4122 v1 (timestamp-based) UUID.
-
-* `options` - (Object) Optional uuid state to apply. Properties may include:
-
-  * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomnly generated ID.  See note 1.
-  * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence.  Default: An internally maintained clockseq is used.
-  * `msecs` - (Number | Date) Time in milliseconds since unix Epoch.  Default: The current time is used.
-  * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
-
-* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
-* `offset` - (Number) Starting index in `buffer` at which to begin writing.
-
-Returns `buffer`, if specified, otherwise the string form of the UUID
-
-Notes:
-
-1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)
-
-Example: Generate string UUID with fully-specified options
-
-```javascript
-uuid.v1({
-  node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
-  clockseq: 0x1234,
-  msecs: new Date('2011-11-01').getTime(),
-  nsecs: 5678
-});   // -> "710b962e-041c-11e1-9234-0123456789ab"
-```
-
-Example: In-place generation of two binary IDs
-
-```javascript
-// Generate two ids in an array
-var arr = new Array(32); // -> []
-uuid.v1(null, arr, 0);   // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
-uuid.v1(null, arr, 16);  // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
-
-// Optionally use uuid.unparse() to get stringify the ids
-uuid.unparse(buffer);    // -> '02a2ce90-1432-11e1-8558-0b488e4fc115'
-uuid.unparse(buffer, 16) // -> '02a31cb0-1432-11e1-8558-0b488e4fc115'
-```
-
-### uuid.v4([`options` [, `buffer` [, `offset`]]])
-
-Generate and return a RFC4122 v4 UUID.
-
-* `options` - (Object) Optional uuid state to apply. Properties may include:
-
-  * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values
-  * `rng` - (Function) Random # generator to use.  Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values.
-
-* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
-* `offset` - (Number) Starting index in `buffer` at which to begin writing.
-
-Returns `buffer`, if specified, otherwise the string form of the UUID
-
-Example: Generate string UUID with fully-specified options
-
-```javascript
-uuid.v4({
-  random: [
-    0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
-    0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
-  ]
-});
-// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"
-```
-
-Example: Generate two IDs in a single buffer
-
-```javascript
-var buffer = new Array(32); // (or 'new Buffer' in node.js)
-uuid.v4(null, buffer, 0);
-uuid.v4(null, buffer, 16);
-```
-
-### uuid.parse(id[, buffer[, offset]])
-### uuid.unparse(buffer[, offset])
-
-Parse and unparse UUIDs
-
-  * `id` - (String) UUID(-like) string
-  * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used
-  * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0
-
-Example parsing and unparsing a UUID string
-
-```javascript
-var bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10>
-var string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10'
-```
-
-### uuid.noConflict()
-
-(Browsers only) Set `uuid` property back to it's previous value.
-
-Returns the node-uuid object.
-
-Example:
-
-```javascript
-var myUuid = uuid.noConflict();
-myUuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
-```
-
-## Deprecated APIs
-
-Support for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version.
-
-### uuid([format [, buffer [, offset]]])
-
-uuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary).
-
-### uuid.BufferClass
-
-The class of container created when generating binary uuid data if no buffer argument is specified.  This is expected to go away, with no replacement API.
-
-## Testing
-
-In node.js
-
-```
-> cd test
-> node uuid.js
-```
-
-In Browser
-
-```
-open test/test.html
-```
-
-### Benchmarking
-
-Requires node.js
-
-```
-npm install uuid uuid-js
-node test/benchmark.js
-```
-
-For a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark)
-
-For browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).
-
-## Release notes
-
-v1.3.2:
-* Improve tests and handling of v1() options (Issue #24)
-* Expose RNG option to allow for perf testing with different generators
-
-v1.3:
-* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
-* Support for node.js crypto API
-* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/README.md b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/README.md
deleted file mode 100644
index aaeb2ea..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# node-uuid Benchmarks
-
-### Results
-
-To see the results of our benchmarks visit https://github.com/broofa/node-uuid/wiki/Benchmark
-
-### Run them yourself
-
-node-uuid comes with some benchmarks to measure performance of generating UUIDs. These can be run using node.js. node-uuid is being benchmarked against some other uuid modules, that are available through npm namely `uuid` and `uuid-js`.
-
-To prepare and run the benchmark issue;
-
-```
-npm install uuid uuid-js
-node benchmark/benchmark.js
-```
-
-You'll see an output like this one:
-
-```
-# v4
-nodeuuid.v4(): 854700 uuids/second
-nodeuuid.v4('binary'): 788643 uuids/second
-nodeuuid.v4('binary', buffer): 1336898 uuids/second
-uuid(): 479386 uuids/second
-uuid('binary'): 582072 uuids/second
-uuidjs.create(4): 312304 uuids/second
-
-# v1
-nodeuuid.v1(): 938086 uuids/second
-nodeuuid.v1('binary'): 683060 uuids/second
-nodeuuid.v1('binary', buffer): 1644736 uuids/second
-uuidjs.create(1): 190621 uuids/second
-```
-
-* The `uuid()` entries are for Nikhil Marathe's [uuid module](https://bitbucket.org/nikhilm/uuidjs) which is a wrapper around the native libuuid library.
-* The `uuidjs()` entries are for Patrick Negri's [uuid-js module](https://github.com/pnegri/uuid-js) which is a pure javascript implementation based on [UUID.js](https://github.com/LiosK/UUID.js) by LiosK.
-
-If you want to get more reliable results you can run the benchmark multiple times and write the output into a log file:
-
-```
-for i in {0..9}; do node benchmark/benchmark.js >> benchmark/bench_0.4.12.log; done;
-```
-
-If you're interested in how performance varies between different node versions, you can issue the above command multiple times.
-
-You can then use the shell script `bench.sh` provided in this directory to calculate the averages over all benchmark runs and draw a nice plot:
-
-```
-(cd benchmark/ && ./bench.sh)
-```
-
-This assumes you have [gnuplot](http://www.gnuplot.info/) and [ImageMagick](http://www.imagemagick.org/) installed. You'll find a nice `bench.png` graph in the `benchmark/` directory then.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/bench.gnu
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/bench.gnu b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/bench.gnu
deleted file mode 100644
index a342fbb..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/bench.gnu
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/opt/local/bin/gnuplot -persist
-#
-#    
-#    	G N U P L O T
-#    	Version 4.4 patchlevel 3
-#    	last modified March 2011
-#    	System: Darwin 10.8.0
-#    
-#    	Copyright (C) 1986-1993, 1998, 2004, 2007-2010
-#    	Thomas Williams, Colin Kelley and many others
-#    
-#    	gnuplot home:     http://www.gnuplot.info
-#    	faq, bugs, etc:   type "help seeking-assistance"
-#    	immediate help:   type "help"
-#    	plot window:      hit 'h'
-set terminal postscript eps noenhanced defaultplex \
- leveldefault color colortext \
- solid linewidth 1.2 butt noclip \
- palfuncparam 2000,0.003 \
- "Helvetica" 14 
-set output 'bench.eps'
-unset clip points
-set clip one
-unset clip two
-set bar 1.000000 front
-set border 31 front linetype -1 linewidth 1.000
-set xdata
-set ydata
-set zdata
-set x2data
-set y2data
-set timefmt x "%d/%m/%y,%H:%M"
-set timefmt y "%d/%m/%y,%H:%M"
-set timefmt z "%d/%m/%y,%H:%M"
-set timefmt x2 "%d/%m/%y,%H:%M"
-set timefmt y2 "%d/%m/%y,%H:%M"
-set timefmt cb "%d/%m/%y,%H:%M"
-set boxwidth
-set style fill  empty border
-set style rectangle back fc lt -3 fillstyle   solid 1.00 border lt -1
-set style circle radius graph 0.02, first 0, 0 
-set dummy x,y
-set format x "% g"
-set format y "% g"
-set format x2 "% g"
-set format y2 "% g"
-set format z "% g"
-set format cb "% g"
-set angles radians
-unset grid
-set key title ""
-set key outside left top horizontal Right noreverse enhanced autotitles columnhead nobox
-set key noinvert samplen 4 spacing 1 width 0 height 0 
-set key maxcolumns 2 maxrows 0
-unset label
-unset arrow
-set style increment default
-unset style line
-set style line 1  linetype 1 linewidth 2.000 pointtype 1 pointsize default pointinterval 0
-unset style arrow
-set style histogram clustered gap 2 title  offset character 0, 0, 0
-unset logscale
-set offsets graph 0.05, 0.15, 0, 0
-set pointsize 1.5
-set pointintervalbox 1
-set encoding default
-unset polar
-unset parametric
-unset decimalsign
-set view 60, 30, 1, 1
-set samples 100, 100
-set isosamples 10, 10
-set surface
-unset contour
-set clabel '%8.3g'
-set mapping cartesian
-set datafile separator whitespace
-unset hidden3d
-set cntrparam order 4
-set cntrparam linear
-set cntrparam levels auto 5
-set cntrparam points 5
-set size ratio 0 1,1
-set origin 0,0
-set style data points
-set style function lines
-set xzeroaxis linetype -2 linewidth 1.000
-set yzeroaxis linetype -2 linewidth 1.000
-set zzeroaxis linetype -2 linewidth 1.000
-set x2zeroaxis linetype -2 linewidth 1.000
-set y2zeroaxis linetype -2 linewidth 1.000
-set ticslevel 0.5
-set mxtics default
-set mytics default
-set mztics default
-set mx2tics default
-set my2tics default
-set mcbtics default
-set xtics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
-set xtics  norangelimit
-set xtics   ()
-set ytics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
-set ytics autofreq  norangelimit
-set ztics border in scale 1,0.5 nomirror norotate  offset character 0, 0, 0
-set ztics autofreq  norangelimit
-set nox2tics
-set noy2tics
-set cbtics border in scale 1,0.5 mirror norotate  offset character 0, 0, 0
-set cbtics autofreq  norangelimit
-set title "" 
-set title  offset character 0, 0, 0 font "" norotate
-set timestamp bottom 
-set timestamp "" 
-set timestamp  offset character 0, 0, 0 font "" norotate
-set rrange [ * : * ] noreverse nowriteback  # (currently [8.98847e+307:-8.98847e+307] )
-set autoscale rfixmin
-set autoscale rfixmax
-set trange [ * : * ] noreverse nowriteback  # (currently [-5.00000:5.00000] )
-set autoscale tfixmin
-set autoscale tfixmax
-set urange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set autoscale ufixmin
-set autoscale ufixmax
-set vrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set autoscale vfixmin
-set autoscale vfixmax
-set xlabel "" 
-set xlabel  offset character 0, 0, 0 font "" textcolor lt -1 norotate
-set x2label "" 
-set x2label  offset character 0, 0, 0 font "" textcolor lt -1 norotate
-set xrange [ * : * ] noreverse nowriteback  # (currently [-0.150000:3.15000] )
-set autoscale xfixmin
-set autoscale xfixmax
-set x2range [ * : * ] noreverse nowriteback  # (currently [0.00000:3.00000] )
-set autoscale x2fixmin
-set autoscale x2fixmax
-set ylabel "" 
-set ylabel  offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
-set y2label "" 
-set y2label  offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
-set yrange [ 0.00000 : 1.90000e+06 ] noreverse nowriteback  # (currently [:] )
-set autoscale yfixmin
-set autoscale yfixmax
-set y2range [ * : * ] noreverse nowriteback  # (currently [0.00000:1.90000e+06] )
-set autoscale y2fixmin
-set autoscale y2fixmax
-set zlabel "" 
-set zlabel  offset character 0, 0, 0 font "" textcolor lt -1 norotate
-set zrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set autoscale zfixmin
-set autoscale zfixmax
-set cblabel "" 
-set cblabel  offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
-set cbrange [ * : * ] noreverse nowriteback  # (currently [8.98847e+307:-8.98847e+307] )
-set autoscale cbfixmin
-set autoscale cbfixmax
-set zero 1e-08
-set lmargin  -1
-set bmargin  -1
-set rmargin  -1
-set tmargin  -1
-set pm3d explicit at s
-set pm3d scansautomatic
-set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean
-set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB 
-set palette rgbformulae 7, 5, 15
-set colorbox default
-set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault
-set loadpath 
-set fontpath 
-set fit noerrorvariables
-GNUTERM = "aqua"
-plot 'bench_results.txt' using 2:xticlabel(1) w lp lw 2, '' using 3:xticlabel(1) w lp lw 2, '' using 4:xticlabel(1) w lp lw 2, '' using 5:xticlabel(1) w lp lw 2, '' using 6:xticlabel(1) w lp lw 2, '' using 7:xticlabel(1) w lp lw 2, '' using 8:xticlabel(1) w lp lw 2, '' using 9:xticlabel(1) w lp lw 2
-#    EOF

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/bench.sh
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/bench.sh b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/bench.sh
deleted file mode 100755
index d870a0c..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/bench.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-# for a given node version run:
-# for i in {0..9}; do node benchmark.js >> bench_0.6.2.log; done;
-
-PATTERNS=('nodeuuid.v1()' "nodeuuid.v1('binary'," 'nodeuuid.v4()' "nodeuuid.v4('binary'," "uuid()" "uuid('binary')" 'uuidjs.create(1)' 'uuidjs.create(4)' '140byte')
-FILES=(node_uuid_v1_string node_uuid_v1_buf node_uuid_v4_string node_uuid_v4_buf libuuid_v4_string libuuid_v4_binary uuidjs_v1_string uuidjs_v4_string 140byte_es)
-INDICES=(2 3 2 3 2 2 2 2 2)
-VERSIONS=$( ls bench_*.log | sed -e 's/^bench_\([0-9\.]*\)\.log/\1/' | tr "\\n" " " )
-TMPJOIN="tmp_join"
-OUTPUT="bench_results.txt"
-
-for I in ${!FILES[*]}; do
-  F=${FILES[$I]}
-  P=${PATTERNS[$I]}
-  INDEX=${INDICES[$I]}
-  echo "version $F" > $F
-  for V in $VERSIONS; do
-    (VAL=$( grep "$P" bench_$V.log | LC_ALL=en_US awk '{ sum += $'$INDEX' } END { print sum/NR }' ); echo $V $VAL) >> $F
-  done
-  if [ $I == 0 ]; then
-    cat $F > $TMPJOIN
-  else
-    join $TMPJOIN $F > $OUTPUT
-    cp $OUTPUT $TMPJOIN
-  fi
-  rm $F
-done
-
-rm $TMPJOIN
-
-gnuplot bench.gnu
-convert -density 200 -resize 800x560 -flatten bench.eps bench.png
-rm bench.eps

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/benchmark-native.c
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/benchmark-native.c b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/benchmark-native.c
deleted file mode 100644
index dbfc75f..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/benchmark-native.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Test performance of native C UUID generation
-
-To Compile: cc -luuid benchmark-native.c -o benchmark-native
-*/
-
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <uuid/uuid.h>
-
-int main() {
-  uuid_t myid;
-  char buf[36+1];
-  int i;
-  struct timeval t;
-  double start, finish;
-
-  gettimeofday(&t, NULL);
-  start = t.tv_sec + t.tv_usec/1e6;
-
-  int n = 2e5;
-  for (i = 0; i < n; i++) {
-    uuid_generate(myid);
-    uuid_unparse(myid, buf);
-  }
-
-  gettimeofday(&t, NULL);
-  finish = t.tv_sec + t.tv_usec/1e6;
-  double dur = finish - start;
-
-  printf("%d uuids/sec", (int)(n/dur));
-  return 0;
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/benchmark.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/benchmark.js b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/benchmark.js
deleted file mode 100644
index 40e6efb..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/benchmark/benchmark.js
+++ /dev/null
@@ -1,84 +0,0 @@
-try {
-  var nodeuuid = require('../uuid');
-} catch (e) {
-  console.error('node-uuid require failed - skipping tests');
-}
-
-try {
-  var uuid = require('uuid');
-} catch (e) {
-  console.error('uuid require failed - skipping tests');
-}
-
-try {
-  var uuidjs = require('uuid-js');
-} catch (e) {
-  console.error('uuid-js require failed - skipping tests');
-}
-
-var N = 5e5;
-
-function rate(msg, t) {
-  console.log(msg + ': ' +
-    (N / (Date.now() - t) * 1e3 | 0) +
-    ' uuids/second');
-}
-
-console.log('# v4');
-
-// node-uuid - string form
-if (nodeuuid) {
-  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4();
-  rate('nodeuuid.v4() - using node.js crypto RNG', t);
-
-  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4({rng: nodeuuid.mathRNG});
-  rate('nodeuuid.v4() - using Math.random() RNG', t);
-
-  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary');
-  rate('nodeuuid.v4(\'binary\')', t);
-
-  var buffer = new nodeuuid.BufferClass(16);
-  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary', buffer);
-  rate('nodeuuid.v4(\'binary\', buffer)', t);
-}
-
-// libuuid - string form
-if (uuid) {
-  for (var i = 0, t = Date.now(); i < N; i++) uuid();
-  rate('uuid()', t);
-
-  for (var i = 0, t = Date.now(); i < N; i++) uuid('binary');
-  rate('uuid(\'binary\')', t);
-}
-
-// uuid-js - string form
-if (uuidjs) {
-  for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(4);
-  rate('uuidjs.create(4)', t);
-}
-
-// 140byte.es
-for (var i = 0, t = Date.now(); i < N; i++) 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(s,r){r=Math.random()*16|0;return (s=='x'?r:r&0x3|0x8).toString(16)});
-rate('140byte.es_v4', t);
-
-console.log('');
-console.log('# v1');
-
-// node-uuid - v1 string form
-if (nodeuuid) {
-  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1();
-  rate('nodeuuid.v1()', t);
-
-  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary');
-  rate('nodeuuid.v1(\'binary\')', t);
-
-  var buffer = new nodeuuid.BufferClass(16);
-  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary', buffer);
-  rate('nodeuuid.v1(\'binary\', buffer)', t);
-}
-
-// uuid-js - v1 string form
-if (uuidjs) {
-  for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1);
-  rate('uuidjs.create(1)', t);
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/package.json b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/package.json
deleted file mode 100644
index 51a9c06..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "name": "node-uuid",
-  "description": "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.",
-  "url": "http://github.com/broofa/node-uuid",
-  "keywords": [
-    "uuid",
-    "guid",
-    "rfc4122"
-  ],
-  "author": {
-    "name": "Robert Kieffer",
-    "email": "robert@broofa.com"
-  },
-  "contributors": [
-    {
-      "name": "Christoph Tavan",
-      "email": "dev@tavan.de"
-    }
-  ],
-  "lib": ".",
-  "main": "./uuid.js",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/broofa/node-uuid.git"
-  },
-  "version": "1.3.3",
-  "readme": "# node-uuid\n\nSimple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.\n\nFeatures:\n\n* Generate RFC4122 version 1 or version 4 UUIDs\n* Runs in node.js and all browsers.\n* Cryptographically strong random # generation on supporting platforms\n* 1.1K minified and gzip'ed  (Want something smaller?  Check this [crazy shit](https://gist.github.com/982883) out! )\n* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html)\n\n## Getting Started\n\nInstall it in your browser:\n\n```html\n<script src=\"uuid.js\"></script>\n```\n\nOr in node.js:\n\n```\nnpm install node-uuid\n```\n\n```javascript\nvar uuid = require('node-uuid');\n```\n\nThen create some ids ...\n\n```javascript\n// Generate a v1 (time-based) id\nuuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'\n\n// Generate a v4 (random) id\nuuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'\n```\n\n## API\n\n### uuid.v1([`options` [, `buffer` [, `offset`]]])\n\nGenerate
  and return a RFC4122 v1 (timestamp-based) UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n  * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomnly generated ID.  See note 1.\n  * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence.  Default: An internally maintained clockseq is used.\n  * `msecs` - (Number | Date) Time in milliseconds since unix Epoch.  Default: The current time is used.\n  * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nNotes:\n\n1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime
 . (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v1({\n  node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],\n  clockseq: 0x1234,\n  msecs: new Date('2011-11-01').getTime(),\n  nsecs: 5678\n});   // -> \"710b962e-041c-11e1-9234-0123456789ab\"\n```\n\nExample: In-place generation of two binary IDs\n\n```javascript\n// Generate two ids in an array\nvar arr = new Array(32); // -> []\nuuid.v1(null, arr, 0);   // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\nuuid.v1(null, arr, 16);  // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\n\n// Optionally use uuid.unparse() to get stringify the ids\nuuid.unparse(buffer);    // -> '02a2ce90-1432-11e1-8558-0b488e4fc115'\nuuid.unparse(buffer, 16) // -> '02a31cb0-1432-11e1-8558-0b488e4fc115'\n```\n\n### uuid.v4([`options` [, `buffer` [, `offset`]]])\n\nGenerate a
 nd return a RFC4122 v4 UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n  * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values\n  * `rng` - (Function) Random # generator to use.  Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v4({\n  random: [\n    0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,\n    0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36\n  ]\n});\n// -> \"109156be-c4fb-41ea-b1b4-efe1671c5836\"\n```\n\nExample: Generate two ID
 s in a single buffer\n\n```javascript\nvar buffer = new Array(32); // (or 'new Buffer' in node.js)\nuuid.v4(null, buffer, 0);\nuuid.v4(null, buffer, 16);\n```\n\n### uuid.parse(id[, buffer[, offset]])\n### uuid.unparse(buffer[, offset])\n\nParse and unparse UUIDs\n\n  * `id` - (String) UUID(-like) string\n  * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used\n  * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0\n\nExample parsing and unparsing a UUID string\n\n```javascript\nvar bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10>\nvar string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10'\n```\n\n### uuid.noConflict()\n\n(Browsers only) Set `uuid` property back to it's previous value.\n\nReturns the node-uuid object.\n\nExample:\n\n```javascript\nvar myUuid = uuid.noConflict();\nmyUuid.v1()
 ; // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'\n```\n\n## Deprecated APIs\n\nSupport for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version.\n\n### uuid([format [, buffer [, offset]]])\n\nuuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary).\n\n### uuid.BufferClass\n\nThe class of container created when generating binary uuid data if no buffer argument is specified.  This is expected to go away, with no replacement API.\n\n## Testing\n\nIn node.js\n\n```\n> cd test\n> node uuid.js\n```\n\nIn Browser\n\n```\nopen test/test.html\n```\n\n### Benchmarking\n\nRequires node.js\n\n```\nnpm install uuid uuid-js\nnode test/benchmark.js\n```\n\nFor a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark)\n\nFor 
 browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).\n\n## Release notes\n\nv1.3.2:\n* Improve tests and handling of v1() options (Issue #24)\n* Expose RNG option to allow for perf testing with different generators\n\nv1.3:\n* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!\n* Support for node.js crypto API\n* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/broofa/node-uuid/issues"
-  },
-  "_id": "node-uuid@1.3.3",
-  "_from": "node-uuid@1.3.3"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/compare_v1.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/compare_v1.js b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/compare_v1.js
deleted file mode 100644
index 05af822..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/compare_v1.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var assert = require('assert'),
-    nodeuuid = require('../uuid'),
-    uuidjs = require('uuid-js'),
-    libuuid = require('uuid').generate,
-    util = require('util'),
-    exec = require('child_process').exec,
-    os = require('os');
-
-// On Mac Os X / macports there's only the ossp-uuid package that provides uuid
-// On Linux there's uuid-runtime which provides uuidgen
-var uuidCmd = os.type() === 'Darwin' ? 'uuid -1' : 'uuidgen -t';
-
-function compare(ids) {
-  console.log(ids);
-  for (var i = 0; i < ids.length; i++) {
-    var id = ids[i].split('-');
-    id = [id[2], id[1], id[0]].join('');
-    ids[i] = id;
-  }
-  var sorted = ([].concat(ids)).sort();
-
-  if (sorted.toString() !== ids.toString()) {
-    console.log('Warning: sorted !== ids');
-  } else {
-    console.log('everything in order!');
-  }
-}
-
-// Test time order of v1 uuids
-var ids = [];
-while (ids.length < 10e3) ids.push(nodeuuid.v1());
-
-var max = 10;
-console.log('node-uuid:');
-ids = [];
-for (var i = 0; i < max; i++) ids.push(nodeuuid.v1());
-compare(ids);
-
-console.log('');
-console.log('uuidjs:');
-ids = [];
-for (var i = 0; i < max; i++) ids.push(uuidjs.create(1).toString());
-compare(ids);
-
-console.log('');
-console.log('libuuid:');
-ids = [];
-var count = 0;
-var last = function() {
-  compare(ids);
-}
-var cb = function(err, stdout, stderr) {
-  ids.push(stdout.substring(0, stdout.length-1));
-  count++;
-  if (count < max) {
-    return next();
-  }
-  last();
-};
-var next = function() {
-  exec(uuidCmd, cb);
-};
-next();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/test.html
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/test.html b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/test.html
deleted file mode 100644
index d80326e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/test.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-  <head>
-    <style>
-      div {
-        font-family: monospace;
-        font-size: 8pt;
-      }
-      div.log {color: #444;}
-      div.warn {color: #550;}
-      div.error {color: #800; font-weight: bold;}
-    </style>
-    <script src="../uuid.js"></script>
-  </head>
-  <body>
-    <script src="./test.js"></script>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/test.js b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/test.js
deleted file mode 100644
index be23919..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/test/test.js
+++ /dev/null
@@ -1,240 +0,0 @@
-if (!this.uuid) {
-  // node.js
-  uuid = require('../uuid');
-}
-
-//
-// x-platform log/assert shims
-//
-
-function _log(msg, type) {
-  type = type || 'log';
-
-  if (typeof(document) != 'undefined') {
-    document.write('<div class="' + type + '">' + msg.replace(/\n/g, '<br />') + '</div>');
-  }
-  if (typeof(console) != 'undefined') {
-    var color = {
-      log: '\033[39m',
-      warn: '\033[33m',
-      error: '\033[31m'
-    }
-    console[type](color[type] + msg + color.log);
-  }
-}
-
-function log(msg) {_log(msg, 'log');}
-function warn(msg) {_log(msg, 'warn');}
-function error(msg) {_log(msg, 'error');}
-
-function assert(res, msg) {
-  if (!res) {
-    error('FAIL: ' + msg);
-  } else {
-    log('Pass: ' + msg);
-  }
-}
-
-//
-// Unit tests
-//
-
-// Verify ordering of v1 ids created with explicit times
-var TIME = 1321644961388; // 2011-11-18 11:36:01.388-08:00
-
-function compare(name, ids) {
-  ids = ids.map(function(id) {
-    return id.split('-').reverse().join('-');
-  }).sort();
-  var sorted = ([].concat(ids)).sort();
-
-  assert(sorted.toString() == ids.toString(), name + ' have expected order');
-}
-
-// Verify ordering of v1 ids created using default behavior
-compare('uuids with current time', [
-  uuid.v1(),
-  uuid.v1(),
-  uuid.v1(),
-  uuid.v1(),
-  uuid.v1()
-]);
-
-// Verify ordering of v1 ids created with explicit times
-compare('uuids with time option', [
-  uuid.v1({msecs: TIME - 10*3600*1000}),
-  uuid.v1({msecs: TIME - 1}),
-  uuid.v1({msecs: TIME}),
-  uuid.v1({msecs: TIME + 1}),
-  uuid.v1({msecs: TIME + 28*24*3600*1000}),
-]);
-
-assert(
-  uuid.v1({msecs: TIME}) != uuid.v1({msecs: TIME}),
-  'IDs created at same msec are different'
-);
-
-// Verify throw if too many ids created
-var thrown = false;
-try {
-  uuid.v1({msecs: TIME, nsecs: 10000});
-} catch (e) {
-  thrown = true;
-}
-assert(thrown, 'Exception thrown when > 10K ids created in 1 ms');
-
-// Verify clock regression bumps clockseq
-var uidt = uuid.v1({msecs: TIME});
-var uidtb = uuid.v1({msecs: TIME - 1});
-assert(
-  parseInt(uidtb.split('-')[3], 16) - parseInt(uidt.split('-')[3], 16) === 1,
-  'Clock regression by msec increments the clockseq'
-);
-
-// Verify clock regression bumps clockseq
-var uidtn = uuid.v1({msecs: TIME, nsecs: 10});
-var uidtnb = uuid.v1({msecs: TIME, nsecs: 9});
-assert(
-  parseInt(uidtnb.split('-')[3], 16) - parseInt(uidtn.split('-')[3], 16) === 1,
-  'Clock regression by nsec increments the clockseq'
-);
-
-// Verify explicit options produce expected id
-var id = uuid.v1({
-  msecs: 1321651533573,
-  nsecs: 5432,
-  clockseq: 0x385c,
-  node: [ 0x61, 0xcd, 0x3c, 0xbb, 0x32, 0x10 ]
-});
-assert(id == 'd9428888-122b-11e1-b85c-61cd3cbb3210', 'Explicit options produce expected id');
-
-// Verify adjacent ids across a msec boundary are 1 time unit apart
-var u0 = uuid.v1({msecs: TIME, nsecs: 9999});
-var u1 = uuid.v1({msecs: TIME + 1, nsecs: 0});
-
-var before = u0.split('-')[0], after = u1.split('-')[0];
-var dt = parseInt(after, 16) - parseInt(before, 16);
-assert(dt === 1, 'Ids spanning 1ms boundary are 100ns apart');
-
-//
-// Test parse/unparse
-//
-
-id = '00112233445566778899aabbccddeeff';
-assert(uuid.unparse(uuid.parse(id.substr(0,10))) ==
-  '00112233-4400-0000-0000-000000000000', 'Short parse');
-assert(uuid.unparse(uuid.parse('(this is the uuid -> ' + id + id)) ==
-  '00112233-4455-6677-8899-aabbccddeeff', 'Dirty parse');
-
-//
-// Perf tests
-//
-
-var generators = {
-  v1: uuid.v1,
-  v4: uuid.v4
-};
-
-var UUID_FORMAT = {
-  v1: /[0-9a-f]{8}-[0-9a-f]{4}-1[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i,
-  v4: /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i
-};
-
-var N = 1e4;
-
-// Get %'age an actual value differs from the ideal value
-function divergence(actual, ideal) {
-  return Math.round(100*100*(actual - ideal)/ideal)/100;
-}
-
-function rate(msg, t) {
-  log(msg + ': ' + (N / (Date.now() - t) * 1e3 | 0) + ' uuids\/second');
-}
-
-for (var version in generators) {
-  var counts = {}, max = 0;
-  var generator = generators[version];
-  var format = UUID_FORMAT[version];
-
-  log('\nSanity check ' + N + ' ' + version + ' uuids');
-  for (var i = 0, ok = 0; i < N; i++) {
-    id = generator();
-    if (!format.test(id)) {
-      throw Error(id + ' is not a valid UUID string');
-    }
-
-    if (id != uuid.unparse(uuid.parse(id))) {
-      assert(fail, id + ' is not a valid id');
-    }
-
-    // Count digits for our randomness check
-    if (version == 'v4') {
-      var digits = id.replace(/-/g, '').split('');
-      for (var j = digits.length-1; j >= 0; j--) {
-        var c = digits[j];
-        max = Math.max(max, counts[c] = (counts[c] || 0) + 1);
-      }
-    }
-  }
-
-  // Check randomness for v4 UUIDs
-  if (version == 'v4') {
-    // Limit that we get worried about randomness. (Purely empirical choice, this!)
-    var limit = 2*100*Math.sqrt(1/N);
-
-    log('\nChecking v4 randomness.  Distribution of Hex Digits (% deviation from ideal)');
-
-    for (var i = 0; i < 16; i++) {
-      var c = i.toString(16);
-      var bar = '', n = counts[c], p = Math.round(n/max*100|0);
-
-      // 1-3,5-8, and D-F: 1:16 odds over 30 digits
-      var ideal = N*30/16;
-      if (i == 4) {
-        // 4: 1:1 odds on 1 digit, plus 1:16 odds on 30 digits
-        ideal = N*(1 + 30/16);
-      } else if (i >= 8 && i <= 11) {
-        // 8-B: 1:4 odds on 1 digit, plus 1:16 odds on 30 digits
-        ideal = N*(1/4 + 30/16);
-      } else {
-        // Otherwise: 1:16 odds on 30 digits
-        ideal = N*30/16;
-      }
-      var d = divergence(n, ideal);
-
-      // Draw bar using UTF squares (just for grins)
-      var s = n/max*50 | 0;
-      while (s--) bar += '=';
-
-      assert(Math.abs(d) < limit, c + ' |' + bar + '| ' + counts[c] + ' (' + d + '% < ' + limit + '%)');
-    }
-  }
-}
-
-// Perf tests
-for (var version in generators) {
-  log('\nPerformance testing ' + version + ' UUIDs');
-  var generator = generators[version];
-  var buf = new uuid.BufferClass(16);
-
-  if (version == 'v4') {
-    ['mathRNG', 'whatwgRNG', 'nodeRNG'].forEach(function(rng) {
-      if (uuid[rng]) {
-        var options = {rng: uuid[rng]};
-        for (var i = 0, t = Date.now(); i < N; i++) generator(options);
-        rate('uuid.' + version + '() with ' + rng, t);
-      } else {
-        log('uuid.' + version + '() with ' + rng + ': not defined');
-      }
-    });
-  } else {
-    for (var i = 0, t = Date.now(); i < N; i++) generator();
-    rate('uuid.' + version + '()', t);
-  }
-
-  for (var i = 0, t = Date.now(); i < N; i++) generator('binary');
-  rate('uuid.' + version + '(\'binary\')', t);
-
-  for (var i = 0, t = Date.now(); i < N; i++) generator('binary', buf);
-  rate('uuid.' + version + '(\'binary\', buffer)', t);
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/uuid.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/uuid.js b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/uuid.js
deleted file mode 100644
index 27f1d12..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/node-uuid/uuid.js
+++ /dev/null
@@ -1,249 +0,0 @@
-//     node-uuid/uuid.js
-//
-//     Copyright (c) 2010 Robert Kieffer
-//     Dual licensed under the MIT and GPL licenses.
-//     Documentation and details at https://github.com/broofa/node-uuid
-(function() {
-  var _global = this;
-
-  // Unique ID creation requires a high quality random # generator, but
-  // Math.random() does not guarantee "cryptographic quality".  So we feature
-  // detect for more robust APIs, normalizing each method to return 128-bits
-  // (16 bytes) of random data.
-  var mathRNG, nodeRNG, whatwgRNG;
-
-  // Math.random()-based RNG.  All platforms, very fast, unknown quality
-  var _rndBytes = new Array(16);
-  mathRNG = function() {
-    var r, b = _rndBytes, i = 0;
-
-    for (var i = 0, r; i < 16; i++) {
-      if ((i & 0x03) == 0) r = Math.random() * 0x100000000;
-      b[i] = r >>> ((i & 0x03) << 3) & 0xff;
-    }
-
-    return b;
-  }
-
-  // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
-  // WebKit only (currently), moderately fast, high quality
-  if (_global.crypto && crypto.getRandomValues) {
-    var _rnds = new Uint32Array(4);
-    whatwgRNG = function() {
-      crypto.getRandomValues(_rnds);
-
-      for (var c = 0 ; c < 16; c++) {
-        _rndBytes[c] = _rnds[c >> 2] >>> ((c & 0x03) * 8) & 0xff;
-      }
-      return _rndBytes;
-    }
-  }
-
-  // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html
-  // Node.js only, moderately fast, high quality
-  try {
-    var _rb = require('crypto').randomBytes;
-    nodeRNG = _rb && function() {
-      return _rb(16);
-    };
-  } catch (e) {}
-
-  // Select RNG with best quality
-  var _rng = nodeRNG || whatwgRNG || mathRNG;
-
-  // Buffer class to use
-  var BufferClass = typeof(Buffer) == 'function' ? Buffer : Array;
-
-  // Maps for number <-> hex string conversion
-  var _byteToHex = [];
-  var _hexToByte = {};
-  for (var i = 0; i < 256; i++) {
-    _byteToHex[i] = (i + 0x100).toString(16).substr(1);
-    _hexToByte[_byteToHex[i]] = i;
-  }
-
-  // **`parse()` - Parse a UUID into it's component bytes**
-  function parse(s, buf, offset) {
-    var i = (buf && offset) || 0, ii = 0;
-
-    buf = buf || [];
-    s.toLowerCase().replace(/[0-9a-f]{2}/g, function(byte) {
-      if (ii < 16) { // Don't overflow!
-        buf[i + ii++] = _hexToByte[byte];
-      }
-    });
-
-    // Zero out remaining bytes if string was short
-    while (ii < 16) {
-      buf[i + ii++] = 0;
-    }
-
-    return buf;
-  }
-
-  // **`unparse()` - Convert UUID byte array (ala parse()) into a string**
-  function unparse(buf, offset) {
-    var i = offset || 0, bth = _byteToHex;
-    return  bth[buf[i++]] + bth[buf[i++]] +
-            bth[buf[i++]] + bth[buf[i++]] + '-' +
-            bth[buf[i++]] + bth[buf[i++]] + '-' +
-            bth[buf[i++]] + bth[buf[i++]] + '-' +
-            bth[buf[i++]] + bth[buf[i++]] + '-' +
-            bth[buf[i++]] + bth[buf[i++]] +
-            bth[buf[i++]] + bth[buf[i++]] +
-            bth[buf[i++]] + bth[buf[i++]];
-  }
-
-  // **`v1()` - Generate time-based UUID**
-  //
-  // Inspired by https://github.com/LiosK/UUID.js
-  // and http://docs.python.org/library/uuid.html
-
-  // random #'s we need to init node and clockseq
-  var _seedBytes = _rng();
-
-  // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
-  var _nodeId = [
-    _seedBytes[0] | 0x01,
-    _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
-  ];
-
-  // Per 4.2.2, randomize (14 bit) clockseq
-  var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
-
-  // Previous uuid creation time
-  var _lastMSecs = 0, _lastNSecs = 0;
-
-  // See https://github.com/broofa/node-uuid for API details
-  function v1(options, buf, offset) {
-    var i = buf && offset || 0;
-    var b = buf || [];
-
-    options = options || {};
-
-    var clockseq = options.clockseq != null ? options.clockseq : _clockseq;
-
-    // UUID timestamps are 100 nano-second units since the Gregorian epoch,
-    // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so
-    // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
-    // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
-    var msecs = options.msecs != null ? options.msecs : new Date().getTime();
-
-    // Per 4.2.1.2, use count of uuid's generated during the current clock
-    // cycle to simulate higher resolution clock
-    var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1;
-
-    // Time since last uuid creation (in msecs)
-    var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
-
-    // Per 4.2.1.2, Bump clockseq on clock regression
-    if (dt < 0 && options.clockseq == null) {
-      clockseq = clockseq + 1 & 0x3fff;
-    }
-
-    // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
-    // time interval
-    if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) {
-      nsecs = 0;
-    }
-
-    // Per 4.2.1.2 Throw error if too many uuids are requested
-    if (nsecs >= 10000) {
-      throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
-    }
-
-    _lastMSecs = msecs;
-    _lastNSecs = nsecs;
-    _clockseq = clockseq;
-
-    // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
-    msecs += 12219292800000;
-
-    // `time_low`
-    var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
-    b[i++] = tl >>> 24 & 0xff;
-    b[i++] = tl >>> 16 & 0xff;
-    b[i++] = tl >>> 8 & 0xff;
-    b[i++] = tl & 0xff;
-
-    // `time_mid`
-    var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
-    b[i++] = tmh >>> 8 & 0xff;
-    b[i++] = tmh & 0xff;
-
-    // `time_high_and_version`
-    b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
-    b[i++] = tmh >>> 16 & 0xff;
-
-    // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
-    b[i++] = clockseq >>> 8 | 0x80;
-
-    // `clock_seq_low`
-    b[i++] = clockseq & 0xff;
-
-    // `node`
-    var node = options.node || _nodeId;
-    for (var n = 0; n < 6; n++) {
-      b[i + n] = node[n];
-    }
-
-    return buf ? buf : unparse(b);
-  }
-
-  // **`v4()` - Generate random UUID**
-
-  // See https://github.com/broofa/node-uuid for API details
-  function v4(options, buf, offset) {
-    // Deprecated - 'format' argument, as supported in v1.2
-    var i = buf && offset || 0;
-
-    if (typeof(options) == 'string') {
-      buf = options == 'binary' ? new BufferClass(16) : null;
-      options = null;
-    }
-    options = options || {};
-
-    var rnds = options.random || (options.rng || _rng)();
-
-    // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
-    rnds[6] = (rnds[6] & 0x0f) | 0x40;
-    rnds[8] = (rnds[8] & 0x3f) | 0x80;
-
-    // Copy bytes to buffer, if provided
-    if (buf) {
-      for (var ii = 0; ii < 16; ii++) {
-        buf[i + ii] = rnds[ii];
-      }
-    }
-
-    return buf || unparse(rnds);
-  }
-
-  // Export public API
-  var uuid = v4;
-  uuid.v1 = v1;
-  uuid.v4 = v4;
-  uuid.parse = parse;
-  uuid.unparse = unparse;
-  uuid.BufferClass = BufferClass;
-
-  // Export RNG options
-  uuid.mathRNG = mathRNG;
-  uuid.nodeRNG = nodeRNG;
-  uuid.whatwgRNG = whatwgRNG;
-
-  if (typeof(module) != 'undefined') {
-    // Play nice with node.js
-    module.exports = uuid;
-  } else {
-    // Play nice with browsers
-    var _previousRoot = _global.uuid;
-
-    // **`noConflict()` - (browser only) to reset global 'uuid' var**
-    uuid.noConflict = function() {
-      _global.uuid = _previousRoot;
-      return uuid;
-    }
-    _global.uuid = uuid;
-  }
-}());

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/CHANGELOG
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/CHANGELOG b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/CHANGELOG
deleted file mode 100644
index e5967cf..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/CHANGELOG
+++ /dev/null
@@ -1,146 +0,0 @@
-0.6.2 (2011-08-20)
-------------------
-
-Small Changes:
-
-* Reset parser position when action returns |null|.
-* Fixed typo in JavaScript example grammar.
-
-0.6.1 (2011-04-14)
-------------------
-
-Small Changes:
-
-* Use --ascii option when generating a minified version.
-
-0.6.0 (2011-04-14)
-------------------
-
-Big Changes:
-
-* Rewrote the command-line mode to be based on Node.js instead of Rhino -- no
-  more Java dependency. This also means that PEG.js is available as a Node.js
-  package and can be required as a module.
-* Version for the browser is built separately from the command-ine one in two
-  flavors (normal and minified).
-* Parser variable name is no longer required argument of bin/pegjs -- it is
-  "module.exports" by default and can be set using the -e/--export-var option.
-  This makes parsers generated by /bin/pegjs Node.js modules by default.
-* Added ability to start parsing from any grammar rule.
-* Added several compiler optimizations -- 0.6 is ~12% faster than 0.5.1 in the
-  benchmark on V8.
-
-Small Changes:
-
-* Split the source code into multiple files combined together using a build
-  system.
-* Jake is now used instead of Rake for build scripts -- no more Ruby dependency.
-* Test suite can be run from the command-line.
-* Benchmark suite can be run from the command-line.
-* Benchmark browser runner improvements (users can specify number of runs,
-  benchmarks are run using |setTimeout|, table is centered and fixed-width).
-* Added PEG.js version to "Generated by..." line in generated parsers.
-* Added PEG.js version information and homepage header to peg.js.
-* Generated code improvements and fixes.
-* Internal code improvements and fixes.
-* Rewrote README.md.
-
-0.5.1 (2010-11-28)
-------------------
-
-Small Changes:
-
-* Fixed a problem where "SyntaxError: Invalid range in character class." error
-  appeared when using command-line version on Widnows (GH-13).
-* Fixed wrong version reported by "bin/pegjs --version".
-* Removed two unused variables in the code.
-* Fixed incorrect variable name on two places.
-
-0.5 (2010-06-10)
-----------------
-
-Big Changes:
-
-* Syntax change: Use labeled expressions and variables instead of $1, $2, etc.
-* Syntax change: Replaced ":" after a rule name with "=".
-* Syntax change: Allow trailing semicolon (";") for rules
-* Semantic change: Start rule of the grammar is now implicitly its first rule.
-* Implemented semantic predicates.
-* Implemented initializers.
-* Removed ability to change the start rule when generating the parser.
-* Added several compiler optimizations -- 0.5 is ~11% faster than 0.4 in the
-  benchmark on V8.
-
-Small Changes:
-
-* PEG.buildParser now accepts grammars only in string format.
-* Added "Generated by ..." message to the generated parsers.
-* Formatted all grammars more consistently and transparently.
-* Added notes about ECMA-262, 5th ed. compatibility to the JSON example grammar.
-* Guarded against redefinition of |undefined|.
-* Made bin/pegjs work when called via a symlink (issue #1).
-* Fixed bug causing incorrect error messages (issue #2).
-* Fixed error message for invalid character range.
-* Fixed string literal parsing in the JavaScript grammar.
-* Generated code improvements and fixes.
-* Internal code improvements and fixes.
-* Improved README.md.
-
-0.4 (2010-04-17)
-----------------
-
-Big Changes:
-
-* Improved IE compatibility -- IE6+ is now fully supported.
-* Generated parsers are now standalone (no runtime is required).
-* Added example grammars for JavaScript, CSS and JSON.
-* Added a benchmark suite.
-* Implemented negative character classes (e.g. [^a-z]).
-* Project moved from BitBucket to GitHub.
-
-Small Changes:
-
-* Code generated for the character classes is now regexp-based (= simpler and
-  more scalable).
-* Added \uFEFF (BOM) to the definition of whitespace in the metagrammar.
-* When building a parser, left-recursive rules (both direct and indirect) are
-  reported as errors.
-* When building a parser, missing rules are reported as errors.
-* Expected items in the error messages do not contain duplicates and they are
-  sorted.
-* Fixed several bugs in the example arithmetics grammar.
-* Converted README to GitHub Flavored Markdown and improved it.
-* Added CHANGELOG.
-* Internal code improvements.
-
-0.3 (2010-03-14)
-----------------
-
-* Wrote README.
-* Bootstrapped the grammar parser.
-* Metagrammar recognizes JavaScript-like comments.
-* Changed standard grammar extension from .peg to .pegjs (it is more specific).
-* Simplified the example arithmetics grammar + added comment.
-* Fixed a bug with reporting of invalid ranges such as [b-a] in the metagrammar.
-* Fixed --start vs. --start-rule inconsistency between help and actual option
-  processing code.
-* Avoided ugliness in QUnit output.
-* Fixed typo in help: "parserVar" -> "parser_var".
-* Internal code improvements.
-
-0.2.1 (2010-03-08)
-------------------
-
-* Added "pegjs-" prefix to the name of the minified runtime file.
-
-0.2 (2010-03-08)
-----------------
-
-* Added Rakefile that builds minified runtime using Google Closure Compiler API.
-* Removed trailing commas in object initializers (Google Closure does not like
-  them).
-
-0.1 (2010-03-08)
-----------------
-
-* Initial release.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/LICENSE b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/LICENSE
deleted file mode 100644
index 48ab3e5..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2010-2011 David Majda
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.


[23/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/main.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/main.js b/blackberry10/node_modules/plugman/main.js
deleted file mode 100755
index 4361aba..0000000
--- a/blackberry10/node_modules/plugman/main.js
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env node
-/*
- *
- * Copyright 2013 Anis Kadri
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-// copyright (c) 2013 Andrew Lunny, Adobe Systems
-var path = require('path')
-    , url = require('url')
-    , package = require(path.join(__dirname, 'package'))
-    , nopt = require('nopt')
-    , plugins = require('./src/util/plugins')
-    , plugman = require('./plugman');
-
-var known_opts = { 'platform' : [ 'ios', 'android', 'blackberry10', 'wp7', 'wp8' ]
-            , 'project' : path
-            , 'plugin' : [String, path, url]
-            , 'install' : Boolean
-            , 'uninstall' : Boolean
-            , 'v' : Boolean
-            , 'debug' : Boolean
-            , 'plugins': path
-            , 'link': Boolean
-            , 'variable' : Array
-            , 'www': path
-            }, shortHands = { 'var' : 'variable' };
-
-var cli_opts = nopt(known_opts);
-
-// Default the plugins_dir to './cordova/plugins'.
-var plugins_dir;
-
-// Without these arguments, the commands will fail and print the usage anyway.
-if (cli_opts.plugins_dir || cli_opts.project) {
-    plugins_dir = typeof cli_opts.plugins_dir == 'string' ?
-        cli_opts.plugins_dir :
-        path.join(cli_opts.project, 'cordova', 'plugins');
-}
-
-process.on('uncaughtException', function(error){
-    if (cli_opts.debug) {
-        console.error(error.stack);
-    } else {
-        console.error(error.message);
-    }
-    process.exit(1);
-});
-
-// Set up appropriate logging based on events
-if (cli_opts.debug) {
-    plugman.on('log', console.log);
-}
-plugman.on('warn', console.warn);
-plugman.on('error', console.error);
-plugman.on('results', console.log);
-
-if (cli_opts.v) {
-    console.log(package.name + ' version ' + package.version);
-}
-else if (!cli_opts.platform || !cli_opts.project || !cli_opts.plugin) {
-    console.log(plugman.help());
-}
-else if (cli_opts.uninstall) {
-    plugman.uninstall(cli_opts.platform, cli_opts.project, cli_opts.plugin, plugins_dir, { www_dir: cli_opts.www });
-}
-else {
-    var cli_variables = {}
-    if (cli_opts.variable) {
-        cli_opts.variable.forEach(function (variable) {
-            var tokens = variable.split('=');
-            var key = tokens.shift().toUpperCase();
-            if (/^[\w-_]+$/.test(key)) cli_variables[key] = tokens.join('=');
-        });
-    }
-    var opts = {
-        subdir: '.',
-        cli_variables: cli_variables,
-        www_dir: cli_opts.www
-    };
-    plugman.install(cli_opts.platform, cli_opts.project, cli_opts.plugin, plugins_dir, opts);
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/.bin/nopt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/.bin/nopt b/blackberry10/node_modules/plugman/node_modules/.bin/nopt
deleted file mode 120000
index 6b6566e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/.bin/nopt
+++ /dev/null
@@ -1 +0,0 @@
-../nopt/bin/nopt.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/.bin/semver
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/.bin/semver b/blackberry10/node_modules/plugman/node_modules/.bin/semver
deleted file mode 120000
index 317eb29..0000000
--- a/blackberry10/node_modules/plugman/node_modules/.bin/semver
+++ /dev/null
@@ -1 +0,0 @@
-../semver/bin/semver
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/.npmignore b/blackberry10/node_modules/plugman/node_modules/bplist-parser/.npmignore
deleted file mode 100644
index a9b46ea..0000000
--- a/blackberry10/node_modules/plugman/node_modules/bplist-parser/.npmignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/build/*
-node_modules
-*.node
-*.sh
-*.swp
-.lock*
-npm-debug.log
-.idea

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/README.md b/blackberry10/node_modules/plugman/node_modules/bplist-parser/README.md
deleted file mode 100644
index 37e5e1c..0000000
--- a/blackberry10/node_modules/plugman/node_modules/bplist-parser/README.md
+++ /dev/null
@@ -1,47 +0,0 @@
-bplist-parser
-=============
-
-Binary Mac OS X Plist (property list) parser.
-
-## Installation
-
-```bash
-$ npm install bplist-parser
-```
-
-## Quick Examples
-
-```javascript
-var bplist = require('bplist-parser');
-
-bplist.parseFile('myPlist.bplist', function(err, obj) {
-  if (err) throw err;
-
-  console.log(JSON.stringify(obj));
-});
-```
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2012 Near Infinity Corporation
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/bplistParser.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/bplistParser.js b/blackberry10/node_modules/plugman/node_modules/bplist-parser/bplistParser.js
deleted file mode 100644
index 573f513..0000000
--- a/blackberry10/node_modules/plugman/node_modules/bplist-parser/bplistParser.js
+++ /dev/null
@@ -1,309 +0,0 @@
-'use strict';
-
-// adapted from http://code.google.com/p/plist/source/browse/trunk/src/com/dd/plist/BinaryPropertyListParser.java
-
-var fs = require('fs');
-var debug = false;
-
-exports.maxObjectSize = 100 * 1000 * 1000; // 100Meg
-
-// EPOCH = new SimpleDateFormat("yyyy MM dd zzz").parse("2001 01 01 GMT").getTime();
-// ...but that's annoying in a static initializer because it can throw exceptions, ick.
-// So we just hardcode the correct value.
-var EPOCH = 978307200000;
-
-var parseFile = exports.parseFile = function (fileName, callback) {
-  fs.readFile(fileName, function (err, data) {
-    if (err) {
-      return callback(err);
-    }
-    try {
-      var result = parseBuffer(data);
-      return callback(null, result);
-    } catch (ex) {
-      return callback(ex);
-    }
-  });
-};
-
-var parseBuffer = exports.parseBuffer = function (buffer) {
-  var result = {};
-
-  // check header
-  var header = buffer.slice(0, 'bplist'.length).toString('utf8');
-  if (header !== 'bplist') {
-    throw new Error("Invalid binary plist. Expected 'bplist' at offset 0.");
-  }
-
-  // Handle trailer, last 32 bytes of the file
-  var trailer = buffer.slice(buffer.length - 32, buffer.length);
-  // 6 null bytes (index 0 to 5)
-  var offsetSize = trailer.readUInt8(6);
-  if (debug) {
-    console.log("offsetSize: " + offsetSize);
-  }
-  var objectRefSize = trailer.readUInt8(7);
-  if (debug) {
-    console.log("objectRefSize: " + objectRefSize);
-  }
-  var numObjects = readUInt64BE(trailer, 8);
-  if (debug) {
-    console.log("numObjects: " + numObjects);
-  }
-  var topObject = readUInt64BE(trailer, 16);
-  if (debug) {
-    console.log("topObject: " + topObject);
-  }
-  var offsetTableOffset = readUInt64BE(trailer, 24);
-  if (debug) {
-    console.log("offsetTableOffset: " + offsetTableOffset);
-  }
-
-  // Handle offset table
-  var offsetTable = [];
-
-  for (var i = 0; i < numObjects; i++) {
-    var offsetBytes = buffer.slice(offsetTableOffset + i * offsetSize, offsetTableOffset + (i + 1) * offsetSize);
-    offsetTable[i] = readUInt(offsetBytes, 0);
-    if (debug) {
-      console.log("Offset for Object #" + i + " is " + offsetTable[i] + " [" + offsetTable[i].toString(16) + "]");
-    }
-  }
-
-  // Parses an object inside the currently parsed binary property list.
-  // For the format specification check
-  // <a href="http://www.opensource.apple.com/source/CF/CF-635/CFBinaryPList.c">
-  // Apple's binary property list parser implementation</a>.
-  function parseObject(tableOffset) {
-    var offset = offsetTable[tableOffset];
-    var type = buffer[offset];
-    var objType = (type & 0xF0) >> 4; //First  4 bits
-    var objInfo = (type & 0x0F);      //Second 4 bits
-    switch (objType) {
-    case 0x0:
-      return parseSimple();
-    case 0x1:
-    case 0x8: // UID (really just an integer)
-      return parseInteger();
-    case 0x2:
-      return parseReal();
-    case 0x3:
-      return parseDate();
-    case 0x4:
-      return parseData();
-    case 0x5: // ASCII
-      return parsePlistString();
-    case 0x6: // UTF-16
-      return parsePlistString(true);
-    case 0xA:
-      return parseArray();
-    case 0xD:
-      return parseDictionary();
-    default:
-      throw new Error("Unhandled type 0x" + objType.toString(16));
-    }
-
-    function parseSimple() {
-      //Simple
-      switch (objInfo) {
-      case 0x0: // null
-        return null;
-      case 0x8: // false
-        return false;
-      case 0x9: // true
-        return true;
-      case 0xF: // filler byte
-        return null;
-      default:
-        throw new Error("Unhandled simple type 0x" + objType.toString(16));
-      }
-    }
-
-    function parseInteger() {
-      var length = Math.pow(2, objInfo);
-      if (length < exports.maxObjectSize) {
-        return readUInt(buffer.slice(offset + 1, offset + 1 + length));
-      } else {
-        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
-      }
-    }
-
-    function parseReal() {
-      var length = Math.pow(2, objInfo);
-      if (length < exports.maxObjectSize) {
-        var realBuffer = buffer.slice(offset + 1, offset + 1 + length);
-        if (length === 4) {
-          return realBuffer.readFloatBE(0);
-        }
-        else if (length === 8) {
-          return realBuffer.readDoubleBE(0);
-        }
-      } else {
-        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
-      }
-    }
-
-    function parseDate() {
-      if (objInfo != 0x3) {
-        console.error("Unknown date type :" + objInfo + ". Parsing anyway...");
-      }
-      var dateBuffer = buffer.slice(offset + 1, offset + 9);
-      return new Date(EPOCH + (1000 * dateBuffer.readDoubleBE(0)));
-    }
-
-    function parseData() {
-      var dataoffset = 1;
-      var length = objInfo;
-      if (objInfo == 0xF) {
-        var int_type = buffer[offset + 1];
-        var intType = (int_type & 0xF0) / 0x10;
-        if (intType != 0x1) {
-          console.error("0x4: UNEXPECTED LENGTH-INT TYPE! " + intType);
-        }
-        var intInfo = int_type & 0x0F;
-        var intLength = Math.pow(2, intInfo);
-        dataoffset = 2 + intLength;
-        if (intLength < 3) {
-          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
-        } else {
-          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
-        }
-      }
-      if (length < exports.maxObjectSize) {
-        return buffer.slice(offset + dataoffset, offset + dataoffset + length);
-      } else {
-        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
-      }
-    }
-
-    function parsePlistString (isUtf16) {
-      isUtf16 = isUtf16 || 0;
-      var enc = "utf8";
-      var length = objInfo;
-      var stroffset = 1;
-      if (objInfo == 0xF) {
-        var int_type = buffer[offset + 1];
-        var intType = (int_type & 0xF0) / 0x10;
-        if (intType != 0x1) {
-          console.err("UNEXPECTED LENGTH-INT TYPE! " + intType);
-        }
-        var intInfo = int_type & 0x0F;
-        var intLength = Math.pow(2, intInfo);
-        var stroffset = 2 + intLength;
-        if (intLength < 3) {
-          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
-        } else {
-          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
-        }
-      }
-      // length is String length -> to get byte length multiply by 2, as 1 character takes 2 bytes in UTF-16
-      length *= (isUtf16 + 1);
-      if (length < exports.maxObjectSize) {
-        var plistString = buffer.slice(offset + stroffset, offset + stroffset + length);
-        if (isUtf16) {
-          plistString = swapBytes(plistString); 
-          enc = "ucs2";
-        }
-        return plistString.toString(enc);
-      } else {
-        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
-      }
-    }
-
-    function parseArray() {
-      var length = objInfo;
-      var arrayoffset = 1;
-      if (objInfo == 0xF) {
-        var int_type = buffer[offset + 1];
-        var intType = (int_type & 0xF0) / 0x10;
-        if (intType != 0x1) {
-          console.error("0xa: UNEXPECTED LENGTH-INT TYPE! " + intType);
-        }
-        var intInfo = int_type & 0x0F;
-        var intLength = Math.pow(2, intInfo);
-        arrayoffset = 2 + intLength;
-        if (intLength < 3) {
-          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
-        } else {
-          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
-        }
-      }
-      if (length * objectRefSize > exports.maxObjectSize) {
-        throw new Error("To little heap space available!");
-      }
-      var array = [];
-      for (var i = 0; i < length; i++) {
-        var objRef = readUInt(buffer.slice(offset + arrayoffset + i * objectRefSize, offset + arrayoffset + (i + 1) * objectRefSize));
-        array[i] = parseObject(objRef);
-      }
-      return array;
-    }
-
-    function parseDictionary() {
-      var length = objInfo;
-      var dictoffset = 1;
-      if (objInfo == 0xF) {
-        var int_type = buffer[offset + 1];
-        var intType = (int_type & 0xF0) / 0x10;
-        if (intType != 0x1) {
-          console.error("0xD: UNEXPECTED LENGTH-INT TYPE! " + intType);
-        }
-        var intInfo = int_type & 0x0F;
-        var intLength = Math.pow(2, intInfo);
-        dictoffset = 2 + intLength;
-        if (intLength < 3) {
-          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
-        } else {
-          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
-        }
-      }
-      if (length * 2 * objectRefSize > exports.maxObjectSize) {
-        throw new Error("To little heap space available!");
-      }
-      if (debug) {
-        console.log("Parsing dictionary #" + tableOffset);
-      }
-      var dict = {};
-      for (var i = 0; i < length; i++) {
-        var keyRef = readUInt(buffer.slice(offset + dictoffset + i * objectRefSize, offset + dictoffset + (i + 1) * objectRefSize));
-        var valRef = readUInt(buffer.slice(offset + dictoffset + (length * objectRefSize) + i * objectRefSize, offset + dictoffset + (length * objectRefSize) + (i + 1) * objectRefSize));
-        var key = parseObject(keyRef);
-        var val = parseObject(valRef);
-        if (debug) {
-          console.log("  DICT #" + tableOffset + ": Mapped " + key + " to " + val);
-        }
-        dict[key] = val;
-      }
-      return dict;
-    }
-  }
-
-  return [ parseObject(topObject) ];
-};
-
-function readUInt(buffer, start) {
-  start = start || 0;
-
-  var l = 0;
-  for (var i = start; i < buffer.length; i++) {
-    l <<= 8;
-    l |= buffer[i] & 0xFF;
-  }
-  return l;
-}
-
-// we're just going to toss the high order bits because javascript doesn't have 64-bit ints
-function readUInt64BE(buffer, start) {
-  var data = buffer.slice(start, start + 8);
-  return data.readUInt32BE(4, 8);
-}
-
-function swapBytes(buffer) {
-  var len = buffer.length;
-  for (var i = 0; i < len; i += 2) {
-    var a = buffer[i];
-    buffer[i] = buffer[i+1];
-    buffer[i+1] = a;
-  }
-  return buffer;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/package.json b/blackberry10/node_modules/plugman/node_modules/bplist-parser/package.json
deleted file mode 100644
index 8a33a97..0000000
--- a/blackberry10/node_modules/plugman/node_modules/bplist-parser/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "name": "bplist-parser",
-  "version": "0.0.4",
-  "description": "Binary plist parser.",
-  "main": "bplistParser.js",
-  "scripts": {
-    "test": "./node_modules/nodeunit/bin/nodeunit test"
-  },
-  "keywords": [
-    "bplist",
-    "plist",
-    "parser"
-  ],
-  "author": {
-    "name": "Joe Ferner",
-    "email": "joe.ferner@nearinfinity.com"
-  },
-  "license": "MIT",
-  "devDependencies": {
-    "nodeunit": "~0.7.4"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/nearinfinity/node-bplist-parser.git"
-  },
-  "readme": "bplist-parser\n=============\n\nBinary Mac OS X Plist (property list) parser.\n\n## Installation\n\n```bash\n$ npm install bplist-parser\n```\n\n## Quick Examples\n\n```javascript\nvar bplist = require('bplist-parser');\n\nbplist.parseFile('myPlist.bplist', function(err, obj) {\n  if (err) throw err;\n\n  console.log(JSON.stringify(obj));\n});\n```\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2012 Near Infinity Corporation\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial p
 ortions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/nearinfinity/node-bplist-parser/issues"
-  },
-  "_id": "bplist-parser@0.0.4",
-  "_from": "bplist-parser@0.0.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/airplay.bplist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/airplay.bplist b/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/airplay.bplist
deleted file mode 100644
index 931adea..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/airplay.bplist and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/iTunes-small.bplist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/iTunes-small.bplist b/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/iTunes-small.bplist
deleted file mode 100644
index b7edb14..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/iTunes-small.bplist and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/parseTest.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/parseTest.js b/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/parseTest.js
deleted file mode 100644
index dcb6dd0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/parseTest.js
+++ /dev/null
@@ -1,120 +0,0 @@
-'use strict';
-
-// tests are adapted from https://github.com/TooTallNate/node-plist
-
-var path = require('path');
-var nodeunit = require('nodeunit');
-var bplist = require('../');
-
-module.exports = {
-  'iTunes Small': function (test) {
-    var file = path.join(__dirname, "iTunes-small.bplist");
-    var startTime1 = new Date();
-
-    bplist.parseFile(file, function (err, dicts) {
-      if (err) {
-        throw err;
-      }
-
-      var endTime = new Date();
-      console.log('Parsed "' + file + '" in ' + (endTime - startTime1) + 'ms');
-      var dict = dicts[0];
-      test.equal(dict['Application Version'], "9.0.3");
-      test.equal(dict['Library Persistent ID'], "6F81D37F95101437");
-      test.done();
-    });
-  },
-
-  'sample1': function (test) {
-    var file = path.join(__dirname, "sample1.bplist");
-    var startTime = new Date();
-
-    bplist.parseFile(file, function (err, dicts) {
-      if (err) {
-        throw err;
-      }
-
-      var endTime = new Date();
-      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
-      var dict = dicts[0];
-      test.equal(dict['CFBundleIdentifier'], 'com.apple.dictionary.MySample');
-      test.done();
-    });
-  },
-
-  'sample2': function (test) {
-    var file = path.join(__dirname, "sample2.bplist");
-    var startTime = new Date();
-
-    bplist.parseFile(file, function (err, dicts) {
-      if (err) {
-        throw err;
-      }
-
-      var endTime = new Date();
-      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
-      var dict = dicts[0];
-      test.equal(dict['PopupMenu'][2]['Key'], "\n        #import <Cocoa/Cocoa.h>\n\n#import <MacRuby/MacRuby.h>\n\nint main(int argc, char *argv[])\n{\n  return macruby_main(\"rb_main.rb\", argc, argv);\n}\n");
-      test.done();
-    });
-  },
-
-  'airplay': function (test) {
-    var file = path.join(__dirname, "airplay.bplist");
-    var startTime = new Date();
-
-    bplist.parseFile(file, function (err, dicts) {
-      if (err) {
-        throw err;
-      }
-
-      var endTime = new Date();
-      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
-
-      var dict = dicts[0];
-      test.equal(dict['duration'], 5555.0495000000001);
-      test.equal(dict['position'], 4.6269989039999997);
-      test.done();
-    });
-  },
-
-  'utf16': function (test) {
-    var file = path.join(__dirname, "utf16.bplist");
-    var startTime = new Date();
-
-    bplist.parseFile(file, function (err, dicts) {
-      if (err) {
-        throw err;
-      }
-
-      var endTime = new Date();
-      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
-
-      var dict = dicts[0];
-      test.equal(dict['CFBundleName'], 'sellStuff');
-      test.equal(dict['CFBundleShortVersionString'], '2.6.1');
-      test.equal(dict['NSHumanReadableCopyright'], '©2008-2012, sellStuff, Inc.');
-      test.done();
-    });
-  },
-
-  'uid': function (test) {
-    var file = path.join(__dirname, "uid.bplist");
-    var startTime = new Date();
-
-    bplist.parseFile(file, function (err, dicts) {
-      if (err) {
-        throw err;
-      }
-
-      var endTime = new Date();
-      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
-
-      var dict = dicts[0]; 
-      test.deepEqual(dict['$objects'][1]['NS.keys'], [2, 3, 4]);
-      test.deepEqual(dict['$objects'][1]['NS.objects'], [5, 6, 7]);
-      test.equal(dict['$top']['root'], 1);      
-      test.done();
-    });
-  }
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/sample1.bplist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/sample1.bplist b/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/sample1.bplist
deleted file mode 100644
index 5b808ff..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/sample1.bplist and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/sample2.bplist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/sample2.bplist b/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/sample2.bplist
deleted file mode 100644
index fc42979..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/sample2.bplist and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/uid.bplist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/uid.bplist b/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/uid.bplist
deleted file mode 100644
index 59f341e..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/uid.bplist and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/utf16.bplist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/utf16.bplist b/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/utf16.bplist
deleted file mode 100644
index ba4bcfa..0000000
Binary files a/blackberry10/node_modules/plugman/node_modules/bplist-parser/test/utf16.bplist and /dev/null differ

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/.npmignore b/blackberry10/node_modules/plugman/node_modules/dep-graph/.npmignore
deleted file mode 100644
index b512c09..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/Cakefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/Cakefile b/blackberry10/node_modules/plugman/node_modules/dep-graph/Cakefile
deleted file mode 100644
index 8d01ac0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/Cakefile
+++ /dev/null
@@ -1,51 +0,0 @@
-fs            = require 'fs'
-{print}       = require 'util'
-{spawn, exec} = require 'child_process'
-watchit       = require 'watchit'
-
-build = (watch, callback) ->
-  if typeof watch is 'function'
-    callback = watch
-    watch = false
-  options = ['-c', '-o', 'lib', 'src']
-  options.unshift '-w' if watch
-
-  coffee = spawn 'coffee', options
-  coffee.stdout.on 'data', (data) -> print data.toString()
-  coffee.stderr.on 'data', (data) -> print data.toString()
-  coffee.on 'exit', (status) -> callback?() if status is 0
-
-task 'docs', 'Generate annotated source code with Docco', ->
-  fs.readdir 'src', (err, contents) ->
-    files = ("src/#{file}" for file in contents when /\.coffee$/.test file)
-    docco = spawn 'docco', files
-    docco.stdout.on 'data', (data) -> print data.toString()
-    docco.stderr.on 'data', (data) -> print data.toString()
-    docco.on 'exit', (status) -> callback?() if status is 0
-
-task 'build', 'Compile CoffeeScript source files', ->
-  build()
-
-task 'watch', 'Recompile CoffeeScript source files when modified', ->
-  build true
-
-task 'test', 'Run the test suite (and re-run if anything changes)', ->
-  suite = null
-  build ->
-    do runTests = ->
-      suite?.kill()
-      suiteNames = ['test']
-      suiteIndex = 0
-      do runNextTestSuite = ->
-        return unless suiteName = suiteNames[suiteIndex]
-        suite = spawn "coffee", ["-e", "{reporters} = require 'nodeunit'; reporters.default.run ['#{suiteName}.coffee']"], cwd: 'test'
-        suite.stdout.on 'data', (data) -> print data.toString()
-        suite.stderr.on 'data', (data) -> print data.toString()
-        suite.on 'exit', -> suiteIndex++; runNextTestSuite()
-      invoke 'docs'  # lest I forget
-    watchTargets = (targets..., callback) ->
-      for target in targets
-        watchit target, include: true, (event) ->
-          callback() unless event is 'success'
-    watchTargets 'src', -> build runTests
-    watchTargets 'test', 'Cakefile', runTests
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/README.mdown
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/README.mdown b/blackberry10/node_modules/plugman/node_modules/dep-graph/README.mdown
deleted file mode 100644
index 8f1a023..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/README.mdown
+++ /dev/null
@@ -1,40 +0,0 @@
-# dep-graph.js
-
-This is a small project spun off from [connect-assets](http://github.com/TrevorBurnham/connect-assets). Written in [CoffeeScript](coffeescript.org) by the author of [CoffeeScript: Accelerated JavaScript Development](http://pragprog.com/book/tbcoffee/coffeescript).
-
-## What's it for?
-
-Say you have a set of resources that depend on each other in some way. These resources can be anything—files, chains of command, plot twists on *Lost*—whatever. All that matters is that each one has a unique string identifier, and a list of direct dependencies.
-
-`dep-graph` makes it easy to compute "chains" of dependencies, with guaranteed logical ordering and no duplicates. That's trivial in most cases, but if `A` depends on `B` and `B` depends on `A`, a naïve dependency graph would get trapped in an infinite loop. `dep-graph` throws an error if any such "cycles" are detected.
-
-## How to use it?
-
-### In the browser
-
-    deps = new DepGraph
-    deps.add 'A', 'B'  # A requires B
-    deps.add 'B', 'C'  # B requires C
-    deps.getChain 'A'  # ['C', 'B', 'A']
-
-### In Node.js
-
-Same as above, but first run
-
-    npm install dep-graph
-
-from your project's directory, and put
-
-    DepGraph = require 'dep-graph'
-
-at the top of your file.
-
-## License
-
-©2011 Trevor Burnham and available under the [MIT license](http://www.opensource.org/licenses/mit-license.php):
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/docs/dep-graph.html
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/docs/dep-graph.html b/blackberry10/node_modules/plugman/node_modules/dep-graph/docs/dep-graph.html
deleted file mode 100644
index bccdc35..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/docs/dep-graph.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>  <html> <head>   <title>dep-graph.coffee</title>   <meta http-equiv="content-type" content="text/html; charset=UTF-8">   <link rel="stylesheet" media="all" href="docco.css" /> </head> <body>   <div id="container">     <div id="background"></div>          <table cellpadding="0" cellspacing="0">       <thead>         <tr>           <th class="docs">             <h1>               dep-graph.coffee             </h1>           </th>           <th class="code">           </th>         </tr>       </thead>       <tbody>                               <tr id="section-1">             <td class="docs">               <div class="pilwrap">                 <a class="pilcrow" href="#section-1">&#182;</a>               </div>               <p><a href="http://github.com/TrevorBurnham/dep-graph">dep-graph</a></p>             </td>             <td class="code">               <div class="highlight"><pre><span class="nv">_ = </span><span class="nx">require</span> <span class="s1">&#39;un
 derscore&#39;</span>
-
-<span class="k">class</span> <span class="nx">DepGraph</span>
-  <span class="nv">constructor: </span><span class="o">-&gt;</span></pre></div>             </td>           </tr>                               <tr id="section-2">             <td class="docs">               <div class="pilwrap">                 <a class="pilcrow" href="#section-2">&#182;</a>               </div>               <p>The internal representation of the dependency graph in the format
-<code>id: [ids]</code>, indicating only <em>direct</em> dependencies.</p>             </td>             <td class="code">               <div class="highlight"><pre>    <span class="vi">@map = </span><span class="p">{}</span></pre></div>             </td>           </tr>                               <tr id="section-3">             <td class="docs">               <div class="pilwrap">                 <a class="pilcrow" href="#section-3">&#182;</a>               </div>               <p>Add a direct dependency. Returns <code>false</code> if that dependency is a duplicate.</p>             </td>             <td class="code">               <div class="highlight"><pre>  <span class="nv">add: </span><span class="nf">(id, depId) -&gt;</span>
-    <span class="nx">@map</span><span class="p">[</span><span class="nx">id</span><span class="p">]</span> <span class="o">?=</span> <span class="p">[]</span>
-    <span class="k">return</span> <span class="kc">false</span> <span class="k">if</span> <span class="nx">depId</span> <span class="k">in</span> <span class="nx">@map</span><span class="p">[</span><span class="nx">id</span><span class="p">]</span>
-    <span class="nx">@map</span><span class="p">[</span><span class="nx">id</span><span class="p">].</span><span class="nx">push</span> <span class="nx">depId</span>
-    <span class="nx">@map</span><span class="p">[</span><span class="nx">id</span><span class="p">]</span></pre></div>             </td>           </tr>                               <tr id="section-4">             <td class="docs">               <div class="pilwrap">                 <a class="pilcrow" href="#section-4">&#182;</a>               </div>               <p>Generate a list of all dependencies (direct and indirect) for the given id,
-in logical order with no duplicates.</p>             </td>             <td class="code">               <div class="highlight"><pre>  <span class="nv">getChain: </span><span class="nf">(id) -&gt;</span></pre></div>             </td>           </tr>                               <tr id="section-5">             <td class="docs">               <div class="pilwrap">                 <a class="pilcrow" href="#section-5">&#182;</a>               </div>               <p>First, get a list of all dependencies (unordered)</p>             </td>             <td class="code">               <div class="highlight"><pre>    <span class="nv">deps = </span><span class="nx">@descendantsOf</span> <span class="nx">id</span></pre></div>             </td>           </tr>                               <tr id="section-6">             <td class="docs">               <div class="pilwrap">                 <a class="pilcrow" href="#section-6">&#182;</a>               </div>               <p>Second, order them (us
 ing the Tarjan algorithm)</p>             </td>             <td class="code">               <div class="highlight"><pre>    <span class="nv">chain = </span><span class="p">[]</span>
-    <span class="nv">visited = </span><span class="p">{}</span>
-    <span class="nv">visit = </span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="o">=&gt;</span>
-      <span class="k">return</span> <span class="k">if</span> <span class="nx">visited</span><span class="p">[</span><span class="nx">node</span><span class="p">]</span> <span class="o">or</span> <span class="nx">node</span> <span class="o">is</span> <span class="nx">id</span>
-      <span class="nx">visited</span><span class="p">[</span><span class="nx">node</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span>
-      <span class="k">for</span> <span class="nx">parent</span> <span class="k">in</span> <span class="nx">@parentsOf</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span>
-        <span class="nx">visit</span> <span class="nx">parent</span>
-      <span class="nx">chain</span><span class="p">.</span><span class="nx">unshift</span> <span class="nx">node</span>
-
-    <span class="k">for</span> <span class="nx">leafNode</span> <span class="k">in</span> <span class="nx">_</span><span class="p">.</span><span class="nx">intersection</span><span class="p">(</span><span class="nx">deps</span><span class="p">,</span> <span class="nx">@leafNodes</span><span class="p">()).</span><span class="nx">reverse</span><span class="p">()</span>
-      <span class="nx">visit</span> <span class="nx">leafNode</span>
-
-    <span class="nx">chain</span>
-
-  <span class="nv">leafNodes: </span><span class="o">-&gt;</span>
-    <span class="nv">allNodes = </span><span class="nx">_</span><span class="p">.</span><span class="nx">uniq</span> <span class="nx">_</span><span class="p">.</span><span class="nx">flatten</span> <span class="nx">_</span><span class="p">.</span><span class="nx">values</span> <span class="nx">@map</span>
-    <span class="nx">node</span> <span class="k">for</span> <span class="nx">node</span> <span class="k">in</span> <span class="nx">allNodes</span> <span class="k">when</span> <span class="o">!</span><span class="nx">@map</span><span class="p">[</span><span class="nx">node</span><span class="p">]</span><span class="o">?</span><span class="p">.</span><span class="nx">length</span>
-
-  <span class="nv">parentsOf: </span><span class="nf">(child) -&gt;</span>
-    <span class="nx">node</span> <span class="k">for</span> <span class="nx">node</span> <span class="k">in</span> <span class="nx">_</span><span class="p">.</span><span class="nx">keys</span><span class="p">(</span><span class="nx">@map</span><span class="p">)</span> <span class="k">when</span> <span class="nx">child</span> <span class="k">in</span> <span class="nx">@map</span><span class="p">[</span><span class="nx">node</span><span class="p">]</span>
-
-  <span class="nv">descendantsOf: </span><span class="nf">(parent, descendants = [], branch = []) -&gt;</span>
-    <span class="nx">descendants</span><span class="p">.</span><span class="nx">push</span> <span class="nx">parent</span>
-    <span class="nx">branch</span><span class="p">.</span><span class="nx">push</span> <span class="nx">parent</span>
-    <span class="k">for</span> <span class="nx">child</span> <span class="k">in</span> <span class="nx">@map</span><span class="p">[</span><span class="nx">parent</span><span class="p">]</span> <span class="o">?</span> <span class="p">[]</span>
-      <span class="k">if</span> <span class="nx">child</span> <span class="k">in</span> <span class="nx">branch</span>                <span class="c1"># cycle</span>
-        <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;Cyclic dependency from #{parent} to #{child}&quot;</span><span class="p">)</span>
-      <span class="k">continue</span> <span class="k">if</span> <span class="nx">child</span> <span class="k">in</span> <span class="nx">descendants</span>  <span class="c1"># duplicate</span>
-      <span class="nx">@descendantsOf</span> <span class="nx">child</span><span class="p">,</span> <span class="nx">descendants</span><span class="p">,</span> <span class="nx">branch</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
-    <span class="nx">descendants</span><span class="p">[</span><span class="mi">1</span><span class="p">..]</span></pre></div>             </td>           </tr>                               <tr id="section-7">             <td class="docs">               <div class="pilwrap">                 <a class="pilcrow" href="#section-7">&#182;</a>               </div>               <p>Export the class in Node, make it global in the browser.</p>             </td>             <td class="code">               <div class="highlight"><pre><span class="k">if</span> <span class="nx">module</span><span class="o">?</span><span class="p">.</span><span class="nx">exports</span><span class="o">?</span>
-  <span class="nv">module.exports = </span><span class="nx">DepGraph</span>
-<span class="k">else</span>
-  <span class="vi">@DepGraph = </span><span class="nx">DepGraph</span>
-
-</pre></div>             </td>           </tr>                </tbody>     </table>   </div> </body> </html> 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/docs/docco.css
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/docs/docco.css b/blackberry10/node_modules/plugman/node_modules/dep-graph/docs/docco.css
deleted file mode 100644
index 5aa0a8d..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/docs/docco.css
+++ /dev/null
@@ -1,186 +0,0 @@
-/*--------------------- Layout and Typography ----------------------------*/
-body {
-  font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
-  font-size: 15px;
-  line-height: 22px;
-  color: #252519;
-  margin: 0; padding: 0;
-}
-a {
-  color: #261a3b;
-}
-  a:visited {
-    color: #261a3b;
-  }
-p {
-  margin: 0 0 15px 0;
-}
-h1, h2, h3, h4, h5, h6 {
-  margin: 0px 0 15px 0;
-}
-  h1 {
-    margin-top: 40px;
-  }
-#container {
-  position: relative;
-}
-#background {
-  position: fixed;
-  top: 0; left: 525px; right: 0; bottom: 0;
-  background: #f5f5ff;
-  border-left: 1px solid #e5e5ee;
-  z-index: -1;
-}
-#jump_to, #jump_page {
-  background: white;
-  -webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777;
-  -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px;
-  font: 10px Arial;
-  text-transform: uppercase;
-  cursor: pointer;
-  text-align: right;
-}
-#jump_to, #jump_wrapper {
-  position: fixed;
-  right: 0; top: 0;
-  padding: 5px 10px;
-}
-  #jump_wrapper {
-    padding: 0;
-    display: none;
-  }
-    #jump_to:hover #jump_wrapper {
-      display: block;
-    }
-    #jump_page {
-      padding: 5px 0 3px;
-      margin: 0 0 25px 25px;
-    }
-      #jump_page .source {
-        display: block;
-        padding: 5px 10px;
-        text-decoration: none;
-        border-top: 1px solid #eee;
-      }
-        #jump_page .source:hover {
-          background: #f5f5ff;
-        }
-        #jump_page .source:first-child {
-        }
-table td {
-  border: 0;
-  outline: 0;
-}
-  td.docs, th.docs {
-    max-width: 450px;
-    min-width: 450px;
-    min-height: 5px;
-    padding: 10px 25px 1px 50px;
-    overflow-x: hidden;
-    vertical-align: top;
-    text-align: left;
-  }
-    .docs pre {
-      margin: 15px 0 15px;
-      padding-left: 15px;
-    }
-    .docs p tt, .docs p code {
-      background: #f8f8ff;
-      border: 1px solid #dedede;
-      font-size: 12px;
-      padding: 0 0.2em;
-    }
-    .pilwrap {
-      position: relative;
-    }
-      .pilcrow {
-        font: 12px Arial;
-        text-decoration: none;
-        color: #454545;
-        position: absolute;
-        top: 3px; left: -20px;
-        padding: 1px 2px;
-        opacity: 0;
-        -webkit-transition: opacity 0.2s linear;
-      }
-        td.docs:hover .pilcrow {
-          opacity: 1;
-        }
-  td.code, th.code {
-    padding: 14px 15px 16px 25px;
-    width: 100%;
-    vertical-align: top;
-    background: #f5f5ff;
-    border-left: 1px solid #e5e5ee;
-  }
-    pre, tt, code {
-      font-size: 12px; line-height: 18px;
-      font-family: Monaco, Consolas, "Lucida Console", monospace;
-      margin: 0; padding: 0;
-    }
-
-
-/*---------------------- Syntax Highlighting -----------------------------*/
-td.linenos { background-color: #f0f0f0; padding-right: 10px; }
-span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; }
-body .hll { background-color: #ffffcc }
-body .c { color: #408080; font-style: italic }  /* Comment */
-body .err { border: 1px solid #FF0000 }         /* Error */
-body .k { color: #954121 }                      /* Keyword */
-body .o { color: #666666 }                      /* Operator */
-body .cm { color: #408080; font-style: italic } /* Comment.Multiline */
-body .cp { color: #BC7A00 }                     /* Comment.Preproc */
-body .c1 { color: #408080; font-style: italic } /* Comment.Single */
-body .cs { color: #408080; font-style: italic } /* Comment.Special */
-body .gd { color: #A00000 }                     /* Generic.Deleted */
-body .ge { font-style: italic }                 /* Generic.Emph */
-body .gr { color: #FF0000 }                     /* Generic.Error */
-body .gh { color: #000080; font-weight: bold }  /* Generic.Heading */
-body .gi { color: #00A000 }                     /* Generic.Inserted */
-body .go { color: #808080 }                     /* Generic.Output */
-body .gp { color: #000080; font-weight: bold }  /* Generic.Prompt */
-body .gs { font-weight: bold }                  /* Generic.Strong */
-body .gu { color: #800080; font-weight: bold }  /* Generic.Subheading */
-body .gt { color: #0040D0 }                     /* Generic.Traceback */
-body .kc { color: #954121 }                     /* Keyword.Constant */
-body .kd { color: #954121; font-weight: bold }  /* Keyword.Declaration */
-body .kn { color: #954121; font-weight: bold }  /* Keyword.Namespace */
-body .kp { color: #954121 }                     /* Keyword.Pseudo */
-body .kr { color: #954121; font-weight: bold }  /* Keyword.Reserved */
-body .kt { color: #B00040 }                     /* Keyword.Type */
-body .m { color: #666666 }                      /* Literal.Number */
-body .s { color: #219161 }                      /* Literal.String */
-body .na { color: #7D9029 }                     /* Name.Attribute */
-body .nb { color: #954121 }                     /* Name.Builtin */
-body .nc { color: #0000FF; font-weight: bold }  /* Name.Class */
-body .no { color: #880000 }                     /* Name.Constant */
-body .nd { color: #AA22FF }                     /* Name.Decorator */
-body .ni { color: #999999; font-weight: bold }  /* Name.Entity */
-body .ne { color: #D2413A; font-weight: bold }  /* Name.Exception */
-body .nf { color: #0000FF }                     /* Name.Function */
-body .nl { color: #A0A000 }                     /* Name.Label */
-body .nn { color: #0000FF; font-weight: bold }  /* Name.Namespace */
-body .nt { color: #954121; font-weight: bold }  /* Name.Tag */
-body .nv { color: #19469D }                     /* Name.Variable */
-body .ow { color: #AA22FF; font-weight: bold }  /* Operator.Word */
-body .w { color: #bbbbbb }                      /* Text.Whitespace */
-body .mf { color: #666666 }                     /* Literal.Number.Float */
-body .mh { color: #666666 }                     /* Literal.Number.Hex */
-body .mi { color: #666666 }                     /* Literal.Number.Integer */
-body .mo { color: #666666 }                     /* Literal.Number.Oct */
-body .sb { color: #219161 }                     /* Literal.String.Backtick */
-body .sc { color: #219161 }                     /* Literal.String.Char */
-body .sd { color: #219161; font-style: italic } /* Literal.String.Doc */
-body .s2 { color: #219161 }                     /* Literal.String.Double */
-body .se { color: #BB6622; font-weight: bold }  /* Literal.String.Escape */
-body .sh { color: #219161 }                     /* Literal.String.Heredoc */
-body .si { color: #BB6688; font-weight: bold }  /* Literal.String.Interpol */
-body .sx { color: #954121 }                     /* Literal.String.Other */
-body .sr { color: #BB6688 }                     /* Literal.String.Regex */
-body .s1 { color: #219161 }                     /* Literal.String.Single */
-body .ss { color: #19469D }                     /* Literal.String.Symbol */
-body .bp { color: #954121 }                     /* Name.Builtin.Pseudo */
-body .vc { color: #19469D }                     /* Name.Variable.Class */
-body .vg { color: #19469D }                     /* Name.Variable.Global */
-body .vi { color: #19469D }                     /* Name.Variable.Instance */
-body .il { color: #666666 }                     /* Literal.Number.Integer.Long */
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/lib/dep-graph.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/lib/dep-graph.js b/blackberry10/node_modules/plugman/node_modules/dep-graph/lib/dep-graph.js
deleted file mode 100644
index d3b2401..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/lib/dep-graph.js
+++ /dev/null
@@ -1,115 +0,0 @@
-// Generated by CoffeeScript 1.3.3
-(function() {
-  var DepGraph, _,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-  _ = require('underscore');
-
-  DepGraph = (function() {
-
-    function DepGraph() {
-      this.map = {};
-    }
-
-    DepGraph.prototype.add = function(id, depId) {
-      var _base, _ref;
-      if ((_ref = (_base = this.map)[id]) == null) {
-        _base[id] = [];
-      }
-      if (__indexOf.call(this.map[id], depId) >= 0) {
-        return false;
-      }
-      this.map[id].push(depId);
-      return this.map[id];
-    };
-
-    DepGraph.prototype.getChain = function(id) {
-      var chain, deps, leafNode, visit, visited, _i, _len, _ref,
-        _this = this;
-      deps = this.descendantsOf(id);
-      chain = [];
-      visited = {};
-      visit = function(node) {
-        var parent, _i, _len, _ref;
-        if (visited[node] || node === id) {
-          return;
-        }
-        visited[node] = true;
-        _ref = _this.parentsOf(node);
-        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-          parent = _ref[_i];
-          if (__indexOf.call(deps, parent) >= 0) {
-            visit(parent);
-          }
-        }
-        return chain.unshift(node);
-      };
-      _ref = _.intersection(deps, this.leafNodes()).reverse();
-      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-        leafNode = _ref[_i];
-        visit(leafNode);
-      }
-      return chain;
-    };
-
-    DepGraph.prototype.leafNodes = function() {
-      var allNodes, node, _i, _len, _ref, _results;
-      allNodes = _.uniq(_.flatten(_.values(this.map)));
-      _results = [];
-      for (_i = 0, _len = allNodes.length; _i < _len; _i++) {
-        node = allNodes[_i];
-        if (!((_ref = this.map[node]) != null ? _ref.length : void 0)) {
-          _results.push(node);
-        }
-      }
-      return _results;
-    };
-
-    DepGraph.prototype.parentsOf = function(child) {
-      var node, _i, _len, _ref, _results;
-      _ref = _.keys(this.map);
-      _results = [];
-      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-        node = _ref[_i];
-        if (__indexOf.call(this.map[node], child) >= 0) {
-          _results.push(node);
-        }
-      }
-      return _results;
-    };
-
-    DepGraph.prototype.descendantsOf = function(parent, descendants, branch) {
-      var child, _i, _len, _ref, _ref1;
-      if (descendants == null) {
-        descendants = [];
-      }
-      if (branch == null) {
-        branch = [];
-      }
-      descendants.push(parent);
-      branch.push(parent);
-      _ref1 = (_ref = this.map[parent]) != null ? _ref : [];
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        child = _ref1[_i];
-        if (__indexOf.call(branch, child) >= 0) {
-          throw new Error("Cyclic dependency from " + parent + " to " + child);
-        }
-        if (__indexOf.call(descendants, child) >= 0) {
-          continue;
-        }
-        this.descendantsOf(child, descendants, branch.slice(0));
-      }
-      return descendants.slice(1);
-    };
-
-    return DepGraph;
-
-  })();
-
-  if ((typeof module !== "undefined" && module !== null ? module.exports : void 0) != null) {
-    module.exports = DepGraph;
-  } else {
-    this.DepGraph = DepGraph;
-  }
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/.npmignore b/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/.npmignore
deleted file mode 100644
index 2ce2684..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-test/
-Rakefile
-docs/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/LICENSE b/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/LICENSE
deleted file mode 100644
index 58c73b9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2011 Jeremy Ashkenas, DocumentCloud
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/README
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/README b/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/README
deleted file mode 100644
index 408145a..0000000
--- a/blackberry10/node_modules/plugman/node_modules/dep-graph/node_modules/underscore/README
+++ /dev/null
@@ -1,19 +0,0 @@
-                   __                                                         
-                  /\ \                                                         __           
- __  __    ___    \_\ \     __   _ __   ____    ___    ___   _ __    __       /\_\    ____  
-/\ \/\ \ /' _ `\  /'_  \  /'__`\/\  __\/ ,__\  / ___\ / __`\/\  __\/'__`\     \/\ \  /',__\ 
-\ \ \_\ \/\ \/\ \/\ \ \ \/\  __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\  __/  __  \ \ \/\__, `\
- \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
-  \/___/  \/_/\/_/\/__,_ /\/____/ \/_/ \/___/  \/____/\/___/  \/_/ \/____/\/_//\ \_\ \/___/ 
-                                                                              \ \____/      
-                                                                               \/___/
-
-Underscore is a utility-belt library for JavaScript that provides 
-support for the usual functional suspects (each, map, reduce, filter...) 
-without extending any core JavaScript objects.
-
-For Docs, License, Tests, and pre-packed downloads, see:
-http://documentcloud.github.com/underscore/
-
-Many thanks to our contributors:
-https://github.com/documentcloud/underscore/contributors


[08/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/index.js b/blackberry10/node_modules/plugman/node_modules/underscore/index.js
deleted file mode 100644
index 2cf0ca5..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./underscore');

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/package.json b/blackberry10/node_modules/plugman/node_modules/underscore/package.json
deleted file mode 100644
index 53a45b0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "name": "underscore",
-  "description": "JavaScript's functional programming helper library.",
-  "homepage": "http://underscorejs.org",
-  "keywords": [
-    "util",
-    "functional",
-    "server",
-    "client",
-    "browser"
-  ],
-  "author": {
-    "name": "Jeremy Ashkenas",
-    "email": "jeremy@documentcloud.org"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/documentcloud/underscore.git"
-  },
-  "main": "underscore.js",
-  "version": "1.4.4",
-  "devDependencies": {
-    "phantomjs": "0.2.2"
-  },
-  "scripts": {
-    "test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true"
-  },
-  "readme": "                       __\n                      /\\ \\                                                         __\n     __  __    ___    \\_\\ \\     __   _ __   ____    ___    ___   _ __    __       /\\_\\    ____\n    /\\ \\/\\ \\ /' _ `\\  /'_  \\  /'__`\\/\\  __\\/ ,__\\  / ___\\ / __`\\/\\  __\\/'__`\\     \\/\\ \\  /',__\\\n    \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\  __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\  __/  __  \\ \\ \\/\\__, `\\\n     \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n      \\/___/  \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/  \\/____/\\/___/  \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/\n                                                                                  \\ \\____/\n                                                                                   \\/___/\n\nUnderscore.js is a utility-belt library for JavaScript that provides\nsupport for the usu
 al functional suspects (each, map, reduce, filter...)\nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://underscorejs.org\n\nMany thanks to our contributors:\nhttps://github.com/documentcloud/underscore/contributors\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/documentcloud/underscore/issues"
-  },
-  "_id": "underscore@1.4.4",
-  "_from": "underscore@1.4.4"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/underscore-min.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/underscore-min.js b/blackberry10/node_modules/plugman/node_modules/underscore/underscore-min.js
deleted file mode 100644
index c1d9d3a..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/underscore-min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,h=e.reduce,v=e.reduceRight,d=e.filter,g=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,_=Object.keys,j=i.bind,w=function(n){return n instanceof w?n:this instanceof w?(this._wrapped=n,void 0):new w(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=w),exports._=w):n._=w,w.VERSION="1.4.4";var A=w.each=w.forEach=function(n,t,e){if(null!=n)if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a in n)if(w.has(n,a)&&t.call(e,n[a],a,n)===r)return};w.map=w.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e[e.length]=t.call(r,n,u,i)}),e)};var O="Reduce of empty array with no initial value";w.reduce=w.foldl=w.inject=function(n,
 t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduce===h)return e&&(t=w.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(O);return r},w.reduceRight=w.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduceRight===v)return e&&(t=w.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=w.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(O);return r},w.find=w.detect=function(n,t,r){var e;return E(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},w.filter=w.select=function(n,t,r){var e=[];return null==n?e:d&&n.filter===d?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&(e[e.length]=n)}),e)},w.reject=function(n,t,r){return w.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},w.every=w.all=function(n,t,e){t||(t=w.identity);var u=!0;return null==n?u:g&&n.every===g?n.every(t,
 e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var E=w.some=w.any=function(n,t,e){t||(t=w.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};w.contains=w.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:E(n,function(n){return n===t})},w.invoke=function(n,t){var r=o.call(arguments,2),e=w.isFunction(t);return w.map(n,function(n){return(e?t:n[t]).apply(n,r)})},w.pluck=function(n,t){return w.map(n,function(n){return n[t]})},w.where=function(n,t,r){return w.isEmpty(t)?r?null:[]:w[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},w.findWhere=function(n,t){return w.where(n,t,!0)},w.max=function(n,t,r){if(!t&&w.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.max.apply(Math,n);if(!t&&w.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>=e.computed&&(e={value:n,computed:a
 })}),e.value},w.min=function(n,t,r){if(!t&&w.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.min.apply(Math,n);if(!t&&w.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;e.computed>a&&(e={value:n,computed:a})}),e.value},w.shuffle=function(n){var t,r=0,e=[];return A(n,function(n){t=w.random(r++),e[r-1]=e[t],e[t]=n}),e};var k=function(n){return w.isFunction(n)?n:function(t){return t[n]}};w.sortBy=function(n,t,r){var e=k(t);return w.pluck(w.map(n,function(n,t,u){return{value:n,index:t,criteria:e.call(r,n,t,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index<t.index?-1:1}),"value")};var F=function(n,t,r,e){var u={},i=k(t||w.identity);return A(n,function(t,a){var o=i.call(r,t,a,n);e(u,o,t)}),u};w.groupBy=function(n,t,r){return F(n,t,r,function(n,t,r){(w.has(n,t)?n[t]:n[t]=[]).push(r)})},w.countBy=function(n,t,r){return F(n,t,r,function(n,t){w.ha
 s(n,t)||(n[t]=0),n[t]++})},w.sortedIndex=function(n,t,r,e){r=null==r?w.identity:k(r);for(var u=r.call(e,t),i=0,a=n.length;a>i;){var o=i+a>>>1;u>r.call(e,n[o])?i=o+1:a=o}return i},w.toArray=function(n){return n?w.isArray(n)?o.call(n):n.length===+n.length?w.map(n,w.identity):w.values(n):[]},w.size=function(n){return null==n?0:n.length===+n.length?n.length:w.keys(n).length},w.first=w.head=w.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:o.call(n,0,t)},w.initial=function(n,t,r){return o.call(n,0,n.length-(null==t||r?1:t))},w.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:o.call(n,Math.max(n.length-t,0))},w.rest=w.tail=w.drop=function(n,t,r){return o.call(n,null==t||r?1:t)},w.compact=function(n){return w.filter(n,w.identity)};var R=function(n,t,r){return A(n,function(n){w.isArray(n)?t?a.apply(r,n):R(n,t,r):r.push(n)}),r};w.flatten=function(n,t){return R(n,t,[])},w.without=function(n){return w.difference(n,o.call(arguments,1))},w.uniq=w.unique=function(n,t
 ,r,e){w.isFunction(t)&&(e=r,r=t,t=!1);var u=r?w.map(n,r,e):n,i=[],a=[];return A(u,function(r,e){(t?e&&a[a.length-1]===r:w.contains(a,r))||(a.push(r),i.push(n[e]))}),i},w.union=function(){return w.uniq(c.apply(e,arguments))},w.intersection=function(n){var t=o.call(arguments,1);return w.filter(w.uniq(n),function(n){return w.every(t,function(t){return w.indexOf(t,n)>=0})})},w.difference=function(n){var t=c.apply(e,o.call(arguments,1));return w.filter(n,function(n){return!w.contains(t,n)})},w.zip=function(){for(var n=o.call(arguments),t=w.max(w.pluck(n,"length")),r=Array(t),e=0;t>e;e++)r[e]=w.pluck(n,""+e);return r},w.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},w.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=w.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},w.lastInd
 exOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},w.range=function(n,t,r){1>=arguments.length&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=Array(e);e>u;)i[u++]=n,n+=r;return i},w.bind=function(n,t){if(n.bind===j&&j)return j.apply(n,o.call(arguments,1));var r=o.call(arguments,2);return function(){return n.apply(t,r.concat(o.call(arguments)))}},w.partial=function(n){var t=o.call(arguments,1);return function(){return n.apply(this,t.concat(o.call(arguments)))}},w.bindAll=function(n){var t=o.call(arguments,1);return 0===t.length&&(t=w.functions(n)),A(t,function(t){n[t]=w.bind(n[t],n)}),n},w.memoize=function(n,t){var r={};return t||(t=w.identity),function(){var e=t.apply(this,arguments);return w.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},w.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.
 apply(null,r)},t)},w.defer=function(n){return w.delay.apply(w,[n,1].concat(o.call(arguments,1)))},w.throttle=function(n,t){var r,e,u,i,a=0,o=function(){a=new Date,u=null,i=n.apply(r,e)};return function(){var c=new Date,l=t-(c-a);return r=this,e=arguments,0>=l?(clearTimeout(u),u=null,a=c,i=n.apply(r,e)):u||(u=setTimeout(o,l)),i}},w.debounce=function(n,t,r){var e,u;return function(){var i=this,a=arguments,o=function(){e=null,r||(u=n.apply(i,a))},c=r&&!e;return clearTimeout(e),e=setTimeout(o,t),c&&(u=n.apply(i,a)),u}},w.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},w.wrap=function(n,t){return function(){var r=[n];return a.apply(r,arguments),t.apply(this,r)}},w.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},w.after=function(n,t){return 0>=n?t():function(){return 1>--n?t.apply(this,arguments):void 0}},w.keys=_||function(n){if(n!==Object(n))throw new 
 TypeError("Invalid object");var t=[];for(var r in n)w.has(n,r)&&(t[t.length]=r);return t},w.values=function(n){var t=[];for(var r in n)w.has(n,r)&&t.push(n[r]);return t},w.pairs=function(n){var t=[];for(var r in n)w.has(n,r)&&t.push([r,n[r]]);return t},w.invert=function(n){var t={};for(var r in n)w.has(n,r)&&(t[n[r]]=r);return t},w.functions=w.methods=function(n){var t=[];for(var r in n)w.isFunction(n[r])&&t.push(r);return t.sort()},w.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},w.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},w.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)w.contains(r,u)||(t[u]=n[u]);return t},w.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)null==n[r]&&(n[r]=t[r])}),n},w.clone=function(n){return w.isObject(n)?w.isArray(n)?n.slice():w.extend({},n):n},w.tap=function(n,t){return t(n),n};var I=fun
 ction(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof w&&(n=n._wrapped),t instanceof w&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==t+"";case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;r.push(n),e.push(t);var a=0,o=!0;if("[object Array]"==u){if(a=n.length,o=a==t.length)for(;a--&&(o=I(n[a],t[a],r,e)););}else{var c=n.constructor,f=t.constructor;if(c!==f&&!(w.isFunction(c)&&c instanceof c&&w.isFunction(f)&&f instanceof f))return!1;for(var s in n)if(w.has(n,s)&&(a++,!(o=w.has(t,s)&&I(n[s],t[s],r,e))))break;if(o){for(s in t)if(w.has(t,s)&&!a--)break;o=!a}}return r.pop(),e.pop(),o};w.isEqual=function(n,t){retur
 n I(n,t,[],[])},w.isEmpty=function(n){if(null==n)return!0;if(w.isArray(n)||w.isString(n))return 0===n.length;for(var t in n)if(w.has(n,t))return!1;return!0},w.isElement=function(n){return!(!n||1!==n.nodeType)},w.isArray=x||function(n){return"[object Array]"==l.call(n)},w.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){w["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),w.isArguments(arguments)||(w.isArguments=function(n){return!(!n||!w.has(n,"callee"))}),"function"!=typeof/./&&(w.isFunction=function(n){return"function"==typeof n}),w.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},w.isNaN=function(n){return w.isNumber(n)&&n!=+n},w.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},w.isNull=function(n){return null===n},w.isUndefined=function(n){return n===void 0},w.has=function(n,t){return f.call(n,t)},w.noConflict=function(){return n._=t,this},w.identity=function(n){re
 turn n},w.times=function(n,t,r){for(var e=Array(n),u=0;n>u;u++)e[u]=t.call(r,u);return e},w.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var M={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};M.unescape=w.invert(M.escape);var S={escape:RegExp("["+w.keys(M.escape).join("")+"]","g"),unescape:RegExp("("+w.keys(M.unescape).join("|")+")","g")};w.each(["escape","unescape"],function(n){w[n]=function(t){return null==t?"":(""+t).replace(S[n],function(t){return M[n][t]})}}),w.result=function(n,t){if(null==n)return null;var r=n[t];return w.isFunction(r)?r.call(n):r},w.mixin=function(n){A(w.functions(n),function(t){var r=w[t]=n[t];w.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),D.call(this,r.apply(w,n))}})};var N=0;w.uniqueId=function(n){var t=++N+"";return n?n+t:t},w.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var T=/(.)^/,q={"'":"'","
 \\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\t|\u2028|\u2029/g;w.template=function(n,t,r){var e;r=w.defaults({},r,w.templateSettings);var u=RegExp([(r.escape||T).source,(r.interpolate||T).source,(r.evaluate||T).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(B,function(n){return"\\"+q[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,w);var c=function(n){return e.call(this,n,w)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},w.chain=function(n){return w(n).chain()};var D=function(n){return this._chain?w(n).chain():n};w.m
 ixin(w),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];w.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],D.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];w.prototype[n]=function(){return D.call(this,t.apply(this._wrapped,arguments))}}),w.extend(w.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/underscore/underscore.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/underscore/underscore.js b/blackberry10/node_modules/plugman/node_modules/underscore/underscore.js
deleted file mode 100644
index a12f0d9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/underscore/underscore.js
+++ /dev/null
@@ -1,1226 +0,0 @@
-//     Underscore.js 1.4.4
-//     http://underscorejs.org
-//     (c) 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
-//     Underscore may be freely distributed under the MIT license.
-
-(function() {
-
-  // Baseline setup
-  // --------------
-
-  // Establish the root object, `window` in the browser, or `global` on the server.
-  var root = this;
-
-  // Save the previous value of the `_` variable.
-  var previousUnderscore = root._;
-
-  // Establish the object that gets returned to break out of a loop iteration.
-  var breaker = {};
-
-  // Save bytes in the minified (but not gzipped) version:
-  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
-
-  // Create quick reference variables for speed access to core prototypes.
-  var push             = ArrayProto.push,
-      slice            = ArrayProto.slice,
-      concat           = ArrayProto.concat,
-      toString         = ObjProto.toString,
-      hasOwnProperty   = ObjProto.hasOwnProperty;
-
-  // All **ECMAScript 5** native function implementations that we hope to use
-  // are declared here.
-  var
-    nativeForEach      = ArrayProto.forEach,
-    nativeMap          = ArrayProto.map,
-    nativeReduce       = ArrayProto.reduce,
-    nativeReduceRight  = ArrayProto.reduceRight,
-    nativeFilter       = ArrayProto.filter,
-    nativeEvery        = ArrayProto.every,
-    nativeSome         = ArrayProto.some,
-    nativeIndexOf      = ArrayProto.indexOf,
-    nativeLastIndexOf  = ArrayProto.lastIndexOf,
-    nativeIsArray      = Array.isArray,
-    nativeKeys         = Object.keys,
-    nativeBind         = FuncProto.bind;
-
-  // Create a safe reference to the Underscore object for use below.
-  var _ = function(obj) {
-    if (obj instanceof _) return obj;
-    if (!(this instanceof _)) return new _(obj);
-    this._wrapped = obj;
-  };
-
-  // Export the Underscore object for **Node.js**, with
-  // backwards-compatibility for the old `require()` API. If we're in
-  // the browser, add `_` as a global object via a string identifier,
-  // for Closure Compiler "advanced" mode.
-  if (typeof exports !== 'undefined') {
-    if (typeof module !== 'undefined' && module.exports) {
-      exports = module.exports = _;
-    }
-    exports._ = _;
-  } else {
-    root._ = _;
-  }
-
-  // Current version.
-  _.VERSION = '1.4.4';
-
-  // Collection Functions
-  // --------------------
-
-  // The cornerstone, an `each` implementation, aka `forEach`.
-  // Handles objects with the built-in `forEach`, arrays, and raw objects.
-  // Delegates to **ECMAScript 5**'s native `forEach` if available.
-  var each = _.each = _.forEach = function(obj, iterator, context) {
-    if (obj == null) return;
-    if (nativeForEach && obj.forEach === nativeForEach) {
-      obj.forEach(iterator, context);
-    } else if (obj.length === +obj.length) {
-      for (var i = 0, l = obj.length; i < l; i++) {
-        if (iterator.call(context, obj[i], i, obj) === breaker) return;
-      }
-    } else {
-      for (var key in obj) {
-        if (_.has(obj, key)) {
-          if (iterator.call(context, obj[key], key, obj) === breaker) return;
-        }
-      }
-    }
-  };
-
-  // Return the results of applying the iterator to each element.
-  // Delegates to **ECMAScript 5**'s native `map` if available.
-  _.map = _.collect = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
-    each(obj, function(value, index, list) {
-      results[results.length] = iterator.call(context, value, index, list);
-    });
-    return results;
-  };
-
-  var reduceError = 'Reduce of empty array with no initial value';
-
-  // **Reduce** builds up a single result from a list of values, aka `inject`,
-  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
-  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
-    var initial = arguments.length > 2;
-    if (obj == null) obj = [];
-    if (nativeReduce && obj.reduce === nativeReduce) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
-    }
-    each(obj, function(value, index, list) {
-      if (!initial) {
-        memo = value;
-        initial = true;
-      } else {
-        memo = iterator.call(context, memo, value, index, list);
-      }
-    });
-    if (!initial) throw new TypeError(reduceError);
-    return memo;
-  };
-
-  // The right-associative version of reduce, also known as `foldr`.
-  // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
-  _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
-    var initial = arguments.length > 2;
-    if (obj == null) obj = [];
-    if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
-    }
-    var length = obj.length;
-    if (length !== +length) {
-      var keys = _.keys(obj);
-      length = keys.length;
-    }
-    each(obj, function(value, index, list) {
-      index = keys ? keys[--length] : --length;
-      if (!initial) {
-        memo = obj[index];
-        initial = true;
-      } else {
-        memo = iterator.call(context, memo, obj[index], index, list);
-      }
-    });
-    if (!initial) throw new TypeError(reduceError);
-    return memo;
-  };
-
-  // Return the first value which passes a truth test. Aliased as `detect`.
-  _.find = _.detect = function(obj, iterator, context) {
-    var result;
-    any(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) {
-        result = value;
-        return true;
-      }
-    });
-    return result;
-  };
-
-  // Return all the elements that pass a truth test.
-  // Delegates to **ECMAScript 5**'s native `filter` if available.
-  // Aliased as `select`.
-  _.filter = _.select = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
-    each(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) results[results.length] = value;
-    });
-    return results;
-  };
-
-  // Return all the elements for which a truth test fails.
-  _.reject = function(obj, iterator, context) {
-    return _.filter(obj, function(value, index, list) {
-      return !iterator.call(context, value, index, list);
-    }, context);
-  };
-
-  // Determine whether all of the elements match a truth test.
-  // Delegates to **ECMAScript 5**'s native `every` if available.
-  // Aliased as `all`.
-  _.every = _.all = function(obj, iterator, context) {
-    iterator || (iterator = _.identity);
-    var result = true;
-    if (obj == null) return result;
-    if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
-    each(obj, function(value, index, list) {
-      if (!(result = result && iterator.call(context, value, index, list))) return breaker;
-    });
-    return !!result;
-  };
-
-  // Determine if at least one element in the object matches a truth test.
-  // Delegates to **ECMAScript 5**'s native `some` if available.
-  // Aliased as `any`.
-  var any = _.some = _.any = function(obj, iterator, context) {
-    iterator || (iterator = _.identity);
-    var result = false;
-    if (obj == null) return result;
-    if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
-    each(obj, function(value, index, list) {
-      if (result || (result = iterator.call(context, value, index, list))) return breaker;
-    });
-    return !!result;
-  };
-
-  // Determine if the array or object contains a given value (using `===`).
-  // Aliased as `include`.
-  _.contains = _.include = function(obj, target) {
-    if (obj == null) return false;
-    if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
-    return any(obj, function(value) {
-      return value === target;
-    });
-  };
-
-  // Invoke a method (with arguments) on every item in a collection.
-  _.invoke = function(obj, method) {
-    var args = slice.call(arguments, 2);
-    var isFunc = _.isFunction(method);
-    return _.map(obj, function(value) {
-      return (isFunc ? method : value[method]).apply(value, args);
-    });
-  };
-
-  // Convenience version of a common use case of `map`: fetching a property.
-  _.pluck = function(obj, key) {
-    return _.map(obj, function(value){ return value[key]; });
-  };
-
-  // Convenience version of a common use case of `filter`: selecting only objects
-  // containing specific `key:value` pairs.
-  _.where = function(obj, attrs, first) {
-    if (_.isEmpty(attrs)) return first ? null : [];
-    return _[first ? 'find' : 'filter'](obj, function(value) {
-      for (var key in attrs) {
-        if (attrs[key] !== value[key]) return false;
-      }
-      return true;
-    });
-  };
-
-  // Convenience version of a common use case of `find`: getting the first object
-  // containing specific `key:value` pairs.
-  _.findWhere = function(obj, attrs) {
-    return _.where(obj, attrs, true);
-  };
-
-  // Return the maximum element or (element-based computation).
-  // Can't optimize arrays of integers longer than 65,535 elements.
-  // See: https://bugs.webkit.org/show_bug.cgi?id=80797
-  _.max = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) {
-      return Math.max.apply(Math, obj);
-    }
-    if (!iterator && _.isEmpty(obj)) return -Infinity;
-    var result = {computed : -Infinity, value: -Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed >= result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Return the minimum element (or element-based computation).
-  _.min = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) {
-      return Math.min.apply(Math, obj);
-    }
-    if (!iterator && _.isEmpty(obj)) return Infinity;
-    var result = {computed : Infinity, value: Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed < result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Shuffle an array.
-  _.shuffle = function(obj) {
-    var rand;
-    var index = 0;
-    var shuffled = [];
-    each(obj, function(value) {
-      rand = _.random(index++);
-      shuffled[index - 1] = shuffled[rand];
-      shuffled[rand] = value;
-    });
-    return shuffled;
-  };
-
-  // An internal function to generate lookup iterators.
-  var lookupIterator = function(value) {
-    return _.isFunction(value) ? value : function(obj){ return obj[value]; };
-  };
-
-  // Sort the object's values by a criterion produced by an iterator.
-  _.sortBy = function(obj, value, context) {
-    var iterator = lookupIterator(value);
-    return _.pluck(_.map(obj, function(value, index, list) {
-      return {
-        value : value,
-        index : index,
-        criteria : iterator.call(context, value, index, list)
-      };
-    }).sort(function(left, right) {
-      var a = left.criteria;
-      var b = right.criteria;
-      if (a !== b) {
-        if (a > b || a === void 0) return 1;
-        if (a < b || b === void 0) return -1;
-      }
-      return left.index < right.index ? -1 : 1;
-    }), 'value');
-  };
-
-  // An internal function used for aggregate "group by" operations.
-  var group = function(obj, value, context, behavior) {
-    var result = {};
-    var iterator = lookupIterator(value || _.identity);
-    each(obj, function(value, index) {
-      var key = iterator.call(context, value, index, obj);
-      behavior(result, key, value);
-    });
-    return result;
-  };
-
-  // Groups the object's values by a criterion. Pass either a string attribute
-  // to group by, or a function that returns the criterion.
-  _.groupBy = function(obj, value, context) {
-    return group(obj, value, context, function(result, key, value) {
-      (_.has(result, key) ? result[key] : (result[key] = [])).push(value);
-    });
-  };
-
-  // Counts instances of an object that group by a certain criterion. Pass
-  // either a string attribute to count by, or a function that returns the
-  // criterion.
-  _.countBy = function(obj, value, context) {
-    return group(obj, value, context, function(result, key) {
-      if (!_.has(result, key)) result[key] = 0;
-      result[key]++;
-    });
-  };
-
-  // Use a comparator function to figure out the smallest index at which
-  // an object should be inserted so as to maintain order. Uses binary search.
-  _.sortedIndex = function(array, obj, iterator, context) {
-    iterator = iterator == null ? _.identity : lookupIterator(iterator);
-    var value = iterator.call(context, obj);
-    var low = 0, high = array.length;
-    while (low < high) {
-      var mid = (low + high) >>> 1;
-      iterator.call(context, array[mid]) < value ? low = mid + 1 : high = mid;
-    }
-    return low;
-  };
-
-  // Safely convert anything iterable into a real, live array.
-  _.toArray = function(obj) {
-    if (!obj) return [];
-    if (_.isArray(obj)) return slice.call(obj);
-    if (obj.length === +obj.length) return _.map(obj, _.identity);
-    return _.values(obj);
-  };
-
-  // Return the number of elements in an object.
-  _.size = function(obj) {
-    if (obj == null) return 0;
-    return (obj.length === +obj.length) ? obj.length : _.keys(obj).length;
-  };
-
-  // Array Functions
-  // ---------------
-
-  // Get the first element of an array. Passing **n** will return the first N
-  // values in the array. Aliased as `head` and `take`. The **guard** check
-  // allows it to work with `_.map`.
-  _.first = _.head = _.take = function(array, n, guard) {
-    if (array == null) return void 0;
-    return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
-  };
-
-  // Returns everything but the last entry of the array. Especially useful on
-  // the arguments object. Passing **n** will return all the values in
-  // the array, excluding the last N. The **guard** check allows it to work with
-  // `_.map`.
-  _.initial = function(array, n, guard) {
-    return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
-  };
-
-  // Get the last element of an array. Passing **n** will return the last N
-  // values in the array. The **guard** check allows it to work with `_.map`.
-  _.last = function(array, n, guard) {
-    if (array == null) return void 0;
-    if ((n != null) && !guard) {
-      return slice.call(array, Math.max(array.length - n, 0));
-    } else {
-      return array[array.length - 1];
-    }
-  };
-
-  // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.
-  // Especially useful on the arguments object. Passing an **n** will return
-  // the rest N values in the array. The **guard**
-  // check allows it to work with `_.map`.
-  _.rest = _.tail = _.drop = function(array, n, guard) {
-    return slice.call(array, (n == null) || guard ? 1 : n);
-  };
-
-  // Trim out all falsy values from an array.
-  _.compact = function(array) {
-    return _.filter(array, _.identity);
-  };
-
-  // Internal implementation of a recursive `flatten` function.
-  var flatten = function(input, shallow, output) {
-    each(input, function(value) {
-      if (_.isArray(value)) {
-        shallow ? push.apply(output, value) : flatten(value, shallow, output);
-      } else {
-        output.push(value);
-      }
-    });
-    return output;
-  };
-
-  // Return a completely flattened version of an array.
-  _.flatten = function(array, shallow) {
-    return flatten(array, shallow, []);
-  };
-
-  // Return a version of the array that does not contain the specified value(s).
-  _.without = function(array) {
-    return _.difference(array, slice.call(arguments, 1));
-  };
-
-  // Produce a duplicate-free version of the array. If the array has already
-  // been sorted, you have the option of using a faster algorithm.
-  // Aliased as `unique`.
-  _.uniq = _.unique = function(array, isSorted, iterator, context) {
-    if (_.isFunction(isSorted)) {
-      context = iterator;
-      iterator = isSorted;
-      isSorted = false;
-    }
-    var initial = iterator ? _.map(array, iterator, context) : array;
-    var results = [];
-    var seen = [];
-    each(initial, function(value, index) {
-      if (isSorted ? (!index || seen[seen.length - 1] !== value) : !_.contains(seen, value)) {
-        seen.push(value);
-        results.push(array[index]);
-      }
-    });
-    return results;
-  };
-
-  // Produce an array that contains the union: each distinct element from all of
-  // the passed-in arrays.
-  _.union = function() {
-    return _.uniq(concat.apply(ArrayProto, arguments));
-  };
-
-  // Produce an array that contains every item shared between all the
-  // passed-in arrays.
-  _.intersection = function(array) {
-    var rest = slice.call(arguments, 1);
-    return _.filter(_.uniq(array), function(item) {
-      return _.every(rest, function(other) {
-        return _.indexOf(other, item) >= 0;
-      });
-    });
-  };
-
-  // Take the difference between one array and a number of other arrays.
-  // Only the elements present in just the first array will remain.
-  _.difference = function(array) {
-    var rest = concat.apply(ArrayProto, slice.call(arguments, 1));
-    return _.filter(array, function(value){ return !_.contains(rest, value); });
-  };
-
-  // Zip together multiple lists into a single array -- elements that share
-  // an index go together.
-  _.zip = function() {
-    var args = slice.call(arguments);
-    var length = _.max(_.pluck(args, 'length'));
-    var results = new Array(length);
-    for (var i = 0; i < length; i++) {
-      results[i] = _.pluck(args, "" + i);
-    }
-    return results;
-  };
-
-  // Converts lists into objects. Pass either a single array of `[key, value]`
-  // pairs, or two parallel arrays of the same length -- one of keys, and one of
-  // the corresponding values.
-  _.object = function(list, values) {
-    if (list == null) return {};
-    var result = {};
-    for (var i = 0, l = list.length; i < l; i++) {
-      if (values) {
-        result[list[i]] = values[i];
-      } else {
-        result[list[i][0]] = list[i][1];
-      }
-    }
-    return result;
-  };
-
-  // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
-  // we need this function. Return the position of the first occurrence of an
-  // item in an array, or -1 if the item is not included in the array.
-  // Delegates to **ECMAScript 5**'s native `indexOf` if available.
-  // If the array is large and already in sort order, pass `true`
-  // for **isSorted** to use binary search.
-  _.indexOf = function(array, item, isSorted) {
-    if (array == null) return -1;
-    var i = 0, l = array.length;
-    if (isSorted) {
-      if (typeof isSorted == 'number') {
-        i = (isSorted < 0 ? Math.max(0, l + isSorted) : isSorted);
-      } else {
-        i = _.sortedIndex(array, item);
-        return array[i] === item ? i : -1;
-      }
-    }
-    if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item, isSorted);
-    for (; i < l; i++) if (array[i] === item) return i;
-    return -1;
-  };
-
-  // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
-  _.lastIndexOf = function(array, item, from) {
-    if (array == null) return -1;
-    var hasIndex = from != null;
-    if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) {
-      return hasIndex ? array.lastIndexOf(item, from) : array.lastIndexOf(item);
-    }
-    var i = (hasIndex ? from : array.length);
-    while (i--) if (array[i] === item) return i;
-    return -1;
-  };
-
-  // Generate an integer Array containing an arithmetic progression. A port of
-  // the native Python `range()` function. See
-  // [the Python documentation](http://docs.python.org/library/functions.html#range).
-  _.range = function(start, stop, step) {
-    if (arguments.length <= 1) {
-      stop = start || 0;
-      start = 0;
-    }
-    step = arguments[2] || 1;
-
-    var len = Math.max(Math.ceil((stop - start) / step), 0);
-    var idx = 0;
-    var range = new Array(len);
-
-    while(idx < len) {
-      range[idx++] = start;
-      start += step;
-    }
-
-    return range;
-  };
-
-  // Function (ahem) Functions
-  // ------------------
-
-  // Create a function bound to a given object (assigning `this`, and arguments,
-  // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if
-  // available.
-  _.bind = function(func, context) {
-    if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
-    var args = slice.call(arguments, 2);
-    return function() {
-      return func.apply(context, args.concat(slice.call(arguments)));
-    };
-  };
-
-  // Partially apply a function by creating a version that has had some of its
-  // arguments pre-filled, without changing its dynamic `this` context.
-  _.partial = function(func) {
-    var args = slice.call(arguments, 1);
-    return function() {
-      return func.apply(this, args.concat(slice.call(arguments)));
-    };
-  };
-
-  // Bind all of an object's methods to that object. Useful for ensuring that
-  // all callbacks defined on an object belong to it.
-  _.bindAll = function(obj) {
-    var funcs = slice.call(arguments, 1);
-    if (funcs.length === 0) funcs = _.functions(obj);
-    each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
-    return obj;
-  };
-
-  // Memoize an expensive function by storing its results.
-  _.memoize = function(func, hasher) {
-    var memo = {};
-    hasher || (hasher = _.identity);
-    return function() {
-      var key = hasher.apply(this, arguments);
-      return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
-    };
-  };
-
-  // Delays a function for the given number of milliseconds, and then calls
-  // it with the arguments supplied.
-  _.delay = function(func, wait) {
-    var args = slice.call(arguments, 2);
-    return setTimeout(function(){ return func.apply(null, args); }, wait);
-  };
-
-  // Defers a function, scheduling it to run after the current call stack has
-  // cleared.
-  _.defer = function(func) {
-    return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
-  };
-
-  // Returns a function, that, when invoked, will only be triggered at most once
-  // during a given window of time.
-  _.throttle = function(func, wait) {
-    var context, args, timeout, result;
-    var previous = 0;
-    var later = function() {
-      previous = new Date;
-      timeout = null;
-      result = func.apply(context, args);
-    };
-    return function() {
-      var now = new Date;
-      var remaining = wait - (now - previous);
-      context = this;
-      args = arguments;
-      if (remaining <= 0) {
-        clearTimeout(timeout);
-        timeout = null;
-        previous = now;
-        result = func.apply(context, args);
-      } else if (!timeout) {
-        timeout = setTimeout(later, remaining);
-      }
-      return result;
-    };
-  };
-
-  // Returns a function, that, as long as it continues to be invoked, will not
-  // be triggered. The function will be called after it stops being called for
-  // N milliseconds. If `immediate` is passed, trigger the function on the
-  // leading edge, instead of the trailing.
-  _.debounce = function(func, wait, immediate) {
-    var timeout, result;
-    return function() {
-      var context = this, args = arguments;
-      var later = function() {
-        timeout = null;
-        if (!immediate) result = func.apply(context, args);
-      };
-      var callNow = immediate && !timeout;
-      clearTimeout(timeout);
-      timeout = setTimeout(later, wait);
-      if (callNow) result = func.apply(context, args);
-      return result;
-    };
-  };
-
-  // Returns a function that will be executed at most one time, no matter how
-  // often you call it. Useful for lazy initialization.
-  _.once = function(func) {
-    var ran = false, memo;
-    return function() {
-      if (ran) return memo;
-      ran = true;
-      memo = func.apply(this, arguments);
-      func = null;
-      return memo;
-    };
-  };
-
-  // Returns the first function passed as an argument to the second,
-  // allowing you to adjust arguments, run code before and after, and
-  // conditionally execute the original function.
-  _.wrap = function(func, wrapper) {
-    return function() {
-      var args = [func];
-      push.apply(args, arguments);
-      return wrapper.apply(this, args);
-    };
-  };
-
-  // Returns a function that is the composition of a list of functions, each
-  // consuming the return value of the function that follows.
-  _.compose = function() {
-    var funcs = arguments;
-    return function() {
-      var args = arguments;
-      for (var i = funcs.length - 1; i >= 0; i--) {
-        args = [funcs[i].apply(this, args)];
-      }
-      return args[0];
-    };
-  };
-
-  // Returns a function that will only be executed after being called N times.
-  _.after = function(times, func) {
-    if (times <= 0) return func();
-    return function() {
-      if (--times < 1) {
-        return func.apply(this, arguments);
-      }
-    };
-  };
-
-  // Object Functions
-  // ----------------
-
-  // Retrieve the names of an object's properties.
-  // Delegates to **ECMAScript 5**'s native `Object.keys`
-  _.keys = nativeKeys || function(obj) {
-    if (obj !== Object(obj)) throw new TypeError('Invalid object');
-    var keys = [];
-    for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key;
-    return keys;
-  };
-
-  // Retrieve the values of an object's properties.
-  _.values = function(obj) {
-    var values = [];
-    for (var key in obj) if (_.has(obj, key)) values.push(obj[key]);
-    return values;
-  };
-
-  // Convert an object into a list of `[key, value]` pairs.
-  _.pairs = function(obj) {
-    var pairs = [];
-    for (var key in obj) if (_.has(obj, key)) pairs.push([key, obj[key]]);
-    return pairs;
-  };
-
-  // Invert the keys and values of an object. The values must be serializable.
-  _.invert = function(obj) {
-    var result = {};
-    for (var key in obj) if (_.has(obj, key)) result[obj[key]] = key;
-    return result;
-  };
-
-  // Return a sorted list of the function names available on the object.
-  // Aliased as `methods`
-  _.functions = _.methods = function(obj) {
-    var names = [];
-    for (var key in obj) {
-      if (_.isFunction(obj[key])) names.push(key);
-    }
-    return names.sort();
-  };
-
-  // Extend a given object with all the properties in passed-in object(s).
-  _.extend = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      if (source) {
-        for (var prop in source) {
-          obj[prop] = source[prop];
-        }
-      }
-    });
-    return obj;
-  };
-
-  // Return a copy of the object only containing the whitelisted properties.
-  _.pick = function(obj) {
-    var copy = {};
-    var keys = concat.apply(ArrayProto, slice.call(arguments, 1));
-    each(keys, function(key) {
-      if (key in obj) copy[key] = obj[key];
-    });
-    return copy;
-  };
-
-   // Return a copy of the object without the blacklisted properties.
-  _.omit = function(obj) {
-    var copy = {};
-    var keys = concat.apply(ArrayProto, slice.call(arguments, 1));
-    for (var key in obj) {
-      if (!_.contains(keys, key)) copy[key] = obj[key];
-    }
-    return copy;
-  };
-
-  // Fill in a given object with default properties.
-  _.defaults = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      if (source) {
-        for (var prop in source) {
-          if (obj[prop] == null) obj[prop] = source[prop];
-        }
-      }
-    });
-    return obj;
-  };
-
-  // Create a (shallow-cloned) duplicate of an object.
-  _.clone = function(obj) {
-    if (!_.isObject(obj)) return obj;
-    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
-  };
-
-  // Invokes interceptor with the obj, and then returns obj.
-  // The primary purpose of this method is to "tap into" a method chain, in
-  // order to perform operations on intermediate results within the chain.
-  _.tap = function(obj, interceptor) {
-    interceptor(obj);
-    return obj;
-  };
-
-  // Internal recursive comparison function for `isEqual`.
-  var eq = function(a, b, aStack, bStack) {
-    // Identical objects are equal. `0 === -0`, but they aren't identical.
-    // See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
-    if (a === b) return a !== 0 || 1 / a == 1 / b;
-    // A strict comparison is necessary because `null == undefined`.
-    if (a == null || b == null) return a === b;
-    // Unwrap any wrapped objects.
-    if (a instanceof _) a = a._wrapped;
-    if (b instanceof _) b = b._wrapped;
-    // Compare `[[Class]]` names.
-    var className = toString.call(a);
-    if (className != toString.call(b)) return false;
-    switch (className) {
-      // Strings, numbers, dates, and booleans are compared by value.
-      case '[object String]':
-        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
-        // equivalent to `new String("5")`.
-        return a == String(b);
-      case '[object Number]':
-        // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
-        // other numeric values.
-        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
-      case '[object Date]':
-      case '[object Boolean]':
-        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
-        // millisecond representations. Note that invalid dates with millisecond representations
-        // of `NaN` are not equivalent.
-        return +a == +b;
-      // RegExps are compared by their source patterns and flags.
-      case '[object RegExp]':
-        return a.source == b.source &&
-               a.global == b.global &&
-               a.multiline == b.multiline &&
-               a.ignoreCase == b.ignoreCase;
-    }
-    if (typeof a != 'object' || typeof b != 'object') return false;
-    // Assume equality for cyclic structures. The algorithm for detecting cyclic
-    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
-    var length = aStack.length;
-    while (length--) {
-      // Linear search. Performance is inversely proportional to the number of
-      // unique nested structures.
-      if (aStack[length] == a) return bStack[length] == b;
-    }
-    // Add the first object to the stack of traversed objects.
-    aStack.push(a);
-    bStack.push(b);
-    var size = 0, result = true;
-    // Recursively compare objects and arrays.
-    if (className == '[object Array]') {
-      // Compare array lengths to determine if a deep comparison is necessary.
-      size = a.length;
-      result = size == b.length;
-      if (result) {
-        // Deep compare the contents, ignoring non-numeric properties.
-        while (size--) {
-          if (!(result = eq(a[size], b[size], aStack, bStack))) break;
-        }
-      }
-    } else {
-      // Objects with different constructors are not equivalent, but `Object`s
-      // from different frames are.
-      var aCtor = a.constructor, bCtor = b.constructor;
-      if (aCtor !== bCtor && !(_.isFunction(aCtor) && (aCtor instanceof aCtor) &&
-                               _.isFunction(bCtor) && (bCtor instanceof bCtor))) {
-        return false;
-      }
-      // Deep compare objects.
-      for (var key in a) {
-        if (_.has(a, key)) {
-          // Count the expected number of properties.
-          size++;
-          // Deep compare each member.
-          if (!(result = _.has(b, key) && eq(a[key], b[key], aStack, bStack))) break;
-        }
-      }
-      // Ensure that both objects contain the same number of properties.
-      if (result) {
-        for (key in b) {
-          if (_.has(b, key) && !(size--)) break;
-        }
-        result = !size;
-      }
-    }
-    // Remove the first object from the stack of traversed objects.
-    aStack.pop();
-    bStack.pop();
-    return result;
-  };
-
-  // Perform a deep comparison to check if two objects are equal.
-  _.isEqual = function(a, b) {
-    return eq(a, b, [], []);
-  };
-
-  // Is a given array, string, or object empty?
-  // An "empty" object has no enumerable own-properties.
-  _.isEmpty = function(obj) {
-    if (obj == null) return true;
-    if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
-    for (var key in obj) if (_.has(obj, key)) return false;
-    return true;
-  };
-
-  // Is a given value a DOM element?
-  _.isElement = function(obj) {
-    return !!(obj && obj.nodeType === 1);
-  };
-
-  // Is a given value an array?
-  // Delegates to ECMA5's native Array.isArray
-  _.isArray = nativeIsArray || function(obj) {
-    return toString.call(obj) == '[object Array]';
-  };
-
-  // Is a given variable an object?
-  _.isObject = function(obj) {
-    return obj === Object(obj);
-  };
-
-  // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp.
-  each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) {
-    _['is' + name] = function(obj) {
-      return toString.call(obj) == '[object ' + name + ']';
-    };
-  });
-
-  // Define a fallback version of the method in browsers (ahem, IE), where
-  // there isn't any inspectable "Arguments" type.
-  if (!_.isArguments(arguments)) {
-    _.isArguments = function(obj) {
-      return !!(obj && _.has(obj, 'callee'));
-    };
-  }
-
-  // Optimize `isFunction` if appropriate.
-  if (typeof (/./) !== 'function') {
-    _.isFunction = function(obj) {
-      return typeof obj === 'function';
-    };
-  }
-
-  // Is a given object a finite number?
-  _.isFinite = function(obj) {
-    return isFinite(obj) && !isNaN(parseFloat(obj));
-  };
-
-  // Is the given value `NaN`? (NaN is the only number which does not equal itself).
-  _.isNaN = function(obj) {
-    return _.isNumber(obj) && obj != +obj;
-  };
-
-  // Is a given value a boolean?
-  _.isBoolean = function(obj) {
-    return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
-  };
-
-  // Is a given value equal to null?
-  _.isNull = function(obj) {
-    return obj === null;
-  };
-
-  // Is a given variable undefined?
-  _.isUndefined = function(obj) {
-    return obj === void 0;
-  };
-
-  // Shortcut function for checking if an object has a given property directly
-  // on itself (in other words, not on a prototype).
-  _.has = function(obj, key) {
-    return hasOwnProperty.call(obj, key);
-  };
-
-  // Utility Functions
-  // -----------------
-
-  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
-  // previous owner. Returns a reference to the Underscore object.
-  _.noConflict = function() {
-    root._ = previousUnderscore;
-    return this;
-  };
-
-  // Keep the identity function around for default iterators.
-  _.identity = function(value) {
-    return value;
-  };
-
-  // Run a function **n** times.
-  _.times = function(n, iterator, context) {
-    var accum = Array(n);
-    for (var i = 0; i < n; i++) accum[i] = iterator.call(context, i);
-    return accum;
-  };
-
-  // Return a random integer between min and max (inclusive).
-  _.random = function(min, max) {
-    if (max == null) {
-      max = min;
-      min = 0;
-    }
-    return min + Math.floor(Math.random() * (max - min + 1));
-  };
-
-  // List of HTML entities for escaping.
-  var entityMap = {
-    escape: {
-      '&': '&amp;',
-      '<': '&lt;',
-      '>': '&gt;',
-      '"': '&quot;',
-      "'": '&#x27;',
-      '/': '&#x2F;'
-    }
-  };
-  entityMap.unescape = _.invert(entityMap.escape);
-
-  // Regexes containing the keys and values listed immediately above.
-  var entityRegexes = {
-    escape:   new RegExp('[' + _.keys(entityMap.escape).join('') + ']', 'g'),
-    unescape: new RegExp('(' + _.keys(entityMap.unescape).join('|') + ')', 'g')
-  };
-
-  // Functions for escaping and unescaping strings to/from HTML interpolation.
-  _.each(['escape', 'unescape'], function(method) {
-    _[method] = function(string) {
-      if (string == null) return '';
-      return ('' + string).replace(entityRegexes[method], function(match) {
-        return entityMap[method][match];
-      });
-    };
-  });
-
-  // If the value of the named property is a function then invoke it;
-  // otherwise, return it.
-  _.result = function(object, property) {
-    if (object == null) return null;
-    var value = object[property];
-    return _.isFunction(value) ? value.call(object) : value;
-  };
-
-  // Add your own custom functions to the Underscore object.
-  _.mixin = function(obj) {
-    each(_.functions(obj), function(name){
-      var func = _[name] = obj[name];
-      _.prototype[name] = function() {
-        var args = [this._wrapped];
-        push.apply(args, arguments);
-        return result.call(this, func.apply(_, args));
-      };
-    });
-  };
-
-  // Generate a unique integer id (unique within the entire client session).
-  // Useful for temporary DOM ids.
-  var idCounter = 0;
-  _.uniqueId = function(prefix) {
-    var id = ++idCounter + '';
-    return prefix ? prefix + id : id;
-  };
-
-  // By default, Underscore uses ERB-style template delimiters, change the
-  // following template settings to use alternative delimiters.
-  _.templateSettings = {
-    evaluate    : /<%([\s\S]+?)%>/g,
-    interpolate : /<%=([\s\S]+?)%>/g,
-    escape      : /<%-([\s\S]+?)%>/g
-  };
-
-  // When customizing `templateSettings`, if you don't want to define an
-  // interpolation, evaluation or escaping regex, we need one that is
-  // guaranteed not to match.
-  var noMatch = /(.)^/;
-
-  // Certain characters need to be escaped so that they can be put into a
-  // string literal.
-  var escapes = {
-    "'":      "'",
-    '\\':     '\\',
-    '\r':     'r',
-    '\n':     'n',
-    '\t':     't',
-    '\u2028': 'u2028',
-    '\u2029': 'u2029'
-  };
-
-  var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g;
-
-  // JavaScript micro-templating, similar to John Resig's implementation.
-  // Underscore templating handles arbitrary delimiters, preserves whitespace,
-  // and correctly escapes quotes within interpolated code.
-  _.template = function(text, data, settings) {
-    var render;
-    settings = _.defaults({}, settings, _.templateSettings);
-
-    // Combine delimiters into one regular expression via alternation.
-    var matcher = new RegExp([
-      (settings.escape || noMatch).source,
-      (settings.interpolate || noMatch).source,
-      (settings.evaluate || noMatch).source
-    ].join('|') + '|$', 'g');
-
-    // Compile the template source, escaping string literals appropriately.
-    var index = 0;
-    var source = "__p+='";
-    text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
-      source += text.slice(index, offset)
-        .replace(escaper, function(match) { return '\\' + escapes[match]; });
-
-      if (escape) {
-        source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
-      }
-      if (interpolate) {
-        source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
-      }
-      if (evaluate) {
-        source += "';\n" + evaluate + "\n__p+='";
-      }
-      index = offset + match.length;
-      return match;
-    });
-    source += "';\n";
-
-    // If a variable is not specified, place data values in local scope.
-    if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';
-
-    source = "var __t,__p='',__j=Array.prototype.join," +
-      "print=function(){__p+=__j.call(arguments,'');};\n" +
-      source + "return __p;\n";
-
-    try {
-      render = new Function(settings.variable || 'obj', '_', source);
-    } catch (e) {
-      e.source = source;
-      throw e;
-    }
-
-    if (data) return render(data, _);
-    var template = function(data) {
-      return render.call(this, data, _);
-    };
-
-    // Provide the compiled function source as a convenience for precompilation.
-    template.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}';
-
-    return template;
-  };
-
-  // Add a "chain" function, which will delegate to the wrapper.
-  _.chain = function(obj) {
-    return _(obj).chain();
-  };
-
-  // OOP
-  // ---------------
-  // If Underscore is called as a function, it returns a wrapped object that
-  // can be used OO-style. This wrapper holds altered versions of all the
-  // underscore functions. Wrapped objects may be chained.
-
-  // Helper function to continue chaining intermediate results.
-  var result = function(obj) {
-    return this._chain ? _(obj).chain() : obj;
-  };
-
-  // Add all of the Underscore functions to the wrapper object.
-  _.mixin(_);
-
-  // Add all mutator Array functions to the wrapper.
-  each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
-    var method = ArrayProto[name];
-    _.prototype[name] = function() {
-      var obj = this._wrapped;
-      method.apply(obj, arguments);
-      if ((name == 'shift' || name == 'splice') && obj.length === 0) delete obj[0];
-      return result.call(this, obj);
-    };
-  });
-
-  // Add all accessor Array functions to the wrapper.
-  each(['concat', 'join', 'slice'], function(name) {
-    var method = ArrayProto[name];
-    _.prototype[name] = function() {
-      return result.call(this, method.apply(this._wrapped, arguments));
-    };
-  });
-
-  _.extend(_.prototype, {
-
-    // Start chaining a wrapped Underscore object.
-    chain: function() {
-      this._chain = true;
-      return this;
-    },
-
-    // Extracts the result from a wrapped and chained object.
-    value: function() {
-      return this._wrapped;
-    }
-
-  });
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/.npmignore b/blackberry10/node_modules/plugman/node_modules/xcode/.npmignore
deleted file mode 100644
index 3bfb893..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules/*
-.DS_Store
-npm-debug.log

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/AUTHORS
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/AUTHORS b/blackberry10/node_modules/plugman/node_modules/xcode/AUTHORS
deleted file mode 100644
index dcef29f..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/AUTHORS
+++ /dev/null
@@ -1,6 +0,0 @@
-Andrew Lunny (@alunny)
-Anis Kadri (@imhotep)
-Mike Reinstein (@mreinstein)
-Filip Maj (@filmaj)
-Brett Rudd (@goya)
-Bob Easterday (@bobeast)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/LICENSE b/blackberry10/node_modules/plugman/node_modules/xcode/LICENSE
deleted file mode 100644
index 45f03a3..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-   Copyright 2012 Andrew Lunny, Adobe Systems
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/Makefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/Makefile b/blackberry10/node_modules/plugman/node_modules/xcode/Makefile
deleted file mode 100644
index f838310..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-tests:
-	nodeunit test/* test/parser/*
-
-parser:
-	pegjs lib/parser/pbxproj.pegjs

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/README.md b/blackberry10/node_modules/plugman/node_modules/xcode/README.md
deleted file mode 100644
index fe902ad..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# node-xcode
-
-> parser/toolkit for xcodeproj project files
-
-Allows you to edit xcodeproject files and write them back out.
-
-## Example
-
-    // API is a bit wonky right now
-    var xcode = require('xcode'),
-        fs = require('fs'),
-        projectPath = 'myproject.xcodeproj/project.pbxproj',
-        myProj = xcode.project(projectPath);
-
-    // parsing is async, in a different process
-    myProj.parse(function (err) {
-        myProj.addHeaderFile('foo.h');
-        myProj.addSourceFile('foo.m');
-        myProj.addFramework('FooKit.framework');
-        
-        fs.writeFileSync(projectPath, myProj.writeSync());
-        console.log('new project written');
-    });
-
-## Working on the parser
-
-If there's a problem parsing, you will want to edit the grammar under
-`lib/parser/pbxproj.pegjs`. You can test it online with the PEGjs online thingy
-at http://pegjs.majda.cz/online - I have had some mixed results though.
-
-Tests under the `test/parser` directory will compile the parser from the
-grammar. Other tests will use the prebuilt parser (`lib/parser/pbxproj.js`).
-
-To rebuild the parser js file after editing the grammar, run:
-
-    ./node_modules/.bin/pegjs lib/parser/pbxproj.pegjs
-
-(easier if `./node_modules/.bin` is in your path)
-
-## License
-
-MIT

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/index.js b/blackberry10/node_modules/plugman/node_modules/xcode/index.js
deleted file mode 100644
index c593bb8..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/index.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.project = require('./lib/pbxProject')

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/lib/parseJob.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/lib/parseJob.js b/blackberry10/node_modules/plugman/node_modules/xcode/lib/parseJob.js
deleted file mode 100644
index 804be10..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/lib/parseJob.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// parsing is slow and blocking right now
-// so we do it in a separate process
-var fs = require('fs'),
-    parser = require('./parser/pbxproj'),
-    path = process.argv[2],
-    fileContents, obj;
-
-try {
-    fileContents = fs.readFileSync(path, 'utf-8'),
-    obj = parser.parse(fileContents)
-    process.send(obj)
-    process.exit()
-} catch (e) {
-    process.send(e)
-    process.exit(1)
-}


[46/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/file.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/file.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/file.js
deleted file mode 100644
index a4bd2e7..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/file.js
+++ /dev/null
@@ -1,520 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var fs = require('fs')
-  , path = require('path')
-  , JS_PAT = /\.(js|coffee)$/
-  , logger;
-
-var logger = new (function () {
-  var out;
-  try {
-    out = require('./logger');
-  }
-  catch (e) {
-    out = console;
-  }
-
-  this.log = function (o) {
-    out.log(o);
-  };
-})();
-
-/**
-  @name file
-  @namespace file
-*/
-
-var fileUtils = new (function () {
-  var _copyFile
-    , _copyDir
-    , _readDir
-    , _rmDir
-    , _watch;
-
-
-  // Recursively copy files and directories
-  _copyFile = function (fromPath, toPath, opts) {
-    var from = path.normalize(fromPath)
-      , to = path.normalize(toPath)
-      , options = opts || {}
-      , fromStat
-      , toStat
-      , destExists
-      , destDoesNotExistErr
-      , content
-      , filename
-      , dirContents
-      , targetDir;
-
-    fromStat = fs.statSync(from);
-
-    try {
-      //console.dir(to + ' destExists');
-      toStat = fs.statSync(to);
-      destExists = true;
-    }
-    catch(e) {
-      //console.dir(to + ' does not exist');
-      destDoesNotExistErr = e;
-      destExists = false;
-    }
-    // Destination dir or file exists, copy into (directory)
-    // or overwrite (file)
-    if (destExists) {
-
-      // If there's a rename-via-copy file/dir name passed, use it.
-      // Otherwise use the actual file/dir name
-      filename = options.rename || path.basename(from);
-
-      // Copying a directory
-      if (fromStat.isDirectory()) {
-        dirContents = fs.readdirSync(from);
-        targetDir = path.join(to, filename);
-        // We don't care if the target dir already exists
-        try {
-          fs.mkdirSync(targetDir, options.mode || 0755);
-        }
-        catch(e) {
-          if (e.code != 'EEXIST') {
-            throw e;
-          }
-        }
-        for (var i = 0, ii = dirContents.length; i < ii; i++) {
-          //console.log(dirContents[i]);
-          _copyFile(path.join(from, dirContents[i]), targetDir);
-        }
-      }
-      // Copying a file
-      else {
-        content = fs.readFileSync(from);
-        // Copy into dir
-        if (toStat.isDirectory()) {
-          //console.log('copy into dir ' + to);
-          fs.writeFileSync(path.join(to, filename), content);
-        }
-        // Overwrite file
-        else {
-          //console.log('overwriting ' + to);
-          fs.writeFileSync(to, content);
-        }
-      }
-    }
-    // Dest doesn't exist, can't create it
-    else {
-      throw destDoesNotExistErr;
-    }
-  };
-
-  _copyDir = function (from, to, opts) {
-    var createDir = opts.createDir;
-  };
-
-  // Return the contents of a given directory
-  _readDir = function (dirPath) {
-    var dir = path.normalize(dirPath)
-      , paths = []
-      , ret = [dir]
-      , msg;
-
-    try {
-      paths = fs.readdirSync(dir);
-    }
-    catch (e) {
-      msg = 'Could not read path ' + dir + '\n';
-      if (e.stack) {
-        msg += e.stack;
-      }
-      throw new Error(msg);
-    }
-
-    paths.forEach(function (p) {
-      var curr = path.join(dir, p);
-      var stat = fs.statSync(curr);
-      if (stat.isDirectory()) {
-        ret = ret.concat(_readDir(curr));
-      }
-      else {
-        ret.push(curr);
-      }
-    });
-
-    return ret;
-  };
-
-  // Remove the given directory
-  _rmDir = function (dirPath) {
-    var dir = path.normalize(dirPath)
-      , paths = [];
-    paths = fs.readdirSync(dir);
-    paths.forEach(function (p) {
-      var curr = path.join(dir, p);
-      var stat = fs.statSync(curr);
-      if (stat.isDirectory()) {
-        _rmDir(curr);
-      }
-      else {
-        fs.unlinkSync(curr);
-      }
-    });
-    fs.rmdirSync(dir);
-  };
-
-  // Recursively watch files with a callback
-  _watch = function (path, callback) {
-    fs.stat(path, function (err, stats) {
-      if (err) {
-        return false;
-      }
-      if (stats.isFile() && JS_PAT.test(path)) {
-        fs.watchFile(path, callback);
-      }
-      else if (stats.isDirectory()) {
-        fs.readdir(path, function (err, files) {
-          if (err) {
-            return log.fatal(err);
-          }
-          for (var f in files) {
-            _watch(path + '/' + files[f], callback);
-          }
-        });
-      }
-    });
-  };
-
-  /**
-    @name file#cpR
-    @public
-    @function
-    @description Copies a directory/file to a destination
-    @param {String} fromPath The source path to copy from
-    @param {String} toPath The destination path to copy to
-    @param {Object} opts Options to use
-      @param {Boolean} [opts.silent] If false then will log the command
-  */
-  this.cpR = function (fromPath, toPath, options) {
-    var from = path.normalize(fromPath)
-      , to = path.normalize(toPath)
-      , toStat
-      , doesNotExistErr
-      , paths
-      , filename
-      , opts = options || {};
-
-    if (!opts.silent) {
-      logger.log('cp -r ' + fromPath + ' ' + toPath);
-    }
-
-    opts = {}; // Reset
-
-    if (from == to) {
-      throw new Error('Cannot copy ' + from + ' to itself.');
-    }
-
-    // Handle rename-via-copy
-    try {
-      toStat = fs.statSync(to);
-    }
-    catch(e) {
-      doesNotExistErr = e;
-
-      // Get abs path so it's possible to check parent dir
-      if (!this.isAbsolute(to)) {
-        to = path.join(process.cwd() , to);
-      }
-
-      // Save the file/dir name
-      filename = path.basename(to);
-      // See if a parent dir exists, so there's a place to put the
-      /// renamed file/dir (resets the destination for the copy)
-      to = path.dirname(to);
-      try {
-        toStat = fs.statSync(to);
-      }
-      catch(e) {}
-      if (toStat && toStat.isDirectory()) {
-        // Set the rename opt to pass to the copy func, will be used
-        // as the new file/dir name
-        opts.rename = filename;
-        //console.log('filename ' + filename);
-      }
-      else {
-        throw doesNotExistErr;
-      }
-    }
-
-    _copyFile(from, to, opts);
-  };
-
-  /**
-    @name file#mkdirP
-    @public
-    @function
-    @description Create the given directory(ies) using the given mode permissions
-    @param {String} dir The directory to create
-    @param {Number} mode The mode to give the created directory(ies)(Default: 0755)
-  */
-  this.mkdirP = function (dir, mode) {
-    var dirPath = path.normalize(dir)
-      , paths = dirPath.split(/\/|\\/)
-      , currPath = ''
-      , next;
-
-    if (paths[0] == '' || /^[A-Za-z]+:/.test(paths[0])) {
-      currPath = paths.shift() || '/';
-      currPath = path.join(currPath, paths.shift());
-      //console.log('basedir');
-    }
-    while ((next = paths.shift())) {
-      if (next == '..') {
-        currPath = path.join(currPath, next);
-        continue;
-      }
-      currPath = path.join(currPath, next);
-      try {
-        //console.log('making ' + currPath);
-        fs.mkdirSync(currPath, mode || 0755);
-      }
-      catch(e) {
-        if (e.code != 'EEXIST') {
-          throw e;
-        }
-      }
-    }
-  };
-
-  /**
-    @name file#readdirR
-    @public
-    @function
-    @return {Array} Returns the contents as an Array, can be configured via opts.format
-    @description Reads the given directory returning it's contents
-    @param {String} dir The directory to read
-    @param {Object} opts Options to use
-      @param {String} [opts.format] Set the format to return(Default: Array)
-  */
-  this.readdirR = function (dir, opts) {
-    var options = opts || {}
-      , format = options.format || 'array'
-      , ret;
-    ret = _readDir(dir);
-    return format == 'string' ? ret.join('\n') : ret;
-  };
-
-  /**
-    @name file#rmRf
-    @public
-    @function
-    @description Deletes the given directory/file
-    @param {String} p The path to delete, can be a directory or file
-    @param {Object} opts Options to use
-      @param {String} [opts.silent] If false then logs the command
-  */
-  this.rmRf = function (p, options) {
-    var stat
-      , opts = options || {};
-    if (!opts.silent) {
-      logger.log('rm -rf ' + p);
-    }
-    try {
-      stat = fs.statSync(p);
-      if (stat.isDirectory()) {
-        _rmDir(p);
-      }
-      else {
-        fs.unlinkSync(p);
-      }
-    }
-    catch (e) {}
-  };
-
-  /**
-    @name file#isAbsolute
-    @public
-    @function
-    @return {Boolean/String} If it's absolute the first char is returned otherwise false
-    @description Checks if a given path is absolute or relative
-    @param {String} p Path to check
-  */
-  this.isAbsolute = function (p) {
-    var match = /^[A-Za-z]+:\\|^\//.exec(p);
-    if (match && match.length) {
-      return match[0];
-    }
-    return false;
-  };
-
-  /**
-    @name file#absolutize
-    @public
-    @function
-    @return {String} Returns the absolute path for the given path
-    @description Returns the absolute path for the given path
-    @param {String} p The path to get the absolute path for
-  */
-  this.absolutize = function (p) {
-    if (this.isAbsolute(p)) {
-      return p;
-    }
-    else {
-      return path.join(process.cwd(), p);
-    }
-  };
-
-  /**
-    Given a patern, return the base directory of it (ie. the folder
-    that will contain all the files matching the path).
-    eg. file.basedir('/test/**') => '/test/'
-    Path ending by '/' are considerd as folder while other are considerd
-    as files, eg.:
-        file.basedir('/test/a/') => '/test/a'
-        file.basedir('/test/a') => '/test'
-    The returned path always end with a '/' so we have:
-        file.basedir(file.basedir(x)) == file.basedir(x)
-  */
-  this.basedir = function (pathParam) {
-    var basedir = ''
-      , parts
-      , part
-      , pos = 0
-      , p = pathParam || '';
-
-    // If the path has a leading asterisk, basedir is the current dir
-    if (p.indexOf('*') == 0 || p.indexOf('**') == 0) {
-      return '.';
-    }
-
-    // always consider .. at the end as a folder and not a filename
-    if (/(?:^|\/|\\)\.\.$/.test(p.slice(-3))) {
-      p += '/';
-    }
-
-    parts = p.split(/\\|\//);
-    for (var i = 0, l = parts.length - 1; i < l; i++) {
-      part = parts[i];
-      if (part.indexOf('*') > -1 || part.indexOf('**') > -1) {
-        break;
-      }
-      pos += part.length + 1;
-      basedir += part + p[pos - 1];
-    }
-    if (!basedir) {
-      basedir = '.';
-    }
-    // Strip trailing slashes
-    if (!(basedir == '\\' || basedir == '/')) {
-      basedir = basedir.replace(/\\$|\/$/, '');
-    }
-    return basedir;
-
-  };
-
-  /**
-    @name file#searchParentPath
-    @public
-    @function
-    @description Search for a directory/file in the current directory and parent directories
-    @param {String} p The path to search for
-    @param {Function} callback The function to call once the path is found
-  */
-  this.searchParentPath = function (location, beginPath, callback) {
-    if (typeof beginPath === 'function' && !callback) {
-      callback = beginPath;
-      beginPath = process.cwd();
-    }
-    var cwd = beginPath || process.cwd();
-
-    if (!location) {
-      // Return if no path is given
-      return;
-    }
-    var relPath = ''
-      , i = 5 // Only search up to 5 directories
-      , pathLoc
-      , pathExists;
-
-    while (--i >= 0) {
-      pathLoc = path.join(cwd, relPath, location);
-      pathExists = this.existsSync(pathLoc);
-
-      if (pathExists) {
-        callback && callback(undefined, pathLoc);
-        break;
-      } else {
-        // Dir could not be found
-        if (i === 0) {
-          callback && callback(new Error("Path \"" + pathLoc + "\" not found"), undefined);
-          break;
-        }
-
-        // Add a relative parent directory
-        relPath += '../';
-        // Switch to relative parent directory
-        process.chdir(path.join(cwd, relPath));
-      }
-    }
-  };
-
-  /**
-    @name file#watch
-    @public
-    @function
-    @description Watch a given path then calls the callback once a change occurs
-    @param {String} path The path to watch
-    @param {Function} callback The function to call when a change occurs
-  */
-  this.watch = function () {
-    _watch.apply(this, arguments);
-  };
-
-  // Compatibility for fs.exists(0.8) and path.exists(0.6)
-  this.exists = (typeof fs.exists === 'function') ? fs.exists : path.exists;
-
-  // Compatibility for fs.existsSync(0.8) and path.existsSync(0.6)
-  this.existsSync = (typeof fs.existsSync === 'function') ? fs.existsSync : path.existsSync;
-
-  /**
-    @name file#requireLocal
-    @public
-    @function
-    @return {Object} The given module is returned
-    @description Require a local module from the node_modules in the current directory
-    @param {String} module The module to require
-    @param {String} message An option message to throw if the module doesn't exist
-  */
-  this.requireLocal = function (module, message) {
-    // Try to require in the application directory
-    try {
-      dep = require(path.join(process.cwd(), 'node_modules', module));
-    }
-    catch(err) {
-      if (message) {
-        throw new Error(message);
-      }
-      throw new Error('Module "' + module + '" could not be found as a ' +
-          'local module.\n Please make sure there is a node_modules directory in the ' +
-          'current directory,\n and install it by doing "npm install ' +
-          module + '"');
-    }
-    return dep;
-  };
-
-})();
-
-module.exports = fileUtils;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/i18n.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/i18n.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/i18n.js
deleted file mode 100644
index aa00950..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/i18n.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var core = require('./core')
-  , i18n;
-
-i18n = new (function () {
-  var _defaultLocale = 'en-us'
-    , _strings = {};
-
-  this.getText = function (key, opts, locale) {
-    var currentLocale = locale || _defaultLocale
-      , currentLocaleStrings = _strings[currentLocale] || {}
-      , defaultLocaleStrings = _strings[_defaultLocale] || {}
-      , str = currentLocaleStrings[key]
-            || defaultLocaleStrings[key] || "[[" + key + "]]";
-    for (p in opts) {
-      str = str.replace(new RegExp('\\{' + p + '\\}', 'g'), opts[p]);
-    }
-    return str;
-  };
-
-  this.getDefaultLocale = function (locale) {
-    return _defaultLocale;
-  };
-
-  this.setDefaultLocale = function (locale) {
-    _defaultLocale = locale;
-  };
-
-  this.loadLocale = function (locale, strings) {
-    _strings[locale] = _strings[locale] || {};
-    core.mixin(_strings[locale], strings);
-  };
-
-})();
-
-i18n.I18n = function (locale) {
-  this.getText = function (key, opts) {
-    return i18n.getText(key, opts || {}, locale);
-  };
-  this.t = this.getText;
-};
-
-module.exports = i18n;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/index.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/index.js
deleted file mode 100644
index 97e1118..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var utils = {}
-// Core methods
-  , core = require('./core')
-// Namespaces with methods
-  , string = require('./string')
-  , file = require('./file')
-  , async = require('./async')
-  , i18n = require('./i18n')
-  , uri = require('./uri')
-  , array = require('./array')
-  , object = require('./object')
-  , date = require('./date')
-  , request = require('./request')
-  , log = require('./log')
-  , network = require('./network')
-// Third-party -- remove this if possible
-  , inflection = require('./inflection')
-// Constructors
-  , EventBuffer = require('./event_buffer').EventBuffer
-  , XML = require('./xml').XML
-  , SortedCollection = require('./sorted_collection').SortedCollection;
-
-core.mixin(utils, core);
-
-utils.string = string;
-utils.file = file;
-utils.async = async;
-utils.i18n = i18n;
-utils.uri = uri;
-utils.array = array;
-utils.object = object;
-utils.date = date;
-utils.request = request;
-utils.log = log;
-utils.network = network;
-utils.inflection = inflection;
-utils.SortedCollection = SortedCollection;
-utils.EventBuffer = EventBuffer;
-utils.XML = XML;
-
-module.exports = utils;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/inflection.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/inflection.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/inflection.js
deleted file mode 100644
index 2d89839..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/inflection.js
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 2010 George Moschovitis, http://www.gmosx.com
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * A port of the Rails/ActiveSupport Inflector class
- * http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html
-*/
-
-/**
-  @name inflection
-  @namespace inflection
-*/
-
-var inflection = new (function () {
-
-  /**
-    @name inflection#inflections
-    @public
-    @object
-    @description A list of rules and replacements for different inflection types
-  */
-  this.inflections = {
-      plurals: []
-    , singulars: []
-    , uncountables: []
-  };
-
-  var self = this
-    , setInflection
-    , setPlural
-    , setSingular
-    , setUncountable
-    , setIrregular;
-
-  // Add a new inflection rule/replacement to the beginning of the array for the
-  // inflection type
-  setInflection = function (type, rule, replacement) {
-    self.inflections[type].unshift([rule, replacement]);
-  };
-
-  // Add a new plural inflection rule
-  setPlural = function (rule, replacement) {
-    setInflection('plurals', rule, replacement);
-  };
-
-  // Add a new singular inflection rule
-  setSingular = function (rule, replacement) {
-    setInflection('singulars', rule, replacement);
-  };
-
-  // Add a new irregular word to the inflection list, by a given singular and plural inflection
-  setIrregular = function (singular, plural) {
-    if (singular.substr(0, 1).toUpperCase() == plural.substr(0, 1).toUpperCase()) {
-      setPlural(new RegExp("(" + singular.substr(0, 1) + ")" + singular.substr(1) + "$", "i"),
-        '$1' + plural.substr(1));
-      setPlural(new RegExp("(" + plural.substr(0, 1) + ")" + plural.substr(1) + "$", "i"),
-        '$1' + plural.substr(1));
-      setSingular(new RegExp("(" + plural.substr(0, 1) + ")" + plural.substr(1) + "$", "i"),
-        '$1' + singular.substr(1));
-    } else {
-      setPlural(new RegExp(singular.substr(0, 1).toUpperCase() + singular.substr(1) + "$"),
-        plural.substr(0, 1).toUpperCase() + plural.substr(1));
-      setPlural(new RegExp(singular.substr(0, 1).toLowerCase() + singular.substr(1) + "$"),
-        plural.substr(0, 1).toLowerCase() + plural.substr(1));
-      setPlural(new RegExp(plural.substr(0, 1).toUpperCase() + plural.substr(1) + "$"),
-        plural.substr(0, 1).toUpperCase() + plural.substr(1));
-      setPlural(new RegExp(plural.substr(0, 1).toLowerCase() + plural.substr(1) + "$"),
-        plural.substr(0, 1).toLowerCase() + plural.substr(1));
-      setSingular(new RegExp(plural.substr(0, 1).toUpperCase() + plural.substr(1) + "$"),
-        singular.substr(0, 1).toUpperCase() + singular.substr(1));
-      setSingular(new RegExp(plural.substr(0, 1).toLowerCase() + plural.substr(1) + "$"),
-        singular.substr(0, 1).toLowerCase() + singular.substr(1));
-    }
-  };
-
-  // Add a new word to the uncountable inflection list
-  setUncountable = function (word) {
-    self.inflections.uncountables[word] = true;
-  };
-
-  // Create inflections
-  (function () {
-    setPlural(/$/, "s");
-    setPlural(/s$/i, "s");
-    setPlural(/(ax|test)is$/i, "$1es");
-    setPlural(/(octop|vir)us$/i, "$1i");
-    setPlural(/(alias|status)$/i, "$1es");
-    setPlural(/(bu)s$/i, "$1ses");
-    setPlural(/(buffal|tomat)o$/i, "$1oes");
-    setPlural(/([ti])um$/i, "$1a");
-    setPlural(/sis$/i, "ses");
-    setPlural(/(?:([^f])fe|([lr])f)$/i, "$1$2ves");
-    setPlural(/(hive)$/i, "$1s");
-    setPlural(/([^aeiouy]|qu)y$/i, "$1ies");
-    setPlural(/(x|ch|ss|sh)$/i, "$1es");
-    setPlural(/(matr|vert|ind)(?:ix|ex)$/i, "$1ices");
-    setPlural(/([m|l])ouse$/i, "$1ice");
-    setPlural(/^(ox)$/i, "$1en");
-    setPlural(/(quiz)$/i, "$1zes");
-
-    setSingular(/s$/i, "")
-		setSingular(/ss$/i, "ss")
-    setSingular(/(n)ews$/i, "$1ews")
-    setSingular(/([ti])a$/i, "$1um")
-    setSingular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i, "$1$2sis")
-    setSingular(/(^analy)ses$/i, "$1sis")
-    setSingular(/([^f])ves$/i, "$1fe")
-    setSingular(/(hive)s$/i, "$1")
-    setSingular(/(tive)s$/i, "$1")
-    setSingular(/([lr])ves$/i, "$1f")
-    setSingular(/([^aeiouy]|qu)ies$/i, "$1y")
-    setSingular(/(s)eries$/i, "$1eries")
-    setSingular(/(m)ovies$/i, "$1ovie")
-    setSingular(/(x|ch|ss|sh)es$/i, "$1")
-    setSingular(/([m|l])ice$/i, "$1ouse")
-    setSingular(/(bus)es$/i, "$1")
-    setSingular(/(o)es$/i, "$1")
-    setSingular(/(shoe)s$/i, "$1")
-    setSingular(/(cris|ax|test)es$/i, "$1is")
-    setSingular(/(octop|vir)i$/i, "$1us")
-    setSingular(/(alias|status)es$/i, "$1")
-    setSingular(/^(ox)en/i, "$1")
-    setSingular(/(vert|ind)ices$/i, "$1ex")
-    setSingular(/(matr)ices$/i, "$1ix")
-    setSingular(/(quiz)zes$/i, "$1")
-    setSingular(/(database)s$/i, "$1")
-
-    setIrregular("person", "people");
-    setIrregular("man", "men");
-    setIrregular("child", "children");
-    setIrregular("sex", "sexes");
-    setIrregular("move", "moves");
-    setIrregular("cow", "kine");
-
-    setUncountable("equipment");
-    setUncountable("information");
-    setUncountable("rice");
-    setUncountable("money");
-    setUncountable("species");
-    setUncountable("series");
-    setUncountable("fish");
-    setUncountable("sheep");
-    setUncountable("jeans");
-  })();
-
-  /**
-    @name inflection#parse
-    @public
-    @function
-    @return {String} The inflection of the word from the type given
-    @description Parse a word from the given inflection type
-    @param {String} type A type of the inflection to use
-    @param {String} word the word to parse
-  */
-  this.parse = function (type, word) {
-    var lowWord = word.toLowerCase()
-      , inflections = this.inflections[type];
-
-    if (this.inflections.uncountables[lowWord]) {
-      return word;
-    }
-
-    var i = -1;
-    while (++i < inflections.length) {
-      var rule = inflections[i][0]
-        , replacement = inflections[i][1];
-
-      if (rule.test(word)) {
-        return word.replace(rule, replacement)
-      }
-    }
-
-    return word;
-  };
-
-  /**
-    @name inflection#pluralize
-    @public
-    @function
-    @return {String} The plural inflection for the given word
-    @description Create a plural inflection for a word
-    @param {String} word the word to create a plural version for
-  */
-  this.pluralize = function (word) {
-    return this.parse('plurals', word);
-  };
-
-  /**
-    @name inflection#singularize
-    @public
-    @function
-    @return {String} The singular inflection for the given word
-    @description Create a singular inflection for a word
-    @param {String} word the word to create a singular version for
-  */
-  this.singularize = function (word) {
-    return this.parse('singulars', word);
-  };
-
-})();
-
-module.exports = inflection;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/log.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/log.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/log.js
deleted file mode 100644
index d26557b..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/log.js
+++ /dev/null
@@ -1,67 +0,0 @@
-var util = require('util')
-  , log
-  , _logger
-  , _levels
-  , _serialize
-  , _output;
-
-_levels = {
-  'debug': 'log'
-, 'info': 'log'
-, 'notice': 'log'
-, 'warning': 'error'
-, 'error': 'error'
-, 'critical': 'error'
-, 'alert': 'error'
-, 'emergency': 'error'
-};
-
-_serialize = function (obj) {
-  var out;
-  if (typeof obj == 'string') {
-    out = obj;
-  }
-  else {
-    out = util.inspect(obj);
-  }
-  return out;
-};
-
-_output = function (obj, level) {
-  var out = _serialize(obj);
-  if (_logger) {
-    _logger[level](out);
-  }
-  else {
-    console[_levels[level]](out);
-  }
-};
-
-
-log = function (obj) {
-  _output(obj, 'info');
-};
-
-log.registerLogger = function (logger) {
-  // Malkovitch, Malkovitch
-  if (logger === log) {
-    return;
-  }
-  _logger = logger;
-};
-
-(function () {
-  var level;
-  for (var p in _levels) {
-    (function (p) {
-      level = _levels[p];
-      log[p] = function (obj) {
-        _output(obj, p);
-      };
-    })(p);
-  }
-  // Also handle 'access', not an actual level
-  log.access = log.info;
-})();
-
-module.exports = log;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/network.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/network.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/network.js
deleted file mode 100644
index c90324d..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/network.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var network
-	, net = require('net');
-
-/**
-  @name network
-  @namespace network
-*/
-
-network = new (function () {
-	/**
-		@name network#isPortOpen
-		@public
-		@function
-		@description Checks if the given port in the given host is open
-		@param {Number} port number
-		@param {String} host
-		@param {Function} callback Callback function -- should be in the format
-			of function(err, result) {}
-	*/
-	this.isPortOpen = function (port, host, callback) {
-		if (typeof host === 'function' && !callback) {
-			callback = host;
-			host = 'localhost';
-		}
-
-		var isOpen = false
-			, connection
-			, error;
-
-		connection = net.createConnection(port, host, function () {
-			isOpen = true;
-			connection.end();
-		});
-
-		connection.on('error', function (err) {
-			// We ignore 'ECONNREFUSED' as it simply indicates the port isn't open.
-			// Anything else is reported
-			if(err.code !== 'ECONNREFUSED') {
-				error = err;
-			}
-		});
-
-		connection.setTimeout(400, function () {
-			connection.end();
-		});
-
-		connection.on('close', function () {
-			callback && callback(error, isOpen);
-		});
-	};
-
-})();
-
-module.exports = network;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/object.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/object.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/object.js
deleted file mode 100644
index dd92e7d..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/object.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-/**
-  @name object
-  @namespace object
-*/
-
-var object = new (function () {
-
-  /**
-    @name object#merge
-    @public
-    @function
-    @return {Object} Returns the merged object
-    @description Merge merges `otherObject` into `object` and takes care of deep
-                 merging of objects
-    @param {Object} object Object to merge into
-    @param {Object} otherObject Object to read from
-  */
-  this.merge = function (object, otherObject) {
-    var obj = object || {}
-      , otherObj = otherObject || {}
-      , key, value;
-
-    for (key in otherObj) {
-      value = otherObj[key];
-
-      // Check if a value is an Object, if so recursively add it's key/values
-      if (typeof value === 'object' && !(value instanceof Array)) {
-        // Update value of object to the one from otherObj
-        obj[key] = this.merge(obj[key], value);
-      }
-      // Value is anything other than an Object, so just add it
-      else {
-        obj[key] = value;
-      }
-    }
-
-    return obj;
-  };
-
-  /**
-    @name object#reverseMerge
-    @public
-    @function
-    @return {Object} Returns the merged object
-    @description ReverseMerge merges `object` into `defaultObject`
-    @param {Object} object Object to read from
-    @param {Object} defaultObject Object to merge into
-  */
-  this.reverseMerge = function (object, defaultObject) {
-    // Same as `merge` except `defaultObject` is the object being changed
-    // - this is useful if we want to easily deal with default object values
-    return this.merge(defaultObject, object);
-  };
-
-  /**
-    @name object#isEmpty
-    @public
-    @function
-    @return {Boolean} Returns true if empty false otherwise
-    @description isEmpty checks if an Object is empty
-    @param {Object} object Object to check if empty
-  */
-  this.isEmpty = function (object) {
-    // Returns true if a object is empty false if not
-    for (var i in object) { return false; }
-    return true;
-  };
-
-  /**
-    @name object#toArray
-    @public
-    @function
-    @return {Array} Returns an array of objects each including the original key and value
-    @description Converts an object to an array of objects each including the original key/value
-    @param {Object} object Object to convert
-  */
-  this.toArray = function (object) {
-    // Converts an object into an array of objects with the original key, values
-    array = [];
-
-    for (var i in object) {
-      array.push({ key: i, value: object[i] });
-    }
-
-    return array;
-  };
-
-})();
-
-module.exports = object;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/request.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/request.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/request.js
deleted file mode 100644
index 0984db1..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/request.js
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var http = require('http')
-  , https = require('https')
-  , url = require('url')
-  , uri = require('./uri')
-  , log = require('./log')
-  , core = require('./core');
-
-var formatters = {
-  xml: function (data) {
-    return data;
-  }
-, html: function (data) {
-    return data;
-  }
-, txt: function (data) {
-    return data;
-  }
-, json: function (data) {
-    return JSON.parse(data);
-  }
-}
-
-/**
-  @name request
-  @namespace request
-  @public
-  @function
-  @description Sends requests to the given url sending any data if the method is POST or PUT
-  @param {Object} opts The options to use for the request
-    @param {String} [opts.url] The URL to send the request to
-    @param {String} [opts.method=GET] The method to use for the request
-    @param {Object} [opts.headers] Headers to send on requests
-    @param {String} [opts.data] Data to send on POST and PUT requests
-    @param {String} [opts.dataType] The type of data to send
-  @param {Function} callback the function to call after, args are `error, data`
-*/
-var request = function (opts, callback) {
-  var client
-    , options = opts || {}
-    , parsed = url.parse(options.url)
-    , path
-    , requester = parsed.protocol == 'http:' ? http : https
-    , method = (options.method && options.method.toUpperCase()) || 'GET'
-    , headers = core.mixin({}, options.headers || {})
-    , contentLength
-    , port
-    , clientOpts;
-
-  if (parsed.port) {
-    port = parsed.port;
-  }
-  else {
-    port = parsed.protocol == 'http:' ? '80' : '443';
-  }
-
-  path = parsed.pathname;
-  if (parsed.search) {
-    path += parsed.search;
-  }
-
-  if (method == 'POST' || method == 'PUT') {
-    if (options.data) {
-      contentLength = options.data.length;
-    }
-    else {
-      contentLength = 0
-    }
-    headers['Content-Length'] = contentLength;
-  }
-
-  clientOpts = {
-    host: parsed.hostname
-  , port: port
-  , method: method
-  , agent: false
-  , path: path
-  , headers: headers
-  };
-  client = requester.request(clientOpts);
-
-  client.addListener('response', function (resp) {
-    var data = ''
-      , dataType;
-    resp.addListener('data', function (chunk) {
-      data += chunk.toString();
-    });
-    resp.addListener('end', function () {
-      var stat = resp.statusCode
-        , err;
-      // Successful response
-      if ((stat > 199 && stat < 300) || stat == 304) {
-        dataType = options.dataType || uri.getFileExtension(parsed.pathname);
-        if (formatters[dataType]) {
-          try {
-            if (data) {
-              data = formatters[dataType](data);
-            }
-          }
-          catch (e) {
-            callback(e, null);
-          }
-        }
-        callback(null, data);
-      }
-      // Something failed
-      else {
-        err = new Error(data);
-        err.statusCode = resp.statusCode;
-        callback(err, null);
-      }
-
-    });
-  });
-
-  client.addListener('error', function (e) {
-    callback(e, null);
-  });
-
-  if ((method == 'POST' || method == 'PUT') && options.data) {
-    client.write(options.data);
-  }
-
-  client.end();
-};
-
-module.exports = request;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/sorted_collection.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/sorted_collection.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/sorted_collection.js
deleted file mode 100644
index bdeca90..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/sorted_collection.js
+++ /dev/null
@@ -1,558 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-/**
-  @name SortedCollection
-  @namespace SortedCollection
-  @constructor
-*/
-
-var SortedCollection = function (d) {
-  this.count = 0;
-  this.items = {}; // Hash keys and their values
-  this.order = []; // Array for sort order
-  if (d) {
-    this.defaultValue = d;
-  };
-};
-
-SortedCollection.prototype = new (function () {
-  /**
-    @name SortedCollection#addItem
-    @public
-    @function
-    @return {Any} The given val is returned
-    @description Adds a new key/value to the collection
-    @param {String} key The key for the collection item
-    @param {Any} val The value for the collection item
-  */
-  this.addItem = function (key, val) {
-    if (typeof key != 'string') {
-      throw('Hash only allows string keys.');
-    }
-    return this.setByKey(key, val);
-  };
-
-  /**
-    @name SortedCollection#getItem
-    @public
-    @function
-    @return {Any} The value for the given identifier is returned
-    @description Retrieves the value for the given identifier that being a key or index
-    @param {String/Number} p The identifier to look in the collection for, being a key or index
-  */
-  this.getItem = function (p) {
-    if (typeof p == 'string') {
-      return this.getByKey(p);
-    }
-    else if (typeof p == 'number') {
-      return this.getByIndex(p);
-    }
-  };
-
-  /**
-    @name SortedCollection#setItem
-    @public
-    @function
-    @return {Any} The given val is returned
-    @description Sets the item in the collection with the given val, overwriting the existsing item
-      if identifier is an index
-    @param {String/Number} p The identifier set in the collection, being either a key or index
-    @param {Any} val The value for the collection item
-  */
-  this.setItem = function (p, val) {
-    if (typeof p == 'string') {
-      return this.setByKey(p, val);
-    }
-    else if (typeof p == 'number') {
-      return this.setByIndex(p, val);
-    }
-  };
-
-  /**
-    @name SortedCollection#removeItem
-    @public
-    @function
-    @return {Boolean} Returns true if the item has been removed, false otherwise
-    @description Removes the item for the given identifier
-    @param {String/Number} p The identifier to delete the item for, being a key or index
-  */
-  this.removeItem = function (p) {
-    if (typeof p == 'string') {
-      return this.removeByKey(p);
-    }
-    else if (typeof p == 'number') {
-      return this.removeByIndex(p);
-    }
-  };
-
-  /**
-    @name SortedCollection#getByKey
-    @public
-    @function
-    @return {Any} The value for the given key item is returned
-    @description Retrieves the value for the given key
-    @param {String} key The key for the item to lookup
-  */
-  this.getByKey = function (key) {
-    return this.items[key];
-  };
-
-  /**
-    @name SortedCollection#setByKey
-    @public
-    @function
-    @return {Any} The given val is returned
-    @description Sets a item by key assigning the given val
-    @param {String} key The key for the item
-    @param {Any} val The value to set for the item
-  */
-  this.setByKey = function (key, val) {
-    var v = null;
-    if (typeof val == 'undefined') {
-      v = this.defaultValue;
-    }
-    else { v = val; }
-    if (typeof this.items[key] == 'undefined') {
-      this.order[this.count] = key;
-      this.count++;
-    }
-    this.items[key] = v;
-    return this.items[key];
-  };
-
-  /**
-    @name SortedCollection#removeByKey
-    @public
-    @function
-    @return {Boolean} If the item was removed true is returned, false otherwise
-    @description Removes a collection item by key
-    @param {String} key The key for the item to remove
-  */
-  this.removeByKey = function (key) {
-    if (typeof this.items[key] != 'undefined') {
-      var pos = null;
-      delete this.items[key]; // Remove the value
-      // Find the key in the order list
-      for (var i = 0; i < this.order.length; i++) {
-        if (this.order[i] == key) {
-          pos = i;
-        }
-      }
-      this.order.splice(pos, 1); // Remove the key
-      this.count--; // Decrement the length
-      return true;
-    }
-    else {
-      return false;
-    }
-  };
-
-  /**
-    @name SortedCollection#getByIndex
-    @public
-    @function
-    @return {Any} The value for the given index item is returned
-    @description Retrieves the value for the given index
-    @param {Number} ind The index to lookup for the item
-  */
-  this.getByIndex = function (ind) {
-    return this.items[this.order[ind]];
-  };
-
-  /**
-    @name SortedCollection#setByIndex
-    @public
-    @function
-    @return {Any} The given val is returned
-    @description Sets a item by index assigning the given val
-    @param {Number} ind The index for the item
-    @param {Any} val The value to set for the item
-  */
-  this.setByIndex = function (ind, val) {
-    if (ind < 0 || ind >= this.count) {
-      throw('Index out of bounds. Hash length is ' + this.count);
-    }
-    this.items[this.order[ind]] = val;
-    return this.items[this.order[ind]];
-  };
-
-  /**
-    @name SortedCollection#removeByIndex
-    @public
-    @function
-    @return {Boolean} If the item was removed true is returned, false otherwise
-    @description Removes a collection item by index
-    @param {Number} ind The index for the item to remove
-  */
-  this.removeByIndex = function (ind) {
-    var ret = this.items[this.order[ind]];
-    if (typeof ret != 'undefined') {
-      delete this.items[this.order[ind]]
-      this.order.splice(ind, 1);
-      this.count--;
-      return true;
-    }
-    else {
-      return false;
-    }
-  };
-
-  /**
-    @name SortedCollection#hasKey
-    @public
-    @function
-    @return {Boolean} Returns true if the item exists, false otherwise
-    @description Checks if a key item exists in the collection
-    @param {String} key The key to look for in the collection
-  */
-  this.hasKey = function (key) {
-    return typeof this.items[key] != 'undefined';
-  };
-
-  /**
-    @name SortedCollection#hasValue
-    @public
-    @function
-    @return {Boolean} Returns true if a key with the given value exists, false otherwise
-    @description Checks if a key item in the collection has a given val
-    @param {Any} val The value to check for in the collection
-  */
-  this.hasValue = function (val) {
-    for (var i = 0; i < this.order.length; i++) {
-      if (this.items[this.order[i]] == val) {
-        return true;
-      }
-    }
-    return false;
-  };
-
-  /**
-    @name SortedCollection#allKeys
-    @public
-    @function
-    @return {String} Returns all the keys in a string
-    @description Joins all the keys into a string
-    @param {String} str The string to use between each key
-  */
-  this.allKeys = function (str) {
-    return this.order.join(str);
-  };
-
-  /**
-    @name SortedCollection#replaceKey
-    @public
-    @function
-    @description Joins all the keys into a string
-    @param {String} oldKey The key item to change
-    @param {String} newKey The key item to change the name to
-  */
-  this.replaceKey = function (oldKey, newKey) {
-    // If item for newKey exists, nuke it
-    if (this.hasKey(newKey)) {
-      this.removeItem(newKey);
-    }
-    this.items[newKey] = this.items[oldKey];
-    delete this.items[oldKey];
-    for (var i = 0; i < this.order.length; i++) {
-      if (this.order[i] == oldKey) {
-        this.order[i] = newKey;
-      }
-    }
-  };
-
-  /**
-    @name SortedCollection#insertAtIndex
-    @public
-    @function
-    @return {Boolean} Returns true if the item was set at the given index
-    @description Inserts a key/value at a specific index in the collection
-    @param {Number} ind The index to set the item at
-    @param {String} key The key to use at the item index
-    @param {Any} val The value to set for the item
-  */
-  this.insertAtIndex = function (ind, key, val) {
-    this.order.splice(ind, 0, key);
-    this.items[key] = val;
-    this.count++;
-    return true;
-  };
-
-  /**
-    @name SortedCollection#insertAfterKey
-    @public
-    @function
-    @return {Boolean} Returns true if the item was set for the given key
-    @description Inserts a key/value item after the given reference key in the collection
-    @param {String} refKey The key to insert the new item after
-    @param {String} key The key for the new item
-    @param {Any} val The value to set for the item
-  */
-  this.insertAfterKey = function (refKey, key, val) {
-    var pos = this.getPosition(refKey);
-    return this.insertAtIndex(pos, key, val);
-  };
-
-  /**
-    @name SortedCollection#getPosition
-    @public
-    @function
-    @return {Number} Returns the index for the item of the given key
-    @description Retrieves the index of the key item
-    @param {String} key The key to get the index for
-  */
-  this.getPosition = function (key) {
-    var order = this.order;
-    if (typeof order.indexOf == 'function') {
-      return order.indexOf(key);
-    }
-    else {
-      for (var i = 0; i < order.length; i++) {
-        if (order[i] == key) { return i;}
-      }
-    }
-  };
-
-  /**
-    @name SortedCollection#each
-    @public
-    @function
-    @return {Boolean}
-    @description Loops through the collection and calls the given function
-    @param {Function} func The function to call for each collection item, the arguments
-      are the key and value for the current item
-    @param {Object} opts The options to use
-      @param {Boolean} [opts.keyOnly] Only give the function the key
-      @param {Boolean} [opts.valueOnly] Only give the function the value
-  */
-  this.each = function (func, opts) {
-    var options = opts || {}
-      , order = this.order;
-    for (var i = 0, ii = order.length; i < ii; i++) {
-      var key = order[i];
-      var val = this.items[key];
-      if (options.keyOnly) {
-        func(key);
-      }
-      else if (options.valueOnly) {
-        func(val);
-      }
-      else {
-        func(val, key);
-      }
-    }
-    return true;
-  };
-
-  /**
-    @name SortedCollection#eachKey
-    @public
-    @function
-    @return {Boolean}
-    @description Loops through the collection and calls the given function
-    @param {Function} func The function to call for each collection item, only giving the
-      key to the function
-  */
-  this.eachKey = function (func) {
-    return this.each(func, { keyOnly: true });
-  };
-
-  /**
-    @name SortedCollection#eachValue
-    @public
-    @function
-    @return {Boolean}
-    @description Loops through the collection and calls the given function
-    @param {Function} func The function to call for each collection item, only giving the
-      value to the function
-  */
-  this.eachValue = function (func) {
-    return this.each(func, { valueOnly: true });
-  };
-
-  /**
-    @name SortedCollection#clone
-    @public
-    @function
-    @return {Object} Returns a new SortedCollection with the data of the current one
-    @description Creates a cloned version of the current collection and returns it
-  */
-  this.clone = function () {
-    var coll = new SortedCollection()
-      , key
-      , val;
-    for (var i = 0; i < this.order.length; i++) {
-      key = this.order[i];
-      val = this.items[key];
-      coll.setItem(key, val);
-    }
-    return coll;
-  };
-
-  /**
-    @name SortedCollection#concat
-    @public
-    @function
-    @description Join a given collection with the current one
-    @param {Object} hNew A SortedCollection to join from
-  */
-  this.concat = function (hNew) {
-    for (var i = 0; i < hNew.order.length; i++) {
-      var key = hNew.order[i];
-      var val = hNew.items[key];
-      this.setItem(key, val);
-    }
-  };
-
-  /**
-    @name SortedCollection#push
-    @public
-    @function
-    @return {Number} Returns the count of items
-    @description Appends a new item to the collection
-    @param {String} key The key to use for the item
-    @param {Any} val The value to use for the item
-  */
-  this.push = function (key, val) {
-    this.insertAtIndex(this.count, key, val);
-    return this.count;
-  };
-
-  /**
-    @name SortedCollection#pop
-    @public
-    @function
-    @return {Any} Returns the value for the last item in the collection
-    @description Pops off the last item in the collection and returns it's value
-  */
-  this.pop = function () {
-    var pos = this.count-1;
-    var ret = this.items[this.order[pos]];
-    if (typeof ret != 'undefined') {
-      this.removeByIndex(pos);
-      return ret;
-    }
-    else {
-      return;
-    }
-  };
-
-  /**
-    @name SortedCollection#unshift
-    @public
-    @function
-    @return {Number} Returns the count of items
-    @description Prepends a new item to the beginning of the collection
-    @param {String} key The key to use for the item
-    @param {Any} val The value to use for the item
-  */
-  this.unshift = function (key, val) {
-    this.insertAtIndex(0, key, val);
-    return this.count;
-  };
-
-  /**
-    @name SortedCollection#shift
-    @public
-    @function
-    @return {Number} Returns the removed items value
-    @description Removes the first item in the list and returns it's value
-  */
-  this.shift = function () {
-    var pos = 0;
-    var ret = this.items[this.order[pos]];
-    if (typeof ret != 'undefined') {
-      this.removeByIndex(pos);
-      return ret;
-    }
-    else {
-      return;
-    }
-  };
-
-  /**
-    @name SortedCollection#splice
-    @public
-    @function
-    @description Removes items from index to the given max and then adds the given
-      collections items
-    @param {Number} index The index to start at when removing items
-    @param {Number} numToRemove The number of items to remove before adding the new items
-    @param {Object} hash the collection of items to add
-  */
-  this.splice = function (index, numToRemove, hash) {
-    var _this = this;
-    // Removal
-    if (numToRemove > 0) {
-      // Items
-      var limit = index + numToRemove;
-      for (var i = index; i < limit; i++) {
-        delete this.items[this.order[i]];
-      }
-      // Order
-      this.order.splice(index, numToRemove);
-    }
-    // Adding
-    if (hash) {
-      // Items
-      for (var i in hash.items) {
-        this.items[i] = hash.items[i];
-      }
-      // Order
-      var args = hash.order;
-      args.unshift(0);
-      args.unshift(index);
-      this.order.splice.apply(this.order, args);
-    }
-    this.count = this.order.length;
-  };
-
-  this.sort = function (c) {
-    var arr = [];
-    // Assumes vals are comparable scalars
-    var comp = function (a, b) {
-      return c(a.val, b.val);
-    }
-    for (var i = 0; i < this.order.length; i++) {
-      var key = this.order[i];
-      arr[i] = { key: key, val: this.items[key] };
-    }
-    arr.sort(comp);
-    this.order = [];
-    for (var i = 0; i < arr.length; i++) {
-      this.order.push(arr[i].key);
-    }
-  };
-
-  this.sortByKey = function (comp) {
-    this.order.sort(comp);
-  };
-
-  /**
-    @name SortedCollection#reverse
-    @public
-    @function
-    @description Reverse the collection item list
-  */
-  this.reverse = function () {
-    this.order.reverse();
-  };
-
-})();
-
-module.exports.SortedCollection = SortedCollection;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/string.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/string.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/string.js
deleted file mode 100644
index 9c35a08..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/string.js
+++ /dev/null
@@ -1,791 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var core = require('./core')
-  , inflection = require('./inflection')
-  , string;
-
-
-/**
-  @name string
-  @namespace string
-*/
-
-string = new (function () {
-
-  // Regexes for trimming, and character maps for escaping
-  var _LTR = /^\s+/
-    , _RTR = /\s+$/
-    , _TR = /^\s+|\s+$/g
-    , _NL = /\n|\r|\r\n/g
-    , _CHARS = {
-          '&': '&amp;'
-        , '<': '&lt;'
-        , '>': '&gt;'
-        , '"': '&quot;'
-        , '\'': '&#39;'
-      }
-    , _UUID_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
-    , _buildEscape
-    , _buildEscapeTest;
-
-  // Builds the escape/unescape methods using a
-  // map of characters
-  _buildEscape = function (direction) {
-    return function (str) {
-      var string = str;
-
-      // If string is NaN, null or undefined then provide an empty default
-      if((typeof string === 'undefined') ||
-          string === null ||
-          (!string && isNaN(string))) {
-        string = '';
-      }
-      string = string.toString();
-
-      var from, to, p;
-      for (p in _CHARS) {
-        from = direction == 'to' ? p : _CHARS[p];
-        to = direction == 'to' ? _CHARS[p] : p;
-
-        string = string.replace(new RegExp(from, 'gm'), to);
-      }
-
-      return string;
-    }
-  };
-
-  // Builds a method that tests for any escapable
-  // characters, useful for avoiding double-scaping if
-  // you're not sure if a string has already been escaped
-  _buildEscapeTest = function (direction) {
-    return function (string) {
-      var pat = ''
-        , p;
-
-      for (p in _CHARS) {
-        pat += direction == 'to' ? p : _CHARS[p];
-        pat += '|';
-      }
-
-      pat = pat.substr(0, pat.length - 1);
-      pat = new RegExp(pat, "gm");
-      return pat.test(string)
-    }
-  };
-
-  // Escape special XMl chars
-  this.escapeXML = _buildEscape('to');
-
-  // Unescape XML chars to literal representation
-  this.unescapeXML = _buildEscape('from');
-
-  // Test if a string includes special chars
-  // that need escaping
-  this.needsEscape = _buildEscapeTest('to');
-
-  // Test if a string includes escaped chars
-  // that need unescaping
-  this.needsUnescape = _buildEscapeTest('from');
-
-  /**
-    @name string#escapeRegExpChars
-    @public
-    @function
-    @return {String} A string of escaped characters
-    @description Escapes regex control-characters in strings
-                 used to build regexes dynamically
-    @param {String} string The string of chars to escape
-  */
-  this.escapeRegExpChars = (function () {
-    var specials = [ '^', '$', '/', '.', '*', '+', '?', '|', '(', ')',
-        '[', ']', '{', '}', '\\' ];
-    sRE = new RegExp('(\\' + specials.join('|\\') + ')', 'g');
-    return function (string) {
-      var str = string || '';
-      str = String(str);
-      return str.replace(sRE, '\\$1');
-    };
-  }).call(this);
-
-  /**
-    @name string#toArray
-    @public
-    @function
-    @return {Array} Returns an array of characters
-    @description Converts a string to an array
-    @param {String} string The string to convert
-  */
-  this.toArray = function (string) {
-    var str = string || ''
-      , arr = []
-      , i = -1;
-    str = String(str);
-
-    while (++i < str.length) {
-      arr.push(str.substr(i, 1));
-    }
-
-    return arr;
-  };
-
-  /**
-    @name string#reverse
-    @public
-    @function
-    @return {String} Returns the `string` reversed
-    @description Reverses a string
-    @param {String} string The string to reverse
-  */
-  this.reverse = function (string) {
-    var str = string || '';
-    str = String(str);
-    return this.toArray(str).reverse().join('');
-  };
-
-  /**
-    @name string#ltrim
-    @public
-    @function
-    @return {String} Returns the trimmed string
-    @description Ltrim trims `char` from the left of a `string` and returns it
-                 if no `char` is given it will trim spaces
-    @param {String} string The string to trim
-    @param {String} char The character to trim
-  */
-  this.ltrim = function (string, char) {
-    var str = string || ''
-      , pat = char ? new RegExp('^' + char + '+') : _LTR;
-    str = String(str);
-
-    return str.replace(pat, '');
-  };
-
-  /**
-    @name string#rtrim
-    @public
-    @function
-    @return {String} Returns the trimmed string
-    @description Rtrim trims `char` from the right of a `string` and returns it
-                 if no `char` is given it will trim spaces
-    @param {String} string The string to trim
-    @param {String} char The character to trim
-  */
-  this.rtrim = function (string, char) {
-    var str = string || ''
-      , pat = char ? new RegExp(char + '+$') : _RTR;
-    str = String(str);
-
-    return str.replace(pat, '');
-  };
-
-  // Alias
-  this.chomp = this.rtrim;
-
-  /**
-    @name string#trim
-    @public
-    @function
-    @return {String} Returns the trimmed string
-    @description Trim trims `char` from the left and right of a `string` and returns it
-                 if no `char` is given it will trim spaces
-    @param {String} string The string to trim
-    @param {String} char The character to trim
-  */
-  this.trim = function (string, char) {
-    var str = string || ''
-      , pat = char ? new RegExp('^' + char + '+|' + char + '+$', 'g') : _TR;
-    str = String(str);
-
-    return str.replace(pat, '');
-  };
-
-  /**
-    @name string#chop
-    @public
-    @function
-    @description Returns a new String with the last character removed. If the
-                 string ends with \r\n, both characters are removed. Applying chop to an
-                 empty string returns an empty string.
-    @param {String} string to return with the last character removed.
-  */
-  this.chop = function (string) {
-    var index
-      , str = string || '';
-    str = String(str);
-
-    if (str.length) {
-      // Special-case for \r\n
-      index = str.indexOf('\r\n');
-      if (index == str.length - 2) {
-        return str.substring(0, index);
-      }
-      return str.substring(0, str.length - 1);
-    }
-    else {
-      return '';
-    }
-  };
-
-  /**
-    @name string#lpad
-    @public
-    @function
-    @return {String} Returns the padded string
-    @description Lpad adds `char` to the left of `string` until the length
-                 of `string` is more than `width`
-    @param {String} string The string to pad
-    @param {String} char The character to pad with
-    @param {Number} width the width to pad to
-  */
-  this.lpad = function (string, char, width) {
-    var str = string || ''
-      , width;
-    str = String(str);
-
-    // Should width be string.length + 1? or the same to be safe
-    width = parseInt(width, 10) || str.length;
-    char = char || ' ';
-
-    while (str.length < width) {
-      str = char + str;
-    }
-    return str;
-  };
-
-  /**
-    @name string#rpad
-    @public
-    @function
-    @return {String} Returns the padded string
-    @description Rpad adds `char` to the right of `string` until the length
-                 of `string` is more than `width`
-    @param {String} string The string to pad
-    @param {String} char The character to pad with
-    @param {Number} width the width to pad to
-  */
-  this.rpad = function (string, char, width) {
-    var str = string || ''
-      , width;
-    str = String(str);
-
-    // Should width be string.length + 1? or the same to be safe
-    width = parseInt(width, 10) || str.length;
-    char = char || ' ';
-
-    while (str.length < width) {
-      str += char;
-    }
-    return str;
-  };
-
-  /**
-    @name string#pad
-    @public
-    @function
-    @return {String} Returns the padded string
-    @description Pad adds `char` to the left and right of `string` until the length
-                 of `string` is more than `width`
-    @param {String} string The string to pad
-    @param {String} char The character to pad with
-    @param {Number} width the width to pad to
-  */
-  this.pad = function (string, char, width) {
-    var str = string || ''
-      , width;
-    str = String(str);
-
-    // Should width be string.length + 1? or the same to be safe
-    width = parseInt(width, 10) || str.length;
-    char = char || ' ';
-
-    while (str.length < width) {
-      str = char + str + char;
-    }
-    return str;
-  };
-
-  /**
-    @name string#truncate
-    @public
-    @function
-    @return {String} Returns the truncated string
-    @description Truncates a given `string` after a specified `length` if `string` is longer than
-                 `length`. The last characters will be replaced with an `omission` for a total length
-                 not exceeding `length`. If `callback` is given it will fire if `string` is truncated.
-    @param {String} string The string to truncate
-    @param {Integer/Object} options Options for truncation, If options is an Integer it will be length
-      @param {Integer} [options.length=string.length] Length the output string will be
-      @param {Integer} [options.len] Alias for `length`
-      @param {String} [options.omission='...'] Replace last characters with an omission
-      @param {String} [options.ellipsis='...'] Alias for `omission`
-      @param {String/RegExp} [options.seperator] Break the truncated test at the nearest `seperator`
-    @param {Function} callback Callback is called only if a truncation is done
-  */
-  this.truncate = function (string, options, callback) {
-    var str = string || ''
-      , stringLen
-      , opts
-      , stringLenWithOmission
-      , last
-      , ignoreCase
-      , multiLine
-      , stringToWorkWith
-      , lastIndexOf
-      , nextStop
-      , result
-      , returnString;
-
-    str = String(str);
-    stringLen = str.length
-
-    // If `options` is a number, assume it's the length and
-    // create a options object with length
-    if (typeof options === 'number') {
-      opts = {
-        length: options
-      };
-    }
-    else {
-      opts = options || {};
-    }
-
-    // Set `opts` defaults
-    opts.length = opts.length || stringLen;
-    opts.omission = opts.omission || opts.ellipsis || '...';
-
-    stringLenWithOmission = opts.length - opts.omission.length;
-
-    // Set the index to stop at for `string`
-    if (opts.seperator) {
-      if (opts.seperator instanceof RegExp) {
-        // If `seperator` is a regex
-        if (opts.seperator.global) {
-          opts.seperator = opts.seperator;
-        } else {
-          ignoreCase = opts.seperator.ignoreCase ? 'i' : ''
-          multiLine = opts.seperator.multiLine ? 'm' : '';
-          opts.seperator = new RegExp(opts.seperator.source,
-              'g' + ignoreCase + multiLine);
-        }
-        stringToWorkWith = str.substring(0, stringLenWithOmission + 1)
-        lastIndexOf = -1
-        nextStop = 0
-
-        while ((result = opts.seperator.exec(stringToWorkWith))) {
-          lastIndexOf = result.index;
-          opts.seperator.lastIndex = ++nextStop;
-        }
-        last = lastIndexOf;
-      }
-      else {
-        // Seperator is a String
-        last = str.lastIndexOf(opts.seperator, stringLenWithOmission);
-      }
-
-      // If the above couldn't be found, they'll default to -1 so,
-      // we need to just set it as `stringLenWithOmission`
-      if (last === -1) {
-        last = stringLenWithOmission;
-      }
-    }
-    else {
-      last = stringLenWithOmission;
-    }
-
-    if (stringLen < opts.length) {
-      return str;
-    }
-    else {
-      returnString = str.substring(0, last) + opts.omission;
-      returnString += callback && typeof callback === 'function' ? callback() : '';
-      return returnString;
-    }
-  };
-
-  /**
-    @name string#truncateHTML
-    @public
-    @function
-    @return {String} Returns the HTML safe truncated string
-    @description Truncates a given `string` inside HTML tags after a specified `length` if string`
-                 is longer than `length`. The last characters will be replaced with an `omission`
-                 for a total length not exceeding `length`. If `callback` is given it will fire if
-                 `string` is truncated. If `once` is true only the first string in the first HTML
-                 tags will be truncated leaving the others as they were
-    @param {String} string The string to truncate
-    @param {Integer/Object} options Options for truncation, If options is an Integer it will be length
-                            all Object options are the same as `truncate`
-      @param {Boolean} [options.once=false] If true, it will only be truncated once, otherwise the
-                                            truncation will loop through all text inside HTML tags
-    @param {Function} callback Callback is called only if a truncation is done
-  */
-  this.truncateHTML = function (string, options, callback) {
-    var str = string || ''
-      , returnString = ''
-      , opts = options;
-
-    str = String(str);
-
-    // If `options` is a number assume it's the length and create a options object with length
-    if (typeof opts === 'number') {
-      var num = opts;
-
-      opts = {};
-      opts.length = num;
-    } else opts = opts || {};
-
-    // Set `default` options for HTML specifics
-    opts.once = opts.once || false;
-
-    var pat = /(<[^>]*>)/ // Patter for matching HTML tags
-      , arr = [] // Holds the HTML tags and content seperately
-      , truncated = false
-      , result = pat.exec(str)
-      , item
-      , firstPos
-      , lastPos
-      , i;
-
-    // Gather the HTML tags and content into the array
-    while (result) {
-      firstPos = result.index;
-      lastPos = pat.lastIndex;
-
-      if (firstPos !== 0) {
-        // Should be content not HTML tags
-        arr.push(str.substring(0, firstPos));
-        // Slice content from string
-        str = str.slice(firstPos);
-      }
-
-      arr.push(result[0]); // Push HTML tags
-      str = str.slice(result[0].length);
-
-      // Re-run the pattern on the new string
-      result = pat.exec(str);
-    }
-    if (str !== '') {
-      arr.push(str);
-    }
-
-    // Loop through array items appending the tags to the string,
-    // - and truncating the text then appending it to content
-    i = -1;
-    while (++i < arr.length) {
-      item = arr[i];
-      switch (true) {
-        // Closing tag
-        case item.indexOf('</') == 0:
-          returnString += item;
-          openTag = null;
-          break;
-        // Opening tag
-        case item.indexOf('<') == 0:
-          returnString += item;
-          openTag = item;
-          break;
-        // Normal text
-        default:
-          if (opts.once && truncated) {
-            returnString += item;
-          } else {
-            returnString += this.truncate(item, opts, callback);
-            truncated = true;
-          }
-          break;
-      }
-    }
-
-    return returnString;
-  };
-
-  /**
-    @name string#nl2br
-    @public
-    @function
-    @return {String} The string with converted newlines chars to br tags
-    @description Nl2br returns a string where all newline chars are turned
-                 into line break HTML tags
-    @param {String} string The string to convert
-  */
-  this.nl2br = function (string) {
-    var str = string || '';
-    str = String(str);
-
-    return str.replace(_NL,'<br />');
-  };
-
-  /**
-    @name string#snakeize
-    @public
-    @function
-    @return {String} The string in a snake_case version
-    @description Snakeize converts camelCase and CamelCase strings to snake_case strings
-    @param {String} string The string to convert to snake_case
-    @param {String} separ='_' The seperator to use
-  */
-  this.snakeize = (function () {
-    // Only create regexes once on initial load
-    var repl = /([A-Z]+)/g
-      , lead = /^_/g;
-    return function (string, separ) {
-      var str = string || ''
-        , sep = separ || '_'
-        , leading = separ ? new RegExp('^' + sep, 'g') : lead;
-      str = String(str);
-      return str.replace(repl, sep + '$1').toLowerCase().
-        replace(leading, '');
-    };
-  }).call(this);
-
-  // Aliases
-  /**
-    @name string#underscorize
-    @public
-    @function
-    @return {String} The string in a underscorized version
-    @description Underscorize returns the given `string` converting camelCase and snakeCase to underscores
-    @param {String} string The string to underscorize
-  */
-  this.underscorize = this.snakeize;
-  this.underscoreize = this.snakeize;
-  this.decamelize = this.snakeize;
-
-  /**
-    @name string#camelize
-    @public
-    @function
-    @return {String} The string in a camelCase version
-    @description Camelize takes a string and optional options and
-                 returns a camelCase version of the given `string`
-    @param {String} string The string to convert to camelCase
-    @param {Object} options
-      @param {Boolean} [options.initialCap] If initialCap is true the returned
-                                            string will have a capitalized first letter
-      @param {Boolean} [options.leadingUnderscore] If leadingUnderscore os true then if
-                                                   an underscore exists at the beggining
-                                                   of the string, it will stay there.
-                                                   Otherwise it'll be removed.
-  */
-  this.camelize = (function () {
-    // Only create regex once on initial load
-    var repl = /[-_](\w)/g;
-    return function (string, options) {
-      var str = string || ''
-        , ret
-        , config = {
-            initialCap: false
-          , leadingUnderscore: false
-          }
-        , opts = options || {};
-
-      str = String(str);
-
-      // Backward-compat
-      if (typeof opts == 'boolean') {
-        config = {
-          initialCap: true
-        };
-      }
-      else {
-        core.mixin(config, opts);
-      }
-
-      ret = str.replace(repl, function (m, m1) {
-        return m1.toUpperCase();
-      });
-
-      if (config.leadingUnderscore & str.indexOf('_') === 0) {
-        ret = '_' + this.decapitalize(ret);
-      }
-      // If initialCap is true capitalize it
-      ret = config.initialCap ? this.capitalize(ret) : this.decapitalize(ret);
-
-      return ret;
-    };
-  }).call(this);
-
-  /**
-    @name string#decapitalize
-    @public
-    @function
-    @return {String} The string with the first letter decapitalized
-    @description Decapitalize returns the given string with the first letter uncapitalized.
-    @param {String} string The string to decapitalize
-  */
-  this.decapitalize = function (string) {
-    var str = string || '';
-    str = String(str);
-
-    return str.substr(0, 1).toLowerCase() + str.substr(1);
-  };
-
-  /**
-    @name string#capitalize
-    @public
-    @function
-    @return {String} The string with the first letter capitalized
-    @description capitalize returns the given string with the first letter capitalized.
-    @param {String} string The string to capitalize
-  */
-  this.capitalize = function (string) {
-    var str = string || '';
-    str = String(str);
-
-    return str.substr(0, 1).toUpperCase() + str.substr(1);
-  };
-
-  /**
-    @name string#dasherize
-    @public
-    @function
-    @return {String} The string in a dashed version
-    @description Dasherize returns the given `string` converting camelCase and snakeCase
-                 to dashes or replace them with the `replace` character.
-    @param {String} string The string to dasherize
-    @param {String} replace='-' The character to replace with
-  */
-  this.dasherize = function (string, replace) {
-    var repl = replace || '-'
-    return this.snakeize(string, repl);
-  };
-
-  /**
-    @name string#include
-    @public
-    @function
-    @return {Boolean} Returns true if the string is found in the string to search
-    @description Searches for a particular string in another string
-    @param {String} searchIn The string to search for the other string in
-    @param {String} searchFor The string to search for
-  */
-  this.include = function (searchIn, searchFor) {
-    var str = searchFor;
-    if (!str && typeof string != 'string') {
-      return false;
-    }
-    str = String(str);
-    return (searchIn.indexOf(str) > -1);
-  };
-
-  /*
-   * getInflections(name<String>, initialCap<String>)
-   *
-   * Inflection returns an object that contains different inflections
-   * created from the given `name`
-  */
-
-  /**
-    @name string#getInflections
-    @public
-    @function
-    @return {Object} A Object containing multiple different inflects for the given `name`
-    @description Inflection returns an object that contains different inflections
-                 created from the given `name`
-    @param {String} name The string to create inflections from
-  */
-  this.getInflections = function (name) {
-    if (!name) {
-      return;
-    }
-
-    var self = this
-        // Use plural version to fix possible mistakes(e,g,. thingie instead of thingy)
-      , normalizedName = this.snakeize(inflection.pluralize(name))
-      , nameSingular = inflection.singularize(normalizedName)
-      , namePlural = inflection.pluralize(normalizedName);
-
-    return {
-      // For filepaths or URLs
-      filename: {
-        // neil_peart
-        singular: nameSingular
-        // neil_pearts
-      , plural: namePlural
-      }
-      // Constructor names
-    , constructor: {
-        // NeilPeart
-        singular: self.camelize(nameSingular, {initialCap: true})
-        // NeilPearts
-      , plural: self.camelize(namePlural, {initialCap: true})
-      }
-    , property: {
-        // neilPeart
-        singular: self.camelize(nameSingular)
-        // neilPearts
-      , plural: self.camelize(namePlural)
-      }
-    };
-  };
-
-  /**
-    @name string#getInflection
-    @public
-    @function
-    @return {Object} A Object containing multiple different inflects for the given `name`
-    @description Inflection returns an object that contains different inflections
-                 created from the given `name`
-    @param {String} name The string to create inflections from
-  */
-  this.getInflection = function (name, key, pluralization) {
-    var infl = this.getInflections(name);
-    return infl[key][pluralization];
-  };
-
-  // From Math.uuid.js, https://github.com/broofa/node-uuid
-  // Robert Kieffer (robert@broofa.com), MIT license
-  this.uuid = function (length, radix) {
-    var chars = _UUID_CHARS
-      , uuid = []
-      , r
-      , i;
-
-    radix = radix || chars.length;
-
-    if (length) {
-      // Compact form
-      i = -1;
-      while (++i < length) {
-        uuid[i] = chars[0 | Math.random()*radix];
-      }
-    } else {
-      // rfc4122, version 4 form
-
-      // rfc4122 requires these characters
-      uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
-      uuid[14] = '4';
-
-      // Fill in random data.  At i==19 set the high bits of clock sequence as
-      // per rfc4122, sec. 4.1.5
-      i = -1;
-      while (++i < 36) {
-        if (!uuid[i]) {
-          r = 0 | Math.random()*16;
-          uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
-        }
-      }
-    }
-
-    return uuid.join('');
-  };
-
-})();
-
-module.exports = string;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/uri.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/uri.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/uri.js
deleted file mode 100644
index 92f086f..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/uri.js
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var uri
-  , string = require('./string');
-
-/**
-  @name uri
-  @namespace uri
-*/
-
-uri = new (function () {
-  var _isArray = function (obj) {
-    return obj &&
-      typeof obj === 'object' &&
-      typeof obj.length === 'number' &&
-      typeof obj.splice === 'function' &&
-      !(obj.propertyIsEnumerable('length'));
-  };
-
-  /**
-    @name uri#getFileExtension
-    @public
-    @function
-    @return {String} Returns the file extension for a given path
-    @description Gets the file extension for a path and returns it
-    @param {String} path The path to get the extension for
-  */
-  this.getFileExtension = function (path) {
-    var match;
-    if (path) {
-      match = /.+\.(\w{2,4}$)/.exec(path);
-    }
-    return (match && match[1]) || '';
-  };
-
-  /**
-    @name uri#paramify
-    @public
-    @function
-    @return {String} Returns a querystring contains the given values
-    @description Convert a JS Object to a querystring (key=val&key=val). Values in arrays
-      will be added as multiple parameters
-    @param {Object} obj An Object containing only scalars and arrays
-    @param {Object} o The options to use for formatting
-      @param {Boolean} [o.consolidate=false] take values from elements that can return
-        multiple values (multi-select, checkbox groups) and collapse into a single,
-        comman-delimited value.
-      @param {Boolean} [o.includeEmpty=false] include keys in the string for all elements, even
-        they have no value set (e.g., even if elemB has no value: elemA=foo&elemB=&elemC=bar).
-        Note that some false-y values are always valid even without this option, [0, ''].
-        This option extends coverage to [null, undefined, NaN]
-      @param {Boolean} [o.snakeize=false] change param names from camelCase to snake_case.
-      @param {Boolean} [o.escapeVals=false] escape the values for XML entities.
-  */
-  this.paramify = function (obj, o) {
-    var opts = o || {},
-        str = '',
-        key,
-        val,
-        isValid,
-        itemArray,
-        arr = [],
-        arrVal;
-
-    for (var p in obj) {
-      if (Object.prototype.hasOwnProperty.call(obj, p)) {
-        val = obj[p];
-
-        // This keeps valid falsy values like false and 0
-        // It's duplicated in the array block below. Could
-        // put it in a function but don't want the overhead
-        isValid = !( val === null || val === undefined ||
-                    (typeof val === 'number' && isNaN(val)) );
-
-        key = opts.snakeize ? string.snakeize(p) : p;
-        if (isValid) {
-          // Multiple vals -- array
-          if (_isArray(val) && val.length) {
-            itemArray = [];
-            for (var i = 0, ii = val.length; i < ii; i++) {
-              arrVal = val[i];
-              // This keeps valid falsy values like false and 0
-              isValid = !( arrVal === null || arrVal === undefined ||
-                           (typeof arrVal === 'number' && isNaN(arrVal)) );
-
-              itemArray[i] = isValid ? encodeURIComponent(arrVal) : '';
-              if (opts.escapeVals) {
-                itemArray[i] = string.escapeXML(itemArray[i]);
-              }
-            }
-            // Consolidation mode -- single value joined on comma
-            if (opts.consolidate) {
-              arr.push(key + '=' + itemArray.join(','));
-            }
-            // Normal mode -- multiple, same-named params with each val
-            else {
-              // {foo: [1, 2, 3]} => 'foo=1&foo=2&foo=3'
-              // Add into results array, as this just ends up getting
-              // joined on ampersand at the end anyhow
-              arr.push(key + '=' + itemArray.join('&' + key + '='));
-            }
-          }
-          // Single val -- string
-          else {
-            if (opts.escapeVals) {
-              val = string.escapeXML(val);
-            }
-            arr.push(key + '=' + encodeURIComponent(val));
-          }
-          str += '&';
-        }
-        else {
-          if (opts.includeEmpty) { arr.push(key + '='); }
-        }
-      }
-    }
-    return arr.join('&');
-  };
-
-  /**
-    @name uri#objectify
-    @public
-    @function
-    @return {Object} JavaScript key/val object with the values from the querystring
-    @description Convert the values in a query string (key=val&key=val) to an Object
-    @param {String} str The querystring to convert to an object
-    @param {Object} o The options to use for formatting
-      @param {Boolean} [o.consolidate=true] Convert multiple instances of the same
-        key into an array of values instead of overwriting
-  */
-  this.objectify = function (str, o) {
-    var opts = o || {};
-    var d = {};
-    var consolidate = typeof opts.consolidate == 'undefined' ?
-        true : opts.consolidate;
-    if (str) {
-      var arr = str.split('&');
-      for (var i = 0; i < arr.length; i++) {
-        var pair = arr[i].split('=');
-        var name = pair[0];
-        var val = decodeURIComponent(pair[1] || '');
-        // "We've already got one!" -- arrayize if the flag
-        // is set
-        if (typeof d[name] != 'undefined' && consolidate) {
-          if (typeof d[name] == 'string') {
-            d[name] = [d[name]];
-          }
-          d[name].push(val);
-        }
-        // Otherwise just set the value
-        else {
-          d[name] = val;
-        }
-      }
-    }
-    return d;
-  };
-
-})();
-
-module.exports = uri;
-


[15/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/test.xml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/test.xml b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/test.xml
deleted file mode 100644
index bd2c504..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/test.xml
+++ /dev/null
@@ -1,19719 +0,0 @@
-<?xml version="1.0"?>
-<MsInfo xmlns:t="test" t:test="1">
-	<Metadata>
-		<Version>8.0</Version>
-		<CreationUTC>05/21/12 12:18:42</CreationUTC>
-	</Metadata>
-	<Category name="System Summary">
-		<Data>
-			<Item><![CDATA[OS Name]]></Item>
-			<Value><![CDATA[Microsoft Windows 7 Enterprise]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Version]]></Item>
-			<Value><![CDATA[6.1.7600 Build 7600]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Other OS Description ]]></Item>
-			<Value><![CDATA[Not Available]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[OS Manufacturer]]></Item>
-			<Value><![CDATA[Microsoft Corporation]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[System Name]]></Item>
-			<Value><![CDATA[RTCMW0037M]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[System Manufacturer]]></Item>
-			<Value><![CDATA[Hewlett-Packard]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[System Model]]></Item>
-			<Value><![CDATA[HP EliteBook 8440p]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[System Type]]></Item>
-			<Value><![CDATA[x64-based PC]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Processor]]></Item>
-			<Value><![CDATA[Intel(R) Core(TM) i5 CPU       M 540  @ 2.53GHz, 2534 Mhz, 2 Core(s), 4 Logical Processor(s)]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[BIOS Version/Date]]></Item>
-			<Value><![CDATA[Hewlett-Packard 68CCU Ver. F.0E, 23/08/2010]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[SMBIOS Version]]></Item>
-			<Value><![CDATA[2.6]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Windows Directory]]></Item>
-			<Value><![CDATA[C:\Windows]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[System Directory]]></Item>
-			<Value><![CDATA[C:\Windows\system32]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Boot Device]]></Item>
-			<Value><![CDATA[\Device\HarddiskVolume2]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Locale]]></Item>
-			<Value><![CDATA[United Kingdom]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Hardware Abstraction Layer]]></Item>
-			<Value><![CDATA[Version = "6.1.7600.16416"]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[User Name]]></Item>
-			<Value><![CDATA[RBAMOUSER\benedef1]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Time Zone]]></Item>
-			<Value><![CDATA[Romance Daylight Time]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Installed Physical Memory (RAM)]]></Item>
-			<Value><![CDATA[8.00 GB]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Total Physical Memory]]></Item>
-			<Value><![CDATA[7.79 GB]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Available Physical Memory]]></Item>
-			<Value><![CDATA[1.94 GB]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Total Virtual Memory]]></Item>
-			<Value><![CDATA[15.6 GB]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Available Virtual Memory]]></Item>
-			<Value><![CDATA[8.57 GB]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Page File Space]]></Item>
-			<Value><![CDATA[7.79 GB]]></Value>
-		</Data>
-		<Data>
-			<Item><![CDATA[Page File]]></Item>
-			<Value><![CDATA[C:\pagefile.sys]]></Value>
-		</Data>
-		<Category name="Hardware Resources">
-			<Category name="Conflicts/Sharing">
-				<Data>
-					<Resource><![CDATA[I/O Port 0x00000000-0x0000001F]]></Resource>
-					<Device><![CDATA[Direct memory access controller]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[I/O Port 0x00000000-0x0000001F]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 20]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B34]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 20]]></Resource>
-					<Device><![CDATA[Ricoh 1394 OHCI Compliant Host Controller]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[I/O Port 0x00000070-0x00000077]]></Resource>
-					<Device><![CDATA[System CMOS/real time clock]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[I/O Port 0x00000070-0x00000077]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[Memory Address 0xD0500000-0xD05FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 4 - 3B48]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[Memory Address 0xD0500000-0xD05FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) Centrino(R) Advanced-N 6200 AGN]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 22]]></Resource>
-					<Device><![CDATA[Ricoh SD/MMC Host Controller]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 22]]></Resource>
-					<Device><![CDATA[Ricoh R/RL/5C476(II) or Compatible CardBus Controller]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 22]]></Resource>
-					<Device><![CDATA[SDA Standard Compliant SD Host Controller]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 22]]></Resource>
-					<Device><![CDATA[RICOH SmartCard Reader]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[Memory Address 0xD0400000-0xD04FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 82801 PCI Bridge - 2448]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[Memory Address 0xD0400000-0xD04FFFFF]]></Resource>
-					<Device><![CDATA[Ricoh R/RL/5C476(II) or Compatible CardBus Controller]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 16]]></Resource>
-					<Device><![CDATA[High Definition Audio Controller]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 16]]></Resource>
-					<Device><![CDATA[Intel(R) Management Engine Interface]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 16]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B3C]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[Memory Address 0xA0000-0xBFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[Memory Address 0xA0000-0xBFFFF]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[Memory Address 0xC0000000-0xCFFFFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[Memory Address 0xC0000000-0xCFFFFFFF]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[I/O Port 0x0000FFFF-0x0000FFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[I/O Port 0x0000FFFF-0x0000FFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-				</Data>
-				<Data>
-					<Resource><![CDATA[]]>
-					</Resource>
-					<Device><![CDATA[]]>
-					</Device>
-				</Data>
-			</Category>
-			<Category name="DMA">
-				<Data>
-					<Resource><![CDATA[Channel 4]]></Resource>
-					<Device><![CDATA[Direct memory access controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-			</Category>
-			<Category name="Forced Hardware">
-				<Data>
-					<Device></Device>
-					<PNP_Device_ID></PNP_Device_ID>
-				</Data>
-			</Category>
-			<Category name="I/O">
-				<Data>
-					<Resource><![CDATA[0x000000F0-0x000000F0]]></Resource>
-					<Device><![CDATA[Numeric data processor]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000062-0x00000062]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant Embedded Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000066-0x00000066]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant Embedded Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00003000-0x00004FFF]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 2 - 3B44]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000FE00-0x0000FE0F]]></Resource>
-					<Device><![CDATA[Trusted Platform Module 1.2]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000FE80-0x0000FE8F]]></Resource>
-					<Device><![CDATA[Trusted Platform Module 1.2]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00005058-0x0000505F]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000003B0-0x000003BB]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000003C0-0x000003DF]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000020-0x00000021]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000024-0x00000025]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000028-0x00000029]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000002C-0x0000002D]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000030-0x00000031]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000034-0x00000035]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000038-0x00000039]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000003C-0x0000003D]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000A0-0x000000A1]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000A4-0x000000A5]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000A8-0x000000A9]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000AC-0x000000AD]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000B0-0x000000B1]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000B4-0x000000B5]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000B8-0x000000B9]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000BC-0x000000BD]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000004D0-0x000004D1]]></Resource>
-					<Device><![CDATA[Programmable interrupt controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000040-0x00000043]]></Resource>
-					<Device><![CDATA[System timer]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000050-0x00000053]]></Resource>
-					<Device><![CDATA[System timer]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000000-0x0000001F]]></Resource>
-					<Device><![CDATA[Direct memory access controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000000-0x0000001F]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000081-0x00000091]]></Resource>
-					<Device><![CDATA[Direct memory access controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000093-0x0000009F]]></Resource>
-					<Device><![CDATA[Direct memory access controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000C0-0x000000DF]]></Resource>
-					<Device><![CDATA[Direct memory access controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00005048-0x0000504F]]></Resource>
-					<Device><![CDATA[Intel(R) PCHM SATA AHCI Controller 6 Port]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00005064-0x00005067]]></Resource>
-					<Device><![CDATA[Intel(R) PCHM SATA AHCI Controller 6 Port]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00005040-0x00005047]]></Resource>
-					<Device><![CDATA[Intel(R) PCHM SATA AHCI Controller 6 Port]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00005060-0x00005063]]></Resource>
-					<Device><![CDATA[Intel(R) PCHM SATA AHCI Controller 6 Port]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00005000-0x0000501F]]></Resource>
-					<Device><![CDATA[Intel(R) PCHM SATA AHCI Controller 6 Port]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00002000-0x00002FFF]]></Resource>
-					<Device><![CDATA[Intel(R) 82801 PCI Bridge - 2448]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000060-0x00000060]]></Resource>
-					<Device><![CDATA[Standard 101/102-Key or Microsoft Natural PS/2 Keyboard with HP QLB]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000064-0x00000064]]></Resource>
-					<Device><![CDATA[Standard 101/102-Key or Microsoft Natural PS/2 Keyboard with HP QLB]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000378-0x0000037F]]></Resource>
-					<Device><![CDATA[ECP Printer Port (LPT1)]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000778-0x0000077A]]></Resource>
-					<Device><![CDATA[ECP Printer Port (LPT1)]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00005050-0x00005057]]></Resource>
-					<Device><![CDATA[Intel(R) Active Management Technology - SOL (COM3)]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00002FFC-0x00002FFF]]></Resource>
-					<Device><![CDATA[Ricoh R/RL/5C476(II) or Compatible CardBus Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000003F8-0x000003FF]]></Resource>
-					<Device><![CDATA[Puerto de comunicaciones (COM1)]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000D00-0x0000FFFF]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000070-0x00000077]]></Resource>
-					<Device><![CDATA[System CMOS/real time clock]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000070-0x00000077]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000FFE0-0x0000FFEF]]></Resource>
-					<Device><![CDATA[RICOH SmartCard Reader]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000002E-0x0000002F]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000004E-0x0000004F]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000061-0x00000061]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000063-0x00000063]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000065-0x00000065]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000067-0x00000067]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000080-0x00000080]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000092-0x00000092]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x000000B2-0x000000B3]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000200-0x0000027F]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00001000-0x0000100F]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000FFFF-0x0000FFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000FFFF-0x0000FFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000400-0x0000047F]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x00000500-0x0000057F]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0x0000EF80-0x0000EF9F]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-			</Category>
-			<Category name="IRQs">
-				<Data>
-					<Resource><![CDATA[IRQ 13]]></Resource>
-					<Device><![CDATA[Numeric data processor]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 4294967294]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 1 - 3B42]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 22]]></Resource>
-					<Device><![CDATA[Ricoh SD/MMC Host Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 22]]></Resource>
-					<Device><![CDATA[Ricoh R/RL/5C476(II) or Compatible CardBus Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 22]]></Resource>
-					<Device><![CDATA[SDA Standard Compliant SD Host Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 22]]></Resource>
-					<Device><![CDATA[RICOH SmartCard Reader]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 23]]></Resource>
-					<Device><![CDATA[HP Mobile Data Protection Sensor]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 4294967293]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 2 - 3B44]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 4294967292]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 4 - 3B48]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 4294967291]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 12]]></Resource>
-					<Device><![CDATA[Synaptics PS/2 Port TouchPad]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 16]]></Resource>
-					<Device><![CDATA[High Definition Audio Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 16]]></Resource>
-					<Device><![CDATA[Intel(R) Management Engine Interface]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 16]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B3C]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 0]]></Resource>
-					<Device><![CDATA[System timer]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 4294967290]]></Resource>
-					<Device><![CDATA[Intel(R) 82577LM Gigabit Network Connection]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 21]]></Resource>
-					<Device><![CDATA[Intel(R) PCHM SATA AHCI Controller 6 Port]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 1]]></Resource>
-					<Device><![CDATA[Standard 101/102-Key or Microsoft Natural PS/2 Keyboard with HP QLB]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 18]]></Resource>
-					<Device><![CDATA[Intel(R) Turbo Boost Technology Driver]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 17]]></Resource>
-					<Device><![CDATA[Intel(R) Active Management Technology - SOL (COM3)]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 4]]></Resource>
-					<Device><![CDATA[Puerto de comunicaciones (COM1)]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 20]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B34]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 20]]></Resource>
-					<Device><![CDATA[Ricoh 1394 OHCI Compliant Host Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 4294967289]]></Resource>
-					<Device><![CDATA[Intel(R) Centrino(R) Advanced-N 6200 AGN]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 8]]></Resource>
-					<Device><![CDATA[System CMOS/real time clock]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 81]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 82]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 83]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 84]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 85]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 86]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 87]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 88]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 89]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 90]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 91]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 92]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 93]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 94]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 95]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 96]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 97]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 98]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 99]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 100]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 101]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 102]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 103]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 104]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 105]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 106]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 107]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 108]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 109]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 110]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 111]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 112]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 113]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 114]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 115]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 116]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 117]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 118]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 119]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 120]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 121]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 122]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 123]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 124]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 125]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 126]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 127]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 128]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 129]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 130]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 131]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 132]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 133]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 134]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 135]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 136]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 137]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 138]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 139]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 140]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 141]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 142]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 143]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 144]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 145]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 146]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 147]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 148]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 149]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 150]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 151]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 152]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 153]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 154]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 155]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 156]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 157]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 158]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 159]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 160]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 161]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 162]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 163]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 164]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 165]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 166]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 167]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 168]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 169]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 170]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 171]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 172]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 173]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 174]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 175]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 176]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 177]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 178]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 179]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 180]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 181]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 182]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 183]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 184]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 185]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 186]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 187]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 188]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 189]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[IRQ 190]]></Resource>
-					<Device><![CDATA[Microsoft ACPI-Compliant System]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-			</Category>
-			<Category name="Memory">
-				<Data>
-					<Resource><![CDATA[0xD4600000-0xD46FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 1 - 3B42]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0402000-0xD04020FF]]></Resource>
-					<Device><![CDATA[Ricoh SD/MMC Host Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0600000-0xD45FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 2 - 3B44]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED40000-0xFED44FFF]]></Resource>
-					<Device><![CDATA[Trusted Platform Module 1.2]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFF000000-0xFFFFFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 82802 Firmware Hub Device]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0500000-0xD05FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family PCI Express Root Port 4 - 3B48]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0500000-0xD05FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) Centrino(R) Advanced-N 6200 AGN]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0000000-0xD03FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xC0000000-0xCFFFFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xC0000000-0xCFFFFFFF]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xA0000-0xBFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) HD Graphics]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xA0000-0xBFFFF]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD4720000-0xD4723FFF]]></Resource>
-					<Device><![CDATA[High Definition Audio Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD4700000-0xD471FFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 82577LM Gigabit Network Connection]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD472A000-0xD472AFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 82577LM Gigabit Network Connection]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED00000-0xFED003FF]]></Resource>
-					<Device><![CDATA[High precision event timer]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD4727000-0xD47277FF]]></Resource>
-					<Device><![CDATA[Intel(R) PCHM SATA AHCI Controller 6 Port]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD4724000-0xD472400F]]></Resource>
-					<Device><![CDATA[Intel(R) Management Engine Interface]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0400000-0xD04FFFFF]]></Resource>
-					<Device><![CDATA[Intel(R) 82801 PCI Bridge - 2448]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0400000-0xD04FFFFF]]></Resource>
-					<Device><![CDATA[Ricoh R/RL/5C476(II) or Compatible CardBus Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD4726000-0xD4726FFF]]></Resource>
-					<Device><![CDATA[Intel(R) Turbo Boost Technology Driver]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD472B000-0xD472BFFF]]></Resource>
-					<Device><![CDATA[Intel(R) Active Management Technology - SOL (COM3)]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD04FF000-0xD04FFFFF]]></Resource>
-					<Device><![CDATA[Ricoh R/RL/5C476(II) or Compatible CardBus Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD04FE000-0xD04FEFFF]]></Resource>
-					<Device><![CDATA[Ricoh R/RL/5C476(II) or Compatible CardBus Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFEFFF000-0xFEFFFFFF]]></Resource>
-					<Device><![CDATA[Ricoh R/RL/5C476(II) or Compatible CardBus Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD4728000-0xD47283FF]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B34]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0403000-0xD04030FF]]></Resource>
-					<Device><![CDATA[SDA Standard Compliant SD Host Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xF0000000-0xFEDFFFFF]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFEE01000-0xFFFFFFFF]]></Resource>
-					<Device><![CDATA[PCI bus]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD4729000-0xD47293FF]]></Resource>
-					<Device><![CDATA[Intel(R) 5 Series/3400 Series Chipset Family USB Enhanced Host Controller - 3B3C]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFEFFE000-0xFEFFEFFF]]></Resource>
-					<Device><![CDATA[RICOH SmartCard Reader]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD0401000-0xD04017FF]]></Resource>
-					<Device><![CDATA[Ricoh 1394 OHCI Compliant Host Controller]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED1C000-0xFED1FFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED10000-0xFED13FFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED1B000-0xFED1BFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED19000-0xFED19FFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xD4800000-0xD4800FFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xE0000000-0xEFFFFFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED20000-0xFED3FFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED90000-0xFED93FFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFED45000-0xFED8FFFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-				<Data>
-					<Resource><![CDATA[0xFEC00000-0xFEC00FFF]]></Resource>
-					<Device><![CDATA[Motherboard resources]]></Device>
-					<Status><![CDATA[OK]]></Status>
-				</Data>
-			</Category>
-		</Category>
-		<Category name="Components">
-			<Category name="Multimedia">
-				<Category name="Audio Codecs">
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\imaadp32.acm]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\IMAADP32.ACM]]></File>
-						<Version><![CDATA[6.1.7600.16385]]></Version>
-						<Size><![CDATA[21.50 KB (22,016 bytes)]]></Size>
-						<Creation_Date><![CDATA[14/07/2009 02:18]]></Creation_Date>
-					</Data>
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\msg711.acm]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\MSG711.ACM]]></File>
-						<Version><![CDATA[6.1.7600.16385]]></Version>
-						<Size><![CDATA[14.50 KB (14,848 bytes)]]></Size>
-						<Creation_Date><![CDATA[14/07/2009 02:18]]></Creation_Date>
-					</Data>
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\msgsm32.acm]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\MSGSM32.ACM]]></File>
-						<Version><![CDATA[6.1.7600.16385]]></Version>
-						<Size><![CDATA[28.50 KB (29,184 bytes)]]></Size>
-						<Creation_Date><![CDATA[14/07/2009 02:18]]></Creation_Date>
-					</Data>
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\msadp32.acm]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\MSADP32.ACM]]></File>
-						<Version><![CDATA[6.1.7600.16385]]></Version>
-						<Size><![CDATA[23.50 KB (24,064 bytes)]]></Size>
-						<Creation_Date><![CDATA[14/07/2009 02:18]]></Creation_Date>
-					</Data>
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\l3codeca.acm]]></CODEC>
-						<Manufacturer><![CDATA[Fraunhofer Institut Integrierte Schaltungen IIS]]></Manufacturer>
-						<Description><![CDATA[Fraunhofer IIS MPEG Layer-3 Codec]]></Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\L3CODECA.ACM]]></File>
-						<Version><![CDATA[1.9.0.401]]></Version>
-						<Size><![CDATA[79.50 KB (81,408 bytes)]]></Size>
-						<Creation_Date><![CDATA[14/07/2009 02:22]]></Creation_Date>
-					</Data>
-				</Category>
-				<Category name="Video Codecs">
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\msrle32.dll]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\MSRLE32.DLL]]></File>
-						<Version><![CDATA[6.1.7600.16490]]></Version>
-						<Size><![CDATA[16.00 KB (16,384 bytes)]]></Size>
-						<Creation_Date><![CDATA[30/01/2012 12:26]]></Creation_Date>
-					</Data>
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\msvidc32.dll]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\MSVIDC32.DLL]]></File>
-						<Version><![CDATA[6.1.7600.16490]]></Version>
-						<Size><![CDATA[38.00 KB (38,912 bytes)]]></Size>
-						<Creation_Date><![CDATA[30/01/2012 12:26]]></Creation_Date>
-					</Data>
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\msyuv.dll]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\MSYUV.DLL]]></File>
-						<Version><![CDATA[6.1.7600.16490]]></Version>
-						<Size><![CDATA[24.50 KB (25,088 bytes)]]></Size>
-						<Creation_Date><![CDATA[30/01/2012 12:26]]></Creation_Date>
-					</Data>
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\iyuv_32.dll]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\IYUV_32.DLL]]></File>
-						<Version><![CDATA[6.1.7600.16490]]></Version>
-						<Size><![CDATA[53.00 KB (54,272 bytes)]]></Size>
-						<Creation_Date><![CDATA[30/01/2012 12:26]]></Creation_Date>
-					</Data>
-					<Data>
-						<CODEC><![CDATA[c:\windows\system32\tsbyuv.dll]]></CODEC>
-						<Manufacturer><![CDATA[Microsoft Corporation]]></Manufacturer>
-						<Description><![CDATA[]]>
-						</Description>
-						<Status><![CDATA[OK]]></Status>
-						<File><![CDATA[C:\Windows\system32\TSBYUV.DLL]]></File>
-						<Version><![CDATA[6.1.7600.16490]]></Version>
-						<Size><![CDATA[14.50 KB (14,848 bytes)]]></Size>
-						<Creation_Date><![CDATA[30/01/2012 12:26]]></Creation_Date>
-					</Data>
-				</Category>
-			</Category>
-			<Category name="CD-ROM">
-				<Data>
-					<Item><![CDATA[Drive]]></Item>
-					<Value><![CDATA[D:]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Description]]></Item>
-					<Value><![CDATA[CD-ROM Drive]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Media Loaded]]></Item>
-					<Value><![CDATA[No]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Media Type]]></Item>
-					<Value><![CDATA[DVD Writer]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Name]]></Item>
-					<Value><![CDATA[hp DVDRAM GT31L]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Manufacturer]]></Item>
-					<Value><![CDATA[(Standard CD-ROM drives)]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Status]]></Item>
-					<Value><![CDATA[OK]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Transfer Rate]]></Item>
-					<Value><![CDATA[-1.00 kbytes/sec]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[SCSI Target ID]]></Item>
-					<Value><![CDATA[1]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[PNP Device ID]]></Item>
-					<Value><![CDATA[IDE\CDROMHP_DVDRAM_GT31L_________________________MR52____\4&A90EDEC&0&0.1.0]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Driver]]></Item>
-					<Value><![CDATA[c:\windows\system32\drivers\cdrom.sys (6.1.7600.16385, 144.00 KB (147,456 bytes), 14/07/2009 01:19)]]></Value>
-				</Data>
-			</Category>
-			<Category name="Sound Device">
-				<Data>
-					<Item><![CDATA[Name]]></Item>
-					<Value><![CDATA[IDT High Definition Audio CODEC]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Manufacturer]]></Item>
-					<Value><![CDATA[IDT]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Status]]></Item>
-					<Value><![CDATA[OK]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[PNP Device ID]]></Item>
-					<Value><![CDATA[HDAUDIO\FUNC_01&VEN_111D&DEV_7603&SUBSYS_103C172A&REV_1002\4&226A9BEC&0&0001]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Driver]]></Item>
-					<Value><![CDATA[c:\windows\system32\drivers\stwrt64.sys (6.10.6257.0, 491.50 KB (503,296 bytes), 30/01/2012 11:19)]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[]]>
-					</Item>
-					<Value><![CDATA[]]>
-					</Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Name]]></Item>
-					<Value><![CDATA[Sonido Intel(R) para pantallas]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Manufacturer]]></Item>
-					<Value><![CDATA[Intel(R) Corporation]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Status]]></Item>
-					<Value><![CDATA[OK]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[PNP Device ID]]></Item>
-					<Value><![CDATA[HDAUDIO\FUNC_01&VEN_8086&DEV_2804&SUBSYS_80860101&REV_1000\4&226A9BEC&0&0301]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Driver]]></Item>
-					<Value><![CDATA[c:\windows\system32\drivers\intcdaud.sys (6.12.0.3065, 280.50 KB (287,232 bytes), 21/06/2010 03:45)]]></Value>
-				</Data>
-			</Category>
-			<Category name="Display">
-				<Data>
-					<Item><![CDATA[Name]]></Item>
-					<Value><![CDATA[Intel(R) HD Graphics]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[PNP Device ID]]></Item>
-					<Value><![CDATA[PCI\VEN_8086&DEV_0046&SUBSYS_172A103C&REV_02\3&21436425&0&10]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Adapter Type]]></Item>
-					<Value><![CDATA[Intel(R) HD Graphics (Core i5), Intel Corporation compatible]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Adapter Description]]></Item>
-					<Value><![CDATA[Intel(R) HD Graphics]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Adapter RAM]]></Item>
-					<Value><![CDATA[(345,083,904) bytes]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Installed Drivers]]></Item>
-					<Value><![CDATA[igdumd64.dll,igd10umd64.dll,igdumdx32,igd10umd32]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Driver Version]]></Item>
-					<Value><![CDATA[8.15.10.2189]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[INF File]]></Item>
-					<Value><![CDATA[oem50.inf (iILKM0 section)]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Color Planes]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Color Table Entries]]></Item>
-					<Value><![CDATA[4294967296]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Resolution]]></Item>
-					<Value><![CDATA[1920 x 1080 x 60 hertz]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Bits/Pixel]]></Item>
-					<Value><![CDATA[32]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Memory Address]]></Item>
-					<Value><![CDATA[0xD0000000-0xD03FFFFF]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Memory Address]]></Item>
-					<Value><![CDATA[0xC0000000-0xCFFFFFFF]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[I/O Port]]></Item>
-					<Value><![CDATA[0x00005058-0x0000505F]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[IRQ Channel]]></Item>
-					<Value><![CDATA[IRQ 4294967291]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[I/O Port]]></Item>
-					<Value><![CDATA[0x000003B0-0x000003BB]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[I/O Port]]></Item>
-					<Value><![CDATA[0x000003C0-0x000003DF]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Memory Address]]></Item>
-					<Value><![CDATA[0xA0000-0xBFFFF]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Driver]]></Item>
-					<Value><![CDATA[c:\windows\system32\drivers\igdkmd64.sys (8.15.10.2189, 10.12 MB (10,610,400 bytes), 28/07/2010 15:10)]]></Value>
-				</Data>
-			</Category>
-			<Category name="Infrared">
-				<Data>
-					<Item></Item>
-					<Value></Value>
-				</Data>
-			</Category>
-			<Category name="Input">
-				<Category name="Keyboard">
-					<Data>
-						<Item><![CDATA[Description]]></Item>
-						<Value><![CDATA[USB Input Device]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Name]]></Item>
-						<Value><![CDATA[Enhanced (101- or 102-key)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Layout]]></Item>
-						<Value><![CDATA[0000040A]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[PNP Device ID]]></Item>
-						<Value><![CDATA[USB\VID_03F0&PID_0024\7&38DDF4CC&0&2]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Number of Function Keys]]></Item>
-						<Value><![CDATA[12]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Driver]]></Item>
-						<Value><![CDATA[c:\windows\system32\drivers\hidusb.sys (6.1.7600.16385, 29.50 KB (30,208 bytes), 14/07/2009 02:06)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[]]>
-						</Item>
-						<Value><![CDATA[]]>
-						</Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Description]]></Item>
-						<Value><![CDATA[Standard 101/102-Key or Microsoft Natural PS/2 Keyboard with HP QLB]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Name]]></Item>
-						<Value><![CDATA[Enhanced (101- or 102-key)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Layout]]></Item>
-						<Value><![CDATA[0000040A]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[PNP Device ID]]></Item>
-						<Value><![CDATA[ACPI\PNP0303\4&4094DF2&0]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Number of Function Keys]]></Item>
-						<Value><![CDATA[12]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[I/O Port]]></Item>
-						<Value><![CDATA[0x00000060-0x00000060]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[I/O Port]]></Item>
-						<Value><![CDATA[0x00000064-0x00000064]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IRQ Channel]]></Item>
-						<Value><![CDATA[IRQ 1]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Driver]]></Item>
-						<Value><![CDATA[c:\windows\system32\drivers\i8042prt.sys (6.1.7600.16385, 103.00 KB (105,472 bytes), 14/07/2009 01:19)]]></Value>
-					</Data>
-				</Category>
-				<Category name="Pointing Device">
-					<Data>
-						<Item><![CDATA[Hardware Type]]></Item>
-						<Value><![CDATA[USB Input Device]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Number of Buttons]]></Item>
-						<Value><![CDATA[0]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Status]]></Item>
-						<Value><![CDATA[OK]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[PNP Device ID]]></Item>
-						<Value><![CDATA[USB\VID_093A&PID_2510\7&38DDF4CC&0&1]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Power Management Supported]]></Item>
-						<Value><![CDATA[No]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Double Click Threshold]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Handedness]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Driver]]></Item>
-						<Value><![CDATA[c:\windows\system32\drivers\hidusb.sys (6.1.7600.16385, 29.50 KB (30,208 bytes), 14/07/2009 02:06)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[]]>
-						</Item>
-						<Value><![CDATA[]]>
-						</Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Hardware Type]]></Item>
-						<Value><![CDATA[Synaptics PS/2 Port TouchPad]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Number of Buttons]]></Item>
-						<Value><![CDATA[0]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Status]]></Item>
-						<Value><![CDATA[OK]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[PNP Device ID]]></Item>
-						<Value><![CDATA[ACPI\SYN0165\4&4094DF2&0]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Power Management Supported]]></Item>
-						<Value><![CDATA[No]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Double Click Threshold]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Handedness]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IRQ Channel]]></Item>
-						<Value><![CDATA[IRQ 12]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Driver]]></Item>
-						<Value><![CDATA[c:\windows\system32\drivers\i8042prt.sys (6.1.7600.16385, 103.00 KB (105,472 bytes), 14/07/2009 01:19)]]></Value>
-					</Data>
-				</Category>
-			</Category>
-			<Category name="Modem">
-				<Data>
-					<Item><![CDATA[Name]]></Item>
-					<Value><![CDATA[LSI HDA Modem]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Description]]></Item>
-					<Value><![CDATA[LSI HDA Modem]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Device ID]]></Item>
-					<Value><![CDATA[HDAUDIO\FUNC_02&VEN_11C1&DEV_1040&SUBSYS_103C3066&REV_1002\4&226A9BEC&0&0101]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Device Type]]></Item>
-					<Value><![CDATA[Internal Modem]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Attached To]]></Item>
-					<Value><![CDATA[COM4]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Answer Mode]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[PNP Device ID]]></Item>
-					<Value><![CDATA[HDAUDIO\FUNC_02&VEN_11C1&DEV_1040&SUBSYS_103C3066&REV_1002\4&226A9BEC&0&0101]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Provider Name]]></Item>
-					<Value><![CDATA[LSI]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Modem INF Path]]></Item>
-					<Value><![CDATA[oem5.inf]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Modem INF Section]]></Item>
-					<Value><![CDATA[LSI_HDA]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Blind Off]]></Item>
-					<Value><![CDATA[X4]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Blind On]]></Item>
-					<Value><![CDATA[X3]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Compression Off]]></Item>
-					<Value><![CDATA[%C0]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Compression On]]></Item>
-					<Value><![CDATA[%C1]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Error Control Forced]]></Item>
-					<Value><![CDATA[\N4]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Error Control Off]]></Item>
-					<Value><![CDATA[\N1]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Error Control On]]></Item>
-					<Value><![CDATA[\N3]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Flow Control Hard]]></Item>
-					<Value><![CDATA[&K3]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Flow Control Off]]></Item>
-					<Value><![CDATA[&K0]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Flow Control Soft]]></Item>
-					<Value><![CDATA[&K4]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[DCB]]></Item>
-					<Value><![CDATA[&#x001c;]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Default]]></Item>
-					<Value><![CDATA[<]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Inactivity Timeout]]></Item>
-					<Value><![CDATA[0]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Modulation Bell]]></Item>
-					<Value><![CDATA[B1B16B2]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Modulation CCITT]]></Item>
-					<Value><![CDATA[B0B15B2]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Prefix]]></Item>
-					<Value><![CDATA[AT]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Pulse]]></Item>
-					<Value><![CDATA[P]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Reset]]></Item>
-					<Value><![CDATA[AT&F<cr>]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Responses Key Name]]></Item>
-					<Value><![CDATA[LSI HDA Modem::LSI::LSI]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Mode Dial]]></Item>
-					<Value><![CDATA[M1]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Mode Off]]></Item>
-					<Value><![CDATA[M0]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Mode On]]></Item>
-					<Value><![CDATA[M2]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Mode Setup]]></Item>
-					<Value><![CDATA[M3]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Volume High]]></Item>
-					<Value><![CDATA[L3]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Volume Low]]></Item>
-					<Value><![CDATA[L0]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Volume Med]]></Item>
-					<Value><![CDATA[L2]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[String Format]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Terminator]]></Item>
-					<Value><![CDATA[<cr>]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Tone]]></Item>
-					<Value><![CDATA[T]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Driver]]></Item>
-					<Value><![CDATA[c:\windows\system32\drivers\modem.sys (6.1.7600.16385, 39.50 KB (40,448 bytes), 14/07/2009 02:10)]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[]]>
-					</Item>
-					<Value><![CDATA[]]>
-					</Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Name]]></Item>
-					<Value><![CDATA[HP un2420 Mobile Broadband Module Modem]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Description]]></Item>
-					<Value><![CDATA[HP un2420 Mobile Broadband Module Modem]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Device ID]]></Item>
-					<Value><![CDATA[USB\VID_03F0&PID_251D&MI_02\7&3103D884&0&2_02]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Device Type]]></Item>
-					<Value><![CDATA[External Modem]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Attached To]]></Item>
-					<Value><![CDATA[COM8]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Answer Mode]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[PNP Device ID]]></Item>
-					<Value><![CDATA[USB\VID_03F0&PID_251D&MI_02\7&3103D884&0&2_02]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Provider Name]]></Item>
-					<Value><![CDATA[Qualcomm Incorporated]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Modem INF Path]]></Item>
-					<Value><![CDATA[oem54.inf]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Modem INF Section]]></Item>
-					<Value><![CDATA[Modem2]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Blind Off]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Blind On]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Compression Off]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Compression On]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Error Control Forced]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Error Control Off]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Error Control On]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Flow Control Hard]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Flow Control Off]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Flow Control Soft]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[DCB]]></Item>
-					<Value><![CDATA[&#x001c;]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Default]]></Item>
-					<Value><![CDATA[]]>
-					</Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Inactivity Timeout]]></Item>
-					<Value><![CDATA[0]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Modulation Bell]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Modulation CCITT]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Prefix]]></Item>
-					<Value><![CDATA[AT]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Pulse]]></Item>
-					<Value><![CDATA[P]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Reset]]></Item>
-					<Value><![CDATA[AT&F<cr>]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Responses Key Name]]></Item>
-					<Value><![CDATA[HP un2420 Mobile Broadband Module Modem::Qualcomm Incorporated::Qualcomm Incorporated]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Mode Dial]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Mode Off]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Mode On]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Mode Setup]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Volume High]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Volume Low]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Speaker Volume Med]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[String Format]]></Item>
-					<Value><![CDATA[Not Available]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Terminator]]></Item>
-					<Value><![CDATA[<cr>]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Tone]]></Item>
-					<Value><![CDATA[T]]></Value>
-				</Data>
-				<Data>
-					<Item><![CDATA[Driver]]></Item>
-					<Value><![CDATA[c:\windows\system32\drivers\modem.sys (6.1.7600.16385, 39.50 KB (40,448 bytes), 14/07/2009 02:10)]]></Value>
-				</Data>
-			</Category>
-			<Category name="Network">
-				<Category name="Adapter">
-					<Data>
-						<Item><![CDATA[Name]]></Item>
-						<Value><![CDATA[[00000000] WAN Miniport (SSTP)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Adapter Type]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Product Type]]></Item>
-						<Value><![CDATA[WAN Miniport (SSTP)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Installed]]></Item>
-						<Value><![CDATA[Yes]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[PNP Device ID]]></Item>
-						<Value><![CDATA[ROOT\MS_SSTPMINIPORT\0000]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Last Reset]]></Item>
-						<Value><![CDATA[21/05/2012 08:05]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Index]]></Item>
-						<Value><![CDATA[0]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Service Name]]></Item>
-						<Value><![CDATA[RasSstp]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IP Address]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IP Subnet]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Default IP Gateway]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Enabled]]></Item>
-						<Value><![CDATA[No]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Server]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Lease Expires]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Lease Obtained]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[MAC Address]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Driver]]></Item>
-						<Value><![CDATA[c:\windows\system32\drivers\rassstp.sys (6.1.7600.16385, 82.00 KB (83,968 bytes), 14/07/2009 02:10)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[]]>
-						</Item>
-						<Value><![CDATA[]]>
-						</Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Name]]></Item>
-						<Value><![CDATA[[00000001] WAN Miniport (IKEv2)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Adapter Type]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Product Type]]></Item>
-						<Value><![CDATA[WAN Miniport (IKEv2)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Installed]]></Item>
-						<Value><![CDATA[Yes]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[PNP Device ID]]></Item>
-						<Value><![CDATA[ROOT\MS_AGILEVPNMINIPORT\0000]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Last Reset]]></Item>
-						<Value><![CDATA[21/05/2012 08:05]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Index]]></Item>
-						<Value><![CDATA[1]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Service Name]]></Item>
-						<Value><![CDATA[RasAgileVpn]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IP Address]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IP Subnet]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Default IP Gateway]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Enabled]]></Item>
-						<Value><![CDATA[No]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Server]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Lease Expires]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Lease Obtained]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[MAC Address]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Driver]]></Item>
-						<Value><![CDATA[c:\windows\system32\drivers\agilevpn.sys (6.1.7600.16385, 59.00 KB (60,416 bytes), 14/07/2009 02:10)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[]]>
-						</Item>
-						<Value><![CDATA[]]>
-						</Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Name]]></Item>
-						<Value><![CDATA[[00000002] WAN Miniport (L2TP)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Adapter Type]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Product Type]]></Item>
-						<Value><![CDATA[WAN Miniport (L2TP)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Installed]]></Item>
-						<Value><![CDATA[Yes]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[PNP Device ID]]></Item>
-						<Value><![CDATA[ROOT\MS_L2TPMINIPORT\0000]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Last Reset]]></Item>
-						<Value><![CDATA[21/05/2012 08:05]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Index]]></Item>
-						<Value><![CDATA[2]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Service Name]]></Item>
-						<Value><![CDATA[Rasl2tp]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IP Address]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IP Subnet]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Default IP Gateway]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Enabled]]></Item>
-						<Value><![CDATA[No]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Server]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Lease Expires]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[DHCP Lease Obtained]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[MAC Address]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Driver]]></Item>
-						<Value><![CDATA[c:\windows\system32\drivers\rasl2tp.sys (6.1.7600.16385, 127.00 KB (130,048 bytes), 14/07/2009 02:10)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[]]>
-						</Item>
-						<Value><![CDATA[]]>
-						</Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Name]]></Item>
-						<Value><![CDATA[[00000003] WAN Miniport (PPTP)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Adapter Type]]></Item>
-						<Value><![CDATA[Not Available]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Product Type]]></Item>
-						<Value><![CDATA[WAN Miniport (PPTP)]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Installed]]></Item>
-						<Value><![CDATA[Yes]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[PNP Device ID]]></Item>
-						<Value><![CDATA[ROOT\MS_PPTPMINIPORT\0000]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Last Reset]]></Item>
-						<Value><![CDATA[21/05/2012 08:05]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Index]]></Item>
-						<Value><![CDATA[3]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[Service Name]]></Item>
-						<Value><![CDATA[PptpMiniport]]></Value>
-					</Data>
-					<Data>
-						<Item><![CDATA[IP Address]]></Item>

<TRUNCATED>

[50/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/async/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/async/package.json b/blackberry10/node_modules/async/package.json
index 5aa1417..2d2361d 100644
--- a/blackberry10/node_modules/async/package.json
+++ b/blackberry10/node_modules/async/package.json
@@ -38,5 +38,9 @@
   "readme": "# Async.js\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [node.js](http://nodejs.org), it can also be used directly in the\nbrowser. Also supports [component](https://github.com/component/component).\n\nAsync provides around 20 functions that include the usual 'functional'\nsuspects (map, reduce, filter, each…) as well as some common patterns\nfor asynchronous control flow (parallel, series, waterfall…). All these\nfunctions assume you follow the node.js convention of providing a single\ncallback as the last argument of your async function.\n\n\n## Quick Examples\n\n```javascript\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n    // results now equals an array of the existing files\n});\n\nas
 ync.parallel([\n    function(){ ... },\n    function(){ ... }\n], callback);\n\nasync.series([\n    function(){ ... },\n    function(){ ... }\n]);\n```\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n## Common Pitfalls\n\n### Binding a context to an iterator\n\nThis section is really about bind, not about async. If you are wondering how to\nmake async execute your iterators in a given context, or are confused as to why\na method of another library isn't working as an iterator, study this example:\n\n```js\n// Here is a simple object with an (unnecessarily roundabout) squaring method\nvar AsyncSquaringLibrary = {\n  squareExponent: 2,\n  square: function(number, callback){ \n    var result = Math.pow(number, this.squareExponent);\n    setTimeout(function(){\n      callback(null, result);\n    }, 200);\n  }\n};\n\nasync.map([1,
  2, 3], AsyncSquaringLibrary.square, function(err, result){\n  // result is [NaN, NaN, NaN]\n  // This fails because the `this.squareExponent` expression in the square\n  // function is not evaluated in the context of AsyncSquaringLibrary, and is\n  // therefore undefined.\n});\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){\n  // result is [1, 4, 9]\n  // With the help of bind we can attach a context to the iterator before\n  // passing it to async. Now the square function will be executed in its \n  // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent`\n  // will be as expected.\n});\n```\n\n## Download\n\nThe source is available for download from\n[GitHub](http://github.com/caolan/async).\nAlternatively, you can install using Node Package Manager (npm):\n\n    npm install async\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed\n\n## In the Bro
 wser\n\nSo far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. Usage:\n\n```html\n<script type=\"text/javascript\" src=\"async.js\"></script>\n<script type=\"text/javascript\">\n\n    async.map(data, asyncProcess, function(err, results){\n        alert(results);\n    });\n\n</script>\n```\n\n## Documentation\n\n### Collections\n\n* [each](#each)\n* [map](#map)\n* [filter](#filter)\n* [reject](#reject)\n* [reduce](#reduce)\n* [detect](#detect)\n* [sortBy](#sortBy)\n* [some](#some)\n* [every](#every)\n* [concat](#concat)\n\n### Control Flow\n\n* [series](#series)\n* [parallel](#parallel)\n* [whilst](#whilst)\n* [doWhilst](#doWhilst)\n* [until](#until)\n* [doUntil](#doUntil)\n* [forever](#forever)\n* [waterfall](#waterfall)\n* [compose](#compose)\n* [applyEach](#applyEach)\n* [queue](#queue)\n* [cargo](#cargo)\n* [auto](#auto)\n* [iterator](#iterator)\n* [apply](#apply)\n* [nextTick](#nextTick)\n* [times](#times)\n* [timesSeries](#timesSeries)\n\n### Utils\n\n* [memoize](#memoiz
 e)\n* [unmemoize](#unmemoize)\n* [log](#log)\n* [dir](#dir)\n* [noConflict](#noConflict)\n\n\n## Collections\n\n<a name=\"forEach\" />\n<a name=\"each\" />\n### each(arr, iterator, callback)\n\nApplies an iterator function to each item in an array, in parallel.\nThe iterator is called with an item from the list and a callback for when it\nhas finished. If the iterator passes an error to this callback, the main\ncallback for the each function is immediately called with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err) which must be called once it has \n  completed. If no error has occured, the callback should be run without \n  arguments or with an explicit null argument.\n* callback(err) - A callbac
 k which is called after all the iterator functions\n  have finished, or an error has occurred.\n\n__Example__\n\n```js\n// assuming openFiles is an array of file names and saveFile is a function\n// to save the modified contents of that file:\n\nasync.each(openFiles, saveFile, function(err){\n    // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------------------------------------\n\n<a name=\"forEachSeries\" />\n<a name=\"eachSeries\" />\n### eachSeries(arr, iterator, callback)\n\nThe same as each only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. This means the iterator functions will complete in order.\n\n\n---------------------------------------\n\n<a name=\"forEachLimit\" />\n<a name=\"eachLimit\" />\n### eachLimit(arr, limit, iterator, callback)\n\nThe same as each only no more than \"limit\" iterators will be simultaneously \nrunning at any time
 .\n\nNote that the items are not processed in batches, so there is no guarantee that\n the first \"limit\" iterator functions will complete before any others are \nstarted.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - The maximum number of iterators to run at any time.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err) which must be called once it has \n  completed. If no error has occured, the callback should be run without \n  arguments or with an explicit null argument.\n* callback(err) - A callback which is called after all the iterator functions\n  have finished, or an error has occurred.\n\n__Example__\n\n```js\n// Assume documents is an array of JSON objects and requestApi is a\n// function that interacts with a rate-limited REST api.\n\nasync.eachLimit(documents, 20, requestApi, function(err){\n    // if any of the saves produced an error, err would equal that error\n});\n```\n\n---------
 ------------------------------\n\n<a name=\"map\" />\n### map(arr, iterator, callback)\n\nProduces a new array of values by mapping each value in the given array through\nthe iterator function. The iterator is called with an item from the array and a\ncallback for when it has finished processing. The callback takes 2 arguments, \nan error and the transformed item from the array. If the iterator passes an\nerror to this callback, the main callback for the map function is immediately\ncalled with the error.\n\nNote, that since this function applies the iterator to each item in parallel\nthere is no guarantee that the iterator functions will complete in order, however\nthe results array will be in the same order as the original array.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err, transformed) which must be called once \n  it has completed with an error (which c
 an be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n  functions have finished, or an error has occurred. Results is an array of the\n  transformed items from the original array.\n\n__Example__\n\n```js\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name=\"mapSeries\" />\n### mapSeries(arr, iterator, callback)\n\nThe same as map only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n---------------------------------------\n\n<a name=\"mapLimit\" />\n### mapLimit(arr, limit, iterator, callback)\n\nThe same as map only no more than \"limit\" iterators will be simultaneously \nrunning at any time.\n\nNote that the items are not proce
 ssed in batches, so there is no guarantee that\n the first \"limit\" iterator functions will complete before any others are \nstarted.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* limit - The maximum number of iterators to run at any time.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err, transformed) which must be called once \n  it has completed with an error (which can be null) and a transformed item.\n* callback(err, results) - A callback which is called after all the iterator\n  functions have finished, or an error has occurred. Results is an array of the\n  transformed items from the original array.\n\n__Example__\n\n```js\nasync.map(['file1','file2','file3'], 1, fs.stat, function(err, results){\n    // results is now an array of stats for each file\n});\n```\n\n---------------------------------------\n\n<a name=\"filter\" />\n### filter(arr, iterator, callback)\n\n__Alias:__ select\n\nReturns a n
 ew array of all the values which pass an async truth test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists. This operation is\nperformed in parallel, but the results array will be in the same order as the\noriginal.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n  The iterator is passed a callback(truthValue) which must be called with a \n  boolean argument once it has completed.\n* callback(results) - A callback which is called after all the iterator\n  functions have finished.\n\n__Example__\n\n```js\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n    // results now equals an array of the existing files\n});\n```\n\n---------------------------------------\n\n<a name=\"filterSeries\" />\n### filterSeries(arr,
  iterator, callback)\n\n__alias:__ selectSeries\n\nThe same as filter only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n---------------------------------------\n\n<a name=\"reject\" />\n### reject(arr, iterator, callback)\n\nThe opposite of filter. Removes values that pass an async truth test.\n\n---------------------------------------\n\n<a name=\"rejectSeries\" />\n### rejectSeries(arr, iterator, callback)\n\nThe same as reject, only the iterator is applied to each item in the array\nin series.\n\n\n---------------------------------------\n\n<a name=\"reduce\" />\n### reduce(arr, memo, iterator, callback)\n\n__aliases:__ inject, foldl\n\nReduces a list of values into a single value using an async iterator to return\neach successive step. Memo is the initial state of the reduction. This\nfunction only operates in series. F
 or performance reasons, it may make sense to\nsplit a call to this function into a parallel map, then use the normal\nArray.prototype.reduce on the results. This function is for situations where\neach step in the reduction needs to be async, if you can get the data before\nreducing it then it's probably a good idea to do so.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* memo - The initial state of the reduction.\n* iterator(memo, item, callback) - A function applied to each item in the\n  array to produce the next step in the reduction. The iterator is passed a\n  callback(err, reduction) which accepts an optional error as its first \n  argument, and the state of the reduction as the second. If an error is \n  passed to the callback, the reduction is stopped and the main callback is \n  immediately called with the error.\n* callback(err, result) - A callback which is called after all the iterator\n  functions have finished. Result is the reduced value.\n\n__Example__\n\n`
 ``js\nasync.reduce([1,2,3], 0, function(memo, item, callback){\n    // pointless async:\n    process.nextTick(function(){\n        callback(null, memo + item)\n    });\n}, function(err, result){\n    // result is now equal to the last value of memo, which is 6\n});\n```\n\n---------------------------------------\n\n<a name=\"reduceRight\" />\n### reduceRight(arr, memo, iterator, callback)\n\n__Alias:__ foldr\n\nSame as reduce, only operates on the items in the array in reverse order.\n\n\n---------------------------------------\n\n<a name=\"detect\" />\n### detect(arr, iterator, callback)\n\nReturns the first value in a list that passes an async truth test. The\niterator is applied in parallel, meaning the first iterator to return true will\nfire the detect callback with that result. That means the result might not be\nthe first item in the original array (in terms of order) that passes the test.\n\nIf order within the original array is important then look at detectSeries.\n\n__Argu
 ments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n  The iterator is passed a callback(truthValue) which must be called with a \n  boolean argument once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n  true, or after all the iterator functions have finished. Result will be\n  the first item in the array that passes the truth test (iterator) or the\n  value undefined if none passed.\n\n__Example__\n\n```js\nasync.detect(['file1','file2','file3'], fs.exists, function(result){\n    // result now equals the first file in the list that exists\n});\n```\n\n---------------------------------------\n\n<a name=\"detectSeries\" />\n### detectSeries(arr, iterator, callback)\n\nThe same as detect, only the iterator is applied to each item in the array\nin series. This means the result is always the first in the original array (in\nterms of array order) that passes the tr
 uth test.\n\n\n---------------------------------------\n\n<a name=\"sortBy\" />\n### sortBy(arr, iterator, callback)\n\nSorts a list by the results of running each value through an async iterator.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err, sortValue) which must be called once it\n  has completed with an error (which can be null) and a value to use as the sort\n  criteria.\n* callback(err, results) - A callback which is called after all the iterator\n  functions have finished, or an error has occurred. Results is the items from\n  the original array sorted by the values returned by the iterator calls.\n\n__Example__\n\n```js\nasync.sortBy(['file1','file2','file3'], function(file, callback){\n    fs.stat(file, function(err, stats){\n        callback(err, stats.mtime);\n    });\n}, function(err, results){\n    // results is now the original array of files so
 rted by\n    // modified date\n});\n```\n\n---------------------------------------\n\n<a name=\"some\" />\n### some(arr, iterator, callback)\n\n__Alias:__ any\n\nReturns true if at least one element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists. Once any iterator\ncall returns true, the main callback is immediately called.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n  The iterator is passed a callback(truthValue) which must be called with a \n  boolean argument once it has completed.\n* callback(result) - A callback which is called as soon as any iterator returns\n  true, or after all the iterator functions have finished. Result will be\n  either true or false depending on the values of the 
 async tests.\n\n__Example__\n\n```js\nasync.some(['file1','file2','file3'], fs.exists, function(result){\n    // if result is true then at least one of the files exists\n});\n```\n\n---------------------------------------\n\n<a name=\"every\" />\n### every(arr, iterator, callback)\n\n__Alias:__ all\n\nReturns true if every element in the array satisfies an async test.\n_The callback for each iterator call only accepts a single argument of true or\nfalse, it does not accept an error argument first!_ This is in-line with the\nway node libraries work with truth tests like fs.exists.\n\n__Arguments__\n\n* arr - An array to iterate over.\n* iterator(item, callback) - A truth test to apply to each item in the array.\n  The iterator is passed a callback(truthValue) which must be called with a \n  boolean argument once it has completed.\n* callback(result) - A callback which is called after all the iterator\n  functions have finished. Result will be either true or false depending on\n  the 
 values of the async tests.\n\n__Example__\n\n```js\nasync.every(['file1','file2','file3'], fs.exists, function(result){\n    // if result is true then every file exists\n});\n```\n\n---------------------------------------\n\n<a name=\"concat\" />\n### concat(arr, iterator, callback)\n\nApplies an iterator to each item in a list, concatenating the results. Returns the\nconcatenated list. The iterators are called in parallel, and the results are\nconcatenated as they return. There is no guarantee that the results array will\nbe returned in the original order of the arguments passed to the iterator function.\n\n__Arguments__\n\n* arr - An array to iterate over\n* iterator(item, callback) - A function to apply to each item in the array.\n  The iterator is passed a callback(err, results) which must be called once it \n  has completed with an error (which can be null) and an array of results.\n* callback(err, results) - A callback which is called after all the iterator\n  functions have f
 inished, or an error has occurred. Results is an array containing\n  the concatenated results of the iterator function.\n\n__Example__\n\n```js\nasync.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){\n    // files is now a list of filenames that exist in the 3 directories\n});\n```\n\n---------------------------------------\n\n<a name=\"concatSeries\" />\n### concatSeries(arr, iterator, callback)\n\nSame as async.concat, but executes in series instead of parallel.\n\n\n## Control Flow\n\n<a name=\"series\" />\n### series(tasks, [callback])\n\nRun an array of functions in series, each one running once the previous\nfunction has completed. If any functions in the series pass an error to its\ncallback, no more functions are run and the callback for the series is\nimmediately called with the value of the error. Once the tasks have completed,\nthe results are passed to the final callback as an array.\n\nIt is also possible to use an object instead of an array. Each proper
 ty will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a more readable way of handling results from\nasync.series.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed\n  a callback(err, result) it must call on completion with an error (which can\n  be null) and an optional result value.\n* callback(err, results) - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all \n  the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.series([\n    function(callback){\n        // do some stuff ...\n        callback(null, 'one');\n    },\n    function(callback){\n        // do some more stuff ...\n        callback(null, 'two');\n    }\n],\n// optional callback\nfunction(err, results){\n    // results is now equal to ['one', 'two']\n});\n\n\n// an example using an ob
 ject instead of an array\nasync.series({\n    one: function(callback){\n        setTimeout(function(){\n            callback(null, 1);\n        }, 200);\n    },\n    two: function(callback){\n        setTimeout(function(){\n            callback(null, 2);\n        }, 100);\n    }\n},\nfunction(err, results) {\n    // results is now equal to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name=\"parallel\" />\n### parallel(tasks, [callback])\n\nRun an array of functions in parallel, without waiting until the previous\nfunction has completed. If any of the functions pass an error to its\ncallback, the main callback is immediately called with the value of the error.\nOnce the tasks have completed, the results are passed to the final callback as an\narray.\n\nIt is also possible to use an object instead of an array. Each property will be\nrun as a function and the results will be passed to the final callback as an object\ninstead of an array. This can be a mo
 re readable way of handling results from\nasync.parallel.\n\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed \n  a callback(err, result) it must call on completion with an error (which can\n  be null) and an optional result value.\n* callback(err, results) - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all \n  the result arguments passed to the task callbacks.\n\n__Example__\n\n```js\nasync.parallel([\n    function(callback){\n        setTimeout(function(){\n            callback(null, 'one');\n        }, 200);\n    },\n    function(callback){\n        setTimeout(function(){\n            callback(null, 'two');\n        }, 100);\n    }\n],\n// optional callback\nfunction(err, results){\n    // the results array will equal ['one','two'] even though\n    // the second function had a shorter timeout.\n});\n\n\n// an example using an object instead of an 
 array\nasync.parallel({\n    one: function(callback){\n        setTimeout(function(){\n            callback(null, 1);\n        }, 200);\n    },\n    two: function(callback){\n        setTimeout(function(){\n            callback(null, 2);\n        }, 100);\n    }\n},\nfunction(err, results) {\n    // results is now equals to: {one: 1, two: 2}\n});\n```\n\n---------------------------------------\n\n<a name=\"parallel\" />\n### parallelLimit(tasks, limit, [callback])\n\nThe same as parallel only the tasks are executed in parallel with a maximum of \"limit\" \ntasks executing at any time.\n\nNote that the tasks are not executed in batches, so there is no guarantee that \nthe first \"limit\" tasks will complete before any others are started.\n\n__Arguments__\n\n* tasks - An array or object containing functions to run, each function is passed \n  a callback(err, result) it must call on completion with an error (which can\n  be null) and an optional result value.\n* limit - The maximum num
 ber of tasks to run at any time.\n* callback(err, results) - An optional callback to run once all the functions\n  have completed. This function gets a results array (or object) containing all \n  the result arguments passed to the task callbacks.\n\n---------------------------------------\n\n<a name=\"whilst\" />\n### whilst(test, fn, callback)\n\nRepeatedly call fn, while test returns true. Calls the callback when stopped,\nor an error occurs.\n\n__Arguments__\n\n* test() - synchronous truth test to perform before each execution of fn.\n* fn(callback) - A function to call each time the test passes. The function is\n  passed a callback(err) which must be called once it has completed with an \n  optional error argument.\n* callback(err) - A callback which is called after the test fails and repeated\n  execution of fn has stopped.\n\n__Example__\n\n```js\nvar count = 0;\n\nasync.whilst(\n    function () { return count < 5; },\n    function (callback) {\n        count++;\n        setT
 imeout(callback, 1000);\n    },\n    function (err) {\n        // 5 seconds have passed\n    }\n);\n```\n\n---------------------------------------\n\n<a name=\"doWhilst\" />\n### doWhilst(fn, test, callback)\n\nThe post check version of whilst. To reflect the difference in the order of operations `test` and `fn` arguments are switched. `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n\n---------------------------------------\n\n<a name=\"until\" />\n### until(test, fn, callback)\n\nRepeatedly call fn, until test returns true. Calls the callback when stopped,\nor an error occurs.\n\nThe inverse of async.whilst.\n\n---------------------------------------\n\n<a name=\"doUntil\" />\n### doUntil(fn, test, callback)\n\nLike doWhilst except the test is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n<a name=\"forever\" />\n### forever(fn, callback)\n\nCalls the asynchronous function 'fn' repeatedly, in seri
 es, indefinitely.\nIf an error is passed to fn's callback then 'callback' is called with the\nerror, otherwise it will never be called.\n\n---------------------------------------\n\n<a name=\"waterfall\" />\n### waterfall(tasks, [callback])\n\nRuns an array of functions in series, each passing their results to the next in\nthe array. However, if any of the functions pass an error to the callback, the\nnext function is not executed and the main callback is immediately called with\nthe error.\n\n__Arguments__\n\n* tasks - An array of functions to run, each function is passed a \n  callback(err, result1, result2, ...) it must call on completion. The first\n  argument is an error (which can be null) and any further arguments will be \n  passed as arguments in order to the next task.\n* callback(err, [results]) - An optional callback to run once all the functions\n  have completed. This will be passed the results of the last task's callback.\n\n\n\n__Example__\n\n```js\nasync.waterfall([
 \n    function(callback){\n        callback(null, 'one', 'two');\n    },\n    function(arg1, arg2, callback){\n        callback(null, 'three');\n    },\n    function(arg1, callback){\n        // arg1 now equals 'three'\n        callback(null, 'done');\n    }\n], function (err, result) {\n   // result now equals 'done'    \n});\n```\n\n---------------------------------------\n<a name=\"compose\" />\n### compose(fn1, fn2...)\n\nCreates a function which is a composition of the passed asynchronous\nfunctions. Each function consumes the return value of the function that\nfollows. Composing functions f(), g() and h() would produce the result of\nf(g(h())), only this version uses callbacks to obtain the return values.\n\nEach function is executed with the `this` binding of the composed function.\n\n__Arguments__\n\n* functions... - the asynchronous functions to compose\n\n\n__Example__\n\n```js\nfunction add1(n, callback) {\n    setTimeout(function () {\n        callback(null, n + 1);\n   
  }, 10);\n}\n\nfunction mul3(n, callback) {\n    setTimeout(function () {\n        callback(null, n * 3);\n    }, 10);\n}\n\nvar add1mul3 = async.compose(mul3, add1);\n\nadd1mul3(4, function (err, result) {\n   // result now equals 15\n});\n```\n\n---------------------------------------\n<a name=\"applyEach\" />\n### applyEach(fns, args..., callback)\n\nApplies the provided arguments to each function in the array, calling the\ncallback after all functions have completed. If you only provide the first\nargument then it will return a function which lets you pass in the\narguments as if it were a single function call.\n\n__Arguments__\n\n* fns - the asynchronous functions to all call with the same arguments\n* args... - any number of separate arguments to pass to the function\n* callback - the final argument should be the callback, called when all\n  functions have completed processing\n\n\n__Example__\n\n```js\nasync.applyEach([enableSearch, updateSchema], 'bucket', callback);\n\n// p
 artial application example:\nasync.each(\n    buckets,\n    async.applyEach([enableSearch, updateSchema]),\n    callback\n);\n```\n\n---------------------------------------\n\n<a name=\"applyEachSeries\" />\n### applyEachSeries(arr, iterator, callback)\n\nThe same as applyEach only the functions are applied in series.\n\n---------------------------------------\n\n<a name=\"queue\" />\n### queue(worker, concurrency)\n\nCreates a queue object with the specified concurrency. Tasks added to the\nqueue will be processed in parallel (up to the concurrency limit). If all\nworkers are in progress, the task is queued until one is available. Once\na worker has completed a task, the task's callback is called.\n\n__Arguments__\n\n* worker(task, callback) - An asynchronous function for processing a queued\n  task, which must call its callback(err) argument when finished, with an \n  optional error as an argument.\n* concurrency - An integer for determining how many worker functions should be\n  
 run in parallel.\n\n__Queue objects__\n\nThe queue object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* concurrency - an integer for determining how many worker functions should be\n  run in parallel. This property can be changed after a queue is created to\n  alter the concurrency on-the-fly.\n* push(task, [callback]) - add a new task to the queue, the callback is called\n  once the worker has finished processing the task.\n  instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* unshift(task, [callback]) - add a new task to the front of the queue.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last ite
 m from the queue has returned from the worker\n\n__Example__\n\n```js\n// create a queue object with concurrency 2\n\nvar q = async.queue(function (task, callback) {\n    console.log('hello ' + task.name);\n    callback();\n}, 2);\n\n\n// assign a callback\nq.drain = function() {\n    console.log('all items have been processed');\n}\n\n// add some items to the queue\n\nq.push({name: 'foo'}, function (err) {\n    console.log('finished processing foo');\n});\nq.push({name: 'bar'}, function (err) {\n    console.log('finished processing bar');\n});\n\n// add some items to the queue (batch-wise)\n\nq.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) {\n    console.log('finished processing bar');\n});\n\n// add some items to the front of the queue\n\nq.unshift({name: 'bar'}, function (err) {\n    console.log('finished processing bar');\n});\n```\n\n---------------------------------------\n\n<a name=\"cargo\" />\n### cargo(worker, [payload])\n\nCreates a cargo object with th
 e specified payload. Tasks added to the\ncargo will be processed altogether (up to the payload limit). If the\nworker is in progress, the task is queued until it is available. Once\nthe worker has completed some tasks, each callback of those tasks is called.\n\n__Arguments__\n\n* worker(tasks, callback) - An asynchronous function for processing an array of\n  queued tasks, which must call its callback(err) argument when finished, with \n  an optional error as an argument.\n* payload - An optional integer for determining how many tasks should be\n  processed per round; if omitted, the default is unlimited.\n\n__Cargo objects__\n\nThe cargo object returned by this function has the following properties and\nmethods:\n\n* length() - a function returning the number of items waiting to be processed.\n* payload - an integer for determining how many tasks should be\n  process per round. This property can be changed after a cargo is created to\n  alter the payload on-the-fly.\n* push(task, [
 callback]) - add a new task to the queue, the callback is called\n  once the worker has finished processing the task.\n  instead of a single task, an array of tasks can be submitted. the respective callback is used for every task in the list.\n* saturated - a callback that is called when the queue length hits the concurrency and further tasks will be queued\n* empty - a callback that is called when the last item from the queue is given to a worker\n* drain - a callback that is called when the last item from the queue has returned from the worker\n\n__Example__\n\n```js\n// create a cargo object with payload 2\n\nvar cargo = async.cargo(function (tasks, callback) {\n    for(var i=0; i<tasks.length; i++){\n      console.log('hello ' + tasks[i].name);\n    }\n    callback();\n}, 2);\n\n\n// add some items\n\ncargo.push({name: 'foo'}, function (err) {\n    console.log('finished processing foo');\n});\ncargo.push({name: 'bar'}, function (err) {\n    console.log('finished processing bar')
 ;\n});\ncargo.push({name: 'baz'}, function (err) {\n    console.log('finished processing baz');\n});\n```\n\n---------------------------------------\n\n<a name=\"auto\" />\n### auto(tasks, [callback])\n\nDetermines the best order for running functions based on their requirements.\nEach function can optionally depend on other functions being completed first,\nand each function is run as soon as its requirements are satisfied. If any of\nthe functions pass an error to their callback, that function will not complete\n(so any other functions depending on it will not run) and the main callback\nwill be called immediately with the error. Functions also receive an object\ncontaining the results of functions which have completed so far.\n\nNote, all functions are called with a results object as a second argument, \nso it is unsafe to pass functions in the tasks object which cannot handle the\nextra argument. For example, this snippet of code:\n\n```js\nasync.auto({\n  readData: async.apply(
 fs.readFile, 'data.txt', 'utf-8');\n}, callback);\n```\n\nwill have the effect of calling readFile with the results object as the last\nargument, which will fail:\n\n```js\nfs.readFile('data.txt', 'utf-8', cb, {});\n```\n\nInstead, wrap the call to readFile in a function which does not forward the \nresults object:\n\n```js\nasync.auto({\n  readData: function(cb, results){\n    fs.readFile('data.txt', 'utf-8', cb);\n  }\n}, callback);\n```\n\n__Arguments__\n\n* tasks - An object literal containing named functions or an array of\n  requirements, with the function itself the last item in the array. The key\n  used for each function or array is used when specifying requirements. The \n  function receives two arguments: (1) a callback(err, result) which must be \n  called when finished, passing an error (which can be null) and the result of \n  the function's execution, and (2) a results object, containing the results of\n  the previously executed functions.\n* callback(err, results) - 
 An optional callback which is called when all the\n  tasks have been completed. The callback will receive an error as an argument\n  if any tasks pass an error to their callback. Results will always be passed\n\tbut if an error occurred, no other tasks will be performed, and the results\n\tobject will only contain partial results.\n  \n\n__Example__\n\n```js\nasync.auto({\n    get_data: function(callback){\n        // async code to get some data\n    },\n    make_folder: function(callback){\n        // async code to create a directory to store a file in\n        // this is run at the same time as getting the data\n    },\n    write_file: ['get_data', 'make_folder', function(callback){\n        // once there is some data and the directory exists,\n        // write the data to a file in the directory\n        callback(null, filename);\n    }],\n    email_link: ['write_file', function(callback, results){\n        // once the file is written let's email a link to it...\n        // resul
 ts.write_file contains the filename returned by write_file.\n    }]\n});\n```\n\nThis is a fairly trivial example, but to do this using the basic parallel and\nseries functions would look like this:\n\n```js\nasync.parallel([\n    function(callback){\n        // async code to get some data\n    },\n    function(callback){\n        // async code to create a directory to store a file in\n        // this is run at the same time as getting the data\n    }\n],\nfunction(err, results){\n    async.series([\n        function(callback){\n            // once there is some data and the directory exists,\n            // write the data to a file in the directory\n        },\n        function(callback){\n            // once the file is written let's email a link to it...\n        }\n    ]);\n});\n```\n\nFor a complicated series of async tasks using the auto function makes adding\nnew tasks much easier and makes the code more readable.\n\n\n---------------------------------------\n\n<a name=\"iter
 ator\" />\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the array,\nreturning a continuation to call the next one after that. It's also possible to\n'peek' the next iterator by doing iterator.next().\n\nThis function is used internally by the async module but can be useful when\nyou want to manually control the flow of functions in series.\n\n__Arguments__\n\n* tasks - An array of functions to run.\n\n__Example__\n\n```js\nvar iterator = async.iterator([\n    function(){ sys.p('one'); },\n    function(){ sys.p('two'); },\n    function(){ sys.p('three'); }\n]);\n\nnode> var iterator2 = iterator();\n'one'\nnode> var iterator3 = iterator2();\n'two'\nnode> iterator3();\n'three'\nnode> var nextfn = iterator2.next();\nnode> nextfn();\n'three'\n```\n\n---------------------------------------\n\n<a name=\"apply\" />\n### apply(function, arguments..)\n\nCreates a continuation function with some arguments already applied, a useful\nshorthand when combine
 d with other control flow functions. Any arguments\npassed to the returned function are added to the arguments originally passed\nto apply.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to automatically apply when the\n  continuation is called.\n\n__Example__\n\n```js\n// using apply\n\nasync.parallel([\n    async.apply(fs.writeFile, 'testfile1', 'test1'),\n    async.apply(fs.writeFile, 'testfile2', 'test2'),\n]);\n\n\n// the same process without using apply\n\nasync.parallel([\n    function(callback){\n        fs.writeFile('testfile1', 'test1', callback);\n    },\n    function(callback){\n        fs.writeFile('testfile2', 'test2', callback);\n    }\n]);\n```\n\nIt's possible to pass any number of additional arguments when calling the\ncontinuation:\n\n```js\nnode> var fn = async.apply(sys.puts, 'one');\nnode> fn('two', 'three');\none\ntwo\nthree\n```\n\n---------------------------------------\n
 \n<a name=\"nextTick\" />\n### nextTick(callback)\n\nCalls the callback on a later loop around the event loop. In node.js this just\ncalls process.nextTick, in the browser it falls back to setImmediate(callback)\nif available, otherwise setTimeout(callback, 0), which means other higher priority\nevents may precede the execution of the callback.\n\nThis is used internally for browser-compatibility purposes.\n\n__Arguments__\n\n* callback - The function to call on a later loop around the event loop.\n\n__Example__\n\n```js\nvar call_order = [];\nasync.nextTick(function(){\n    call_order.push('two');\n    // call_order now equals ['one','two']\n});\ncall_order.push('one')\n```\n\n<a name=\"times\" />\n### times(n, callback)\n\nCalls the callback n times and accumulates results in the same manner\nyou would use with async.map.\n\n__Arguments__\n\n* n - The number of times to run the function.\n* callback - The function to call n times.\n\n__Example__\n\n```js\n// Pretend this is some c
 omplicated async factory\nvar createUser = function(id, callback) {\n  callback(null, {\n    id: 'user' + id\n  })\n}\n// generate 5 users\nasync.times(5, function(n, next){\n    createUser(n, function(err, user) {\n      next(err, user)\n    })\n}, function(err, users) {\n  // we should now have 5 users\n});\n```\n\n<a name=\"timesSeries\" />\n### timesSeries(n, callback)\n\nThe same as times only the iterator is applied to each item in the array in\nseries. The next iterator is only called once the current one has completed\nprocessing. The results array will be in the same order as the original.\n\n\n## Utils\n\n<a name=\"memoize\" />\n### memoize(fn, [hasher])\n\nCaches the results of an async function. When creating a hash to store function\nresults against, the callback is omitted from the hash and an optional hash\nfunction can be used.\n\nThe cache of results is exposed as the `memo` property of the function returned\nby `memoize`.\n\n__Arguments__\n\n* fn - the function you
  to proxy and cache results from.\n* hasher - an optional function for generating a custom hash for storing\n  results, it has all the arguments applied to it apart from the callback, and\n  must be synchronous.\n\n__Example__\n\n```js\nvar slow_fn = function (name, callback) {\n    // do something\n    callback(null, result);\n};\nvar fn = async.memoize(slow_fn);\n\n// fn can now be used as if it were slow_fn\nfn('some name', function () {\n    // callback\n});\n```\n\n<a name=\"unmemoize\" />\n### unmemoize(fn)\n\nUndoes a memoized function, reverting it to the original, unmemoized\nform. Comes handy in tests.\n\n__Arguments__\n\n* fn - the memoized function\n\n<a name=\"log\" />\n### log(function, arguments)\n\nLogs the result of an async function to the console. Only works in node.js or\nin browsers that support console.log and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.log is\ncalled on each argument in order.\n\n
 __Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n```js\nvar hello = function(name, callback){\n    setTimeout(function(){\n        callback(null, 'hello ' + name);\n    }, 1000);\n};\n```\n```js\nnode> async.log(hello, 'world');\n'hello world'\n```\n\n---------------------------------------\n\n<a name=\"dir\" />\n### dir(function, arguments)\n\nLogs the result of an async function to the console using console.dir to\ndisplay the properties of the resulting object. Only works in node.js or\nin browsers that support console.dir and console.error (such as FF and Chrome).\nIf multiple arguments are returned from the async function, console.dir is\ncalled on each argument in order.\n\n__Arguments__\n\n* function - The function you want to eventually apply all arguments to.\n* arguments... - Any number of arguments to apply to the function.\n\n__Example__\n\n```js
 \nvar hello = function(name, callback){\n    setTimeout(function(){\n        callback(null, {hello: name});\n    }, 1000);\n};\n```\n```js\nnode> async.dir(hello, 'world');\n{hello: 'world'}\n```\n\n---------------------------------------\n\n<a name=\"noConflict\" />\n### noConflict()\n\nChanges the value of async back to its original value, returning a reference to the\nasync object.\n",
   "readmeFilename": "README.md",
   "_id": "async@0.2.9",
-  "_from": "async@0.2.9"
+  "dist": {
+    "shasum": "1d805cdf65c236e4b351b9265610066e4ae4185c"
+  },
+  "_from": "async@0.2.9",
+  "_resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz"
 }

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/elementtree/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/elementtree/package.json b/blackberry10/node_modules/elementtree/package.json
index 5a637e9..749a8d7 100644
--- a/blackberry10/node_modules/elementtree/package.json
+++ b/blackberry10/node_modules/elementtree/package.json
@@ -55,5 +55,5 @@
     "url": "https://github.com/racker/node-elementtree/issues"
   },
   "_id": "elementtree@0.1.5",
-  "_from": "elementtree@0.1.x"
+  "_from": "elementtree@0.1.5"
 }

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/exit/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/exit/package.json b/blackberry10/node_modules/exit/package.json
index 57841ee..0c6977a 100644
--- a/blackberry10/node_modules/exit/package.json
+++ b/blackberry10/node_modules/exit/package.json
@@ -47,9 +47,5 @@
   "readme": "# exit [![Build Status](https://secure.travis-ci.org/cowboy/node-exit.png?branch=master)](http://travis-ci.org/cowboy/node-exit)\n\nA replacement for process.exit that ensures stdio are fully drained before exiting.\n\nTo make a long story short, if `process.exit` is called on Windows, script output is often truncated when pipe-redirecting `stdout` or `stderr`. This module attempts to work around this issue by waiting until those streams have been completely drained before actually calling `process.exit`.\n\nSee [Node.js issue #3584](https://github.com/joyent/node/issues/3584) for further reference.\n\nTested in OS X 10.8, Windows 7 on Node.js 0.8.25 and 0.10.18.\n\nBased on some code by [@vladikoff](https://github.com/vladikoff).\n\n## Getting Started\nInstall the module with: `npm install exit`\n\n```javascript\nvar exit = require('exit');\n\n// These lines should appear in the output, EVEN ON WINDOWS.\nconsole.log(\"omg\");\nconsole.error(\"yay\");\n\n// process.exit
 (5);\nexit(5);\n\n// These lines shouldn't appear in the output.\nconsole.log(\"wtf\");\nconsole.error(\"bro\");\n```\n\n## Don't believe me? Try it for yourself.\n\nIn Windows, clone the repo and cd to the `test\\fixtures` directory. The only difference between [log.js](test/fixtures/log.js) and [log-broken.js](test/fixtures/log-broken.js) is that the former uses `exit` while the latter calls `process.exit` directly.\n\nThis test was done using cmd.exe, but you can see the same results using `| grep \"std\"` in either PowerShell or git-bash.\n\n```\nC:\\node-exit\\test\\fixtures>node log.js 0 10 stdout stderr 2>&1 | find \"std\"\nstdout 0\nstderr 0\nstdout 1\nstderr 1\nstdout 2\nstderr 2\nstdout 3\nstderr 3\nstdout 4\nstderr 4\nstdout 5\nstderr 5\nstdout 6\nstderr 6\nstdout 7\nstderr 7\nstdout 8\nstderr 8\nstdout 9\nstderr 9\n\nC:\\node-exit\\test\\fixtures>node log-broken.js 0 10 stdout stderr 2>&1 | find \"std\"\n\nC:\\node-exit\\test\\fixtures>\n```\n\n## Contributing\nIn lieu o
 f a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).\n\n## Release History\n2013-09-26 - v0.1.1 - Fixed some bugs. It seems to actually work now!  \n2013-09-20 - v0.1.0 - Initial release.\n\n## License\nCopyright (c) 2013 \"Cowboy\" Ben Alman  \nLicensed under the MIT license.\n",
   "readmeFilename": "README.md",
   "_id": "exit@0.1.1",
-  "dist": {
-    "shasum": "8bf4af1e41fdb092476006764db9f750dfcddc4e"
-  },
-  "_from": "exit@0.1.1",
-  "_resolved": "https://registry.npmjs.org/exit/-/exit-0.1.1.tgz"
+  "_from": "exit@0.1.1"
 }

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/Jakefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/Jakefile b/blackberry10/node_modules/jake/Jakefile
deleted file mode 100644
index b7725cd..0000000
--- a/blackberry10/node_modules/jake/Jakefile
+++ /dev/null
@@ -1,43 +0,0 @@
-var fs = require('fs')
-  , path = require('path');
-
-var t = new jake.TestTask('Jake', function () {
-  this.testFiles.include('test/*.js');
-  this.testFiles.exclude('test/helpers.js');
-});
-
-namespace('doc', function () {
-  task('generate', ['doc:clobber'], function () {
-    var cmd = '../node-jsdoc-toolkit/app/run.js -n -r=100 ' +
-        '-t=../node-jsdoc-toolkit/templates/codeview -d=./doc/ ./lib';
-    jake.logger.log('Generating docs ...');
-    jake.exec([cmd], function () {
-      jake.logger.log('Done.');
-      complete();
-    });
-  }, {async: true});
-
-  task('clobber', function () {
-    var cmd = 'rm -fr ./doc/*';
-    jake.exec([cmd], function () {
-      jake.logger.log('Clobbered old docs.');
-      complete();
-    });
-  }, {async: true});
-
-});
-
-desc('Generate docs for Jake');
-task('doc', ['doc:generate']);
-
-var p = new jake.NpmPublishTask('jake', [
-  'Makefile'
-, 'Jakefile'
-, 'README.md'
-, 'package.json'
-, 'lib/**'
-, 'bin/**'
-, 'test/**'
-]);
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/Makefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/Makefile b/blackberry10/node_modules/jake/Makefile
deleted file mode 100644
index 3d0574e..0000000
--- a/blackberry10/node_modules/jake/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Jake JavaScript build tool
-# Copyright 2112 Matthew Eernisse (mde@fleegix.org)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-.PHONY: all build install clean uninstall
-
-PREFIX=/usr/local
-DESTDIR=
-
-all: build
-
-build:
-	@echo 'Jake built.'
-
-install:
-	@mkdir -p $(DESTDIR)$(PREFIX)/bin && \
-    mkdir -p $(DESTDIR)$(PREFIX)/lib/node_modules/jake && \
-    mkdir -p ./node_modules && \
-    npm install utilities minimatch && \
-		cp -R ./* $(DESTDIR)$(PREFIX)/lib/node_modules/jake/ && \
-		ln -snf ../lib/node_modules/jake/bin/cli.js $(DESTDIR)$(PREFIX)/bin/jake && \
-		chmod 755 $(DESTDIR)$(PREFIX)/lib/node_modules/jake/bin/cli.js && \
-		echo 'Jake installed.'
-
-clean:
-	@true
-
-uninstall:
-	@rm -f $(DESTDIR)$(PREFIX)/bin/jake && \
-		rm -fr $(DESTDIR)$(PREFIX)/lib/node_modules/jake/ && \
-		echo 'Jake uninstalled.'

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/README.md b/blackberry10/node_modules/jake/README.md
deleted file mode 100644
index 5cb7cc9..0000000
--- a/blackberry10/node_modules/jake/README.md
+++ /dev/null
@@ -1,946 +0,0 @@
-### Jake -- JavaScript build tool for Node.js
-
-### Installing with [NPM](http://npmjs.org/)
-
-Install globally with:
-
-    npm install -g jake
-
-Or you may also install it as a development dependency in a package.json file:
-
-    // package.json
-    "devDependencies": {
-      "jake": "latest"
-    }
-
-Then install it with `npm install`
-
-Note Jake is intended to be mostly a command-line tool, but lately there have been
-changes to it so it can be either embedded, or run from inside your project.
-
-### Installing from source
-
-Prerequisites: Jake requires [Node.js](<http://nodejs.org/>), and the
-[utilities](https://npmjs.org/package/utilities) and
-[minimatch](https://npmjs.org/package/minimatch) modules.
-
-Get Jake:
-
-    git clone git://github.com/mde/jake.git
-
-Build Jake:
-
-    cd jake && make && sudo make install
-
-Even if you're installing Jake from source, you'll still need NPM for installing
-the few modules Jake depends on. `make install` will do this automatically for
-you.
-
-By default Jake is installed in "/usr/local." To install it into a different
-directory (e.g., one that doesn't require super-user privilege), pass the PREFIX
-variable to the `make install` command.  For example, to install it into a
-"jake" directory in your home directory, you could use this:
-
-    make && make install PREFIX=~/jake
-
-If do you install Jake somewhere special, you'll need to add the "bin" directory
-in the install target to your PATH to get access to the `jake` executable.
-
-### Windows, installing from source
-
-For Windows users installing from source, there are some additional steps.
-
-*Assumed: current directory is the same directory where node.exe is present.*
-
-Get Jake:
-
-    git clone git://github.com/mde/jake.git node_modules/jake
-
-Copy jake.bat and jake to the same directory as node.exe
-
-    copy node_modules/jake/jake.bat jake.bat
-    copy node_modules/jake/jake jake
-
-Add the directory of node.exe to the environment PATH variable.
-
-### Basic usage
-
-    jake [options ...] [env variables ...] target
-
-### Description
-
-    Jake is a simple JavaScript build program with capabilities similar to the
-    regular make or rake command.
-
-    Jake has the following features:
-        * Jakefiles are in standard JavaScript syntax
-        * Tasks with prerequisites
-        * Namespaces for tasks
-        * Async task execution
-
-### Options
-
-    -V/v
-    --version                   Display the Jake version.
-
-    -h
-    --help                      Display help message.
-
-    -f *FILE*
-    --jakefile *FILE*           Use FILE as the Jakefile.
-
-    -C *DIRECTORY*
-    --directory *DIRECTORY*     Change to DIRECTORY before running tasks.
-
-    -q
-    --quiet                     Do not log messages to standard output.
-
-    -J *JAKELIBDIR*
-    --jakelibdir *JAKELIBDIR*   Auto-import any .jake files in JAKELIBDIR.
-                                (default is 'jakelib')
-
-    -B
-    --always-make               Unconditionally make all targets.
-
-    -t
-    --trace                     Enable full backtrace.
-
-    -T/ls
-    --tasks                     Display the tasks (matching optional PATTERN)
-                                with descriptions, then exit.
-
-### Jakefile syntax
-
-A Jakefile is just executable JavaScript. You can include whatever JavaScript
-you want in it.
-
-## API Docs
-
-API docs [can be found here](http://mde.github.com/jake/doc/).
-
-## Tasks
-
-Use `task` to define tasks. It has one required argument, the task-name, and
-three optional arguments:
-
-```javascript
-task(name, [prerequisites], [action], [opts]);
-```
-
-The `name` argument is a String with the name of the task, and `prerequisites`
-is an optional Array arg of the list of prerequisite tasks to perform first.
-
-The `action` is a Function defininng the action to take for the task. (Note that
-Object-literal syntax for name/prerequisites in a single argument a la Rake is
-also supported, but JavaScript's lack of support for dynamic keys in Object
-literals makes it not very useful.) The action is invoked with the Task object
-itself as the execution context (i.e, "this" inside the action references the
-Task object).
-
-The `opts` argument is the normal JavaScript-style 'options' object. When a
-task's operations are asynchronous, the `async` property should be set to
-`true`, and the task must call `complete()` to signal to Jake that the task is
-done, and execution can proceed. By default the `async` property is `false`.
-
-Tasks created with `task` are always executed when asked for (or are a
-prerequisite). Tasks created with `file` are only executed if no file with the
-given name exists or if any of its file-prerequisites are more recent than the
-file named by the task. Also, if any prerequisite is a regular task, the file
-task will always be executed.
-
-Use `desc` to add a string description of the task.
-
-Here's an example:
-
-```javascript
-desc('This is the default task.');
-task('default', function (params) {
-  console.log('This is the default task.');
-});
-
-desc('This task has prerequisites.');
-task('hasPrereqs', ['foo', 'bar', 'baz'], function (params) {
-  console.log('Ran some prereqs first.');
-});
-```
-
-And here's an example of an asynchronous task:
-
-```javascript
-desc('This is an asynchronous task.');
-task('asyncTask', {async: true}, function () {
-  setTimeout(complete, 1000);
-});
-```
-
-A Task is also an EventEmitter which emits the 'complete' event when it is
-finished. This allows asynchronous tasks to be run from within other asked via
-either `invoke` or `execute`, and ensure they will complete before the rest of
-the containing task executes. See the section "Running tasks from within other
-tasks," below.
-
-### File-tasks
-
-Create a file-task by calling `file`.
-
-File-tasks create a file from one or more other files. With a file-task, Jake
-checks both that the file exists, and also that it is not older than the files
-specified by any prerequisite tasks. File-tasks are particularly useful for
-compiling something from a tree of source files.
-
-```javascript
-desc('This builds a minified JS file for production.');
-file('foo-minified.js', ['bar', 'foo-bar.js', 'foo-baz.js'], function () {
-  // Code to concat and minify goes here
-});
-```
-
-### Directory-tasks
-
-Create a directory-task by calling `directory`.
-
-Directory-tasks create a directory for use with for file-tasks. Jake checks for
-the existence of the directory, and only creates it if needed.
-
-```javascript
-desc('This creates the bar directory for use with the foo-minified.js file-task.');
-directory('bar');
-```
-
-This task will create the directory when used as a prerequisite for a file-task,
-or when run from the command-line.
-
-### Namespaces
-
-Use `namespace` to create a namespace of tasks to perform. Call it with two arguments:
-
-```javascript
-namespace(name, namespaceTasks);
-```
-
-Where is `name` is the name of the namespace, and `namespaceTasks` is a function
-with calls inside it to `task` or `desc` definining all the tasks for that
-namespace.
-
-Here's an example:
-
-```javascript
-desc('This is the default task.');
-task('default', function () {
-  console.log('This is the default task.');
-});
-
-namespace('foo', function () {
-  desc('This the foo:bar task');
-  task('bar', function () {
-    console.log('doing foo:bar task');
-  });
-
-  desc('This the foo:baz task');
-  task('baz', ['default', 'foo:bar'], function () {
-    console.log('doing foo:baz task');
-  });
-
-});
-```
-
-In this example, the foo:baz task depends on the the default and foo:bar tasks.
-
-### Passing parameters to jake
-
-Parameters can be passed to Jake two ways: plain arguments, and environment
-variables.
-
-To pass positional arguments to the Jake tasks, enclose them in square braces,
-separated by commas, after the name of the task on the command-line. For
-example, with the following Jakefile:
-
-```javascript
-desc('This is an awesome task.');
-task('awesome', function (a, b, c) {
-  console.log(a, b, c);
-});
-```
-
-You could run `jake` like this:
-
-    jake awesome[foo,bar,baz]
-
-And you'd get the following output:
-
-    foo bar baz
-
-Note that you *cannot* uses spaces between the commas separating the parameters.
-
-Any parameters passed after the Jake task that contain an equals sign (=) will
-be added to process.env.
-
-With the following Jakefile:
-
-```javascript
-desc('This is an awesome task.');
-task('awesome', function (a, b, c) {
-  console.log(a, b, c);
-  console.log(process.env.qux, process.env.frang);
-});
-```
-
-You could run `jake` like this:
-
-    jake awesome[foo,bar,baz] qux=zoobie frang=asdf
-
-And you'd get the following output:
-
-    foo bar baz
-    zoobie asdf
-Running `jake` with no arguments runs the default task.
-
-__Note for zsh users__ : you will need to escape the brackets or wrap in single
-quotes like this to pass parameters :
-
-    jake 'awesome[foo,bar,baz]'
-
-An other solution is to desactivate permannently file-globbing for the `jake`
-command. You can do this by adding this line to your `.zshrc` file :
-
-    alias jake="noglob jake"
-
-### Cleanup after all tasks run, jake 'complete' event
-
-The base 'jake' object is an EventEmitter, and fires a 'complete' event after
-running all tasks.
-
-This is sometimes useful when a task starts a process which keeps the Node
-event-loop running (e.g., a database connection). If you know you want to stop
-the running Node process after all tasks have finished, you can set a listener
-for the 'complete' event, like so:
-
-```javascript
-jake.addListener('complete', function () {
-  process.exit();
-});
-```
-
-### Running tasks from within other tasks
-
-Jake supports the ability to run a task from within another task via the
-`invoke` and `execute` methods.
-
-The `invoke` method will run the desired task, along with its prerequisites:
-
-```javascript
-desc('Calls the foo:bar task and its prerequisites.');
-task('invokeFooBar', function () {
-  // Calls foo:bar and its prereqs
-  jake.Task['foo:bar'].invoke();
-});
-```
-
-The `invoke` method will only run the task once, even if you call it repeatedly.
-
-```javascript
-desc('Calls the foo:bar task and its prerequisites.');
-task('invokeFooBar', function () {
-  // Calls foo:bar and its prereqs
-  jake.Task['foo:bar'].invoke();
-  // Does nothing
-  jake.Task['foo:bar'].invoke();
-});
-```
-
-The `execute` method will run the desired task without its prerequisites:
-
-```javascript
-desc('Calls the foo:bar task without its prerequisites.');
-task('executeFooBar', function () {
-  // Calls foo:bar without its prereqs
-  jake.Task['foo:baz'].execute();
-});
-```
-
-Calling `execute` repeatedly will run the desired task repeatedly.
-
-```javascript
-desc('Calls the foo:bar task without its prerequisites.');
-task('executeFooBar', function () {
-  // Calls foo:bar without its prereqs
-  jake.Task['foo:baz'].execute();
-  // Can keep running this over and over
-  jake.Task['foo:baz'].execute();
-  jake.Task['foo:baz'].execute();
-});
-```
-
-If you want to run the task and its prerequisites more than once, you can use
-`invoke` with the `reenable` method.
-
-```javascript
-desc('Calls the foo:bar task and its prerequisites.');
-task('invokeFooBar', function () {
-  // Calls foo:bar and its prereqs
-  jake.Task['foo:bar'].invoke();
-  // Does nothing
-  jake.Task['foo:bar'].invoke();
-  // Only re-runs foo:bar, but not its prerequisites
-  jake.Task['foo:bar'].reenable();
-  jake.Task['foo:bar'].invoke();
-});
-```
-
-The `reenable` method takes a single Boolean arg, a 'deep' flag, which reenables
-the task's prerequisites if set to true.
-
-```javascript
-desc('Calls the foo:bar task and its prerequisites.');
-task('invokeFooBar', function () {
-  // Calls foo:bar and its prereqs
-  jake.Task['foo:bar'].invoke();
-  // Does nothing
-  jake.Task['foo:bar'].invoke();
-  // Re-runs foo:bar and all of its prerequisites
-  jake.Task['foo:bar'].reenable(true);
-  jake.Task['foo:bar'].invoke();
-});
-```
-
-It's easy to pass params on to a sub-task run via `invoke` or `execute`:
-
-```javascript
-desc('Passes params on to other tasks.');
-task('passParams', function () {
-  var t = jake.Task['foo:bar'];
-  // Calls foo:bar, passing along current args
-  t.invoke.apply(t, arguments);
-});
-```
-
-### Managing asynchrony without prereqs (e.g., when using `invoke`)
-
-You can mix sync and async without problems when using normal prereqs, because
-the Jake execution loop takes care of the difference for you. But when you call
-`invoke` or `execute`, you have to manage the asynchrony yourself.
-
-Here's a correct working example:
-
-```javascript
-task('async1', ['async2'], {async: true}, function () {
-    console.log('-- async1 start ----------------');
-    setTimeout(function () {
-        console.log('-- async1 done ----------------');
-        complete();
-    }, 1000);
-});
-
-task('async2', {async: true}, function () {
-    console.log('-- async2 start ----------------');
-    setTimeout(function () {
-        console.log('-- async2 done ----------------');
-        complete();
-    }, 500);
-});
-
-task('init', ['async1', 'async2'], {async: true}, function () {
-    console.log('-- init start ----------------');
-    setTimeout(function () {
-        console.log('-- init done ----------------');
-        complete();
-    }, 100);
-});
-
-task('default', {async: true}, function () {
-  console.log('-- default start ----------------');
-  var init = jake.Task.init;
-  init.addListener('complete', function () {
-    console.log('-- default done ----------------');
-    complete();
-  });
-  init.invoke();
-});
-```
-
-You have to declare the "default" task as asynchronous as well, and call
-`complete` on it when "init" finishes. Here's the output:
-
-    -- default start ----------------
-    -- async2 start ----------------
-    -- async2 done ----------------
-    -- async1 start ----------------
-    -- async1 done ----------------
-    -- init start ----------------
-    -- init done ----------------
-    -- default done ----------------
-
-You get what you expect -- "default" starts, the rest runs, and finally
-"default" finishes.
-
-### Evented tasks
-
-Tasks are EventEmitters. They can fire 'complete' and 'error' events.
-
-If a task called via `invoke` is asynchronous, you can set a listener on the
-'complete' event to run any code that depends on it.
-
-```javascript
-desc('Calls the async foo:baz task and its prerequisites.');
-task('invokeFooBaz', {async: true}, function () {
-  var t = jake.Task['foo:baz'];
-  t.addListener('complete', function () {
-    console.log('Finished executing foo:baz');
-    // Maybe run some other code
-    // ...
-    // Complete the containing task
-    complete();
-  });
-  // Kick off foo:baz
-  t.invoke();
-});
-```
-
-If you want to handle the errors in a task in some specific way, you can set a
-listener for the 'error' event, like so:
-
-```javascript
-namespace('vronk', function () {
-  task('groo', function () {
-    var t = jake.Task['vronk:zong'];
-    t.addListener('error', function (e) {
-      console.log(e.message);
-    });
-    t.invoke();
-  });
-
-  task('zong', function () {
-    throw new Error('OMFGZONG');
-  });
-});
-```
-
-If no specific listener is set for the "error" event, errors are handled by
-Jake's generic error-handling.
-
-### Aborting a task
-
-You can abort a task by calling the `fail` function, and Jake will abort the
-currently running task. You can pass a customized error message to `fail`:
-
-```javascript
-desc('This task fails.');
-task('failTask', function () {
-  fail('Yikes. Something back happened.');
-});
-```
-
-You can also pass an optional exit status-code to the fail command, like so:
-
-```javascript
-desc('This task fails with an exit-status of 42.');
-task('failTaskQuestionCustomStatus', function () {
-  fail('What is the answer?', 42);
-});
-```
-
-The process will exit with a status of 42.
-
-Uncaught errors will also abort the currently running task.
-
-### Showing the list of tasks
-
-Passing `jake` the -T or --tasks flag will display the full list of tasks
-available in a Jakefile, along with their descriptions:
-
-    $ jake -T
-    jake default       # This is the default task.
-    jake asdf          # This is the asdf task.
-    jake concat.txt    # File task, concating two files together
-    jake failure       # Failing task.
-    jake lookup        # Jake task lookup by name.
-    jake foo:bar       # This the foo:bar task
-    jake foo:fonebone  # This the foo:fonebone task
-
-Setting a value for -T/--tasks will filter the list by that value:
-
-    $ jake -T foo
-    jake foo:bar       # This the foo:bar task
-    jake foo:fonebone  # This the foo:fonebone task
-
-The list displayed will be all tasks whose namespace/name contain the filter-string.
-
-## Breaking things up into multiple files
-
-Jake will automatically look for files with a .jake extension in a 'jakelib'
-directory in your project, and load them (via `require`) after loading your
-Jakefile. (The directory name can be overridden using the -J/--jakelibdir
-command-line option.)
-
-This allows you to break your tasks up over multiple files -- a good way to do
-it is one namespace per file: e.g., a `zardoz` namespace full of tasks in
-'jakelib/zardox.jake'.
-
-Note that these .jake files each run in their own module-context, so they don't
-have access to each others' data. However, the Jake API methods, and the
-task-hierarchy are globally available, so you can use tasks in any file as
-prerequisites for tasks in any other, just as if everything were in a single
-file.
-
-Environment-variables set on the command-line are likewise also naturally
-available to code in all files via process.env.
-
-## File-utils
-
-Since shelling out in Node is an asynchronous operation, Jake comes with a few
-useful file-utilities with a synchronous API, that make scripting easier.
-
-The `jake.mkdirP` utility recursively creates a set of nested directories. It
-will not throw an error if any of the directories already exists. Here's an example:
-
-```javascript
-jake.mkdirP('app/views/layouts');
-```
-
-The `jake.cpR` utility does a recursive copy of a file or directory. It takes
-two arguments, the file/directory to copy, and the destination. Note that this
-command can only copy files and directories; it does not perform globbing (so
-arguments like '*.txt' are not possible).
-
-```javascript
-jake.cpR(path.join(sourceDir, '/templates'), currentDir);
-```
-
-This would copy 'templates' (and all its contents) into `currentDir`.
-
-The `jake.readdirR` utility gives you a recursive directory listing, giving you
-output somewhat similar to the Unix `find` command. It only works with a
-directory name, and does not perform filtering or globbing.
-
-```javascript
-jake.readdirR('pkg');
-```
-
-This would return an array of filepaths for all files in the 'pkg' directory,
-and all its subdirectories.
-
-The `jake.rmRf` utility recursively removes a directory and all its contents.
-
-```javascript
-jake.rmRf('pkg');
-```
-
-This would remove the 'pkg' directory, and all its contents.
-
-## Running shell-commands: `jake.exec` and `jake.createExec`
-
-Jake also provides a more general utility function for running a sequence of
-shell-commands.
-
-### `jake.exec`
-
-The `jake.exec` command takes an array of shell-command strings, and an optional
-callback to run after completing them. Here's an example from Jake's Jakefile,
-that runs the tests:
-
-```javascript
-desc('Runs the Jake tests.');
-task('test', {async: true}, function () {
-  var cmds = [
-    'node ./tests/parseargs.js'
-  , 'node ./tests/task_base.js'
-  , 'node ./tests/file_task.js'
-  ];
-  jake.exec(cmds, {printStdout: true}, function () {
-    console.log('All tests passed.');
-    complete();
-  });
-
-desc('Runs some apps in interactive mode.');
-task('interactiveTask', {async: true}, function () {
-  var cmds = [
-    'node' // Node conosle
-  , 'vim' // Open Vim
-  ];
-  jake.exec(cmds, {interactive: true}, function () {
-    complete();
-  });
-});
-```
-
-It also takes an optional options-object, with the following options:
-
- * `interactive` (tasks are interactive, trumps printStdout and
-    printStderr below, default false)
-
- * `printStdout` (print to stdout, default false)
-
- * `printStderr` (print to stderr, default false)
-
- * `breakOnError` (stop execution on error, default true)
-
-This command doesn't pipe input between commands -- it's for simple execution.
-
-### `jake.createExec` and the evented Exec object
-
-Jake also provides an evented interface for running shell commands. Calling
-`jake.createExec` returns an instance of `jake.Exec`, which is an `EventEmitter`
-that fires events as it executes commands.
-
-It emits the following events:
-
-* 'cmdStart': When a new command begins to run. Passes one arg, the command
-being run.
-
-* 'cmdEnd': When a command finishes. Passes one arg, the command
-being run.
-
-* 'stdout': When the stdout for the child-process recieves data. This streams
-the stdout data. Passes one arg, the chunk of data.
-
-* 'stderr': When the stderr for the child-process recieves data. This streams
-the stderr data. Passes one arg, the chunk of data.
-
-* 'error': When a shell-command exits with a non-zero status-code. Passes two
-args -- the error message, and the status code. If you do not set an error
-handler, and a command exits with an error-code, Jake will throw the unhandled
-error. If `breakOnError` is set to true, the Exec object will emit and 'error'
-event after the first error, and stop any further execution.
-
-To begin running the commands, you have to call the `run` method on it. It also
-has an `append` method for adding new commands to the list of commands to run.
-
-Here's an example:
-
-```javascript
-var ex = jake.createExec(['do_thing.sh'], {printStdout: true});
-ex.addListener('error', function (msg, code) {
-  if (code == 127) {
-    console.log("Couldn't find do_thing script, trying do_other_thing");
-    ex.append('do_other_thing.sh');
-  }
-  else {
-    fail('Fatal error: ' + msg, code);
-  }
-});
-ex.run();
-```
-
-Using the evented Exec object gives you a lot more flexibility in running shell
-commmands. But if you need something more sophisticated, Procstreams
-(<https://github.com/polotek/procstreams>) might be a good option.
-
-## Logging and output
-
-Using the -q/--quiet flag at the command-line will stop Jake from sending its
-normal output to standard output. Note that this only applies to built-in output
-from Jake; anything you output normally from your tasks will still be displayed.
-
-If you want to take advantage of the -q/--quiet flag in your own programs, you
-can use `jake.logger.log` and `jake.logger.error` for displaying output. These
-two commands will respect the flag, and suppress output correctly when the
-quiet-flag is on.
-
-You can check the current value of this flag in your own tasks by using
-`jake.program.opts.quiet`. If you want the output of a `jake.exec` shell-command
-to respect the quiet-flag, set your `printStdout` and `printStderr` options to
-false if the quiet-option is on:
-
-```javascript
-task('echo', {async: true}, function () {
-  jake.exec(['echo "hello"'], function () {
-    jake.logger.log('Done.');
-    complete();
-  }, {printStdout: !jake.program.opts.quiet});
-});
-```
-
-## PackageTask
-
-Instantiating a PackageTask programmically creates a set of tasks for packaging
-up your project for distribution. Here's an example:
-
-```javascript
-var t = new jake.PackageTask('fonebone', 'v0.1.2112', function () {
-  var fileList = [
-    'Jakefile'
-  , 'README.md'
-  , 'package.json'
-  , 'lib/*'
-  , 'bin/*'
-  , 'tests/*'
-  ];
-  this.packageFiles.include(fileList);
-  this.needTarGz = true;
-  this.needTarBz2 = true;
-});
-```
-
-This will automatically create a 'package' task that will assemble the specified
-files in 'pkg/fonebone-v0.1.2112,' and compress them according to the specified
-options. After running `jake package`, you'll have the following in pkg/:
-
-    fonebone-v0.1.2112
-    fonebone-v0.1.2112.tar.bz2
-    fonebone-v0.1.2112.tar.gz
-
-PackageTask also creates a 'clobber' task that removes the pkg/
-directory.
-
-The [PackageTask API
-docs](http://mde.github.com/jake/doc/symbols/jake.PackageTask.html) include a
-lot more information, including different archiving options.
-
-### FileList
-
-Jake's FileList takes a list of glob-patterns and file-names, and lazy-creates a
-list of files to include. Instead of immediately searching the filesystem to
-find the files, a FileList holds the pattern until it is actually used.
-
-When any of the normal JavaScript Array methods (or the `toArray` method) are
-called on the FileList, the pending patterns are resolved into an actual list of
-file-names. FileList uses the [minimatch](https://github.com/isaacs/minimatch) module.
-
-To build the list of files, use FileList's `include` and `exclude` methods:
-
-```javascript
-var list = new jake.FileList();
-list.include('foo/*.txt');
-list.include(['bar/*.txt', 'README.md']);
-list.include('Makefile', 'package.json');
-list.exclude('foo/zoobie.txt');
-list.exclude(/foo\/src.*.txt/);
-console.log(list.toArray());
-```
-
-The `include` method can be called either with an array of items, or multiple
-single parameters. Items can be either glob-patterns, or individual file-names.
-
-The `exclude` method will prevent files from being included in the list. These
-files must resolve to actual files on the filesystem. It can be called either
-with an array of items, or mutliple single parameters. Items can be
-glob-patterns, individual file-names, string-representations of
-regular-expressions, or regular-expression literals.
-
-## TestTask
-
-Instantiating a TestTask programmically creates a simple task for running tests
-for your project. The first argument of the constructor is the project-name
-(used in the description of the task), and the second argument is a function
-that defines the task. It allows you to specifify what files to run as tests,
-and what to name the task that gets created (defaults to "test" if unset).
-
-```javascript
-var t = new jake.TestTask('fonebone', function () {
-  var fileList = [
-    'tests/*'
-  , 'lib/adapters/**/test.js'
-  ];
-  this.testFiles.include(fileList);
-  this.testFiles.exclude('tests/helper.js');
-  this.testName = 'testMainAndAdapters';
-});
-```
-
-Tests in the specified file should be in the very simple format of
-test-functions hung off the export. These tests are converted into Jake tasks
-which Jake then runs normally.
-
-If a test needs to run asynchronously, simply define the test-function with a
-single argument, a callback. Jake will define this as an asynchronous task, and
-will wait until the callback is called in the test function to run the next test.
-
-Here's an example test-file:
-
-```javascript
-var assert = require('assert')
-  , tests;
-
-tests = {
-  'sync test': function () {
-    // Assert something
-    assert.ok(true);
-  }
-, 'async test': function (next) {
-    // Assert something else
-    assert.ok(true);
-    // Won't go next until this is called
-    next();
-  }
-, 'another sync test': function () {
-    // Assert something else
-    assert.ok(true);
-  }
-};
-
-module.exports = tests;
-```
-
-Jake's tests are also a good example of use of a TestTask.
-
-## NpmPublishTask
-
-The NpmPublishTask builds on top of PackageTask to allow you to do a version
-bump of your project, package it, and publish it to NPM. Define the task with
-your project's name, and the list of files you want packaged and published to
-NPM.
-
-Here's an example from Jake's Jakefile:
-
-```javascript
-var p = new jake.NpmPublishTask('jake', [
-  'Makefile'
-, 'Jakefile'
-, 'README.md'
-, 'package.json'
-, 'lib/*'
-, 'bin/*'
-, 'tests/*'
-]);
-```
-
-The NpmPublishTask will automatically create a `publish` task which performs the
-following steps:
-
-1. Bump the version number in your package.json
-2. Commit change in git, push it to GitHub
-3. Create a git tag for the version
-4. Push the tag to GitHub
-5. Package the new version of your project
-6. Publish it to NPM
-7. Clean up the package
-
-## CoffeeScript Jakefiles
-
-Jake can also handle Jakefiles in CoffeeScript. Be sure to make it
-Jakefile.coffee so Jake knows it's in CoffeeScript.
-
-Here's an example:
-
-```coffeescript
-util = require('util')
-
-desc 'This is the default task.'
-task 'default', (params) ->
-  console.log 'Ths is the default task.'
-  console.log(util.inspect(arguments))
-  jake.Task['new'].invoke []
-
-task 'new', ->
-  console.log 'ello from new'
-  jake.Task['foo:next'].invoke ['param']
-
-namespace 'foo', ->
-  task 'next', (param) ->
-    console.log 'ello from next with param: ' + param
-```
-
-## Related projects
-
-James Coglan's "Jake": <http://github.com/jcoglan/jake>
-
-Confusingly, this is a Ruby tool for building JavaScript packages from source code.
-
-280 North's Jake: <http://github.com/280north/jake>
-
-This is also a JavaScript port of Rake, which runs on the Narwhal platform.
-
-### License
-
-Licensed under the Apache License, Version 2.0
-(<http://www.apache.org/licenses/LICENSE-2.0>)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/bin/cli.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/bin/cli.js b/blackberry10/node_modules/jake/bin/cli.js
deleted file mode 100755
index e241f2b..0000000
--- a/blackberry10/node_modules/jake/bin/cli.js
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env node
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var args = process.argv.slice(2)
-  , jake = require('../lib/jake');
-
-jake.run.apply(jake, args);


[44/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/package.json b/blackberry10/node_modules/jake/package.json
deleted file mode 100644
index cc27a71..0000000
--- a/blackberry10/node_modules/jake/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  "name": "jake",
-  "description": "JavaScript build tool, similar to Make or Rake",
-  "keywords": [
-    "build",
-    "cli",
-    "make",
-    "rake"
-  ],
-  "version": "0.5.16",
-  "author": {
-    "name": "Matthew Eernisse",
-    "email": "mde@fleegix.org",
-    "url": "http://fleegix.org"
-  },
-  "bin": {
-    "jake": "./bin/cli.js"
-  },
-  "main": "./lib/jake.js",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/mde/jake.git"
-  },
-  "preferGlobal": true,
-  "dependencies": {
-    "minimatch": "0.2.x",
-    "utilities": "0.0.x"
-  },
-  "devDependencies": {},
-  "engines": {
-    "node": "*"
-  },
-  "readme": "### Jake -- JavaScript build tool for Node.js\n\n### Installing with [NPM](http://npmjs.org/)\n\nInstall globally with:\n\n    npm install -g jake\n\nOr you may also install it as a development dependency in a package.json file:\n\n    // package.json\n    \"devDependencies\": {\n      \"jake\": \"latest\"\n    }\n\nThen install it with `npm install`\n\nNote Jake is intended to be mostly a command-line tool, but lately there have been\nchanges to it so it can be either embedded, or run from inside your project.\n\n### Installing from source\n\nPrerequisites: Jake requires [Node.js](<http://nodejs.org/>), and the\n[utilities](https://npmjs.org/package/utilities) and\n[minimatch](https://npmjs.org/package/minimatch) modules.\n\nGet Jake:\n\n    git clone git://github.com/mde/jake.git\n\nBuild Jake:\n\n    cd jake && make && sudo make install\n\nEven if you're installing Jake from source, you'll still need NPM for installing\nthe few modules Jake depends on. `make install`
  will do this automatically for\nyou.\n\nBy default Jake is installed in \"/usr/local.\" To install it into a different\ndirectory (e.g., one that doesn't require super-user privilege), pass the PREFIX\nvariable to the `make install` command.  For example, to install it into a\n\"jake\" directory in your home directory, you could use this:\n\n    make && make install PREFIX=~/jake\n\nIf do you install Jake somewhere special, you'll need to add the \"bin\" directory\nin the install target to your PATH to get access to the `jake` executable.\n\n### Windows, installing from source\n\nFor Windows users installing from source, there are some additional steps.\n\n*Assumed: current directory is the same directory where node.exe is present.*\n\nGet Jake:\n\n    git clone git://github.com/mde/jake.git node_modules/jake\n\nCopy jake.bat and jake to the same directory as node.exe\n\n    copy node_modules/jake/jake.bat jake.bat\n    copy node_modules/jake/jake jake\n\nAdd the directory of node.
 exe to the environment PATH variable.\n\n### Basic usage\n\n    jake [options ...] [env variables ...] target\n\n### Description\n\n    Jake is a simple JavaScript build program with capabilities similar to the\n    regular make or rake command.\n\n    Jake has the following features:\n        * Jakefiles are in standard JavaScript syntax\n        * Tasks with prerequisites\n        * Namespaces for tasks\n        * Async task execution\n\n### Options\n\n    -V/v\n    --version                   Display the Jake version.\n\n    -h\n    --help                      Display help message.\n\n    -f *FILE*\n    --jakefile *FILE*           Use FILE as the Jakefile.\n\n    -C *DIRECTORY*\n    --directory *DIRECTORY*     Change to DIRECTORY before running tasks.\n\n    -q\n    --quiet                     Do not log messages to standard output.\n\n    -J *JAKELIBDIR*\n    --jakelibdir *JAKELIBDIR*   Auto-import any .jake files in JAKELIBDIR.\n                                (default is 'jake
 lib')\n\n    -B\n    --always-make               Unconditionally make all targets.\n\n    -t\n    --trace                     Enable full backtrace.\n\n    -T/ls\n    --tasks                     Display the tasks (matching optional PATTERN)\n                                with descriptions, then exit.\n\n### Jakefile syntax\n\nA Jakefile is just executable JavaScript. You can include whatever JavaScript\nyou want in it.\n\n## API Docs\n\nAPI docs [can be found here](http://mde.github.com/jake/doc/).\n\n## Tasks\n\nUse `task` to define tasks. It has one required argument, the task-name, and\nthree optional arguments:\n\n```javascript\ntask(name, [prerequisites], [action], [opts]);\n```\n\nThe `name` argument is a String with the name of the task, and `prerequisites`\nis an optional Array arg of the list of prerequisite tasks to perform first.\n\nThe `action` is a Function defininng the action to take for the task. (Note that\nObject-literal syntax for name/prerequisites in a single 
 argument a la Rake is\nalso supported, but JavaScript's lack of support for dynamic keys in Object\nliterals makes it not very useful.) The action is invoked with the Task object\nitself as the execution context (i.e, \"this\" inside the action references the\nTask object).\n\nThe `opts` argument is the normal JavaScript-style 'options' object. When a\ntask's operations are asynchronous, the `async` property should be set to\n`true`, and the task must call `complete()` to signal to Jake that the task is\ndone, and execution can proceed. By default the `async` property is `false`.\n\nTasks created with `task` are always executed when asked for (or are a\nprerequisite). Tasks created with `file` are only executed if no file with the\ngiven name exists or if any of its file-prerequisites are more recent than the\nfile named by the task. Also, if any prerequisite is a regular task, the file\ntask will always be executed.\n\nUse `desc` to add a string description of the task.\n\nHere's a
 n example:\n\n```javascript\ndesc('This is the default task.');\ntask('default', function (params) {\n  console.log('This is the default task.');\n});\n\ndesc('This task has prerequisites.');\ntask('hasPrereqs', ['foo', 'bar', 'baz'], function (params) {\n  console.log('Ran some prereqs first.');\n});\n```\n\nAnd here's an example of an asynchronous task:\n\n```javascript\ndesc('This is an asynchronous task.');\ntask('asyncTask', {async: true}, function () {\n  setTimeout(complete, 1000);\n});\n```\n\nA Task is also an EventEmitter which emits the 'complete' event when it is\nfinished. This allows asynchronous tasks to be run from within other asked via\neither `invoke` or `execute`, and ensure they will complete before the rest of\nthe containing task executes. See the section \"Running tasks from within other\ntasks,\" below.\n\n### File-tasks\n\nCreate a file-task by calling `file`.\n\nFile-tasks create a file from one or more other files. With a file-task, Jake\nchecks both that
  the file exists, and also that it is not older than the files\nspecified by any prerequisite tasks. File-tasks are particularly useful for\ncompiling something from a tree of source files.\n\n```javascript\ndesc('This builds a minified JS file for production.');\nfile('foo-minified.js', ['bar', 'foo-bar.js', 'foo-baz.js'], function () {\n  // Code to concat and minify goes here\n});\n```\n\n### Directory-tasks\n\nCreate a directory-task by calling `directory`.\n\nDirectory-tasks create a directory for use with for file-tasks. Jake checks for\nthe existence of the directory, and only creates it if needed.\n\n```javascript\ndesc('This creates the bar directory for use with the foo-minified.js file-task.');\ndirectory('bar');\n```\n\nThis task will create the directory when used as a prerequisite for a file-task,\nor when run from the command-line.\n\n### Namespaces\n\nUse `namespace` to create a namespace of tasks to perform. Call it with two arguments:\n\n```javascript\nnamespace(na
 me, namespaceTasks);\n```\n\nWhere is `name` is the name of the namespace, and `namespaceTasks` is a function\nwith calls inside it to `task` or `desc` definining all the tasks for that\nnamespace.\n\nHere's an example:\n\n```javascript\ndesc('This is the default task.');\ntask('default', function () {\n  console.log('This is the default task.');\n});\n\nnamespace('foo', function () {\n  desc('This the foo:bar task');\n  task('bar', function () {\n    console.log('doing foo:bar task');\n  });\n\n  desc('This the foo:baz task');\n  task('baz', ['default', 'foo:bar'], function () {\n    console.log('doing foo:baz task');\n  });\n\n});\n```\n\nIn this example, the foo:baz task depends on the the default and foo:bar tasks.\n\n### Passing parameters to jake\n\nParameters can be passed to Jake two ways: plain arguments, and environment\nvariables.\n\nTo pass positional arguments to the Jake tasks, enclose them in square braces,\nseparated by commas, after the name of the task on the comma
 nd-line. For\nexample, with the following Jakefile:\n\n```javascript\ndesc('This is an awesome task.');\ntask('awesome', function (a, b, c) {\n  console.log(a, b, c);\n});\n```\n\nYou could run `jake` like this:\n\n    jake awesome[foo,bar,baz]\n\nAnd you'd get the following output:\n\n    foo bar baz\n\nNote that you *cannot* uses spaces between the commas separating the parameters.\n\nAny parameters passed after the Jake task that contain an equals sign (=) will\nbe added to process.env.\n\nWith the following Jakefile:\n\n```javascript\ndesc('This is an awesome task.');\ntask('awesome', function (a, b, c) {\n  console.log(a, b, c);\n  console.log(process.env.qux, process.env.frang);\n});\n```\n\nYou could run `jake` like this:\n\n    jake awesome[foo,bar,baz] qux=zoobie frang=asdf\n\nAnd you'd get the following output:\n\n    foo bar baz\n    zoobie asdf\nRunning `jake` with no arguments runs the default task.\n\n__Note for zsh users__ : you will need to escape the brackets or wra
 p in single\nquotes like this to pass parameters :\n\n    jake 'awesome[foo,bar,baz]'\n\nAn other solution is to desactivate permannently file-globbing for the `jake`\ncommand. You can do this by adding this line to your `.zshrc` file :\n\n    alias jake=\"noglob jake\"\n\n### Cleanup after all tasks run, jake 'complete' event\n\nThe base 'jake' object is an EventEmitter, and fires a 'complete' event after\nrunning all tasks.\n\nThis is sometimes useful when a task starts a process which keeps the Node\nevent-loop running (e.g., a database connection). If you know you want to stop\nthe running Node process after all tasks have finished, you can set a listener\nfor the 'complete' event, like so:\n\n```javascript\njake.addListener('complete', function () {\n  process.exit();\n});\n```\n\n### Running tasks from within other tasks\n\nJake supports the ability to run a task from within another task via the\n`invoke` and `execute` methods.\n\nThe `invoke` method will run the desired task,
  along with its prerequisites:\n\n```javascript\ndesc('Calls the foo:bar task and its prerequisites.');\ntask('invokeFooBar', function () {\n  // Calls foo:bar and its prereqs\n  jake.Task['foo:bar'].invoke();\n});\n```\n\nThe `invoke` method will only run the task once, even if you call it repeatedly.\n\n```javascript\ndesc('Calls the foo:bar task and its prerequisites.');\ntask('invokeFooBar', function () {\n  // Calls foo:bar and its prereqs\n  jake.Task['foo:bar'].invoke();\n  // Does nothing\n  jake.Task['foo:bar'].invoke();\n});\n```\n\nThe `execute` method will run the desired task without its prerequisites:\n\n```javascript\ndesc('Calls the foo:bar task without its prerequisites.');\ntask('executeFooBar', function () {\n  // Calls foo:bar without its prereqs\n  jake.Task['foo:baz'].execute();\n});\n```\n\nCalling `execute` repeatedly will run the desired task repeatedly.\n\n```javascript\ndesc('Calls the foo:bar task without its prerequisites.');\ntask('executeFooBar', funct
 ion () {\n  // Calls foo:bar without its prereqs\n  jake.Task['foo:baz'].execute();\n  // Can keep running this over and over\n  jake.Task['foo:baz'].execute();\n  jake.Task['foo:baz'].execute();\n});\n```\n\nIf you want to run the task and its prerequisites more than once, you can use\n`invoke` with the `reenable` method.\n\n```javascript\ndesc('Calls the foo:bar task and its prerequisites.');\ntask('invokeFooBar', function () {\n  // Calls foo:bar and its prereqs\n  jake.Task['foo:bar'].invoke();\n  // Does nothing\n  jake.Task['foo:bar'].invoke();\n  // Only re-runs foo:bar, but not its prerequisites\n  jake.Task['foo:bar'].reenable();\n  jake.Task['foo:bar'].invoke();\n});\n```\n\nThe `reenable` method takes a single Boolean arg, a 'deep' flag, which reenables\nthe task's prerequisites if set to true.\n\n```javascript\ndesc('Calls the foo:bar task and its prerequisites.');\ntask('invokeFooBar', function () {\n  // Calls foo:bar and its prereqs\n  jake.Task['foo:bar'].invoke();\n
   // Does nothing\n  jake.Task['foo:bar'].invoke();\n  // Re-runs foo:bar and all of its prerequisites\n  jake.Task['foo:bar'].reenable(true);\n  jake.Task['foo:bar'].invoke();\n});\n```\n\nIt's easy to pass params on to a sub-task run via `invoke` or `execute`:\n\n```javascript\ndesc('Passes params on to other tasks.');\ntask('passParams', function () {\n  var t = jake.Task['foo:bar'];\n  // Calls foo:bar, passing along current args\n  t.invoke.apply(t, arguments);\n});\n```\n\n### Managing asynchrony without prereqs (e.g., when using `invoke`)\n\nYou can mix sync and async without problems when using normal prereqs, because\nthe Jake execution loop takes care of the difference for you. But when you call\n`invoke` or `execute`, you have to manage the asynchrony yourself.\n\nHere's a correct working example:\n\n```javascript\ntask('async1', ['async2'], {async: true}, function () {\n    console.log('-- async1 start ----------------');\n    setTimeout(function () {\n        console.lo
 g('-- async1 done ----------------');\n        complete();\n    }, 1000);\n});\n\ntask('async2', {async: true}, function () {\n    console.log('-- async2 start ----------------');\n    setTimeout(function () {\n        console.log('-- async2 done ----------------');\n        complete();\n    }, 500);\n});\n\ntask('init', ['async1', 'async2'], {async: true}, function () {\n    console.log('-- init start ----------------');\n    setTimeout(function () {\n        console.log('-- init done ----------------');\n        complete();\n    }, 100);\n});\n\ntask('default', {async: true}, function () {\n  console.log('-- default start ----------------');\n  var init = jake.Task.init;\n  init.addListener('complete', function () {\n    console.log('-- default done ----------------');\n    complete();\n  });\n  init.invoke();\n});\n```\n\nYou have to declare the \"default\" task as asynchronous as well, and call\n`complete` on it when \"init\" finishes. Here's the output:\n\n    -- default start 
 ----------------\n    -- async2 start ----------------\n    -- async2 done ----------------\n    -- async1 start ----------------\n    -- async1 done ----------------\n    -- init start ----------------\n    -- init done ----------------\n    -- default done ----------------\n\nYou get what you expect -- \"default\" starts, the rest runs, and finally\n\"default\" finishes.\n\n### Evented tasks\n\nTasks are EventEmitters. They can fire 'complete' and 'error' events.\n\nIf a task called via `invoke` is asynchronous, you can set a listener on the\n'complete' event to run any code that depends on it.\n\n```javascript\ndesc('Calls the async foo:baz task and its prerequisites.');\ntask('invokeFooBaz', {async: true}, function () {\n  var t = jake.Task['foo:baz'];\n  t.addListener('complete', function () {\n    console.log('Finished executing foo:baz');\n    // Maybe run some other code\n    // ...\n    // Complete the containing task\n    complete();\n  });\n  // Kick off foo:baz\n  t.invo
 ke();\n});\n```\n\nIf you want to handle the errors in a task in some specific way, you can set a\nlistener for the 'error' event, like so:\n\n```javascript\nnamespace('vronk', function () {\n  task('groo', function () {\n    var t = jake.Task['vronk:zong'];\n    t.addListener('error', function (e) {\n      console.log(e.message);\n    });\n    t.invoke();\n  });\n\n  task('zong', function () {\n    throw new Error('OMFGZONG');\n  });\n});\n```\n\nIf no specific listener is set for the \"error\" event, errors are handled by\nJake's generic error-handling.\n\n### Aborting a task\n\nYou can abort a task by calling the `fail` function, and Jake will abort the\ncurrently running task. You can pass a customized error message to `fail`:\n\n```javascript\ndesc('This task fails.');\ntask('failTask', function () {\n  fail('Yikes. Something back happened.');\n});\n```\n\nYou can also pass an optional exit status-code to the fail command, like so:\n\n```javascript\ndesc('This task fails with a
 n exit-status of 42.');\ntask('failTaskQuestionCustomStatus', function () {\n  fail('What is the answer?', 42);\n});\n```\n\nThe process will exit with a status of 42.\n\nUncaught errors will also abort the currently running task.\n\n### Showing the list of tasks\n\nPassing `jake` the -T or --tasks flag will display the full list of tasks\navailable in a Jakefile, along with their descriptions:\n\n    $ jake -T\n    jake default       # This is the default task.\n    jake asdf          # This is the asdf task.\n    jake concat.txt    # File task, concating two files together\n    jake failure       # Failing task.\n    jake lookup        # Jake task lookup by name.\n    jake foo:bar       # This the foo:bar task\n    jake foo:fonebone  # This the foo:fonebone task\n\nSetting a value for -T/--tasks will filter the list by that value:\n\n    $ jake -T foo\n    jake foo:bar       # This the foo:bar task\n    jake foo:fonebone  # This the foo:fonebone task\n\nThe list displayed will be 
 all tasks whose namespace/name contain the filter-string.\n\n## Breaking things up into multiple files\n\nJake will automatically look for files with a .jake extension in a 'jakelib'\ndirectory in your project, and load them (via `require`) after loading your\nJakefile. (The directory name can be overridden using the -J/--jakelibdir\ncommand-line option.)\n\nThis allows you to break your tasks up over multiple files -- a good way to do\nit is one namespace per file: e.g., a `zardoz` namespace full of tasks in\n'jakelib/zardox.jake'.\n\nNote that these .jake files each run in their own module-context, so they don't\nhave access to each others' data. However, the Jake API methods, and the\ntask-hierarchy are globally available, so you can use tasks in any file as\nprerequisites for tasks in any other, just as if everything were in a single\nfile.\n\nEnvironment-variables set on the command-line are likewise also naturally\navailable to code in all files via process.env.\n\n## File-uti
 ls\n\nSince shelling out in Node is an asynchronous operation, Jake comes with a few\nuseful file-utilities with a synchronous API, that make scripting easier.\n\nThe `jake.mkdirP` utility recursively creates a set of nested directories. It\nwill not throw an error if any of the directories already exists. Here's an example:\n\n```javascript\njake.mkdirP('app/views/layouts');\n```\n\nThe `jake.cpR` utility does a recursive copy of a file or directory. It takes\ntwo arguments, the file/directory to copy, and the destination. Note that this\ncommand can only copy files and directories; it does not perform globbing (so\narguments like '*.txt' are not possible).\n\n```javascript\njake.cpR(path.join(sourceDir, '/templates'), currentDir);\n```\n\nThis would copy 'templates' (and all its contents) into `currentDir`.\n\nThe `jake.readdirR` utility gives you a recursive directory listing, giving you\noutput somewhat similar to the Unix `find` command. It only works with a\ndirectory name, an
 d does not perform filtering or globbing.\n\n```javascript\njake.readdirR('pkg');\n```\n\nThis would return an array of filepaths for all files in the 'pkg' directory,\nand all its subdirectories.\n\nThe `jake.rmRf` utility recursively removes a directory and all its contents.\n\n```javascript\njake.rmRf('pkg');\n```\n\nThis would remove the 'pkg' directory, and all its contents.\n\n## Running shell-commands: `jake.exec` and `jake.createExec`\n\nJake also provides a more general utility function for running a sequence of\nshell-commands.\n\n### `jake.exec`\n\nThe `jake.exec` command takes an array of shell-command strings, and an optional\ncallback to run after completing them. Here's an example from Jake's Jakefile,\nthat runs the tests:\n\n```javascript\ndesc('Runs the Jake tests.');\ntask('test', {async: true}, function () {\n  var cmds = [\n    'node ./tests/parseargs.js'\n  , 'node ./tests/task_base.js'\n  , 'node ./tests/file_task.js'\n  ];\n  jake.exec(cmds, {printStdout: tru
 e}, function () {\n    console.log('All tests passed.');\n    complete();\n  });\n\ndesc('Runs some apps in interactive mode.');\ntask('interactiveTask', {async: true}, function () {\n  var cmds = [\n    'node' // Node conosle\n  , 'vim' // Open Vim\n  ];\n  jake.exec(cmds, {interactive: true}, function () {\n    complete();\n  });\n});\n```\n\nIt also takes an optional options-object, with the following options:\n\n * `interactive` (tasks are interactive, trumps printStdout and\n    printStderr below, default false)\n\n * `printStdout` (print to stdout, default false)\n\n * `printStderr` (print to stderr, default false)\n\n * `breakOnError` (stop execution on error, default true)\n\nThis command doesn't pipe input between commands -- it's for simple execution.\n\n### `jake.createExec` and the evented Exec object\n\nJake also provides an evented interface for running shell commands. Calling\n`jake.createExec` returns an instance of `jake.Exec`, which is an `EventEmitter`\nthat fires
  events as it executes commands.\n\nIt emits the following events:\n\n* 'cmdStart': When a new command begins to run. Passes one arg, the command\nbeing run.\n\n* 'cmdEnd': When a command finishes. Passes one arg, the command\nbeing run.\n\n* 'stdout': When the stdout for the child-process recieves data. This streams\nthe stdout data. Passes one arg, the chunk of data.\n\n* 'stderr': When the stderr for the child-process recieves data. This streams\nthe stderr data. Passes one arg, the chunk of data.\n\n* 'error': When a shell-command exits with a non-zero status-code. Passes two\nargs -- the error message, and the status code. If you do not set an error\nhandler, and a command exits with an error-code, Jake will throw the unhandled\nerror. If `breakOnError` is set to true, the Exec object will emit and 'error'\nevent after the first error, and stop any further execution.\n\nTo begin running the commands, you have to call the `run` method on it. It also\nhas an `append` method for a
 dding new commands to the list of commands to run.\n\nHere's an example:\n\n```javascript\nvar ex = jake.createExec(['do_thing.sh'], {printStdout: true});\nex.addListener('error', function (msg, code) {\n  if (code == 127) {\n    console.log(\"Couldn't find do_thing script, trying do_other_thing\");\n    ex.append('do_other_thing.sh');\n  }\n  else {\n    fail('Fatal error: ' + msg, code);\n  }\n});\nex.run();\n```\n\nUsing the evented Exec object gives you a lot more flexibility in running shell\ncommmands. But if you need something more sophisticated, Procstreams\n(<https://github.com/polotek/procstreams>) might be a good option.\n\n## Logging and output\n\nUsing the -q/--quiet flag at the command-line will stop Jake from sending its\nnormal output to standard output. Note that this only applies to built-in output\nfrom Jake; anything you output normally from your tasks will still be displayed.\n\nIf you want to take advantage of the -q/--quiet flag in your own programs, you\ncan 
 use `jake.logger.log` and `jake.logger.error` for displaying output. These\ntwo commands will respect the flag, and suppress output correctly when the\nquiet-flag is on.\n\nYou can check the current value of this flag in your own tasks by using\n`jake.program.opts.quiet`. If you want the output of a `jake.exec` shell-command\nto respect the quiet-flag, set your `printStdout` and `printStderr` options to\nfalse if the quiet-option is on:\n\n```javascript\ntask('echo', {async: true}, function () {\n  jake.exec(['echo \"hello\"'], function () {\n    jake.logger.log('Done.');\n    complete();\n  }, {printStdout: !jake.program.opts.quiet});\n});\n```\n\n## PackageTask\n\nInstantiating a PackageTask programmically creates a set of tasks for packaging\nup your project for distribution. Here's an example:\n\n```javascript\nvar t = new jake.PackageTask('fonebone', 'v0.1.2112', function () {\n  var fileList = [\n    'Jakefile'\n  , 'README.md'\n  , 'package.json'\n  , 'lib/*'\n  , 'bin/*'\n  
 , 'tests/*'\n  ];\n  this.packageFiles.include(fileList);\n  this.needTarGz = true;\n  this.needTarBz2 = true;\n});\n```\n\nThis will automatically create a 'package' task that will assemble the specified\nfiles in 'pkg/fonebone-v0.1.2112,' and compress them according to the specified\noptions. After running `jake package`, you'll have the following in pkg/:\n\n    fonebone-v0.1.2112\n    fonebone-v0.1.2112.tar.bz2\n    fonebone-v0.1.2112.tar.gz\n\nPackageTask also creates a 'clobber' task that removes the pkg/\ndirectory.\n\nThe [PackageTask API\ndocs](http://mde.github.com/jake/doc/symbols/jake.PackageTask.html) include a\nlot more information, including different archiving options.\n\n### FileList\n\nJake's FileList takes a list of glob-patterns and file-names, and lazy-creates a\nlist of files to include. Instead of immediately searching the filesystem to\nfind the files, a FileList holds the pattern until it is actually used.\n\nWhen any of the normal JavaScript Array methods (
 or the `toArray` method) are\ncalled on the FileList, the pending patterns are resolved into an actual list of\nfile-names. FileList uses the [minimatch](https://github.com/isaacs/minimatch) module.\n\nTo build the list of files, use FileList's `include` and `exclude` methods:\n\n```javascript\nvar list = new jake.FileList();\nlist.include('foo/*.txt');\nlist.include(['bar/*.txt', 'README.md']);\nlist.include('Makefile', 'package.json');\nlist.exclude('foo/zoobie.txt');\nlist.exclude(/foo\\/src.*.txt/);\nconsole.log(list.toArray());\n```\n\nThe `include` method can be called either with an array of items, or multiple\nsingle parameters. Items can be either glob-patterns, or individual file-names.\n\nThe `exclude` method will prevent files from being included in the list. These\nfiles must resolve to actual files on the filesystem. It can be called either\nwith an array of items, or mutliple single parameters. Items can be\nglob-patterns, individual file-names, string-representations
  of\nregular-expressions, or regular-expression literals.\n\n## TestTask\n\nInstantiating a TestTask programmically creates a simple task for running tests\nfor your project. The first argument of the constructor is the project-name\n(used in the description of the task), and the second argument is a function\nthat defines the task. It allows you to specifify what files to run as tests,\nand what to name the task that gets created (defaults to \"test\" if unset).\n\n```javascript\nvar t = new jake.TestTask('fonebone', function () {\n  var fileList = [\n    'tests/*'\n  , 'lib/adapters/**/test.js'\n  ];\n  this.testFiles.include(fileList);\n  this.testFiles.exclude('tests/helper.js');\n  this.testName = 'testMainAndAdapters';\n});\n```\n\nTests in the specified file should be in the very simple format of\ntest-functions hung off the export. These tests are converted into Jake tasks\nwhich Jake then runs normally.\n\nIf a test needs to run asynchronously, simply define the test-functi
 on with a\nsingle argument, a callback. Jake will define this as an asynchronous task, and\nwill wait until the callback is called in the test function to run the next test.\n\nHere's an example test-file:\n\n```javascript\nvar assert = require('assert')\n  , tests;\n\ntests = {\n  'sync test': function () {\n    // Assert something\n    assert.ok(true);\n  }\n, 'async test': function (next) {\n    // Assert something else\n    assert.ok(true);\n    // Won't go next until this is called\n    next();\n  }\n, 'another sync test': function () {\n    // Assert something else\n    assert.ok(true);\n  }\n};\n\nmodule.exports = tests;\n```\n\nJake's tests are also a good example of use of a TestTask.\n\n## NpmPublishTask\n\nThe NpmPublishTask builds on top of PackageTask to allow you to do a version\nbump of your project, package it, and publish it to NPM. Define the task with\nyour project's name, and the list of files you want packaged and published to\nNPM.\n\nHere's an example from Jak
 e's Jakefile:\n\n```javascript\nvar p = new jake.NpmPublishTask('jake', [\n  'Makefile'\n, 'Jakefile'\n, 'README.md'\n, 'package.json'\n, 'lib/*'\n, 'bin/*'\n, 'tests/*'\n]);\n```\n\nThe NpmPublishTask will automatically create a `publish` task which performs the\nfollowing steps:\n\n1. Bump the version number in your package.json\n2. Commit change in git, push it to GitHub\n3. Create a git tag for the version\n4. Push the tag to GitHub\n5. Package the new version of your project\n6. Publish it to NPM\n7. Clean up the package\n\n## CoffeeScript Jakefiles\n\nJake can also handle Jakefiles in CoffeeScript. Be sure to make it\nJakefile.coffee so Jake knows it's in CoffeeScript.\n\nHere's an example:\n\n```coffeescript\nutil = require('util')\n\ndesc 'This is the default task.'\ntask 'default', (params) ->\n  console.log 'Ths is the default task.'\n  console.log(util.inspect(arguments))\n  jake.Task['new'].invoke []\n\ntask 'new', ->\n  console.log 'ello from new'\n  jake.Task['foo:next
 '].invoke ['param']\n\nnamespace 'foo', ->\n  task 'next', (param) ->\n    console.log 'ello from next with param: ' + param\n```\n\n## Related projects\n\nJames Coglan's \"Jake\": <http://github.com/jcoglan/jake>\n\nConfusingly, this is a Ruby tool for building JavaScript packages from source code.\n\n280 North's Jake: <http://github.com/280north/jake>\n\nThis is also a JavaScript port of Rake, which runs on the Narwhal platform.\n\n### License\n\nLicensed under the Apache License, Version 2.0\n(<http://www.apache.org/licenses/LICENSE-2.0>)\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/mde/jake/issues"
-  },
-  "_id": "jake@0.5.16",
-  "_from": "jake@*"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/Jakefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/Jakefile b/blackberry10/node_modules/jake/test/Jakefile
deleted file mode 100644
index 7e49ab2..0000000
--- a/blackberry10/node_modules/jake/test/Jakefile
+++ /dev/null
@@ -1,214 +0,0 @@
-var exec = require('child_process').exec
-  , fs = require('fs');
-
-desc('The default task.');
-task('default', function () {
-  console.log('default task');
-});
-
-desc('No action.');
-task({'noAction': ['default']});
-
-desc('No action, no prereqs.');
-task('noActionNoPrereqs');
-
-desc('Accepts args and env vars.');
-task('argsEnvVars', function () {
-  var res = {
-    args: arguments
-  , env: {
-      foo: process.env.foo
-    , baz: process.env.baz
-    }
-  };
-  console.log(JSON.stringify(res));
-});
-
-namespace('foo', function () {
-  desc('The foo:bar task.');
-  task('bar', function () {
-    if (arguments.length) {
-      console.log('foo:bar[' +
-          Array.prototype.join.call(arguments, ',') +
-          '] task');
-    }
-    else {
-      console.log('foo:bar task');
-    }
-  });
-
-  desc('The foo:baz task, calls foo:bar as a prerequisite.');
-  task('baz', ['foo:bar'], function () {
-    console.log('foo:baz task');
-  });
-
-  desc('The foo:qux task, calls foo:bar with cmdline args as a prerequisite.');
-  task('qux', ['foo:bar[asdf,qwer]'], function () {
-    console.log('foo:qux task');
-  });
-
-  desc('The foo:frang task, calls foo:bar with passed args as a prerequisite.');
-  task('frang', function () {
-    var task = jake.Task['foo:bar'];
-    // Do args pass-through
-    task.invoke.apply(task, arguments);
-    console.log('foo:frang task');
-  });
-
-  desc('The foo:zoobie task, has no prerequisites.');
-  task('zoobie', function () {
-    console.log('foo:zoobie task');
-  });
-
-  desc('The foo:voom task, has no prerequisites.');
-  task('voom', function () {
-    console.log('foo:voom task');
-  });
-
-  desc('The foo:asdf task, has the same prereq twice.');
-  task('asdf', ['foo:bar', 'foo:baz'], function () {
-    console.log('foo:asdf task');
-  });
-
-});
-
-namespace('bar', function () {
-  desc('The bar:foo task, has no prerequisites, is async.');
-  task('foo', function () {
-    console.log('bar:foo task');
-    complete();
-  }, {async: true});
-
-  desc('The bar:bar task, has the async bar:foo task as a prerequisite.');
-  task('bar', ['bar:foo'], function () {
-    console.log('bar:bar task');
-  });
-
-});
-
-namespace('hoge', function () {
-  desc('The hoge:hoge task, has no prerequisites.');
-  task('hoge', function () {
-    console.log('hoge:hoge task');
-  });
-
-  desc('The hoge:piyo task, has no prerequisites.');
-  task('piyo', function () {
-    console.log('hoge:piyo task');
-  });
-
-  desc('The hoge:fuga task, has hoge:hoge and hoge:piyo as prerequisites.');
-  task('fuga', ['hoge:hoge', 'hoge:piyo'], function () {
-    console.log('hoge:fuga task');
-  });
-
-  desc('The hoge:charan task, has hoge:fuga as a prerequisite.');
-  task('charan', ['hoge:fuga'], function () {
-    console.log('hoge:charan task');
-  });
-
-  desc('The hoge:gero task, has hoge:fuga as a prerequisite.');
-  task('gero', ['hoge:fuga'], function () {
-    console.log('hoge:gero task');
-  });
-
-  desc('The hoge:kira task, has hoge:charan and hoge:gero as prerequisites.');
-  task('kira', ['hoge:charan', 'hoge:gero'], function () {
-    console.log('hoge:kira task');
-  });
-
-});
-
-namespace('fileTest', function () {
-  directory('foo');
-
-  desc('File task, concatenating two files together');
-  file({'foo/concat.txt': ['fileTest:foo', 'fileTest:foo/src1.txt', 'fileTest:foo/src2.txt']}, function () {
-    console.log('fileTest:foo/concat.txt task');
-    var data1 = fs.readFileSync('foo/src1.txt');
-    var data2 = fs.readFileSync('foo/src2.txt');
-    fs.writeFileSync('foo/concat.txt', data1 + data2);
-  });
-
-  desc('File task, async creation with child_process.exec');
-  file('foo/src1.txt', function () {
-    fs.writeFile('foo/src1.txt', 'src1', function (err) {
-      if (err) {
-        throw err;
-      }
-      console.log('fileTest:foo/src1.txt task');
-      complete();
-    });
-  }, {async: true});
-
-  desc('File task, sync creation with writeFileSync');
-  file('foo/src2.txt', ['default'], function () {
-    fs.writeFileSync('foo/src2.txt', 'src2');
-    console.log('fileTest:foo/src2.txt task');
-  });
-
-  desc('File task, do not run unless the prereq file changes');
-  file('foo/from-src1.txt', ['fileTest:foo', 'fileTest:foo/src1.txt'], function () {
-    var data = fs.readFileSync('foo/src1.txt');
-    fs.writeFileSync('foo/from-src1.txt', data);
-    console.log('fileTest:foo/from-src1.txt task');
-  }, {async: true});
-
-  desc('File task, run if the prereq file changes');
-  task('touch-prereq', function() {
-    fs.writeFileSync('foo/prereq.txt', 'UPDATED');
-  })
-
-  desc('File task, has a preexisting file (with no associated task) as a prereq');
-  file('foo/from-prereq.txt', ['fileTest:foo', 'foo/prereq.txt'], function () {
-    var data = fs.readFileSync('foo/prereq.txt');
-    fs.writeFileSync('foo/from-prereq.txt', data);
-    console.log('fileTest:foo/from-prereq.txt task');
-  });
-
-  directory('foo/bar/baz');
-
-  desc('Write a file in a nested subdirectory');
-  file('foo/bar/baz/bamf.txt', ['foo/bar/baz'], function () {
-    fs.writeFileSync('foo/bar/baz/bamf.txt', 'w00t');
-  });
-
-});
-
-task('blammo');
-// Define task
-task('voom', ['blammo'], function () {
-  console.log(this.prereqs.length);
-});
-
-// Modify, add a prereq
-task('voom', ['noActionNoPrereqs']);
-
-namespace('vronk', function () {
-  task('groo', function () {
-    var t = jake.Task['vronk:zong'];
-    t.addListener('error', function (e) {
-      console.log(e.message);
-    });
-    t.invoke();
-  });
-  task('zong', function () {
-    throw new Error('OMFGZONG');
-  });
-});
-
-// define namespace
-namespace('one', function() {
-  task('one', function() {
-    console.log('one:one');
-  });
-});
-
-// modify namespace (add task)
-namespace('one', function() {
-  task('two', ['one:one'], function() {
-    console.log('one:two');
-  });
-});
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/exec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/exec.js b/blackberry10/node_modules/jake/test/exec.js
deleted file mode 100644
index 0dec945..0000000
--- a/blackberry10/node_modules/jake/test/exec.js
+++ /dev/null
@@ -1,113 +0,0 @@
-var assert = require('assert')
-  , h = require('./helpers')
-  , jake = {}
-  , utils = require('../lib/utils');
-
-utils.mixin(jake, utils);
-
-var tests = {
-  'before': function () {
-    process.chdir('./test');
-  }
-
-, 'after': function () {
-    process.chdir('../');
-  }
-
-, 'test basic exec': function (next) {
-    var ex = jake.createExec('ls', function () {})
-      , evts = { // Events should fire in this order
-          cmdStart: [0, null]
-        , stdout: [1, null]
-        , cmdEnd: [2, null]
-        , end: [3, null]
-        }
-      , incr = 0; // Increment with each event to check order
-    assert.ok(ex instanceof jake.Exec);
-    // Make sure basic events fire and fire in the right order
-    for (var p in evts) {
-      (function (p) {
-        ex.addListener(p, function () {
-          evts[p][1] = incr;
-          incr++;
-        });
-      })(p);
-    }
-    ex.run();
-    ex.addListener('end', function () {
-      for (var p in evts) {
-        assert.equal(evts[p][0], evts[p][1]);
-      }
-      next();
-    });
-
-  }
-
-, 'test an exec failure': function (next) {
-    var ex = jake.createExec('false', function () {});
-    ex.addListener('error', function (msg, code) {
-      assert.equal(1, code);
-      next();
-    });
-    ex.run();
-  }
-
-, 'test exec stdout events': function (next) {
-    var ex = jake.createExec('echo "foo"', function () {});
-    ex.addListener('stdout', function (data) {
-      assert.equal("foo", h.trim(data.toString()));
-      next();
-    });
-    ex.run();
-  }
-
-, 'test exec stderr events': function (next) {
-    var ex = jake.createExec('echo "foo" 1>&2', function () {});
-    ex.addListener('stderr', function (data) {
-      assert.equal("foo", h.trim(data.toString()));
-      next();
-    });
-    ex.run();
-  }
-
-, 'test piping results into next command': function (next) {
-    var ex = jake.createExec('ls', function () {})
-      , data
-      , appended = false;
-
-    ex.addListener('stdout', function (d) {
-      data += h.trim(d.toString());
-    });
-
-    // After the first command ends, get the accumulated result,
-    // and use it to build a new command to append to the queue.
-    // Grep through the result for files that end in .js
-    ex.addListener('cmdEnd', function () {
-      // Only append after the first cmd, avoid infinite loop
-      if (appended) {
-        return;
-      }
-      appended = true;
-      // Take the original output and build the new command
-      ex.append('echo "' + data + '" | grep "\\.js$"');
-      // Clear out data
-      data = '';
-    });
-
-    // And the end, the stdout data has been cleared once, and the new
-    // data should be the result of the second command
-    ex.addListener('end', function () {
-      // Should be a list of files ending in .js
-      data = data.split('\n');
-      data.forEach(function (d) {
-        assert.ok(/\.js$/.test(d));
-      });
-      next();
-    });
-    ex.run();
-  }
-
-};
-
-module.exports = tests;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/file_task.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/file_task.js b/blackberry10/node_modules/jake/test/file_task.js
deleted file mode 100644
index f279100..0000000
--- a/blackberry10/node_modules/jake/test/file_task.js
+++ /dev/null
@@ -1,123 +0,0 @@
-var assert = require('assert')
-  , fs = require('fs')
-  , path = require('path')
-  , exec = require('child_process').exec
-  , h = require('./helpers');
-
-var cleanUpAndNext = function (callback) {
-  exec('rm -fr ./foo', function (err, stdout, stderr) {
-    if (err) { throw err }
-    if (stderr || stdout) {
-      console.log (stderr || stdout);
-    }
-    callback();
-  });
-};
-
-var tests = {
-
-  'before': function (next) {
-    process.chdir('./test');
-    cleanUpAndNext(next);
-  }
-
-, 'after': function () {
-    process.chdir('../');
-  }
-
-, 'test concating two files': function (next) {
-    h.exec('../bin/cli.js fileTest:foo/concat.txt', function (out) {
-      var data;
-      assert.equal('fileTest:foo/src1.txt task\ndefault task\nfileTest:foo/src2.txt task\n' +
-          'fileTest:foo/concat.txt task', out);
-      // Check to see the two files got concat'd
-      data = fs.readFileSync(process.cwd() + '/foo/concat.txt');
-      assert.equal('src1src2', data.toString());
-      cleanUpAndNext(next);
-    });
-  }
-
-, 'test where a file-task prereq does not change': function (next) {
-    h.exec('../bin/cli.js fileTest:foo/from-src1.txt', function (out) {
-      assert.equal('fileTest:foo/src1.txt task\nfileTest:foo/from-src1.txt task', out);
-      h.exec('../bin/cli.js fileTest:foo/from-src1.txt', function (out) {
-        // Second time should be a no-op
-        assert.equal('', out);
-        next(); // Don't clean up
-      });
-    });
-  }
-
-, 'file-task where prereq file is modified': function (next) {
-    setTimeout(function () {
-      exec('touch ./foo/src1.txt', function (err, data) {
-        if (err) {
-          throw err;
-        }
-        h.exec('../bin/cli.js fileTest:foo/from-src1.txt', function (out) {
-          assert.equal('fileTest:foo/from-src1.txt task', out);
-          cleanUpAndNext(next);
-        });
-      });
-    }, 1000); // Wait to do the touch to ensure mod-time is different
-  }
-
-, 'test where a file-task prereq does not change with --always-make': function (next) {
-    h.exec('../bin/cli.js fileTest:foo/from-src1.txt', function (out) {
-      assert.equal('fileTest:foo/src1.txt task\nfileTest:foo/from-src1.txt task',
-        out);
-      h.exec('../bin/cli.js -B fileTest:foo/from-src1.txt', function (out) {
-        assert.equal('fileTest:foo/src1.txt task\nfileTest:foo/from-src1.txt task',
-          out);
-        cleanUpAndNext(next);
-      });
-    });
-  }
-
-, 'test a preexisting file': function (next) {
-    var prereqData = 'howdy';
-    h.exec('mkdir -p foo', function (out) {
-      fs.writeFileSync('foo/prereq.txt', prereqData);
-      h.exec('../bin/cli.js fileTest:foo/from-prereq.txt', function (out) {
-        var data;
-        assert.equal('fileTest:foo/from-prereq.txt task', out);
-        data = fs.readFileSync(process.cwd() + '/foo/from-prereq.txt');
-        assert.equal(prereqData, data.toString());
-        h.exec('../bin/cli.js fileTest:foo/from-prereq.txt', function (out) {
-          // Second time should be a no-op
-          assert.equal('', out);
-          cleanUpAndNext(next);
-        });
-      });
-    });
-  }
-
-, 'test a preexisting file with --always-make flag': function (next) {
-    var prereqData = 'howdy';
-    h.exec('mkdir -p foo', function (out) {
-      fs.writeFileSync('foo/prereq.txt', prereqData);
-      h.exec('../bin/cli.js fileTest:foo/from-prereq.txt', function (out) {
-        var data;
-        assert.equal('fileTest:foo/from-prereq.txt task', out);
-        data = fs.readFileSync(process.cwd() + '/foo/from-prereq.txt');
-        assert.equal(prereqData, data.toString());
-        h.exec('../bin/cli.js -B fileTest:foo/from-prereq.txt', function (out) {
-          assert.equal('fileTest:foo/from-prereq.txt task', out);
-          cleanUpAndNext(next);
-        });
-      });
-    });
-  }
-
-, 'test nested directory-task': function (next) {
-    h.exec('../bin/cli.js fileTest:foo/bar/baz/bamf.txt', function (out) {
-      data = fs.readFileSync(process.cwd() + '/foo/bar/baz/bamf.txt');
-      assert.equal('w00t', data);
-      cleanUpAndNext(next);
-    });
-  }
-
-};
-
-module.exports = tests;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/foo.html
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/foo.html b/blackberry10/node_modules/jake/test/foo.html
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/foo.txt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/foo.txt b/blackberry10/node_modules/jake/test/foo.txt
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/helpers.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/helpers.js b/blackberry10/node_modules/jake/test/helpers.js
deleted file mode 100644
index 34e540e..0000000
--- a/blackberry10/node_modules/jake/test/helpers.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var exec = require('child_process').exec;
-
-var helpers = new (function () {
-  var _tests
-    , _names = []
-    , _name
-    , _callback
-    , _runner = function () {
-        if (!!(_name = _names.shift())) {
-          console.log('Running ' + _name);
-          _tests[_name]();
-        }
-        else {
-          _callback();
-        }
-      };
-
-  this.exec = function (cmd, callback) {
-    cmd += ' --trace';
-    exec(cmd, function (err, stdout, stderr) {
-      var out = helpers.trim(stdout);
-      if (err) {
-        throw err;
-      }
-      if (stderr) {
-        callback(stderr);
-      }
-      else {
-        callback(out);
-      }
-    });
-  };
-
-  this.trim = function (s) {
-    var str = s || '';
-    return str.replace(/^\s*|\s*$/g, '');
-  };
-
-  this.parse = function (s) {
-    var str = s || '';
-    str = helpers.trim(str);
-    str = str.replace(/'/g, '"');
-    return JSON.parse(str);
-  };
-
-  this.run = function (tests, callback) {
-    _tests = tests;
-    _names = Object.keys(tests);
-    _callback = callback;
-    _runner();
-  };
-
-  this.next = function () {
-    _runner();
-  };
-
-})();
-
-module.exports = helpers;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/namespace.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/namespace.js b/blackberry10/node_modules/jake/test/namespace.js
deleted file mode 100644
index d255d4e..0000000
--- a/blackberry10/node_modules/jake/test/namespace.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var assert = require('assert')
-  , h = require('./helpers')
-  , jake = {}
-  , utils = require('../lib/utils');
-
-utils.mixin(jake, utils);
-
-var tests = {
-  'before': function() {
-    process.chdir('./test');
-  }
-
-, 'after': function() {
-    process.chdir('../');
-  }
-
-, 'test modifying a namespace by adding a new task': function(next) {
-    h.exec('../bin/cli.js one:two', function(out) {
-      assert.equal('one:one\none:two', out);
-      next();
-    });
-  }
-
-};
-
-module.exports = tests;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/parseargs.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/parseargs.js b/blackberry10/node_modules/jake/test/parseargs.js
deleted file mode 100644
index 5997d07..0000000
--- a/blackberry10/node_modules/jake/test/parseargs.js
+++ /dev/null
@@ -1,150 +0,0 @@
-var parseargs = require('../lib/parseargs')
-  , assert = require('assert')
-  , optsReg = [
-      { full: 'directory'
-      , abbr: 'C'
-      , preempts: false
-      , expectValue: true
-      }
-    , { full: 'jakefile'
-      , abbr: 'f'
-      , preempts: false
-      , expectValue: true
-      }
-    , { full: 'tasks'
-      , abbr: 'T'
-      , preempts: true
-      }
-    , { full: 'tasks'
-      , abbr: 'ls'
-      , preempts: true
-      }
-    , { full: 'trace'
-      , abbr: 't'
-      , preempts: false
-      , expectValue: false
-      }
-    , { full: 'help'
-      , abbr: 'h'
-      , preempts: true
-      }
-    , { full: 'version'
-      , abbr: 'V'
-      , preempts: true
-      }
-    ]
-  , p = new parseargs.Parser(optsReg)
-  , z = function (s) { return s.split(' '); }
-  , res;
-
-var tests = {
-
-  'test long preemptive opt and val with equal-sign, ignore further opts': function () {
-    res = p.parse(z('--tasks=foo --jakefile=asdf'));
-    assert.equal('foo', res.opts.tasks);
-    assert.equal(undefined, res.opts.jakefile);
-  }
-
-, 'test long preemptive opt and val without equal-sign, ignore further opts': function () {
-    res = p.parse(z('--tasks foo --jakefile=asdf'));
-    assert.equal('foo', res.opts.tasks);
-    assert.equal(undefined, res.opts.jakefile);
-  }
-
-, 'test long preemptive opt and no val, ignore further opts': function () {
-    res = p.parse(z('--tasks --jakefile=asdf'));
-    assert.equal(true, res.opts.tasks);
-    assert.equal(undefined, res.opts.jakefile);
-  }
-
-, 'test preemptive opt with no val, should be true': function () {
-    res = p.parse(z('-T'));
-    assert.equal(true, res.opts.tasks);
-  }
-
-, 'test preemptive opt with no val, should be true and ignore further opts': function () {
-    res = p.parse(z('-T -f'));
-    assert.equal(true, res.opts.tasks);
-    assert.equal(undefined, res.opts.jakefile);
-  }
-
-, 'test preemptive opt with val, should be val': function () {
-    res = p.parse(z('-T zoobie -f foo/bar/baz'));
-    assert.equal('zoobie', res.opts.tasks);
-    assert.equal(undefined, res.opts.jakefile);
-  }
-
-, 'test -f expects a value, -t does not (howdy is task-name)': function () {
-    res = p.parse(z('-f zoobie -t howdy'));
-    assert.equal('zoobie', res.opts.jakefile);
-    assert.equal(true, res.opts.trace);
-    assert.equal('howdy', res.taskNames[0]);
-  }
-
-, 'test different order, -f expects a value, -t does not (howdy is task-name)': function () {
-    res = p.parse(z('-f zoobie howdy -t'));
-    assert.equal('zoobie', res.opts.jakefile);
-    assert.equal(true, res.opts.trace);
-    assert.equal('howdy', res.taskNames[0]);
-  }
-
-, 'test -f expects a value, -t does not (foo=bar is env var)': function () {
-    res = p.parse(z('-f zoobie -t foo=bar'));
-    assert.equal('zoobie', res.opts.jakefile);
-    assert.equal(true, res.opts.trace);
-    assert.equal('bar', res.envVars.foo);
-    assert.equal(undefined, res.taskName);
-  }
-
-, 'test -f expects a value, -t does not (foo=bar is env-var, task-name follows)': function () {
-    res = p.parse(z('-f zoobie -t howdy foo=bar'));
-    assert.equal('zoobie', res.opts.jakefile);
-    assert.equal(true, res.opts.trace);
-    assert.equal('bar', res.envVars.foo);
-    assert.equal('howdy', res.taskNames[0]);
-  }
-
-, 'test -t does not expect a value, -f does (throw howdy away)': function () {
-    res = p.parse(z('-t howdy -f zoobie'));
-    assert.equal(true, res.opts.trace);
-    assert.equal('zoobie', res.opts.jakefile);
-    assert.equal(undefined, res.taskName);
-
-  }
-
-, 'test --trace does not expect a value, -f does (throw howdy away)': function () {
-    res = p.parse(z('--trace howdy --jakefile zoobie'));
-    assert.equal(true, res.opts.trace);
-    assert.equal('zoobie', res.opts.jakefile);
-    assert.equal(undefined, res.taskName);
-  }
-
-, 'test --trace does not expect a value, -f does (throw howdy away)': function () {
-    res = p.parse(z('--trace=howdy --jakefile=zoobie'));
-    assert.equal(true, res.opts.trace);
-    assert.equal('zoobie', res.opts.jakefile);
-    assert.equal(undefined, res.taskName);
-  }
-
-/*
-, 'test task-name with positional args': function () {
-    res = p.parse(z('foo:bar[asdf,qwer]'));
-    assert.equal('asdf', p.taskArgs[0]);
-    assert.equal('qwer', p.taskArgs[1]);
-  }
-
-, 'test opts, env vars, task-name with positional args': function () {
-    res = p.parse(z('-f ./tests/Jakefile -t default[asdf,qwer] foo=bar'));
-    assert.equal('./tests/Jakefile', res.opts.jakefile);
-    assert.equal(true, res.opts.trace);
-    assert.equal('bar', res.envVars.foo);
-    assert.equal('default', res.taskName);
-    assert.equal('asdf', p.taskArgs[0]);
-    assert.equal('qwer', p.taskArgs[1]);
-  }
-*/
-
-};
-
-module.exports = tests;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/test/task_base.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/test/task_base.js b/blackberry10/node_modules/jake/test/task_base.js
deleted file mode 100644
index 7d4269e..0000000
--- a/blackberry10/node_modules/jake/test/task_base.js
+++ /dev/null
@@ -1,137 +0,0 @@
-var assert = require('assert')
-  , h = require('./helpers');
-
-var tests = {
-
-  'before': function () {
-    process.chdir('./test');
-  }
-
-, 'after': function () {
-    process.chdir('../');
-  }
-
-, 'test default task': function (next) {
-    h.exec('../bin/cli.js', function (out) {
-      assert.equal('default task', out);
-      h.exec('../bin/cli.js default', function (out) {
-        assert.equal('default task', out);
-        next();
-      });
-    });
-  }
-
-, 'test task with no action': function (next) {
-    h.exec('../bin/cli.js noAction', function (out) {
-      assert.equal('default task', out);
-      next();
-    });
-  }
-
-, 'test a task with no action and no prereqs': function (next) {
-    h.exec('../bin/cli.js noActionNoPrereqs', function () {
-      next();
-    });
-  }
-
-, 'test passing args to a task': function (next) {
-    h.exec('../bin/cli.js argsEnvVars[foo,bar]', function (out) {
-      var parsed = h.parse(out)
-        , args = parsed.args;
-      assert.equal(args[0], 'foo');
-      assert.equal(args[1], 'bar');
-      next();
-    });
-  }
-
-, 'test a task with environment vars': function (next) {
-    h.exec('../bin/cli.js argsEnvVars foo=bar baz=qux', function (out) {
-      var parsed = h.parse(out)
-        , env = parsed.env;
-      assert.equal(env.foo, 'bar');
-      assert.equal(env.baz, 'qux');
-      next();
-    });
-  }
-
-, 'test passing args and using environment vars': function (next) {
-    h.exec('../bin/cli.js argsEnvVars[foo,bar] foo=bar baz=qux', function (out) {
-      var parsed = h.parse(out)
-        , args = parsed.args
-        , env = parsed.env;
-      assert.equal(args[0], 'foo');
-      assert.equal(args[1], 'bar');
-      assert.equal(env.foo, 'bar');
-      assert.equal(env.baz, 'qux');
-      next();
-    });
-  }
-
-, 'test a simple prereq': function (next) {
-    h.exec('../bin/cli.js foo:baz', function (out) {
-      assert.equal('foo:bar task\nfoo:baz task', out);
-      next();
-    });
-  }
-
-, 'test a duplicate prereq only runs once': function (next) {
-    h.exec('../bin/cli.js foo:asdf', function (out) {
-      assert.equal('foo:bar task\nfoo:baz task\nfoo:asdf task', out);
-      next();
-    });
-  }
-
-, 'test a prereq with command-line args': function (next) {
-    h.exec('../bin/cli.js foo:qux', function (out) {
-      assert.equal('foo:bar[asdf,qwer] task\nfoo:qux task', out);
-      next();
-    });
-  }
-
-, 'test a prereq with args via invoke': function (next) {
-    h.exec('../bin/cli.js foo:frang[zxcv,uiop]', function (out) {
-      assert.equal('foo:bar[zxcv,uiop] task\nfoo:frang task', out);
-      next();
-    });
-  }
-
-, 'test prereq execution-order': function (next) {
-    h.exec('../bin/cli.js hoge:fuga', function (out) {
-      assert.equal('hoge:hoge task\nhoge:piyo task\nhoge:fuga task', out);
-      next();
-    });
-  }
-
-, 'test basic async task': function (next) {
-    h.exec('../bin/cli.js bar:bar', function (out) {
-      assert.equal('bar:foo task\nbar:bar task', out);
-      next();
-    });
-  }
-
-, 'test that current-prereq index gets reset': function (next) {
-    h.exec('../bin/cli.js hoge:kira', function (out) {
-      assert.equal('hoge:hoge task\nhoge:piyo task\nhoge:fuga task\n' +
-          'hoge:charan task\nhoge:gero task\nhoge:kira task', out);
-      next();
-    });
-  }
-
-, 'test modifying a task by adding prereq during execution': function (next) {
-    h.exec('../bin/cli.js voom', function (out) {
-      assert.equal(2, out);
-      next();
-    });
-  }
-
-, 'test listening for task error-event': function (next) {
-    h.exec('../bin/cli.js vronk:groo', function (out) {
-      assert.equal('OMFGZONG', out);
-      next();
-    });
-  }
-
-};
-
-module.exports = tests;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/.npmignore b/blackberry10/node_modules/jasmine-node/.npmignore
deleted file mode 100755
index ec8ac7f..0000000
--- a/blackberry10/node_modules/jasmine-node/.npmignore
+++ /dev/null
@@ -1,13 +0,0 @@
-.DS_Store
-.idea
-*.iml
-*.ipr
-*.iws
-*.tmproj
-.project
-.settings
-.externalToolBuilders
-*.swp
-node_modules
-*~
-/.c9revisions/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/.travis.yml b/blackberry10/node_modules/jasmine-node/.travis.yml
deleted file mode 100644
index c6eab65..0000000
--- a/blackberry10/node_modules/jasmine-node/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: node_js
-node_js:
-  - 0.6
-branches:
-  only:
-    - travis

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/LICENSE b/blackberry10/node_modules/jasmine-node/LICENSE
deleted file mode 100755
index b6ad6d3..0000000
--- a/blackberry10/node_modules/jasmine-node/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License
-
-Copyright (c) 2010 Adam Abrons and Misko Hevery http://getangular.com
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/README.md b/blackberry10/node_modules/jasmine-node/README.md
deleted file mode 100644
index a74f92d..0000000
--- a/blackberry10/node_modules/jasmine-node/README.md
+++ /dev/null
@@ -1,161 +0,0 @@
-jasmine-node
-======
-
-[![Build Status](https://secure.travis-ci.org/spaghetticode/jasmine-node.png)](http://travis-ci.org/spaghetticode/jasmine-node)
-
-This node.js module makes the wonderful Pivotal Lab's jasmine
-(http://github.com/pivotal/jasmine) spec framework available in
-node.js.
-
-jasmine
--------
-
-Version 1.3.1 of Jasmine is currently included with node-jasmine.
-
-what's new
-----------
-*  Ability to test specs written in Literate Coffee-Script
-*  Teamcity Reporter reinstated.
-*  Ability to specify multiple files to test via list in command line
-*  Ability to suppress stack trace with <code>--noStack</code>
-*  Async tests now run in the expected context instead of the global one
-*  --config flag that allows you to assign variables to process.env
-*  Terminal Reporters are now available in the Jasmine Object #184
-*  Done is now available in all timeout specs #199
-*  <code>afterEach</code> is available in requirejs #179
-*  Editors that replace instead of changing files should work with autotest #198
-*  Jasmine Mock Clock now works!
-*  Autotest now works!
-*  Using the latest Jasmine!
-*  Verbose mode tabs <code>describe</code> blocks much more accurately!
-*  --coffee now allows specs written in Literate CoffeeScript (.litcoffee)
-
-install
-------
-
-To install the latest official version, use NPM:
-
-    npm install jasmine-node -g
-
-To install the latest _bleeding edge_ version, clone this repository and check
-out the `beta` branch.
-
-usage
-------
-
-Write the specifications for your code in \*.js and \*.coffee files in the
-spec/ directory (note: your specification files must end with either
-.spec.js, .spec.coffee or .spec.litcoffee; otherwise jasmine-node won't find them!). You can use sub-directories to better organise your specs.
-
-If you have installed the npm package, you can run it with:
-
-    jasmine-node spec/
-
-If you aren't using npm, you should add `pwd`/lib to the $NODE_PATH
-environment variable, then run:
-
-    node lib/jasmine-node/cli.js
-
-
-You can supply the following arguments:
-
-  * <code>--autotest</code>, provides automatic execution of specs after each change
-  * <code>--coffee</code>, allow execution of .coffee and .litcoffee specs
-  * <code>--color</code>, indicates spec output should uses color to
-indicates passing (green) or failing (red) specs
-  * <code>--noColor</code>, do not use color in the output
-  * <code>-m, --match REGEXP</code>, match only specs comtaining "REGEXPspec"
-  * <code>--matchall</code>, relax requirement of "spec" in spec file names
-  * <code>--verbose</code>, verbose output as the specs are run
-  * <code>--junitreport</code>, export tests results as junitreport xml format
-  * <code>--output FOLDER</code>, defines the output folder for junitreport files
-  * <code>--teamcity</code>, converts all console output to teamcity custom test runner commands. (Normally auto detected.)
-  * <code>--runWithRequireJs</code>, loads all specs using requirejs instead of node's native require method
-  * <code>--requireJsSetup</code>, file run before specs to include and configure RequireJS
-  * <code>--test-dir</code>, the absolute root directory path where tests are located
-  * <code>--nohelpers</code>, does not load helpers
-  * <code>--forceexit</code>, force exit once tests complete
-  * <code>--captureExceptions</code>, listen to global exceptions, report them and exit (interferes with Domains in NodeJs, so do not use if using Domains as well
-  * <code>--config NAME VALUE</code>, set a global variable in process.env
-  * <code>--noStack</code>, suppress the stack trace generated from a test failure
-
-Individual files to test can be added as bare arguments to the end of the args.
-
-Example:
-
-`jasmine-node --coffee spec/AsyncSpec.coffee spec/CoffeeSpec.coffee spec/SampleSpecs.js`
-
-async tests
------------
-
-jasmine-node includes an alternate syntax for writing asynchronous tests. Accepting
-a done callback in the specification will trigger jasmine-node to run the test
-asynchronously waiting until the done() callback is called.
-
-```javascript
-    it("should respond with hello world", function(done) {
-      request("http://localhost:3000/hello", function(error, response, body){
-        expect(body).toEqual("hello world");
-        done();
-      });
-    });
-```
-
-An asynchronous test will fail after 5000 ms if done() is not called. This timeout
-can be changed by setting jasmine.DEFAULT_TIMEOUT_INTERVAL or by passing a timeout
-interval in the specification.
-
-    it("should respond with hello world", function(done) {
-      request("http://localhost:3000/hello", function(error, response, body){
-        done();
-      }, 250);  // timeout after 250 ms
-    });
-
-Checkout spec/SampleSpecs.js to see how to use it.
-
-requirejs
----------
-
-There is a sample project in `/spec-requirejs`. It is comprised of:
-
-1.  `requirejs-setup.js`, this pulls in our wrapper template (next)
-1.  `requirejs-wrapper-template`, this builds up requirejs settings
-1.  `requirejs.sut.js`, this is a __SU__bject To __T__est, something required by requirejs
-1.  `requirejs.spec.js`, the actual jasmine spec for testing
-
-development
------------
-
-Install the dependent packages by running:
-
-    npm install
-
-Run the specs before you send your pull request:
-
-    specs.sh
-
-__Note:__ Some tests are designed to fail in the specs.sh. After each of the
-individual runs completes, there is a line that lists what the expected
-Pass/Assert/Fail count should be. If you add/remove/edit tests, please be sure
-to update this with your PR.
-
-
-changelog
----------
-
-*  _1.7.1 - Removed unneeded fs dependency (thanks to
-   [kevinsawicki](https://github.com/kevinsawicki)) Fixed broken fs call in
-   node 0.6 (thanks to [abe33](https://github.com/abe33))_
-*  _1.7.0 - Literate Coffee-Script now testable (thanks to [magicmoose](https://github.com/magicmoose))_
-*  _1.6.0 - Teamcity Reporter Reinstated (thanks to [bhcleek](https://github.com/bhcleek))_
-*  _1.5.1 - Missing files and require exceptions will now report instead of failing silently_
-*  _1.5.0 - Now takes multiple files for execution. (thanks to [abe33](https://github.com/abe33))_
-*  _1.4.0 - Optional flag to suppress stack trace on test failure (thanks to [Lastalas](https://github.com/Lastalas))_
-*  _1.3.1 - Fixed context for async tests (thanks to [omryn](https://github.com/omryn))_
-*  _1.3.0 - Added --config flag for changeable testing environments_
-*  _1.2.3 - Fixed #179, #184, #198, #199. Fixes autotest, afterEach in requirejs, terminal reporter is in jasmine object, done function missing in async tests_
-*  _1.2.2 - Revert Exception Capturing to avoid Breaking Domain Tests_
-*  _1.2.1 - Emergency fix for path reference missing_
-*  _1.2.0 - Fixed #149, #152, #171, #181, #195. --autotest now works as expected, jasmine clock now responds to the fake ticking as requested, and removed the path.exists warning_
-*  _1.1.1 - Fixed #173, #169 (Blocks were not indented in verbose properly, added more documentation to address #180_
-*  _1.1.0 - Updated Jasmine to 1.3.1, fixed fs missing, catching uncaught exceptions, other fixes_

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/bin/jasmine-node
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/bin/jasmine-node b/blackberry10/node_modules/jasmine-node/bin/jasmine-node
deleted file mode 100755
index 33d4873..0000000
--- a/blackberry10/node_modules/jasmine-node/bin/jasmine-node
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env node
-
-if( !process.env.NODE_ENV ) process.env.NODE_ENV = 'test';
-
-var path = require('path');
-require(path.join(__dirname,'../lib/jasmine-node/cli.js'));

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/async-callback.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/async-callback.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/async-callback.js
deleted file mode 100644
index 85af5b2..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/async-callback.js
+++ /dev/null
@@ -1,61 +0,0 @@
-(function() {
-    var withoutAsync = {};
-
-    ["it", "beforeEach", "afterEach"].forEach(function(jasmineFunction) {
-        withoutAsync[jasmineFunction] = jasmine.Env.prototype[jasmineFunction];
-        return jasmine.Env.prototype[jasmineFunction] = function() {
-            var args = Array.prototype.slice.call(arguments, 0);
-            var timeout = null;
-            if (isLastArgumentATimeout(args)) {
-                timeout = args.pop();
-                // The changes to the jasmine test runner causes undef to be passed when
-                // calling all it()'s now. If the last argument isn't a timeout and the
-                // last argument IS undefined, let's just pop it off. Since out of bounds
-                // items are undefined anyways, *hopefully* removing an undef item won't
-                // hurt.
-            } else if (args[args.length-1] == undefined) {
-                args.pop();
-            }
-            if (isLastArgumentAnAsyncSpecFunction(args))
-            {
-                var specFunction = args.pop();
-                args.push(function() {
-                    return asyncSpec(specFunction, this, timeout);
-                });
-            }
-            return withoutAsync[jasmineFunction].apply(this, args);
-        };
-    });
-
-    function isLastArgumentATimeout(args)
-    {
-        return args.length > 0 && (typeof args[args.length-1]) === "number";
-    }
-
-    function isLastArgumentAnAsyncSpecFunction(args)
-    {
-        return args.length > 0 && (typeof args[args.length-1]) === "function" && args[args.length-1].length > 0;
-    }
-
-    function asyncSpec(specFunction, spec, timeout) {
-        if (timeout == null) timeout = jasmine.DEFAULT_TIMEOUT_INTERVAL || 1000;
-        var done = false;
-        spec.runs(function() {
-            try {
-                return specFunction.call(spec, function(error) {
-                    done = true;
-                    if (error != null) return spec.fail(error);
-                });
-            } catch (e) {
-                done = true;
-                throw e;
-            }
-        });
-        return spec.waitsFor(function() {
-            if (done === true) {
-                return true;
-            }
-        }, "spec to complete", timeout);
-    };
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/autotest.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/autotest.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/autotest.js
deleted file mode 100644
index f8e2187..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/autotest.js
+++ /dev/null
@@ -1,85 +0,0 @@
-var walkdir = require('walkdir');
-var collection = require('./spec-collection');
-var path = require('path');
-var fs = require('fs');
-var child_process = require('child_process');
-var gaze = require('gaze');
-var _ = require('underscore');
-
-var baseArgv = [];
-
-for(var i = 0; i < process.argv.length; i++) {
-    if(process.argv[i] !== '--autotest') {
-        baseArgv.push(process.argv[i]);
-    }
-}
-
-var run_external = function(command, args, callback) {
-    var child = child_process.spawn(command, args);
-    child.stdout.on('data', function(data) {
-        process.stdout.write(data);
-    });
-    child.stderr.on('data', function(data) {
-        process.stderr.write(data);
-    });
-    if(typeof callback == 'function') {
-        child.on('exit', callback);
-    }
-}
-
-var run_everything = function() {
-    // run the suite when it starts
-    var argv = [].concat(baseArgv);
-    run_external(argv.shift(), argv);
-}
-
-var last_run_succesful = true;
-
-exports.start = function(loadpaths, pattern) {
-
-    loadpaths.forEach(function(loadpath){
-
-      // If loadpath is just a single file, we should just watch that file
-      stats = fs.statSync(loadpath);
-      if (stats.isFile()) {
-        console.log(loadpath);
-        pattern = loadpath;
-      }
-
-      changedFunc = function(event, file) {
-        console.log(file + ' was changed');
-
-        var match = path.basename(file, path.extname(file)) + ".*";
-        match = match.replace(new RegExp("spec", "i"), "");
-
-        var argv = [].concat(baseArgv, ["--match", match]);
-        run_external(argv.shift(), argv, function(code) {
-            // run everything if we fixed some bugs
-            if(code == 0) {
-                if(!last_run_succesful) {
-                    run_everything();
-                }
-                last_run_succesful = true;
-            } else {
-                last_run_succesful = false;
-            }
-        });
-      }
-
-      // Vim seems to change a file multiple times, with non-scientific testing
-      // the only time we didn't duplicate the call to onChanged was at 2.5s
-      // Passing true to have onChanged run on the leading edge of the timeout
-      var onChanged = _.debounce(changedFunc, 2500, true);
-
-      gaze(pattern, function(err, watcher) {
-        // Get all watched files
-        console.log("Watching for changes in " + loadpath);
-
-        // On file changed
-        this.on('all', onChanged);
-      });
-
-    })
-
-    run_everything();
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/cli.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/cli.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/cli.js
deleted file mode 100755
index 2e4491e..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/cli.js
+++ /dev/null
@@ -1,250 +0,0 @@
-var util,
-    Path= require('path'),
-    fs  = require('fs');
-
-var jasmine = require('./index');
-
-
-try {
-  util = require('util')
-} catch(e) {
-  util = require('sys')
-}
-
-var helperCollection = require('./spec-collection');
-
-var specFolders = [];
-
-// The following line keeps the jasmine setTimeout in the proper scope
-jasmine.setTimeout = jasmine.getGlobal().setTimeout;
-jasmine.setInterval = jasmine.getGlobal().setInterval;
-for (var key in jasmine)
-  global[key] = jasmine[key];
-
-var isVerbose = false;
-var showColors = true;
-var teamcity = process.env.TEAMCITY_PROJECT_NAME || false;
-var useRequireJs = false;
-var extentions = "js";
-var match = '.';
-var matchall = false;
-var autotest = false;
-var useHelpers = true;
-var forceExit = false;
-var captureExceptions = false;
-var includeStackTrace = true;
-
-var junitreport = {
-  report: false,
-  savePath : "./reports/",
-  useDotNotation: true,
-  consolidate: true
-}
-
-var args = process.argv.slice(2);
-var existsSync = fs.existsSync || Path.existsSync;
-
-while(args.length) {
-  var arg = args.shift();
-
-  switch(arg)
-  {
-    case '--color':
-      showColors = true;
-      break;
-    case '--noColor':
-    case '--nocolor':
-      showColors = false;
-      break;
-    case '--verbose':
-      isVerbose = true;
-      break;
-    case '--coffee':
-      require('coffee-script');
-      extentions = "js|coffee|litcoffee";
-      break;
-    case '-m':
-    case '--match':
-      match = args.shift();
-      break;
-    case '--matchall':
-      matchall = true;
-      break;
-    case '--junitreport':
-        junitreport.report = true;
-        break;
-    case '--output':
-        junitreport.savePath = args.shift();
-        break;
-    case '--teamcity':
-        teamcity = true;
-        break;
-    case '--requireJsSetup':
-        var setup = args.shift();
-
-        if(!existsSync(setup))
-          throw new Error("RequireJS setup '" + setup + "' doesn't exist!");
-
-        useRequireJs = setup;
-        break;
-    case '--runWithRequireJs':
-        useRequireJs = useRequireJs || true;
-        break;
-    case '--nohelpers':
-        useHelpers = false;
-        break;
-    case '--test-dir':
-        var dir = args.shift();
-
-        if(!existsSync(dir))
-          throw new Error("Test root path '" + dir + "' doesn't exist!");
-
-        specFolders.push(dir); // NOTE: Does not look from current working directory.
-        break;
-    case '--autotest':
-        autotest = true;
-        break;
-    case '--forceexit':
-        forceExit = true;
-        break;
-    case '--captureExceptions':
-        captureExceptions = true;
-        break;
-    case '--noStack':
-        includeStackTrace = false;
-        break;
-    case '--config':
-        var configKey = args.shift();
-        var configValue = args.shift();
-        process.env[configKey]=configValue;
-        break;
-    case '-h':
-        help();
-    default:
-      if (arg.match(/^--params=.*/)) {
-        break;
-      }
-      if (arg.match(/^--/)) help();
-      if (arg.match(/^\/.*/)) {
-        specFolders.push(arg);
-      } else {
-        specFolders.push(Path.join(process.cwd(), arg));
-      }
-      break;
-  }
-}
-
-if (specFolders.length === 0) {
-  help();
-} else {
-  // Check to see if all our files exist
-  for (var idx = 0; idx < specFolders.length; idx++) {
-    if (!existsSync(specFolders[idx])) {
-        console.log("File: " + specFolders[idx] + " is missing.");
-        return;
-    }
-  }
-}
-
-if (autotest) {
-  //TODO: this is ugly, maybe refactor?
-
-  var glob = specFolders.map(function(path){
-    return Path.join(path, '**/*.js');
-  });
-
-  if (extentions.indexOf("coffee") !== -1) {
-    glob = glob.concat(specFolders.map(function(path){
-      return Path.join(path, '**/*.coffee')
-    }));
-  }
-
-  require('./autotest').start(specFolders, glob);
-
-  return;
-}
-
-var exitCode = 0;
-
-if (captureExceptions) {
-  process.on('uncaughtException', function(e) {
-    console.error(e.stack || e);
-    exitCode = 1;
-    process.exit(exitCode);
-  });
-}
-
-process.on("exit", onExit);
-
-function onExit() {
-  process.removeListener("exit", onExit);
-  process.exit(exitCode);
-}
-
-var onComplete = function(runner, log) {
-  util.print('\n');
-  if (runner.results().failedCount == 0) {
-    exitCode = 0;
-  } else {
-    exitCode = 1;
-  }
-  if (forceExit) {
-    process.exit(exitCode);
-  }
-};
-
-if(useHelpers){
-  specFolders.forEach(function(path){
-    jasmine.loadHelpersInFolder(path,
-                                new RegExp("helpers?\\.(" + extentions + ")$", 'i'));
-
-  })
-}
-
-var regExpSpec = new RegExp(match + (matchall ? "" : "spec\\.") + "(" + extentions + ")$", 'i')
-
-
-var options = {
-  specFolders:   specFolders,
-  onComplete:   onComplete,
-  isVerbose:    isVerbose,
-  showColors:   showColors,
-  teamcity:     teamcity,
-  useRequireJs: useRequireJs,
-  regExpSpec:   regExpSpec,
-  junitreport:  junitreport,
-  includeStackTrace: includeStackTrace
-}
-
-jasmine.executeSpecsInFolder(options);
-
-
-function help(){
-  util.print([
-    'USAGE: jasmine-node [--color|--noColor] [--verbose] [--coffee] directory'
-  , ''
-  , 'Options:'
-  , '  --autotest         - rerun automatically the specs when a file changes'
-  , '  --color            - use color coding for output'
-  , '  --noColor          - do not use color coding for output'
-  , '  -m, --match REGEXP - load only specs containing "REGEXPspec"'
-  , '  --matchall         - relax requirement of "spec" in spec file names'
-  , '  --verbose          - print extra information per each test run'
-  , '  --coffee           - load coffee-script which allows execution .coffee files'
-  , '  --junitreport      - export tests results as junitreport xml format'
-  , '  --output           - defines the output folder for junitreport files'
-  , '  --teamcity         - converts all console output to teamcity custom test runner commands. (Normally auto detected.)'
-  , '  --runWithRequireJs - loads all specs using requirejs instead of node\'s native require method'
-  , '  --requireJsSetup   - file run before specs to include and configure RequireJS'
-  , '  --test-dir         - the absolute root directory path where tests are located'
-  , '  --nohelpers        - does not load helpers.'
-  , '  --forceexit        - force exit once tests complete.'
-  , '  --captureExceptions- listen to global exceptions, report them and exit (interferes with Domains)'
-  , '  --config NAME VALUE- set a global variable in process.env'
-  , '  --noStack          - suppress the stack trace generated from a test failure'
-  , '  -h, --help         - display this help and exit'
-  , ''
-  ].join("\n"));
-
-  process.exit(-1);
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/cs.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/cs.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/cs.js
deleted file mode 100644
index 0d7ff76..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/cs.js
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- * @license cs 0.4.2 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
- * Available via the MIT or new BSD license.
- * see: http://github.com/jrburke/require-cs for details
- */
-
-/*jslint */
-/*global define, window, XMLHttpRequest, importScripts, Packages, java,
-  ActiveXObject, process, require */
-
-define(['coffee-script'], function (CoffeeScript) {
-    'use strict';
-    var fs, getXhr,
-        progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'],
-        fetchText = function () {
-            throw new Error('Environment unsupported.');
-        },
-        buildMap = {};
-
-    if (typeof process !== "undefined" &&
-               process.versions &&
-               !!process.versions.node) {
-        //Using special require.nodeRequire, something added by r.js.
-        fs = require.nodeRequire('fs');
-        fetchText = function (path, callback) {
-            callback(fs.readFileSync(path, 'utf8'));
-        };
-    } else if ((typeof window !== "undefined" && window.navigator && window.document) || typeof importScripts !== "undefined") {
-        // Browser action
-        getXhr = function () {
-            //Would love to dump the ActiveX crap in here. Need IE 6 to die first.
-            var xhr, i, progId;
-            if (typeof XMLHttpRequest !== "undefined") {
-                return new XMLHttpRequest();
-            } else {
-                for (i = 0; i < 3; i++) {
-                    progId = progIds[i];
-                    try {
-                        xhr = new ActiveXObject(progId);
-                    } catch (e) {}
-
-                    if (xhr) {
-                        progIds = [progId];  // so faster next time
-                        break;
-                    }
-                }
-            }
-
-            if (!xhr) {
-                throw new Error("getXhr(): XMLHttpRequest not available");
-            }
-
-            return xhr;
-        };
-
-        fetchText = function (url, callback) {
-            var xhr = getXhr();
-            xhr.open('GET', url, true);
-            xhr.onreadystatechange = function (evt) {
-                //Do not explicitly handle errors, those should be
-                //visible via console output in the browser.
-                if (xhr.readyState === 4) {
-                    callback(xhr.responseText);
-                }
-            };
-            xhr.send(null);
-        };
-        // end browser.js adapters
-    } else if (typeof Packages !== 'undefined') {
-        //Why Java, why is this so awkward?
-        fetchText = function (path, callback) {
-            var encoding = "utf-8",
-                file = new java.io.File(path),
-                lineSeparator = java.lang.System.getProperty("line.separator"),
-                input = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(file), encoding)),
-                stringBuffer, line,
-                content = '';
-            try {
-                stringBuffer = new java.lang.StringBuffer();
-                line = input.readLine();
-
-                // Byte Order Mark (BOM) - The Unicode Standard, version 3.0, page 324
-                // http://www.unicode.org/faq/utf_bom.html
-
-                // Note that when we use utf-8, the BOM should appear as "EF BB BF", but it doesn't due to this bug in the JDK:
-                // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058
-                if (line && line.length() && line.charAt(0) === 0xfeff) {
-                    // Eat the BOM, since we've already found the encoding on this file,
-                    // and we plan to concatenating this buffer with others; the BOM should
-                    // only appear at the top of a file.
-                    line = line.substring(1);
-                }
-
-                stringBuffer.append(line);
-
-                while ((line = input.readLine()) !== null) {
-                    stringBuffer.append(lineSeparator);
-                    stringBuffer.append(line);
-                }
-                //Make sure we return a JavaScript string and not a Java string.
-                content = String(stringBuffer.toString()); //String
-            } finally {
-                input.close();
-            }
-            callback(content);
-        };
-    }
-
-    return {
-        get: function () {
-            return CoffeeScript;
-        },
-
-        write: function (pluginName, name, write) {
-            if (buildMap.hasOwnProperty(name)) {
-                var text = buildMap[name];
-                write.asModule(pluginName + "!" + name, text);
-            }
-        },
-
-        version: '0.4.2',
-
-        load: function (name, parentRequire, load, config) {
-            var path = parentRequire.toUrl(name + '.coffee');
-            fetchText(path, function (text) {
-
-                //Do CoffeeScript transform.
-                try {
-                  text = CoffeeScript.compile(text, config.CoffeeScript);
-                }
-                catch (err) {
-                  err.message = "In " + path + ", " + err.message;
-                  throw(err);
-                }
-
-                //Hold on to the transformed text if a build.
-                if (config.isBuild) {
-                    buildMap[name] = text;
-                }
-
-                //IE with conditional comments on cannot handle the
-                //sourceURL trick, so skip it if enabled.
-                /*@if (@_jscript) @else @*/
-                if (!config.isBuild) {
-                    text += "\r\n//@ sourceURL=" + path;
-                }
-                /*@end@*/
-
-                load.fromText(name, text);
-
-                //Give result to load. Need to wait until the module
-                //is fully parse, which will happen after this
-                //execution.
-                parentRequire([name], function (value) {
-                    load(value);
-                });
-            });
-        }
-    };
-});


[48/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/README.md b/blackberry10/node_modules/jake/node_modules/minimatch/README.md
deleted file mode 100644
index 6fd07d2..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,218 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-Eventually, it will replace the C binding in node-glob.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-### Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated.  Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally.  This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything.  Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set.  This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.  **Note that this is different from the way that `**` is
-handled by ruby's `Dir` class.**
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes.  For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`.  This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern.  Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity.  Since those two are valid, matching proceeds.
-
-
-## Minimatch Class
-
-Create a minimatch object by instanting the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
-  Each row in the
-  array corresponds to a brace-expanded pattern.  Each item in the row
-  corresponds to a single path-part.  For example, the pattern
-  `{a,b/c}/d` would expand to a set of patterns like:
-
-        [ [ a, d ]
-        , [ b, c, d ] ]
-
-    If a portion of the pattern doesn't have any "magic" in it
-    (that is, it's something like `"foo"` rather than `fo*o?`), then it
-    will be left as a string rather than converted to a regular
-    expression.
-
-* `regexp` Created by the `makeRe` method.  A single regular expression
-  expressing the entire pattern.  This is useful in cases where you wish
-  to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
-  Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
-  false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
-  filename, and match it against a single row in the `regExpSet`.  This
-  method is mainly for internal use, but is exposed so that it can be
-  used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-## Functions
-
-The top-level exported function has a `cache` property, which is an LRU
-cache set to store 100 items.  So, calling these methods repeatedly
-with the same pattern and options will use the same Minimatch object,
-saving the cost of parsing it multiple times.
-
-### minimatch(path, pattern, options)
-
-Main export.  Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`.  Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob.  If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself.  When set, an empty list is returned if there are
-no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes.  For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/minimatch.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/minimatch.js b/blackberry10/node_modules/jake/node_modules/minimatch/minimatch.js
deleted file mode 100644
index 405746b..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,1079 +0,0 @@
-;(function (require, exports, module, platform) {
-
-if (module) module.exports = minimatch
-else exports.minimatch = minimatch
-
-if (!require) {
-  require = function (id) {
-    switch (id) {
-      case "sigmund": return function sigmund (obj) {
-        return JSON.stringify(obj)
-      }
-      case "path": return { basename: function (f) {
-        f = f.split(/[\/\\]/)
-        var e = f.pop()
-        if (!e) e = f.pop()
-        return e
-      }}
-      case "lru-cache": return function LRUCache () {
-        // not quite an LRU, but still space-limited.
-        var cache = {}
-        var cnt = 0
-        this.set = function (k, v) {
-          cnt ++
-          if (cnt >= 100) cache = {}
-          cache[k] = v
-        }
-        this.get = function (k) { return cache[k] }
-      }
-    }
-  }
-}
-
-minimatch.Minimatch = Minimatch
-
-var LRU = require("lru-cache")
-  , cache = minimatch.cache = new LRU({max: 100})
-  , GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-  , sigmund = require("sigmund")
-
-var path = require("path")
-  // any single thing other than /
-  // don't need to escape / when using new RegExp()
-  , qmark = "[^/]"
-
-  // * => any number of characters
-  , star = qmark + "*?"
-
-  // ** when dots are allowed.  Anything goes, except .. and .
-  // not (^ or / followed by one or two dots followed by $ or /),
-  // followed by anything, any number of times.
-  , twoStarDot = "(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?"
-
-  // not a ^ or / followed by a dot,
-  // followed by anything, any number of times.
-  , twoStarNoDot = "(?:(?!(?:\\\/|^)\\.).)*?"
-
-  // characters that need to be escaped in RegExp.
-  , reSpecials = charSet("().*{}+?[]^$\\!")
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
-  return s.split("").reduce(function (set, c) {
-    set[c] = true
-    return set
-  }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.monkeyPatch = monkeyPatch
-function monkeyPatch () {
-  var desc = Object.getOwnPropertyDescriptor(String.prototype, "match")
-  var orig = desc.value
-  desc.value = function (p) {
-    if (p instanceof Minimatch) return p.match(this)
-    return orig.call(this, p)
-  }
-  Object.defineProperty(String.prototype, desc)
-}
-
-minimatch.filter = filter
-function filter (pattern, options) {
-  options = options || {}
-  return function (p, i, list) {
-    return minimatch(p, pattern, options)
-  }
-}
-
-function ext (a, b) {
-  a = a || {}
-  b = b || {}
-  var t = {}
-  Object.keys(b).forEach(function (k) {
-    t[k] = b[k]
-  })
-  Object.keys(a).forEach(function (k) {
-    t[k] = a[k]
-  })
-  return t
-}
-
-minimatch.defaults = function (def) {
-  if (!def || !Object.keys(def).length) return minimatch
-
-  var orig = minimatch
-
-  var m = function minimatch (p, pattern, options) {
-    return orig.minimatch(p, pattern, ext(def, options))
-  }
-
-  m.Minimatch = function Minimatch (pattern, options) {
-    return new orig.Minimatch(pattern, ext(def, options))
-  }
-
-  return m
-}
-
-Minimatch.defaults = function (def) {
-  if (!def || !Object.keys(def).length) return Minimatch
-  return minimatch.defaults(def).Minimatch
-}
-
-
-function minimatch (p, pattern, options) {
-  if (typeof pattern !== "string") {
-    throw new TypeError("glob pattern string required")
-  }
-
-  if (!options) options = {}
-
-  // shortcut: comments match nothing.
-  if (!options.nocomment && pattern.charAt(0) === "#") {
-    return false
-  }
-
-  // "" only matches ""
-  if (pattern.trim() === "") return p === ""
-
-  return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
-  if (!(this instanceof Minimatch)) {
-    return new Minimatch(pattern, options, cache)
-  }
-
-  if (typeof pattern !== "string") {
-    throw new TypeError("glob pattern string required")
-  }
-
-  if (!options) options = {}
-  pattern = pattern.trim()
-
-  // windows: need to use /, not \
-  // On other platforms, \ is a valid (albeit bad) filename char.
-  if (platform === "win32") {
-    pattern = pattern.split("\\").join("/")
-  }
-
-  // lru storage.
-  // these things aren't particularly big, but walking down the string
-  // and turning it into a regexp can get pretty costly.
-  var cacheKey = pattern + "\n" + sigmund(options)
-  var cached = minimatch.cache.get(cacheKey)
-  if (cached) return cached
-  minimatch.cache.set(cacheKey, this)
-
-  this.options = options
-  this.set = []
-  this.pattern = pattern
-  this.regexp = null
-  this.negate = false
-  this.comment = false
-  this.empty = false
-
-  // make the set of regexps etc.
-  this.make()
-}
-
-Minimatch.prototype.make = make
-function make () {
-  // don't do it more than once.
-  if (this._made) return
-
-  var pattern = this.pattern
-  var options = this.options
-
-  // empty patterns and comments match nothing.
-  if (!options.nocomment && pattern.charAt(0) === "#") {
-    this.comment = true
-    return
-  }
-  if (!pattern) {
-    this.empty = true
-    return
-  }
-
-  // step 1: figure out negation, etc.
-  this.parseNegate()
-
-  // step 2: expand braces
-  var set = this.globSet = this.braceExpand()
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // step 3: now we have a set, so turn each one into a series of path-portion
-  // matching patterns.
-  // These will be regexps, except in the case of "**", which is
-  // set to the GLOBSTAR object for globstar behavior,
-  // and will not contain any / characters
-  set = this.globParts = set.map(function (s) {
-    return s.split(slashSplit)
-  })
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // glob --> regexps
-  set = set.map(function (s, si, set) {
-    return s.map(this.parse, this)
-  }, this)
-
-  if (options.debug) console.error(this.pattern, set)
-
-  // filter out everything that didn't compile properly.
-  set = set.filter(function (s) {
-    return -1 === s.indexOf(false)
-  })
-
-  if (options.debug) console.error(this.pattern, set)
-
-  this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
-  var pattern = this.pattern
-    , negate = false
-    , options = this.options
-    , negateOffset = 0
-
-  if (options.nonegate) return
-
-  for ( var i = 0, l = pattern.length
-      ; i < l && pattern.charAt(i) === "!"
-      ; i ++) {
-    negate = !negate
-    negateOffset ++
-  }
-
-  if (negateOffset) this.pattern = pattern.substr(negateOffset)
-  this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
-  return new Minimatch(pattern, options).braceExpand()
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-function braceExpand (pattern, options) {
-  options = options || this.options
-  pattern = typeof pattern === "undefined"
-    ? this.pattern : pattern
-
-  if (typeof pattern === "undefined") {
-    throw new Error("undefined pattern")
-  }
-
-  if (options.nobrace ||
-      !pattern.match(/\{.*\}/)) {
-    // shortcut. no need to expand.
-    return [pattern]
-  }
-
-  var escaping = false
-
-  // examples and comments refer to this crazy pattern:
-  // a{b,c{d,e},{f,g}h}x{y,z}
-  // expected:
-  // abxy
-  // abxz
-  // acdxy
-  // acdxz
-  // acexy
-  // acexz
-  // afhxy
-  // afhxz
-  // aghxy
-  // aghxz
-
-  // everything before the first \{ is just a prefix.
-  // So, we pluck that off, and work with the rest,
-  // and then prepend it to everything we find.
-  if (pattern.charAt(0) !== "{") {
-    // console.error(pattern)
-    var prefix = null
-    for (var i = 0, l = pattern.length; i < l; i ++) {
-      var c = pattern.charAt(i)
-      // console.error(i, c)
-      if (c === "\\") {
-        escaping = !escaping
-      } else if (c === "{" && !escaping) {
-        prefix = pattern.substr(0, i)
-        break
-      }
-    }
-
-    // actually no sets, all { were escaped.
-    if (prefix === null) {
-      // console.error("no sets")
-      return [pattern]
-    }
-
-    var tail = braceExpand(pattern.substr(i), options)
-    return tail.map(function (t) {
-      return prefix + t
-    })
-  }
-
-  // now we have something like:
-  // {b,c{d,e},{f,g}h}x{y,z}
-  // walk through the set, expanding each part, until
-  // the set ends.  then, we'll expand the suffix.
-  // If the set only has a single member, then'll put the {} back
-
-  // first, handle numeric sets, since they're easier
-  var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/)
-  if (numset) {
-    // console.error("numset", numset[1], numset[2])
-    var suf = braceExpand(pattern.substr(numset[0].length), options)
-      , start = +numset[1]
-      , end = +numset[2]
-      , inc = start > end ? -1 : 1
-      , set = []
-    for (var i = start; i != (end + inc); i += inc) {
-      // append all the suffixes
-      for (var ii = 0, ll = suf.length; ii < ll; ii ++) {
-        set.push(i + suf[ii])
-      }
-    }
-    return set
-  }
-
-  // ok, walk through the set
-  // We hope, somewhat optimistically, that there
-  // will be a } at the end.
-  // If the closing brace isn't found, then the pattern is
-  // interpreted as braceExpand("\\" + pattern) so that
-  // the leading \{ will be interpreted literally.
-  var i = 1 // skip the \{
-    , depth = 1
-    , set = []
-    , member = ""
-    , sawEnd = false
-    , escaping = false
-
-  function addMember () {
-    set.push(member)
-    member = ""
-  }
-
-  // console.error("Entering for")
-  FOR: for (i = 1, l = pattern.length; i < l; i ++) {
-    var c = pattern.charAt(i)
-    // console.error("", i, c)
-
-    if (escaping) {
-      escaping = false
-      member += "\\" + c
-    } else {
-      switch (c) {
-        case "\\":
-          escaping = true
-          continue
-
-        case "{":
-          depth ++
-          member += "{"
-          continue
-
-        case "}":
-          depth --
-          // if this closes the actual set, then we're done
-          if (depth === 0) {
-            addMember()
-            // pluck off the close-brace
-            i ++
-            break FOR
-          } else {
-            member += c
-            continue
-          }
-
-        case ",":
-          if (depth === 1) {
-            addMember()
-          } else {
-            member += c
-          }
-          continue
-
-        default:
-          member += c
-          continue
-      } // switch
-    } // else
-  } // for
-
-  // now we've either finished the set, and the suffix is
-  // pattern.substr(i), or we have *not* closed the set,
-  // and need to escape the leading brace
-  if (depth !== 0) {
-    // console.error("didn't close", pattern)
-    return braceExpand("\\" + pattern, options)
-  }
-
-  // x{y,z} -> ["xy", "xz"]
-  // console.error("set", set)
-  // console.error("suffix", pattern.substr(i))
-  var suf = braceExpand(pattern.substr(i), options)
-  // ["b", "c{d,e}","{f,g}h"] ->
-  //   [["b"], ["cd", "ce"], ["fh", "gh"]]
-  var addBraces = set.length === 1
-  // console.error("set pre-expanded", set)
-  set = set.map(function (p) {
-    return braceExpand(p, options)
-  })
-  // console.error("set expanded", set)
-
-
-  // [["b"], ["cd", "ce"], ["fh", "gh"]] ->
-  //   ["b", "cd", "ce", "fh", "gh"]
-  set = set.reduce(function (l, r) {
-    return l.concat(r)
-  })
-
-  if (addBraces) {
-    set = set.map(function (s) {
-      return "{" + s + "}"
-    })
-  }
-
-  // now attach the suffixes.
-  var ret = []
-  for (var i = 0, l = set.length; i < l; i ++) {
-    for (var ii = 0, ll = suf.length; ii < ll; ii ++) {
-      ret.push(set[i] + suf[ii])
-    }
-  }
-  return ret
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion.  Otherwise, any series
-// of * is equivalent to a single *.  Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
-  var options = this.options
-
-  // shortcuts
-  if (!options.noglobstar && pattern === "**") return GLOBSTAR
-  if (pattern === "") return ""
-
-  var re = ""
-    , hasMagic = !!options.nocase
-    , escaping = false
-    // ? => one single character
-    , patternListStack = []
-    , plType
-    , stateChar
-    , inClass = false
-    , reClassStart = -1
-    , classStart = -1
-    // . and .. never match anything that doesn't start with .,
-    // even when options.dot is set.
-    , patternStart = pattern.charAt(0) === "." ? "" // anything
-      // not (start or / followed by . or .. followed by / or end)
-      : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))"
-      : "(?!\\.)"
-
-  function clearStateChar () {
-    if (stateChar) {
-      // we had some state-tracking character
-      // that wasn't consumed by this pass.
-      switch (stateChar) {
-        case "*":
-          re += star
-          hasMagic = true
-          break
-        case "?":
-          re += qmark
-          hasMagic = true
-          break
-        default:
-          re += "\\"+stateChar
-          break
-      }
-      stateChar = false
-    }
-  }
-
-  for ( var i = 0, len = pattern.length, c
-      ; (i < len) && (c = pattern.charAt(i))
-      ; i ++ ) {
-
-    if (options.debug) {
-      console.error("%s\t%s %s %j", pattern, i, re, c)
-    }
-
-    // skip over any that are escaped.
-    if (escaping && reSpecials[c]) {
-      re += "\\" + c
-      escaping = false
-      continue
-    }
-
-    SWITCH: switch (c) {
-      case "/":
-        // completely not allowed, even escaped.
-        // Should already be path-split by now.
-        return false
-
-      case "\\":
-        clearStateChar()
-        escaping = true
-        continue
-
-      // the various stateChar values
-      // for the "extglob" stuff.
-      case "?":
-      case "*":
-      case "+":
-      case "@":
-      case "!":
-        if (options.debug) {
-          console.error("%s\t%s %s %j <-- stateChar", pattern, i, re, c)
-        }
-
-        // all of those are literals inside a class, except that
-        // the glob [!a] means [^a] in regexp
-        if (inClass) {
-          if (c === "!" && i === classStart + 1) c = "^"
-          re += c
-          continue
-        }
-
-        // if we already have a stateChar, then it means
-        // that there was something like ** or +? in there.
-        // Handle the stateChar, then proceed with this one.
-        clearStateChar()
-        stateChar = c
-        // if extglob is disabled, then +(asdf|foo) isn't a thing.
-        // just clear the statechar *now*, rather than even diving into
-        // the patternList stuff.
-        if (options.noext) clearStateChar()
-        continue
-
-      case "(":
-        if (inClass) {
-          re += "("
-          continue
-        }
-
-        if (!stateChar) {
-          re += "\\("
-          continue
-        }
-
-        plType = stateChar
-        patternListStack.push({ type: plType
-                              , start: i - 1
-                              , reStart: re.length })
-        // negation is (?:(?!js)[^/]*)
-        re += stateChar === "!" ? "(?:(?!" : "(?:"
-        stateChar = false
-        continue
-
-      case ")":
-        if (inClass || !patternListStack.length) {
-          re += "\\)"
-          continue
-        }
-
-        hasMagic = true
-        re += ")"
-        plType = patternListStack.pop().type
-        // negation is (?:(?!js)[^/]*)
-        // The others are (?:<pattern>)<type>
-        switch (plType) {
-          case "!":
-            re += "[^/]*?)"
-            break
-          case "?":
-          case "+":
-          case "*": re += plType
-          case "@": break // the default anyway
-        }
-        continue
-
-      case "|":
-        if (inClass || !patternListStack.length || escaping) {
-          re += "\\|"
-          escaping = false
-          continue
-        }
-
-        re += "|"
-        continue
-
-      // these are mostly the same in regexp and glob
-      case "[":
-        // swallow any state-tracking char before the [
-        clearStateChar()
-
-        if (inClass) {
-          re += "\\" + c
-          continue
-        }
-
-        inClass = true
-        classStart = i
-        reClassStart = re.length
-        re += c
-        continue
-
-      case "]":
-        //  a right bracket shall lose its special
-        //  meaning and represent itself in
-        //  a bracket expression if it occurs
-        //  first in the list.  -- POSIX.2 2.8.3.2
-        if (i === classStart + 1 || !inClass) {
-          re += "\\" + c
-          escaping = false
-          continue
-        }
-
-        // finish up the class.
-        hasMagic = true
-        inClass = false
-        re += c
-        continue
-
-      default:
-        // swallow any state char that wasn't consumed
-        clearStateChar()
-
-        if (escaping) {
-          // no need
-          escaping = false
-        } else if (reSpecials[c]
-                   && !(c === "^" && inClass)) {
-          re += "\\"
-        }
-
-        re += c
-
-    } // switch
-  } // for
-
-
-  // handle the case where we left a class open.
-  // "[abc" is valid, equivalent to "\[abc"
-  if (inClass) {
-    // split where the last [ was, and escape it
-    // this is a huge pita.  We now have to re-walk
-    // the contents of the would-be class to re-translate
-    // any characters that were passed through as-is
-    var cs = pattern.substr(classStart + 1)
-      , sp = this.parse(cs, SUBPARSE)
-    re = re.substr(0, reClassStart) + "\\[" + sp[0]
-    hasMagic = hasMagic || sp[1]
-  }
-
-  // handle the case where we had a +( thing at the *end*
-  // of the pattern.
-  // each pattern list stack adds 3 chars, and we need to go through
-  // and escape any | chars that were passed through as-is for the regexp.
-  // Go through and escape them, taking care not to double-escape any
-  // | chars that were already escaped.
-  var pl
-  while (pl = patternListStack.pop()) {
-    var tail = re.slice(pl.reStart + 3)
-    // maybe some even number of \, then maybe 1 \, followed by a |
-    tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) {
-      if (!$2) {
-        // the | isn't already escaped, so escape it.
-        $2 = "\\"
-      }
-
-      // need to escape all those slashes *again*, without escaping the
-      // one that we need for escaping the | character.  As it works out,
-      // escaping an even number of slashes can be done by simply repeating
-      // it exactly after itself.  That's why this trick works.
-      //
-      // I am sorry that you have to see this.
-      return $1 + $1 + $2 + "|"
-    })
-
-    // console.error("tail=%j\n   %s", tail, tail)
-    var t = pl.type === "*" ? star
-          : pl.type === "?" ? qmark
-          : "\\" + pl.type
-
-    hasMagic = true
-    re = re.slice(0, pl.reStart)
-       + t + "\\("
-       + tail
-  }
-
-  // handle trailing things that only matter at the very end.
-  clearStateChar()
-  if (escaping) {
-    // trailing \\
-    re += "\\\\"
-  }
-
-  // only need to apply the nodot start if the re starts with
-  // something that could conceivably capture a dot
-  var addPatternStart = false
-  switch (re.charAt(0)) {
-    case ".":
-    case "[":
-    case "(": addPatternStart = true
-  }
-
-  // if the re is not "" at this point, then we need to make sure
-  // it doesn't match against an empty path part.
-  // Otherwise a/* will match a/, which it should not.
-  if (re !== "" && hasMagic) re = "(?=.)" + re
-
-  if (addPatternStart) re = patternStart + re
-
-  // parsing just a piece of a larger pattern.
-  if (isSub === SUBPARSE) {
-    return [ re, hasMagic ]
-  }
-
-  // skip the regexp for non-magical patterns
-  // unescape anything in it, though, so that it'll be
-  // an exact match against a file etc.
-  if (!hasMagic) {
-    return globUnescape(pattern)
-  }
-
-  var flags = options.nocase ? "i" : ""
-    , regExp = new RegExp("^" + re + "$", flags)
-
-  regExp._glob = pattern
-  regExp._src = re
-
-  return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
-  return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
-  if (this.regexp || this.regexp === false) return this.regexp
-
-  // at this point, this.set is a 2d array of partial
-  // pattern strings, or "**".
-  //
-  // It's better to use .match().  This function shouldn't
-  // be used, really, but it's pretty convenient sometimes,
-  // when you just want to work with a regex.
-  var set = this.set
-
-  if (!set.length) return this.regexp = false
-  var options = this.options
-
-  var twoStar = options.noglobstar ? star
-      : options.dot ? twoStarDot
-      : twoStarNoDot
-    , flags = options.nocase ? "i" : ""
-
-  var re = set.map(function (pattern) {
-    return pattern.map(function (p) {
-      return (p === GLOBSTAR) ? twoStar
-           : (typeof p === "string") ? regExpEscape(p)
-           : p._src
-    }).join("\\\/")
-  }).join("|")
-
-  // must match entire pattern
-  // ending in a * or ** will make it less strict.
-  re = "^(?:" + re + ")$"
-
-  // can match anything, as long as it's not this.
-  if (this.negate) re = "^(?!" + re + ").*$"
-
-  try {
-    return this.regexp = new RegExp(re, flags)
-  } catch (ex) {
-    return this.regexp = false
-  }
-}
-
-minimatch.match = function (list, pattern, options) {
-  var mm = new Minimatch(pattern, options)
-  list = list.filter(function (f) {
-    return mm.match(f)
-  })
-  if (options.nonull && !list.length) {
-    list.push(pattern)
-  }
-  return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
-  // console.error("match", f, this.pattern)
-  // short-circuit in the case of busted things.
-  // comments, etc.
-  if (this.comment) return false
-  if (this.empty) return f === ""
-
-  if (f === "/" && partial) return true
-
-  var options = this.options
-
-  // windows: need to use /, not \
-  // On other platforms, \ is a valid (albeit bad) filename char.
-  if (platform === "win32") {
-    f = f.split("\\").join("/")
-  }
-
-  // treat the test path as a set of pathparts.
-  f = f.split(slashSplit)
-  if (options.debug) {
-    console.error(this.pattern, "split", f)
-  }
-
-  // just ONE of the pattern sets in this.set needs to match
-  // in order for it to be valid.  If negating, then just one
-  // match means that we have failed.
-  // Either way, return on the first hit.
-
-  var set = this.set
-  // console.error(this.pattern, "set", set)
-
-  for (var i = 0, l = set.length; i < l; i ++) {
-    var pattern = set[i]
-    var hit = this.matchOne(f, pattern, partial)
-    if (hit) {
-      if (options.flipNegate) return true
-      return !this.negate
-    }
-  }
-
-  // didn't get any hits.  this is success if it's a negative
-  // pattern, failure otherwise.
-  if (options.flipNegate) return false
-  return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
-  var options = this.options
-
-  if (options.debug) {
-    console.error("matchOne",
-                  { "this": this
-                  , file: file
-                  , pattern: pattern })
-  }
-
-  if (options.matchBase && pattern.length === 1) {
-    file = path.basename(file.join("/")).split("/")
-  }
-
-  if (options.debug) {
-    console.error("matchOne", file.length, pattern.length)
-  }
-
-  for ( var fi = 0
-          , pi = 0
-          , fl = file.length
-          , pl = pattern.length
-      ; (fi < fl) && (pi < pl)
-      ; fi ++, pi ++ ) {
-
-    if (options.debug) {
-      console.error("matchOne loop")
-    }
-    var p = pattern[pi]
-      , f = file[fi]
-
-    if (options.debug) {
-      console.error(pattern, p, f)
-    }
-
-    // should be impossible.
-    // some invalid regexp stuff in the set.
-    if (p === false) return false
-
-    if (p === GLOBSTAR) {
-      if (options.debug)
-        console.error('GLOBSTAR', [pattern, p, f])
-
-      // "**"
-      // a/**/b/**/c would match the following:
-      // a/b/x/y/z/c
-      // a/x/y/z/b/c
-      // a/b/x/b/x/c
-      // a/b/c
-      // To do this, take the rest of the pattern after
-      // the **, and see if it would match the file remainder.
-      // If so, return success.
-      // If not, the ** "swallows" a segment, and try again.
-      // This is recursively awful.
-      //
-      // a/**/b/**/c matching a/b/x/y/z/c
-      // - a matches a
-      // - doublestar
-      //   - matchOne(b/x/y/z/c, b/**/c)
-      //     - b matches b
-      //     - doublestar
-      //       - matchOne(x/y/z/c, c) -> no
-      //       - matchOne(y/z/c, c) -> no
-      //       - matchOne(z/c, c) -> no
-      //       - matchOne(c, c) yes, hit
-      var fr = fi
-        , pr = pi + 1
-      if (pr === pl) {
-        if (options.debug)
-          console.error('** at the end')
-        // a ** at the end will just swallow the rest.
-        // We have found a match.
-        // however, it will not swallow /.x, unless
-        // options.dot is set.
-        // . and .. are *never* matched by **, for explosively
-        // exponential reasons.
-        for ( ; fi < fl; fi ++) {
-          if (file[fi] === "." || file[fi] === ".." ||
-              (!options.dot && file[fi].charAt(0) === ".")) return false
-        }
-        return true
-      }
-
-      // ok, let's see if we can swallow whatever we can.
-      WHILE: while (fr < fl) {
-        var swallowee = file[fr]
-
-        if (options.debug) {
-          console.error('\nglobstar while',
-                        file, fr, pattern, pr, swallowee)
-        }
-
-        // XXX remove this slice.  Just pass the start index.
-        if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
-          if (options.debug)
-            console.error('globstar found match!', fr, fl, swallowee)
-          // found a match.
-          return true
-        } else {
-          // can't swallow "." or ".." ever.
-          // can only swallow ".foo" when explicitly asked.
-          if (swallowee === "." || swallowee === ".." ||
-              (!options.dot && swallowee.charAt(0) === ".")) {
-            if (options.debug)
-              console.error("dot detected!", file, fr, pattern, pr)
-            break WHILE
-          }
-
-          // ** swallows a segment, and continue.
-          if (options.debug)
-            console.error('globstar swallow a segment, and continue')
-          fr ++
-        }
-      }
-      // no match was found.
-      // However, in partial mode, we can't say this is necessarily over.
-      // If there's more *pattern* left, then 
-      if (partial) {
-        // ran out of file
-        // console.error("\n>>> no match, partial?", file, fr, pattern, pr)
-        if (fr === fl) return true
-      }
-      return false
-    }
-
-    // something other than **
-    // non-magic patterns just have to match exactly
-    // patterns with magic have been turned into regexps.
-    var hit
-    if (typeof p === "string") {
-      if (options.nocase) {
-        hit = f.toLowerCase() === p.toLowerCase()
-      } else {
-        hit = f === p
-      }
-      if (options.debug) {
-        console.error("string match", p, f, hit)
-      }
-    } else {
-      hit = f.match(p)
-      if (options.debug) {
-        console.error("pattern match", p, f, hit)
-      }
-    }
-
-    if (!hit) return false
-  }
-
-  // Note: ending in / means that we'll get a final ""
-  // at the end of the pattern.  This can only match a
-  // corresponding "" at the end of the file.
-  // If the file ends in /, then it can only match a
-  // a pattern that ends in /, unless the pattern just
-  // doesn't have any more for it. But, a/b/ should *not*
-  // match "a/b/*", even though "" matches against the
-  // [^/]*? pattern, except in partial mode, where it might
-  // simply not be reached yet.
-  // However, a/b/ should still satisfy a/*
-
-  // now either we fell off the end of the pattern, or we're done.
-  if (fi === fl && pi === pl) {
-    // ran out of pattern and filename at the same time.
-    // an exact hit!
-    return true
-  } else if (fi === fl) {
-    // ran out of file, but still had pattern left.
-    // this is ok if we're doing the match as part of
-    // a glob fs traversal.
-    return partial
-  } else if (pi === pl) {
-    // ran out of pattern, still have file left.
-    // this is only acceptable if we're on the very last
-    // empty segment of a file with a trailing slash.
-    // a/* should match a/b/
-    var emptyFileEnd = (fi === fl - 1) && (file[fi] === "")
-    return emptyFileEnd
-  }
-
-  // should be unreachable.
-  throw new Error("wtf?")
-}
-
-
-// replace stuff like \* with *
-function globUnescape (s) {
-  return s.replace(/\\(.)/g, "$1")
-}
-
-
-function regExpEscape (s) {
-  return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
-}
-
-})( typeof require === "function" ? require : null,
-    this,
-    typeof module === "object" ? module : null,
-    typeof process === "object" ? process.platform : "win32"
-  )

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/.npmignore b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/.npmignore
deleted file mode 100644
index 07e6e47..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/AUTHORS
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/AUTHORS b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/AUTHORS
deleted file mode 100644
index 016d7fb..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/AUTHORS
+++ /dev/null
@@ -1,8 +0,0 @@
-# Authors, sorted by whether or not they are me
-Isaac Z. Schlueter <i...@izs.me>
-Carlos Brito Lage <ca...@carloslage.net>
-Marko Mikulicic <ma...@isti.cnr.it>
-Trent Mick <tr...@gmail.com>
-Kevin O'Hara <ke...@gmail.com>
-Marco Rogers <ma...@gmail.com>
-Jesse Dailey <je...@gmail.com>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/LICENSE b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/LICENSE
deleted file mode 100644
index 05a4010..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/README.md b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/README.md
deleted file mode 100644
index 03ee0f9..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# lru cache
-
-A cache object that deletes the least-recently-used items.
-
-## Usage:
-
-```javascript
-var LRU = require("lru-cache")
-  , options = { max: 500
-              , length: function (n) { return n * 2 }
-              , dispose: function (key, n) { n.close() }
-              , maxAge: 1000 * 60 * 60 }
-  , cache = LRU(options)
-  , otherCache = LRU(50) // sets just the max size
-
-cache.set("key", "value")
-cache.get("key") // "value"
-
-cache.reset()    // empty the cache
-```
-
-If you put more stuff in it, then items will fall out.
-
-If you try to put an oversized thing in it, then it'll fall out right
-away.
-
-## Options
-
-* `max` The maximum size of the cache, checked by applying the length
-  function to all values in the cache.  Not setting this is kind of
-  silly, since that's the whole purpose of this lib, but it defaults
-  to `Infinity`.
-* `maxAge` Maximum age in ms.  Items are not pro-actively pruned out
-  as they age, but if you try to get an item that is too old, it'll
-  drop it and return undefined instead of giving it to you.
-* `length` Function that is used to calculate the length of stored
-  items.  If you're storing strings or buffers, then you probably want
-  to do something like `function(n){return n.length}`.  The default is
-  `function(n){return 1}`, which is fine if you want to store `n`
-  like-sized things.
-* `dispose` Function that is called on items when they are dropped
-  from the cache.  This can be handy if you want to close file
-  descriptors or do other cleanup tasks when items are no longer
-  accessible.  Called with `key, value`.  It's called *before*
-  actually removing the item from the internal cache, so if you want
-  to immediately put it back in, you'll have to do that in a
-  `nextTick` or `setTimeout` callback or it won't do anything.
-* `stale` By default, if you set a `maxAge`, it'll only actually pull
-  stale items out of the cache when you `get(key)`.  (That is, it's
-  not pre-emptively doing a `setTimeout` or anything.)  If you set
-  `stale:true`, it'll return the stale value before deleting it.  If
-  you don't set this, then it'll return `undefined` when you try to
-  get a stale entry, as if it had already been deleted.
-
-## API
-
-* `set(key, value)`
-* `get(key) => value`
-
-    Both of these will update the "recently used"-ness of the key.
-    They do what you think.
-
-* `peek(key)`
-
-    Returns the key value (or `undefined` if not found) without
-    updating the "recently used"-ness of the key.
-
-    (If you find yourself using this a lot, you *might* be using the
-    wrong sort of data structure, but there are some use cases where
-    it's handy.)
-
-* `del(key)`
-
-    Deletes a key out of the cache.
-
-* `reset()`
-
-    Clear the cache entirely, throwing away all values.
-
-* `has(key)`
-
-    Check if a key is in the cache, without updating the recent-ness
-    or deleting it for being stale.
-
-* `forEach(function(value,key,cache), [thisp])`
-
-    Just like `Array.prototype.forEach`.  Iterates over all the keys
-    in the cache, in order of recent-ness.  (Ie, more recently used
-    items are iterated over first.)
-
-* `keys()`
-
-    Return an array of the keys in the cache.
-
-* `values()`
-
-    Return an array of the values in the cache.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
deleted file mode 100644
index 8c80853..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
+++ /dev/null
@@ -1,257 +0,0 @@
-;(function () { // closure for web browsers
-
-if (typeof module === 'object' && module.exports) {
-  module.exports = LRUCache
-} else {
-  // just set the global for non-node platforms.
-  this.LRUCache = LRUCache
-}
-
-function hOP (obj, key) {
-  return Object.prototype.hasOwnProperty.call(obj, key)
-}
-
-function naiveLength () { return 1 }
-
-function LRUCache (options) {
-  if (!(this instanceof LRUCache)) {
-    return new LRUCache(options)
-  }
-
-  var max
-  if (typeof options === 'number') {
-    max = options
-    options = { max: max }
-  }
-
-  if (!options) options = {}
-
-  max = options.max
-
-  var lengthCalculator = options.length || naiveLength
-
-  if (typeof lengthCalculator !== "function") {
-    lengthCalculator = naiveLength
-  }
-
-  if (!max || !(typeof max === "number") || max <= 0 ) {
-    // a little bit silly.  maybe this should throw?
-    max = Infinity
-  }
-
-  var allowStale = options.stale || false
-
-  var maxAge = options.maxAge || null
-
-  var dispose = options.dispose
-
-  var cache = Object.create(null) // hash of items by key
-    , lruList = Object.create(null) // list of items in order of use recency
-    , mru = 0 // most recently used
-    , lru = 0 // least recently used
-    , length = 0 // number of items in the list
-    , itemCount = 0
-
-
-  // resize the cache when the max changes.
-  Object.defineProperty(this, "max",
-    { set : function (mL) {
-        if (!mL || !(typeof mL === "number") || mL <= 0 ) mL = Infinity
-        max = mL
-        // if it gets above double max, trim right away.
-        // otherwise, do it whenever it's convenient.
-        if (length > max) trim()
-      }
-    , get : function () { return max }
-    , enumerable : true
-    })
-
-  // resize the cache when the lengthCalculator changes.
-  Object.defineProperty(this, "lengthCalculator",
-    { set : function (lC) {
-        if (typeof lC !== "function") {
-          lengthCalculator = naiveLength
-          length = itemCount
-          for (var key in cache) {
-            cache[key].length = 1
-          }
-        } else {
-          lengthCalculator = lC
-          length = 0
-          for (var key in cache) {
-            cache[key].length = lengthCalculator(cache[key].value)
-            length += cache[key].length
-          }
-        }
-
-        if (length > max) trim()
-      }
-    , get : function () { return lengthCalculator }
-    , enumerable : true
-    })
-
-  Object.defineProperty(this, "length",
-    { get : function () { return length }
-    , enumerable : true
-    })
-
-
-  Object.defineProperty(this, "itemCount",
-    { get : function () { return itemCount }
-    , enumerable : true
-    })
-
-  this.forEach = function (fn, thisp) {
-    thisp = thisp || this
-    var i = 0;
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      i++
-      var hit = lruList[k]
-      fn.call(thisp, hit.value, hit.key, this)
-    }
-  }
-
-  this.keys = function () {
-    var keys = new Array(itemCount)
-    var i = 0
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      var hit = lruList[k]
-      keys[i++] = hit.key
-    }
-    return keys
-  }
-
-  this.values = function () {
-    var values = new Array(itemCount)
-    var i = 0
-    for (var k = mru - 1; k >= 0 && i < itemCount; k--) if (lruList[k]) {
-      var hit = lruList[k]
-      values[i++] = hit.value
-    }
-    return values
-  }
-
-  this.reset = function () {
-    if (dispose) {
-      for (var k in cache) {
-        dispose(k, cache[k].value)
-      }
-    }
-    cache = {}
-    lruList = {}
-    lru = 0
-    mru = 0
-    length = 0
-    itemCount = 0
-  }
-
-  // Provided for debugging/dev purposes only. No promises whatsoever that
-  // this API stays stable.
-  this.dump = function () {
-    return cache
-  }
-
-  this.dumpLru = function () {
-    return lruList
-  }
-
-  this.set = function (key, value) {
-    if (hOP(cache, key)) {
-      // dispose of the old one before overwriting
-      if (dispose) dispose(key, cache[key].value)
-      if (maxAge) cache[key].now = Date.now()
-      cache[key].value = value
-      this.get(key)
-      return true
-    }
-
-    var len = lengthCalculator(value)
-    var age = maxAge ? Date.now() : 0
-    var hit = new Entry(key, value, mru++, len, age)
-
-    // oversized objects fall out of cache automatically.
-    if (hit.length > max) {
-      if (dispose) dispose(key, value)
-      return false
-    }
-
-    length += hit.length
-    lruList[hit.lu] = cache[key] = hit
-    itemCount ++
-
-    if (length > max) trim()
-    return true
-  }
-
-  this.has = function (key) {
-    if (!hOP(cache, key)) return false
-    var hit = cache[key]
-    if (maxAge && (Date.now() - hit.now > maxAge)) {
-      return false
-    }
-    return true
-  }
-
-  this.get = function (key) {
-    return get(key, true)
-  }
-
-  this.peek = function (key) {
-    return get(key, false)
-  }
-
-  function get (key, doUse) {
-    var hit = cache[key]
-    if (hit) {
-      if (maxAge && (Date.now() - hit.now > maxAge)) {
-        del(hit)
-        if (!allowStale) hit = undefined
-      } else {
-        if (doUse) use(hit)
-      }
-      if (hit) hit = hit.value
-    }
-    return hit
-  }
-
-  function use (hit) {
-    shiftLU(hit)
-    hit.lu = mru ++
-    lruList[hit.lu] = hit
-  }
-
-  this.del = function (key) {
-    del(cache[key])
-  }
-
-  function trim () {
-    while (lru < mru && length > max)
-      del(lruList[lru])
-  }
-
-  function shiftLU(hit) {
-    delete lruList[ hit.lu ]
-    while (lru < mru && !lruList[lru]) lru ++
-  }
-
-  function del(hit) {
-    if (hit) {
-      if (dispose) dispose(hit.key, hit.value)
-      length -= hit.length
-      itemCount --
-      delete cache[ hit.key ]
-      shiftLU(hit)
-    }
-  }
-}
-
-// classy, since V8 prefers predictable objects.
-function Entry (key, value, mru, len, age) {
-  this.key = key
-  this.value = value
-  this.lu = mru
-  this.length = len
-  this.now = age
-}
-
-})()

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/package.json b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/package.json
deleted file mode 100644
index 73920bf..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "name": "lru-cache",
-  "description": "A cache object that deletes the least-recently-used items.",
-  "version": "2.3.0",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me"
-  },
-  "scripts": {
-    "test": "tap test --gc"
-  },
-  "main": "lib/lru-cache.js",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/node-lru-cache.git"
-  },
-  "devDependencies": {
-    "tap": "",
-    "weak": ""
-  },
-  "license": {
-    "type": "MIT",
-    "url": "http://github.com/isaacs/node-lru-cache/raw/master/LICENSE"
-  },
-  "contributors": [
-    {
-      "name": "Isaac Z. Schlueter",
-      "email": "i@izs.me"
-    },
-    {
-      "name": "Carlos Brito Lage",
-      "email": "carlos@carloslage.net"
-    },
-    {
-      "name": "Marko Mikulicic",
-      "email": "marko.mikulicic@isti.cnr.it"
-    },
-    {
-      "name": "Trent Mick",
-      "email": "trentm@gmail.com"
-    },
-    {
-      "name": "Kevin O'Hara",
-      "email": "kevinohara80@gmail.com"
-    },
-    {
-      "name": "Marco Rogers",
-      "email": "marco.rogers@gmail.com"
-    },
-    {
-      "name": "Jesse Dailey",
-      "email": "jesse.dailey@gmail.com"
-    }
-  ],
-  "readme": "# lru cache\n\nA cache object that deletes the least-recently-used items.\n\n## Usage:\n\n```javascript\nvar LRU = require(\"lru-cache\")\n  , options = { max: 500\n              , length: function (n) { return n * 2 }\n              , dispose: function (key, n) { n.close() }\n              , maxAge: 1000 * 60 * 60 }\n  , cache = LRU(options)\n  , otherCache = LRU(50) // sets just the max size\n\ncache.set(\"key\", \"value\")\ncache.get(\"key\") // \"value\"\n\ncache.reset()    // empty the cache\n```\n\nIf you put more stuff in it, then items will fall out.\n\nIf you try to put an oversized thing in it, then it'll fall out right\naway.\n\n## Options\n\n* `max` The maximum size of the cache, checked by applying the length\n  function to all values in the cache.  Not setting this is kind of\n  silly, since that's the whole purpose of this lib, but it defaults\n  to `Infinity`.\n* `maxAge` Maximum age in ms.  Items are not pro-actively pruned out\n  as they age, but if yo
 u try to get an item that is too old, it'll\n  drop it and return undefined instead of giving it to you.\n* `length` Function that is used to calculate the length of stored\n  items.  If you're storing strings or buffers, then you probably want\n  to do something like `function(n){return n.length}`.  The default is\n  `function(n){return 1}`, which is fine if you want to store `n`\n  like-sized things.\n* `dispose` Function that is called on items when they are dropped\n  from the cache.  This can be handy if you want to close file\n  descriptors or do other cleanup tasks when items are no longer\n  accessible.  Called with `key, value`.  It's called *before*\n  actually removing the item from the internal cache, so if you want\n  to immediately put it back in, you'll have to do that in a\n  `nextTick` or `setTimeout` callback or it won't do anything.\n* `stale` By default, if you set a `maxAge`, it'll only actually pull\n  stale items out of the cache when you `get(key)`.  (That is
 , it's\n  not pre-emptively doing a `setTimeout` or anything.)  If you set\n  `stale:true`, it'll return the stale value before deleting it.  If\n  you don't set this, then it'll return `undefined` when you try to\n  get a stale entry, as if it had already been deleted.\n\n## API\n\n* `set(key, value)`\n* `get(key) => value`\n\n    Both of these will update the \"recently used\"-ness of the key.\n    They do what you think.\n\n* `peek(key)`\n\n    Returns the key value (or `undefined` if not found) without\n    updating the \"recently used\"-ness of the key.\n\n    (If you find yourself using this a lot, you *might* be using the\n    wrong sort of data structure, but there are some use cases where\n    it's handy.)\n\n* `del(key)`\n\n    Deletes a key out of the cache.\n\n* `reset()`\n\n    Clear the cache entirely, throwing away all values.\n\n* `has(key)`\n\n    Check if a key is in the cache, without updating the recent-ness\n    or deleting it for being stale.\n\n* `forEach(func
 tion(value,key,cache), [thisp])`\n\n    Just like `Array.prototype.forEach`.  Iterates over all the keys\n    in the cache, in order of recent-ness.  (Ie, more recently used\n    items are iterated over first.)\n\n* `keys()`\n\n    Return an array of the keys in the cache.\n\n* `values()`\n\n    Return an array of the values in the cache.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/node-lru-cache/issues"
-  },
-  "_id": "lru-cache@2.3.0",
-  "_from": "lru-cache@2"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/s.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/s.js b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/s.js
deleted file mode 100644
index c2a9e54..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/s.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var LRU = require('lru-cache');
-
-var max = +process.argv[2] || 10240;
-var more = 1024;
-
-var cache = LRU({
-  max: max, maxAge: 86400e3
-});
-
-// fill cache
-for (var i = 0; i < max; ++i) {
-  cache.set(i, {});
-}
-
-var start = process.hrtime();
-
-// adding more items
-for ( ; i < max+more; ++i) {
-  cache.set(i, {});
-}
-
-var end = process.hrtime(start);
-var msecs = end[0] * 1E3 + end[1] / 1E6;
-
-console.log('adding %d items took %d ms', more, msecs.toPrecision(5));

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/basic.js b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/basic.js
deleted file mode 100644
index 70f3f8b..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/basic.js
+++ /dev/null
@@ -1,329 +0,0 @@
-var test = require("tap").test
-  , LRU = require("../")
-
-test("basic", function (t) {
-  var cache = new LRU({max: 10})
-  cache.set("key", "value")
-  t.equal(cache.get("key"), "value")
-  t.equal(cache.get("nada"), undefined)
-  t.equal(cache.length, 1)
-  t.equal(cache.max, 10)
-  t.end()
-})
-
-test("least recently set", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), "B")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("lru recently gotten", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.get("a")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), undefined)
-  t.equal(cache.get("a"), "A")
-  t.end()
-})
-
-test("del", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.del("a")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("max", function (t) {
-  var cache = new LRU(3)
-
-  // test changing the max, verify that the LRU items get dropped.
-  cache.max = 100
-  for (var i = 0; i < 100; i ++) cache.set(i, i)
-  t.equal(cache.length, 100)
-  for (var i = 0; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  cache.max = 3
-  t.equal(cache.length, 3)
-  for (var i = 0; i < 97; i ++) {
-    t.equal(cache.get(i), undefined)
-  }
-  for (var i = 98; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-
-  // now remove the max restriction, and try again.
-  cache.max = "hello"
-  for (var i = 0; i < 100; i ++) cache.set(i, i)
-  t.equal(cache.length, 100)
-  for (var i = 0; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  // should trigger an immediate resize
-  cache.max = 3
-  t.equal(cache.length, 3)
-  for (var i = 0; i < 97; i ++) {
-    t.equal(cache.get(i), undefined)
-  }
-  for (var i = 98; i < 100; i ++) {
-    t.equal(cache.get(i), i)
-  }
-  t.end()
-})
-
-test("reset", function (t) {
-  var cache = new LRU(10)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  cache.reset()
-  t.equal(cache.length, 0)
-  t.equal(cache.max, 10)
-  t.equal(cache.get("a"), undefined)
-  t.equal(cache.get("b"), undefined)
-  t.end()
-})
-
-
-// Note: `<cache>.dump()` is a debugging tool only. No guarantees are made
-// about the format/layout of the response.
-test("dump", function (t) {
-  var cache = new LRU(10)
-  var d = cache.dump();
-  t.equal(Object.keys(d).length, 0, "nothing in dump for empty cache")
-  cache.set("a", "A")
-  var d = cache.dump()  // { a: { key: "a", value: "A", lu: 0 } }
-  t.ok(d.a)
-  t.equal(d.a.key, "a")
-  t.equal(d.a.value, "A")
-  t.equal(d.a.lu, 0)
-
-  cache.set("b", "B")
-  cache.get("b")
-  d = cache.dump()
-  t.ok(d.b)
-  t.equal(d.b.key, "b")
-  t.equal(d.b.value, "B")
-  t.equal(d.b.lu, 2)
-
-  t.end()
-})
-
-
-test("basic with weighed length", function (t) {
-  var cache = new LRU({
-    max: 100,
-    length: function (item) { return item.size }
-  })
-  cache.set("key", {val: "value", size: 50})
-  t.equal(cache.get("key").val, "value")
-  t.equal(cache.get("nada"), undefined)
-  t.equal(cache.lengthCalculator(cache.get("key")), 50)
-  t.equal(cache.length, 50)
-  t.equal(cache.max, 100)
-  t.end()
-})
-
-
-test("weighed length item too large", function (t) {
-  var cache = new LRU({
-    max: 10,
-    length: function (item) { return item.size }
-  })
-  t.equal(cache.max, 10)
-
-  // should fall out immediately
-  cache.set("key", {val: "value", size: 50})
-
-  t.equal(cache.length, 0)
-  t.equal(cache.get("key"), undefined)
-  t.end()
-})
-
-test("least recently set with weighed length", function (t) {
-  var cache = new LRU({
-    max:8,
-    length: function (item) { return item.length }
-  })
-  cache.set("a", "A")
-  cache.set("b", "BB")
-  cache.set("c", "CCC")
-  cache.set("d", "DDDD")
-  t.equal(cache.get("d"), "DDDD")
-  t.equal(cache.get("c"), "CCC")
-  t.equal(cache.get("b"), undefined)
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})
-
-test("lru recently gotten with weighed length", function (t) {
-  var cache = new LRU({
-    max: 8,
-    length: function (item) { return item.length }
-  })
-  cache.set("a", "A")
-  cache.set("b", "BB")
-  cache.set("c", "CCC")
-  cache.get("a")
-  cache.get("b")
-  cache.set("d", "DDDD")
-  t.equal(cache.get("c"), undefined)
-  t.equal(cache.get("d"), "DDDD")
-  t.equal(cache.get("b"), "BB")
-  t.equal(cache.get("a"), "A")
-  t.end()
-})
-
-test("set returns proper booleans", function(t) {
-  var cache = new LRU({
-    max: 5,
-    length: function (item) { return item.length }
-  })
-
-  t.equal(cache.set("a", "A"), true)
-
-  // should return false for max exceeded
-  t.equal(cache.set("b", "donuts"), false)
-
-  t.equal(cache.set("b", "B"), true)
-  t.equal(cache.set("c", "CCCC"), true)
-  t.end()
-})
-
-test("drop the old items", function(t) {
-  var cache = new LRU({
-    max: 5,
-    maxAge: 50
-  })
-
-  cache.set("a", "A")
-
-  setTimeout(function () {
-    cache.set("b", "b")
-    t.equal(cache.get("a"), "A")
-  }, 25)
-
-  setTimeout(function () {
-    cache.set("c", "C")
-    // timed out
-    t.notOk(cache.get("a"))
-  }, 60)
-
-  setTimeout(function () {
-    t.notOk(cache.get("b"))
-    t.equal(cache.get("c"), "C")
-  }, 90)
-
-  setTimeout(function () {
-    t.notOk(cache.get("c"))
-    t.end()
-  }, 155)
-})
-
-test("disposal function", function(t) {
-  var disposed = false
-  var cache = new LRU({
-    max: 1,
-    dispose: function (k, n) {
-      disposed = n
-    }
-  })
-
-  cache.set(1, 1)
-  cache.set(2, 2)
-  t.equal(disposed, 1)
-  cache.set(3, 3)
-  t.equal(disposed, 2)
-  cache.reset()
-  t.equal(disposed, 3)
-  t.end()
-})
-
-test("disposal function on too big of item", function(t) {
-  var disposed = false
-  var cache = new LRU({
-    max: 1,
-    length: function (k) {
-      return k.length
-    },
-    dispose: function (k, n) {
-      disposed = n
-    }
-  })
-  var obj = [ 1, 2 ]
-
-  t.equal(disposed, false)
-  cache.set("obj", obj)
-  t.equal(disposed, obj)
-  t.end()
-})
-
-test("has()", function(t) {
-  var cache = new LRU({
-    max: 1,
-    maxAge: 10
-  })
-
-  cache.set('foo', 'bar')
-  t.equal(cache.has('foo'), true)
-  cache.set('blu', 'baz')
-  t.equal(cache.has('foo'), false)
-  t.equal(cache.has('blu'), true)
-  setTimeout(function() {
-    t.equal(cache.has('blu'), false)
-    t.end()
-  }, 15)
-})
-
-test("stale", function(t) {
-  var cache = new LRU({
-    maxAge: 10,
-    stale: true
-  })
-
-  cache.set('foo', 'bar')
-  t.equal(cache.get('foo'), 'bar')
-  t.equal(cache.has('foo'), true)
-  setTimeout(function() {
-    t.equal(cache.has('foo'), false)
-    t.equal(cache.get('foo'), 'bar')
-    t.equal(cache.get('foo'), undefined)
-    t.end()
-  }, 15)
-})
-
-test("lru update via set", function(t) {
-  var cache = LRU({ max: 2 });
-
-  cache.set('foo', 1);
-  cache.set('bar', 2);
-  cache.del('bar');
-  cache.set('baz', 3);
-  cache.set('qux', 4);
-
-  t.equal(cache.get('foo'), undefined)
-  t.equal(cache.get('bar'), undefined)
-  t.equal(cache.get('baz'), 3)
-  t.equal(cache.get('qux'), 4)
-  t.end()
-})
-
-test("least recently set w/ peek", function (t) {
-  var cache = new LRU(2)
-  cache.set("a", "A")
-  cache.set("b", "B")
-  t.equal(cache.peek("a"), "A")
-  cache.set("c", "C")
-  t.equal(cache.get("c"), "C")
-  t.equal(cache.get("b"), "B")
-  t.equal(cache.get("a"), undefined)
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/foreach.js b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
deleted file mode 100644
index eefb80d..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var test = require('tap').test
-var LRU = require('../')
-
-test('forEach', function (t) {
-  var l = new LRU(5)
-  for (var i = 0; i < 10; i ++) {
-    l.set(i.toString(), i.toString(2))
-  }
-
-  var i = 9
-  l.forEach(function (val, key, cache) {
-    t.equal(cache, l)
-    t.equal(key, i.toString())
-    t.equal(val, i.toString(2))
-    i -= 1
-  })
-
-  // get in order of most recently used
-  l.get(6)
-  l.get(8)
-
-  var order = [ 8, 6, 9, 7, 5 ]
-  var i = 0
-
-  l.forEach(function (val, key, cache) {
-    var j = order[i ++]
-    t.equal(cache, l)
-    t.equal(key, j.toString())
-    t.equal(val, j.toString(2))
-  })
-
-  t.end()
-})
-
-test('keys() and values()', function (t) {
-  var l = new LRU(5)
-  for (var i = 0; i < 10; i ++) {
-    l.set(i.toString(), i.toString(2))
-  }
-
-  t.similar(l.keys(), ['9', '8', '7', '6', '5'])
-  t.similar(l.values(), ['1001', '1000', '111', '110', '101'])
-
-  // get in order of most recently used
-  l.get(6)
-  l.get(8)
-
-  t.similar(l.keys(), ['8', '6', '9', '7', '5'])
-  t.similar(l.values(), ['1000', '110', '1001', '111', '101'])
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
deleted file mode 100644
index 7af45b0..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env node --expose_gc
-
-var weak = require('weak');
-var test = require('tap').test
-var LRU = require('../')
-var l = new LRU({ max: 10 })
-var refs = 0
-function X() {
-  refs ++
-  weak(this, deref)
-}
-
-function deref() {
-  refs --
-}
-
-test('no leaks', function (t) {
-  // fill up the cache
-  for (var i = 0; i < 100; i++) {
-    l.set(i, new X);
-    // throw some gets in there, too.
-    if (i % 2 === 0)
-      l.get(i / 2)
-  }
-
-  gc()
-
-  var start = process.memoryUsage()
-
-  // capture the memory
-  var startRefs = refs
-
-  // do it again, but more
-  for (var i = 0; i < 10000; i++) {
-    l.set(i, new X);
-    // throw some gets in there, too.
-    if (i % 2 === 0)
-      l.get(i / 2)
-  }
-
-  gc()
-
-  var end = process.memoryUsage()
-  t.equal(refs, startRefs, 'no leaky refs')
-
-  console.error('start: %j\n' +
-                'end:   %j', start, end);
-  t.pass();
-  t.end();
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/LICENSE b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/LICENSE
deleted file mode 100644
index 0c44ae7..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/README.md b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/README.md
deleted file mode 100644
index 7e36512..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# sigmund
-
-Quick and dirty signatures for Objects.
-
-This is like a much faster `deepEquals` comparison, which returns a
-string key suitable for caches and the like.
-
-## Usage
-
-```javascript
-function doSomething (someObj) {
-  var key = sigmund(someObj, maxDepth) // max depth defaults to 10
-  var cached = cache.get(key)
-  if (cached) return cached)
-
-  var result = expensiveCalculation(someObj)
-  cache.set(key, result)
-  return result
-}
-```
-
-The resulting key will be as unique and reproducible as calling
-`JSON.stringify` or `util.inspect` on the object, but is much faster.
-In order to achieve this speed, some differences are glossed over.
-For example, the object `{0:'foo'}` will be treated identically to the
-array `['foo']`.
-
-Also, just as there is no way to summon the soul from the scribblings
-of a cocain-addled psychoanalyst, there is no way to revive the object
-from the signature string that sigmund gives you.  In fact, it's
-barely even readable.
-
-As with `sys.inspect` and `JSON.stringify`, larger objects will
-produce larger signature strings.
-
-Because sigmund is a bit less strict than the more thorough
-alternatives, the strings will be shorter, and also there is a
-slightly higher chance for collisions.  For example, these objects
-have the same signature:
-
-    var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
-    var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
-
-Like a good Freudian, sigmund is most effective when you already have
-some understanding of what you're looking for.  It can help you help
-yourself, but you must be willing to do some work as well.
-
-Cycles are handled, and cyclical objects are silently omitted (though
-the key is included in the signature output.)
-
-The second argument is the maximum depth, which defaults to 10,
-because that is the maximum object traversal depth covered by most
-insurance carriers.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/bench.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/bench.js b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/bench.js
deleted file mode 100644
index 5acfd6d..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/bench.js
+++ /dev/null
@@ -1,283 +0,0 @@
-// different ways to id objects
-// use a req/res pair, since it's crazy deep and cyclical
-
-// sparseFE10 and sigmund are usually pretty close, which is to be expected,
-// since they are essentially the same algorithm, except that sigmund handles
-// regular expression objects properly.
-
-
-var http = require('http')
-var util = require('util')
-var sigmund = require('./sigmund.js')
-var sreq, sres, creq, cres, test
-
-http.createServer(function (q, s) {
-  sreq = q
-  sres = s
-  sres.end('ok')
-  this.close(function () { setTimeout(function () {
-    start()
-  }, 200) })
-}).listen(1337, function () {
-  creq = http.get({ port: 1337 })
-  creq.on('response', function (s) { cres = s })
-})
-
-function start () {
-  test = [sreq, sres, creq, cres]
-  // test = sreq
-  // sreq.sres = sres
-  // sreq.creq = creq
-  // sreq.cres = cres
-
-  for (var i in exports.compare) {
-    console.log(i)
-    var hash = exports.compare[i]()
-    console.log(hash)
-    console.log(hash.length)
-    console.log('')
-  }
-
-  require('bench').runMain()
-}
-
-function customWs (obj, md, d) {
-  d = d || 0
-  var to = typeof obj
-  if (to === 'undefined' || to === 'function' || to === null) return ''
-  if (d > md || !obj || to !== 'object') return ('' + obj).replace(/[\n ]+/g, '')
-
-  if (Array.isArray(obj)) {
-    return obj.map(function (i, _, __) {
-      return customWs(i, md, d + 1)
-    }).reduce(function (a, b) { return a + b }, '')
-  }
-
-  var keys = Object.keys(obj)
-  return keys.map(function (k, _, __) {
-    return k + ':' + customWs(obj[k], md, d + 1)
-  }).reduce(function (a, b) { return a + b }, '')
-}
-
-function custom (obj, md, d) {
-  d = d || 0
-  var to = typeof obj
-  if (to === 'undefined' || to === 'function' || to === null) return ''
-  if (d > md || !obj || to !== 'object') return '' + obj
-
-  if (Array.isArray(obj)) {
-    return obj.map(function (i, _, __) {
-      return custom(i, md, d + 1)
-    }).reduce(function (a, b) { return a + b }, '')
-  }
-
-  var keys = Object.keys(obj)
-  return keys.map(function (k, _, __) {
-    return k + ':' + custom(obj[k], md, d + 1)
-  }).reduce(function (a, b) { return a + b }, '')
-}
-
-function sparseFE2 (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    Object.keys(v).forEach(function (k, _, __) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') return
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') return
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-    })
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function sparseFE (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    Object.keys(v).forEach(function (k, _, __) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') return
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') return
-      soFar += k
-      ch(v[k], depth + 1)
-    })
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function sparse (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k
-      ch(v[k], depth + 1)
-    }
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-function noCommas (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-    }
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-
-function flatten (obj, maxDepth) {
-  var seen = []
-  var soFar = ''
-  function ch (v, depth) {
-    if (depth > maxDepth) return
-    if (typeof v === 'function' || typeof v === 'undefined') return
-    if (typeof v !== 'object' || !v) {
-      soFar += v
-      return
-    }
-    if (seen.indexOf(v) !== -1 || depth === maxDepth) return
-    seen.push(v)
-    soFar += '{'
-    for (var k in v) {
-      // pseudo-private values.  skip those.
-      if (k.charAt(0) === '_') continue
-      var to = typeof v[k]
-      if (to === 'function' || to === 'undefined') continue
-      soFar += k + ':'
-      ch(v[k], depth + 1)
-      soFar += ','
-    }
-    soFar += '}'
-  }
-  ch(obj, 0)
-  return soFar
-}
-
-exports.compare =
-{
-  // 'custom 2': function () {
-  //   return custom(test, 2, 0)
-  // },
-  // 'customWs 2': function () {
-  //   return customWs(test, 2, 0)
-  // },
-  'JSON.stringify (guarded)': function () {
-    var seen = []
-    return JSON.stringify(test, function (k, v) {
-      if (typeof v !== 'object' || !v) return v
-      if (seen.indexOf(v) !== -1) return undefined
-      seen.push(v)
-      return v
-    })
-  },
-
-  'flatten 10': function () {
-    return flatten(test, 10)
-  },
-
-  // 'flattenFE 10': function () {
-  //   return flattenFE(test, 10)
-  // },
-
-  'noCommas 10': function () {
-    return noCommas(test, 10)
-  },
-
-  'sparse 10': function () {
-    return sparse(test, 10)
-  },
-
-  'sparseFE 10': function () {
-    return sparseFE(test, 10)
-  },
-
-  'sparseFE2 10': function () {
-    return sparseFE2(test, 10)
-  },
-
-  sigmund: function() {
-    return sigmund(test, 10)
-  },
-
-
-  // 'util.inspect 1': function () {
-  //   return util.inspect(test, false, 1, false)
-  // },
-  // 'util.inspect undefined': function () {
-  //   util.inspect(test)
-  // },
-  // 'util.inspect 2': function () {
-  //   util.inspect(test, false, 2, false)
-  // },
-  // 'util.inspect 3': function () {
-  //   util.inspect(test, false, 3, false)
-  // },
-  // 'util.inspect 4': function () {
-  //   util.inspect(test, false, 4, false)
-  // },
-  // 'util.inspect Infinity': function () {
-  //   util.inspect(test, false, Infinity, false)
-  // }
-}
-
-/** results
-**/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/package.json b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/package.json
deleted file mode 100644
index ec8e2eb..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "name": "sigmund",
-  "version": "1.0.0",
-  "description": "Quick and dirty signatures for Objects.",
-  "main": "sigmund.js",
-  "directories": {
-    "test": "test"
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "tap": "~0.3.0"
-  },
-  "scripts": {
-    "test": "tap test/*.js",
-    "bench": "node bench.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/sigmund"
-  },
-  "keywords": [
-    "object",
-    "signature",
-    "key",
-    "data",
-    "psychoanalysis"
-  ],
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "license": "BSD",
-  "readme": "# sigmund\n\nQuick and dirty signatures for Objects.\n\nThis is like a much faster `deepEquals` comparison, which returns a\nstring key suitable for caches and the like.\n\n## Usage\n\n```javascript\nfunction doSomething (someObj) {\n  var key = sigmund(someObj, maxDepth) // max depth defaults to 10\n  var cached = cache.get(key)\n  if (cached) return cached)\n\n  var result = expensiveCalculation(someObj)\n  cache.set(key, result)\n  return result\n}\n```\n\nThe resulting key will be as unique and reproducible as calling\n`JSON.stringify` or `util.inspect` on the object, but is much faster.\nIn order to achieve this speed, some differences are glossed over.\nFor example, the object `{0:'foo'}` will be treated identically to the\narray `['foo']`.\n\nAlso, just as there is no way to summon the soul from the scribblings\nof a cocain-addled psychoanalyst, there is no way to revive the object\nfrom the signature string that sigmund gives you.  In fact, it's\nbarely even rea
 dable.\n\nAs with `sys.inspect` and `JSON.stringify`, larger objects will\nproduce larger signature strings.\n\nBecause sigmund is a bit less strict than the more thorough\nalternatives, the strings will be shorter, and also there is a\nslightly higher chance for collisions.  For example, these objects\nhave the same signature:\n\n    var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}\n    var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}\n\nLike a good Freudian, sigmund is most effective when you already have\nsome understanding of what you're looking for.  It can help you help\nyourself, but you must be willing to do some work as well.\n\nCycles are handled, and cyclical objects are silently omitted (though\nthe key is included in the signature output.)\n\nThe second argument is the maximum depth, which defaults to 10,\nbecause that is the maximum object traversal depth covered by most\ninsurance carriers.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/sigmund/issues"
-  },
-  "_id": "sigmund@1.0.0",
-  "_from": "sigmund@~1.0.0"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/sigmund.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/sigmund.js b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/sigmund.js
deleted file mode 100644
index 82c7ab8..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/sigmund.js
+++ /dev/null
@@ -1,39 +0,0 @@
-module.exports = sigmund
-function sigmund (subject, maxSessions) {
-    maxSessions = maxSessions || 10;
-    var notes = [];
-    var analysis = '';
-    var RE = RegExp;
-
-    function psychoAnalyze (subject, session) {
-        if (session > maxSessions) return;
-
-        if (typeof subject === 'function' ||
-            typeof subject === 'undefined') {
-            return;
-        }
-
-        if (typeof subject !== 'object' || !subject ||
-            (subject instanceof RE)) {
-            analysis += subject;
-            return;
-        }
-
-        if (notes.indexOf(subject) !== -1 || session === maxSessions) return;
-
-        notes.push(subject);
-        analysis += '{';
-        Object.keys(subject).forEach(function (issue, _, __) {
-            // pseudo-private values.  skip those.
-            if (issue.charAt(0) === '_') return;
-            var to = typeof subject[issue];
-            if (to === 'function' || to === 'undefined') return;
-            analysis += issue;
-            psychoAnalyze(subject[issue], session + 1);
-        });
-    }
-    psychoAnalyze(subject, 0);
-    return analysis;
-}
-
-// vim: set softtabstop=4 shiftwidth=4:

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/test/basic.js b/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/test/basic.js
deleted file mode 100644
index 50c53a1..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/node_modules/sigmund/test/basic.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var test = require('tap').test
-var sigmund = require('../sigmund.js')
-
-
-// occasionally there are duplicates
-// that's an acceptable edge-case.  JSON.stringify and util.inspect
-// have some collision potential as well, though less, and collision
-// detection is expensive.
-var hash = '{abc/def/g{0h1i2{jkl'
-var obj1 = {a:'b',c:/def/,g:['h','i',{j:'',k:'l'}]}
-var obj2 = {a:'b',c:'/def/',g:['h','i','{jkl']}
-
-var obj3 = JSON.parse(JSON.stringify(obj1))
-obj3.c = /def/
-obj3.g[2].cycle = obj3
-var cycleHash = '{abc/def/g{0h1i2{jklcycle'
-
-test('basic', function (t) {
-    t.equal(sigmund(obj1), hash)
-    t.equal(sigmund(obj2), hash)
-    t.equal(sigmund(obj3), cycleHash)
-    t.end()
-})
-


[43/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/index.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/index.js
deleted file mode 100755
index c45520b..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/index.js
+++ /dev/null
@@ -1,174 +0,0 @@
-var fs = require('fs');
-var mkdirp = require('mkdirp');
-var util;
-try {
-  util = require('util')
-} catch(e) {
-  util = require('sys')
-}
-
-var path = require('path');
-
-var filename = __dirname + '/jasmine-1.3.1.js';
-var isWindowUndefined = typeof global.window === 'undefined';
-if (isWindowUndefined) {
-  global.window = {
-    setTimeout: setTimeout,
-    clearTimeout: clearTimeout,
-    setInterval: setInterval,
-    clearInterval: clearInterval
-  };
-}
-
-var src = fs.readFileSync(filename);
-// Put jasmine in the global context, this is somewhat like running in a
-// browser where every file will have access to `jasmine`
-var jasmine = require('vm').runInThisContext(src + "\njasmine;", filename);
-
-
-if (isWindowUndefined) {
-  delete global.window;
-}
-require("./async-callback");
-require("jasmine-reporters");
-var nodeReporters = require('./reporter').jasmineNode;
-jasmine.TerminalVerboseReporter = nodeReporters.TerminalVerboseReporter;
-jasmine.TerminalReporter = nodeReporters.TerminalReporter;
-
-
-jasmine.loadHelpersInFolder=function(folder, matcher)
-{
-  // Check to see if the folder is actually a file, if so, back up to the
-  // parent directory and find some helpers
-  folderStats = fs.statSync(folder);
-  if (folderStats.isFile()) {
-    folder = path.dirname(folder);
-  }
-  var helpers = [],
-      helperCollection = require('./spec-collection');
-
-  helperCollection.load([folder], matcher);
-  helpers = helperCollection.getSpecs();
-
-  for (var i = 0, len = helpers.length; i < len; ++i)
-  {
-    var file = helpers[i].path();
-    var helper= require(file.replace(/\.*$/, ""));
-    for (var key in helper)
-      global[key]= helper[key];
-  }
-};
-
-function removeJasmineFrames(text) {
-  var lines = [];
-  text.split(/\n/).forEach(function(line){
-    if (line.indexOf(filename) == -1) {
-      lines.push(line);
-    }
-  });
-  return lines.join('\n');
-}
-
-jasmine.executeSpecsInFolder = function(options){
-  var folders =      options['specFolders'];
-  var done   =       options['onComplete'];
-  var isVerbose =    options['isVerbose'];
-  var showColors =   options['showColors'];
-  var teamcity =     options['teamcity'];
-  var useRequireJs = options['useRequireJs'];
-  var matcher =      options['regExpSpec'];
-  var junitreport = options['junitreport'];
-  var includeStackTrace = options['includeStackTrace'];
-
-  // Overwriting it allows us to handle custom async specs
-  it = function(desc, func, timeout) {
-      return jasmine.getEnv().it(desc, func, timeout);
-  }
-  var fileMatcher = matcher || new RegExp(".(js)$", "i"),
-      colors = showColors || false,
-      specs = require('./spec-collection'),
-      jasmineEnv = jasmine.getEnv();
-
-  specs.load(folders, fileMatcher);
-
-  if(junitreport && junitreport.report) {
-    var existsSync = fs.existsSync || path.existsSync;
-    if(!existsSync(junitreport.savePath)) {
-      util.puts('creating junit xml report save path: ' + junitreport.savePath);
-      mkdirp.sync(junitreport.savePath, "0755");
-    }
-    jasmineEnv.addReporter(new jasmine.JUnitXmlReporter(junitreport.savePath,
-                                                        junitreport.consolidate,
-                                                        junitreport.useDotNotation));
-  }
-
-  if(teamcity){
-    jasmineEnv.addReporter(new jasmine.TeamcityReporter());
-  } else if(isVerbose) {
-    jasmineEnv.addReporter(new jasmine.TerminalVerboseReporter({ print:       util.print,
-                                                         color:       showColors,
-                                                         onComplete:  done,
-                                                         stackFilter: removeJasmineFrames}));
-  } else {
-    jasmineEnv.addReporter(new jasmine.TerminalReporter({print:       util.print,
-                                                color: showColors,
-                                                includeStackTrace: includeStackTrace,
-                                                onComplete:  done,
-                                                stackFilter: removeJasmineFrames}));
-  }
-
-  if (useRequireJs) {
-    require('./requirejs-runner').executeJsRunner(
-      specs,
-      done,
-      jasmineEnv,
-      typeof useRequireJs === 'string' ? useRequireJs : null
-    );
-  } else {
-    var specsList = specs.getSpecs();
-
-    for (var i = 0, len = specsList.length; i < len; ++i) {
-      var filename = specsList[i];
-      delete require.cache[filename.path()];
-      // Catch exceptions in loading the spec
-      try {
-        require(filename.path().replace(/\.\w+$/, ""));
-      } catch (e) {
-        console.log("Exception loading: " + filename.path());
-        console.log(e);
-      }
-    }
-
-    jasmineEnv.execute();
-  }
-};
-
-function now(){
-  return new Date().getTime();
-}
-
-jasmine.asyncSpecWait = function(){
-  var wait = jasmine.asyncSpecWait;
-  wait.start = now();
-  wait.done = false;
-  (function innerWait(){
-    waits(10);
-    runs(function() {
-      if (wait.start + wait.timeout < now()) {
-        expect('timeout waiting for spec').toBeNull();
-      } else if (wait.done) {
-        wait.done = false;
-      } else {
-        innerWait();
-      }
-    });
-  })();
-};
-jasmine.asyncSpecWait.timeout = 4 * 1000;
-jasmine.asyncSpecDone = function(){
-  jasmine.asyncSpecWait.done = true;
-};
-
-for ( var key in jasmine) {
-  exports[key] = jasmine[key];
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/jasmine-1.3.1.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/jasmine-1.3.1.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/jasmine-1.3.1.js
deleted file mode 100644
index 6b3459b..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/jasmine-1.3.1.js
+++ /dev/null
@@ -1,2600 +0,0 @@
-var isCommonJS = typeof window == "undefined" && typeof exports == "object";
-
-/**
- * Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework.
- *
- * @namespace
- */
-var jasmine = {};
-if (isCommonJS) exports.jasmine = jasmine;
-/**
- * @private
- */
-jasmine.unimplementedMethod_ = function() {
-  throw new Error("unimplemented method");
-};
-
-/**
- * Use <code>jasmine.undefined</code> instead of <code>undefined</code>, since <code>undefined</code> is just
- * a plain old variable and may be redefined by somebody else.
- *
- * @private
- */
-jasmine.undefined = jasmine.___undefined___;
-
-/**
- * Show diagnostic messages in the console if set to true
- *
- */
-jasmine.VERBOSE = false;
-
-/**
- * Default interval in milliseconds for event loop yields (e.g. to allow network activity or to refresh the screen with the HTML-based runner). Small values here may result in slow test running. Zero means no updates until all tests have completed.
- *
- */
-jasmine.DEFAULT_UPDATE_INTERVAL = 250;
-
-/**
- * Maximum levels of nesting that will be included when an object is pretty-printed
- */
-jasmine.MAX_PRETTY_PRINT_DEPTH = 40;
-
-/**
- * Default timeout interval in milliseconds for waitsFor() blocks.
- */
-jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000;
-
-/**
- * By default exceptions thrown in the context of a test are caught by jasmine so that it can run the remaining tests in the suite.
- * Set to false to let the exception bubble up in the browser.
- *
- */
-jasmine.CATCH_EXCEPTIONS = true;
-
-jasmine.getGlobal = function() {
-  function getGlobal() {
-    return this;
-  }
-
-  return getGlobal();
-};
-
-/**
- * Allows for bound functions to be compared.  Internal use only.
- *
- * @ignore
- * @private
- * @param base {Object} bound 'this' for the function
- * @param name {Function} function to find
- */
-jasmine.bindOriginal_ = function(base, name) {
-  var original = base[name];
-  if (original.apply) {
-    return function() {
-      return original.apply(base, arguments);
-    };
-  } else {
-    // IE support
-    return jasmine.getGlobal()[name];
-  }
-};
-
-jasmine.setTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'setTimeout');
-jasmine.clearTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearTimeout');
-jasmine.setInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'setInterval');
-jasmine.clearInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearInterval');
-
-jasmine.MessageResult = function(values) {
-  this.type = 'log';
-  this.values = values;
-  this.trace = new Error(); // todo: test better
-};
-
-jasmine.MessageResult.prototype.toString = function() {
-  var text = "";
-  for (var i = 0; i < this.values.length; i++) {
-    if (i > 0) text += " ";
-    if (jasmine.isString_(this.values[i])) {
-      text += this.values[i];
-    } else {
-      text += jasmine.pp(this.values[i]);
-    }
-  }
-  return text;
-};
-
-jasmine.ExpectationResult = function(params) {
-  this.type = 'expect';
-  this.matcherName = params.matcherName;
-  this.passed_ = params.passed;
-  this.expected = params.expected;
-  this.actual = params.actual;
-  this.message = this.passed_ ? 'Passed.' : params.message;
-
-  var trace = (params.trace || new Error(this.message));
-  this.trace = this.passed_ ? '' : trace;
-};
-
-jasmine.ExpectationResult.prototype.toString = function () {
-  return this.message;
-};
-
-jasmine.ExpectationResult.prototype.passed = function () {
-  return this.passed_;
-};
-
-/**
- * Getter for the Jasmine environment. Ensures one gets created
- */
-jasmine.getEnv = function() {
-  var env = jasmine.currentEnv_ = jasmine.currentEnv_ || new jasmine.Env();
-  return env;
-};
-
-/**
- * @ignore
- * @private
- * @param value
- * @returns {Boolean}
- */
-jasmine.isArray_ = function(value) {
-  return jasmine.isA_("Array", value);
-};
-
-/**
- * @ignore
- * @private
- * @param value
- * @returns {Boolean}
- */
-jasmine.isString_ = function(value) {
-  return jasmine.isA_("String", value);
-};
-
-/**
- * @ignore
- * @private
- * @param value
- * @returns {Boolean}
- */
-jasmine.isNumber_ = function(value) {
-  return jasmine.isA_("Number", value);
-};
-
-/**
- * @ignore
- * @private
- * @param {String} typeName
- * @param value
- * @returns {Boolean}
- */
-jasmine.isA_ = function(typeName, value) {
-  return Object.prototype.toString.apply(value) === '[object ' + typeName + ']';
-};
-
-/**
- * Pretty printer for expecations.  Takes any object and turns it into a human-readable string.
- *
- * @param value {Object} an object to be outputted
- * @returns {String}
- */
-jasmine.pp = function(value) {
-  var stringPrettyPrinter = new jasmine.StringPrettyPrinter();
-  stringPrettyPrinter.format(value);
-  return stringPrettyPrinter.string;
-};
-
-/**
- * Returns true if the object is a DOM Node.
- *
- * @param {Object} obj object to check
- * @returns {Boolean}
- */
-jasmine.isDomNode = function(obj) {
-  return obj.nodeType > 0;
-};
-
-/**
- * Returns a matchable 'generic' object of the class type.  For use in expecations of type when values don't matter.
- *
- * @example
- * // don't care about which function is passed in, as long as it's a function
- * expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function));
- *
- * @param {Class} clazz
- * @returns matchable object of the type clazz
- */
-jasmine.any = function(clazz) {
-  return new jasmine.Matchers.Any(clazz);
-};
-
-/**
- * Returns a matchable subset of a JSON object. For use in expectations when you don't care about all of the
- * attributes on the object.
- *
- * @example
- * // don't care about any other attributes than foo.
- * expect(mySpy).toHaveBeenCalledWith(jasmine.objectContaining({foo: "bar"});
- *
- * @param sample {Object} sample
- * @returns matchable object for the sample
- */
-jasmine.objectContaining = function (sample) {
-    return new jasmine.Matchers.ObjectContaining(sample);
-};
-
-/**
- * Jasmine Spies are test doubles that can act as stubs, spies, fakes or when used in an expecation, mocks.
- *
- * Spies should be created in test setup, before expectations.  They can then be checked, using the standard Jasmine
- * expectation syntax. Spies can be checked if they were called or not and what the calling params were.
- *
- * A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs).
- *
- * Spies are torn down at the end of every spec.
- *
- * Note: Do <b>not</b> call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
- *
- * @example
- * // a stub
- * var myStub = jasmine.createSpy('myStub');  // can be used anywhere
- *
- * // spy example
- * var foo = {
- *   not: function(bool) { return !bool; }
- * }
- *
- * // actual foo.not will not be called, execution stops
- * spyOn(foo, 'not');
-
- // foo.not spied upon, execution will continue to implementation
- * spyOn(foo, 'not').andCallThrough();
- *
- * // fake example
- * var foo = {
- *   not: function(bool) { return !bool; }
- * }
- *
- * // foo.not(val) will return val
- * spyOn(foo, 'not').andCallFake(function(value) {return value;});
- *
- * // mock example
- * foo.not(7 == 7);
- * expect(foo.not).toHaveBeenCalled();
- * expect(foo.not).toHaveBeenCalledWith(true);
- *
- * @constructor
- * @see spyOn, jasmine.createSpy, jasmine.createSpyObj
- * @param {String} name
- */
-jasmine.Spy = function(name) {
-  /**
-   * The name of the spy, if provided.
-   */
-  this.identity = name || 'unknown';
-  /**
-   *  Is this Object a spy?
-   */
-  this.isSpy = true;
-  /**
-   * The actual function this spy stubs.
-   */
-  this.plan = function() {
-  };
-  /**
-   * Tracking of the most recent call to the spy.
-   * @example
-   * var mySpy = jasmine.createSpy('foo');
-   * mySpy(1, 2);
-   * mySpy.mostRecentCall.args = [1, 2];
-   */
-  this.mostRecentCall = {};
-
-  /**
-   * Holds arguments for each call to the spy, indexed by call count
-   * @example
-   * var mySpy = jasmine.createSpy('foo');
-   * mySpy(1, 2);
-   * mySpy(7, 8);
-   * mySpy.mostRecentCall.args = [7, 8];
-   * mySpy.argsForCall[0] = [1, 2];
-   * mySpy.argsForCall[1] = [7, 8];
-   */
-  this.argsForCall = [];
-  this.calls = [];
-};
-
-/**
- * Tells a spy to call through to the actual implemenatation.
- *
- * @example
- * var foo = {
- *   bar: function() { // do some stuff }
- * }
- *
- * // defining a spy on an existing property: foo.bar
- * spyOn(foo, 'bar').andCallThrough();
- */
-jasmine.Spy.prototype.andCallThrough = function() {
-  this.plan = this.originalValue;
-  return this;
-};
-
-/**
- * For setting the return value of a spy.
- *
- * @example
- * // defining a spy from scratch: foo() returns 'baz'
- * var foo = jasmine.createSpy('spy on foo').andReturn('baz');
- *
- * // defining a spy on an existing property: foo.bar() returns 'baz'
- * spyOn(foo, 'bar').andReturn('baz');
- *
- * @param {Object} value
- */
-jasmine.Spy.prototype.andReturn = function(value) {
-  this.plan = function() {
-    return value;
-  };
-  return this;
-};
-
-/**
- * For throwing an exception when a spy is called.
- *
- * @example
- * // defining a spy from scratch: foo() throws an exception w/ message 'ouch'
- * var foo = jasmine.createSpy('spy on foo').andThrow('baz');
- *
- * // defining a spy on an existing property: foo.bar() throws an exception w/ message 'ouch'
- * spyOn(foo, 'bar').andThrow('baz');
- *
- * @param {String} exceptionMsg
- */
-jasmine.Spy.prototype.andThrow = function(exceptionMsg) {
-  this.plan = function() {
-    throw exceptionMsg;
-  };
-  return this;
-};
-
-/**
- * Calls an alternate implementation when a spy is called.
- *
- * @example
- * var baz = function() {
- *   // do some stuff, return something
- * }
- * // defining a spy from scratch: foo() calls the function baz
- * var foo = jasmine.createSpy('spy on foo').andCall(baz);
- *
- * // defining a spy on an existing property: foo.bar() calls an anonymnous function
- * spyOn(foo, 'bar').andCall(function() { return 'baz';} );
- *
- * @param {Function} fakeFunc
- */
-jasmine.Spy.prototype.andCallFake = function(fakeFunc) {
-  this.plan = fakeFunc;
-  return this;
-};
-
-/**
- * Resets all of a spy's the tracking variables so that it can be used again.
- *
- * @example
- * spyOn(foo, 'bar');
- *
- * foo.bar();
- *
- * expect(foo.bar.callCount).toEqual(1);
- *
- * foo.bar.reset();
- *
- * expect(foo.bar.callCount).toEqual(0);
- */
-jasmine.Spy.prototype.reset = function() {
-  this.wasCalled = false;
-  this.callCount = 0;
-  this.argsForCall = [];
-  this.calls = [];
-  this.mostRecentCall = {};
-};
-
-jasmine.createSpy = function(name) {
-
-  var spyObj = function() {
-    spyObj.wasCalled = true;
-    spyObj.callCount++;
-    var args = jasmine.util.argsToArray(arguments);
-    spyObj.mostRecentCall.object = this;
-    spyObj.mostRecentCall.args = args;
-    spyObj.argsForCall.push(args);
-    spyObj.calls.push({object: this, args: args});
-    return spyObj.plan.apply(this, arguments);
-  };
-
-  var spy = new jasmine.Spy(name);
-
-  for (var prop in spy) {
-    spyObj[prop] = spy[prop];
-  }
-
-  spyObj.reset();
-
-  return spyObj;
-};
-
-/**
- * Determines whether an object is a spy.
- *
- * @param {jasmine.Spy|Object} putativeSpy
- * @returns {Boolean}
- */
-jasmine.isSpy = function(putativeSpy) {
-  return putativeSpy && putativeSpy.isSpy;
-};
-
-/**
- * Creates a more complicated spy: an Object that has every property a function that is a spy.  Used for stubbing something
- * large in one call.
- *
- * @param {String} baseName name of spy class
- * @param {Array} methodNames array of names of methods to make spies
- */
-jasmine.createSpyObj = function(baseName, methodNames) {
-  if (!jasmine.isArray_(methodNames) || methodNames.length === 0) {
-    throw new Error('createSpyObj requires a non-empty array of method names to create spies for');
-  }
-  var obj = {};
-  for (var i = 0; i < methodNames.length; i++) {
-    obj[methodNames[i]] = jasmine.createSpy(baseName + '.' + methodNames[i]);
-  }
-  return obj;
-};
-
-/**
- * All parameters are pretty-printed and concatenated together, then written to the current spec's output.
- *
- * Be careful not to leave calls to <code>jasmine.log</code> in production code.
- */
-jasmine.log = function() {
-  var spec = jasmine.getEnv().currentSpec;
-  spec.log.apply(spec, arguments);
-};
-
-/**
- * Function that installs a spy on an existing object's method name.  Used within a Spec to create a spy.
- *
- * @example
- * // spy example
- * var foo = {
- *   not: function(bool) { return !bool; }
- * }
- * spyOn(foo, 'not'); // actual foo.not will not be called, execution stops
- *
- * @see jasmine.createSpy
- * @param obj
- * @param methodName
- * @return {jasmine.Spy} a Jasmine spy that can be chained with all spy methods
- */
-var spyOn = function(obj, methodName) {
-  return jasmine.getEnv().currentSpec.spyOn(obj, methodName);
-};
-if (isCommonJS) exports.spyOn = spyOn;
-
-/**
- * Creates a Jasmine spec that will be added to the current suite.
- *
- * // TODO: pending tests
- *
- * @example
- * it('should be true', function() {
- *   expect(true).toEqual(true);
- * });
- *
- * @param {String} desc description of this specification
- * @param {Function} func defines the preconditions and expectations of the spec
- */
-var it = function(desc, func) {
-  return jasmine.getEnv().it(desc, func);
-};
-if (isCommonJS) exports.it = it;
-
-/**
- * Creates a <em>disabled</em> Jasmine spec.
- *
- * A convenience method that allows existing specs to be disabled temporarily during development.
- *
- * @param {String} desc description of this specification
- * @param {Function} func defines the preconditions and expectations of the spec
- */
-var xit = function(desc, func) {
-  return jasmine.getEnv().xit(desc, func);
-};
-if (isCommonJS) exports.xit = xit;
-
-/**
- * Starts a chain for a Jasmine expectation.
- *
- * It is passed an Object that is the actual value and should chain to one of the many
- * jasmine.Matchers functions.
- *
- * @param {Object} actual Actual value to test against and expected value
- * @return {jasmine.Matchers}
- */
-var expect = function(actual) {
-  return jasmine.getEnv().currentSpec.expect(actual);
-};
-if (isCommonJS) exports.expect = expect;
-
-/**
- * Defines part of a jasmine spec.  Used in cominbination with waits or waitsFor in asynchrnous specs.
- *
- * @param {Function} func Function that defines part of a jasmine spec.
- */
-var runs = function(func) {
-  jasmine.getEnv().currentSpec.runs(func);
-};
-if (isCommonJS) exports.runs = runs;
-
-/**
- * Waits a fixed time period before moving to the next block.
- *
- * @deprecated Use waitsFor() instead
- * @param {Number} timeout milliseconds to wait
- */
-var waits = function(timeout) {
-  jasmine.getEnv().currentSpec.waits(timeout);
-};
-if (isCommonJS) exports.waits = waits;
-
-/**
- * Waits for the latchFunction to return true before proceeding to the next block.
- *
- * @param {Function} latchFunction
- * @param {String} optional_timeoutMessage
- * @param {Number} optional_timeout
- */
-var waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
-  jasmine.getEnv().currentSpec.waitsFor.apply(jasmine.getEnv().currentSpec, arguments);
-};
-if (isCommonJS) exports.waitsFor = waitsFor;
-
-/**
- * A function that is called before each spec in a suite.
- *
- * Used for spec setup, including validating assumptions.
- *
- * @param {Function} beforeEachFunction
- */
-var beforeEach = function(beforeEachFunction) {
-  jasmine.getEnv().beforeEach(beforeEachFunction);
-};
-if (isCommonJS) exports.beforeEach = beforeEach;
-
-/**
- * A function that is called after each spec in a suite.
- *
- * Used for restoring any state that is hijacked during spec execution.
- *
- * @param {Function} afterEachFunction
- */
-var afterEach = function(afterEachFunction) {
-  jasmine.getEnv().afterEach(afterEachFunction);
-};
-if (isCommonJS) exports.afterEach = afterEach;
-
-/**
- * Defines a suite of specifications.
- *
- * Stores the description and all defined specs in the Jasmine environment as one suite of specs. Variables declared
- * are accessible by calls to beforeEach, it, and afterEach. Describe blocks can be nested, allowing for specialization
- * of setup in some tests.
- *
- * @example
- * // TODO: a simple suite
- *
- * // TODO: a simple suite with a nested describe block
- *
- * @param {String} description A string, usually the class under test.
- * @param {Function} specDefinitions function that defines several specs.
- */
-var describe = function(description, specDefinitions) {
-  return jasmine.getEnv().describe(description, specDefinitions);
-};
-if (isCommonJS) exports.describe = describe;
-
-/**
- * Disables a suite of specifications.  Used to disable some suites in a file, or files, temporarily during development.
- *
- * @param {String} description A string, usually the class under test.
- * @param {Function} specDefinitions function that defines several specs.
- */
-var xdescribe = function(description, specDefinitions) {
-  return jasmine.getEnv().xdescribe(description, specDefinitions);
-};
-if (isCommonJS) exports.xdescribe = xdescribe;
-
-
-// Provide the XMLHttpRequest class for IE 5.x-6.x:
-jasmine.XmlHttpRequest = (typeof XMLHttpRequest == "undefined") ? function() {
-  function tryIt(f) {
-    try {
-      return f();
-    } catch(e) {
-    }
-    return null;
-  }
-
-  var xhr = tryIt(function() {
-    return new ActiveXObject("Msxml2.XMLHTTP.6.0");
-  }) ||
-    tryIt(function() {
-      return new ActiveXObject("Msxml2.XMLHTTP.3.0");
-    }) ||
-    tryIt(function() {
-      return new ActiveXObject("Msxml2.XMLHTTP");
-    }) ||
-    tryIt(function() {
-      return new ActiveXObject("Microsoft.XMLHTTP");
-    });
-
-  if (!xhr) throw new Error("This browser does not support XMLHttpRequest.");
-
-  return xhr;
-} : XMLHttpRequest;
-/**
- * @namespace
- */
-jasmine.util = {};
-
-/**
- * Declare that a child class inherit it's prototype from the parent class.
- *
- * @private
- * @param {Function} childClass
- * @param {Function} parentClass
- */
-jasmine.util.inherit = function(childClass, parentClass) {
-  /**
-   * @private
-   */
-  var subclass = function() {
-  };
-  subclass.prototype = parentClass.prototype;
-  childClass.prototype = new subclass();
-};
-
-jasmine.util.formatException = function(e) {
-  var lineNumber;
-  if (e.line) {
-    lineNumber = e.line;
-  }
-  else if (e.lineNumber) {
-    lineNumber = e.lineNumber;
-  }
-
-  var file;
-
-  if (e.sourceURL) {
-    file = e.sourceURL;
-  }
-  else if (e.fileName) {
-    file = e.fileName;
-  }
-
-  var message = (e.name && e.message) ? (e.name + ': ' + e.message) : e.toString();
-
-  if (file && lineNumber) {
-    message += ' in ' + file + ' (line ' + lineNumber + ')';
-  }
-
-  return message;
-};
-
-jasmine.util.htmlEscape = function(str) {
-  if (!str) return str;
-  return str.replace(/&/g, '&amp;')
-    .replace(/</g, '&lt;')
-    .replace(/>/g, '&gt;');
-};
-
-jasmine.util.argsToArray = function(args) {
-  var arrayOfArgs = [];
-  for (var i = 0; i < args.length; i++) arrayOfArgs.push(args[i]);
-  return arrayOfArgs;
-};
-
-jasmine.util.extend = function(destination, source) {
-  for (var property in source) destination[property] = source[property];
-  return destination;
-};
-
-/**
- * Environment for Jasmine
- *
- * @constructor
- */
-jasmine.Env = function() {
-  this.currentSpec = null;
-  this.currentSuite = null;
-  this.currentRunner_ = new jasmine.Runner(this);
-
-  this.reporter = new jasmine.MultiReporter();
-
-  this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL;
-  this.defaultTimeoutInterval = jasmine.DEFAULT_TIMEOUT_INTERVAL;
-  this.lastUpdate = 0;
-  this.specFilter = function() {
-    return true;
-  };
-
-  this.nextSpecId_ = 0;
-  this.nextSuiteId_ = 0;
-  this.equalityTesters_ = [];
-
-  // wrap matchers
-  this.matchersClass = function() {
-    jasmine.Matchers.apply(this, arguments);
-  };
-  jasmine.util.inherit(this.matchersClass, jasmine.Matchers);
-
-  jasmine.Matchers.wrapInto_(jasmine.Matchers.prototype, this.matchersClass);
-};
-
-
-jasmine.Env.prototype.setTimeout = jasmine.setTimeout;
-jasmine.Env.prototype.clearTimeout = jasmine.clearTimeout;
-jasmine.Env.prototype.setInterval = jasmine.setInterval;
-jasmine.Env.prototype.clearInterval = jasmine.clearInterval;
-
-/**
- * @returns an object containing jasmine version build info, if set.
- */
-jasmine.Env.prototype.version = function () {
-  if (jasmine.version_) {
-    return jasmine.version_;
-  } else {
-    throw new Error('Version not set');
-  }
-};
-
-/**
- * @returns string containing jasmine version build info, if set.
- */
-jasmine.Env.prototype.versionString = function() {
-  if (!jasmine.version_) {
-    return "version unknown";
-  }
-
-  var version = this.version();
-  var versionString = version.major + "." + version.minor + "." + version.build;
-  if (version.release_candidate) {
-    versionString += ".rc" + version.release_candidate;
-  }
-  versionString += " revision " + version.revision;
-  return versionString;
-};
-
-/**
- * @returns a sequential integer starting at 0
- */
-jasmine.Env.prototype.nextSpecId = function () {
-  return this.nextSpecId_++;
-};
-
-/**
- * @returns a sequential integer starting at 0
- */
-jasmine.Env.prototype.nextSuiteId = function () {
-  return this.nextSuiteId_++;
-};
-
-/**
- * Register a reporter to receive status updates from Jasmine.
- * @param {jasmine.Reporter} reporter An object which will receive status updates.
- */
-jasmine.Env.prototype.addReporter = function(reporter) {
-  this.reporter.addReporter(reporter);
-};
-
-jasmine.Env.prototype.execute = function() {
-  this.currentRunner_.execute();
-};
-
-jasmine.Env.prototype.describe = function(description, specDefinitions) {
-  var suite = new jasmine.Suite(this, description, specDefinitions, this.currentSuite);
-
-  var parentSuite = this.currentSuite;
-  if (parentSuite) {
-    parentSuite.add(suite);
-  } else {
-    this.currentRunner_.add(suite);
-  }
-
-  this.currentSuite = suite;
-
-  var declarationError = null;
-  try {
-    specDefinitions.call(suite);
-  } catch(e) {
-    declarationError = e;
-  }
-
-  if (declarationError) {
-    this.it("encountered a declaration exception", function() {
-      throw declarationError;
-    });
-  }
-
-  this.currentSuite = parentSuite;
-
-  return suite;
-};
-
-jasmine.Env.prototype.beforeEach = function(beforeEachFunction) {
-  if (this.currentSuite) {
-    this.currentSuite.beforeEach(beforeEachFunction);
-  } else {
-    this.currentRunner_.beforeEach(beforeEachFunction);
-  }
-};
-
-jasmine.Env.prototype.currentRunner = function () {
-  return this.currentRunner_;
-};
-
-jasmine.Env.prototype.afterEach = function(afterEachFunction) {
-  if (this.currentSuite) {
-    this.currentSuite.afterEach(afterEachFunction);
-  } else {
-    this.currentRunner_.afterEach(afterEachFunction);
-  }
-
-};
-
-jasmine.Env.prototype.xdescribe = function(desc, specDefinitions) {
-  return {
-    execute: function() {
-    }
-  };
-};
-
-jasmine.Env.prototype.it = function(description, func) {
-  var spec = new jasmine.Spec(this, this.currentSuite, description);
-  this.currentSuite.add(spec);
-  this.currentSpec = spec;
-
-  if (func) {
-    spec.runs(func);
-  }
-
-  return spec;
-};
-
-jasmine.Env.prototype.xit = function(desc, func) {
-  return {
-    id: this.nextSpecId(),
-    runs: function() {
-    }
-  };
-};
-
-jasmine.Env.prototype.compareRegExps_ = function(a, b, mismatchKeys, mismatchValues) {
-  if (a.source != b.source)
-    mismatchValues.push("expected pattern /" + b.source + "/ is not equal to the pattern /" + a.source + "/");
-
-  if (a.ignoreCase != b.ignoreCase)
-    mismatchValues.push("expected modifier i was" + (b.ignoreCase ? " " : " not ") + "set and does not equal the origin modifier");
-
-  if (a.global != b.global)
-    mismatchValues.push("expected modifier g was" + (b.global ? " " : " not ") + "set and does not equal the origin modifier");
-
-  if (a.multiline != b.multiline)
-    mismatchValues.push("expected modifier m was" + (b.multiline ? " " : " not ") + "set and does not equal the origin modifier");
-
-  if (a.sticky != b.sticky)
-    mismatchValues.push("expected modifier y was" + (b.sticky ? " " : " not ") + "set and does not equal the origin modifier");
-
-  return (mismatchValues.length === 0);
-};
-
-jasmine.Env.prototype.compareObjects_ = function(a, b, mismatchKeys, mismatchValues) {
-  if (a.__Jasmine_been_here_before__ === b && b.__Jasmine_been_here_before__ === a) {
-    return true;
-  }
-
-  a.__Jasmine_been_here_before__ = b;
-  b.__Jasmine_been_here_before__ = a;
-
-  var hasKey = function(obj, keyName) {
-    return obj !== null && obj[keyName] !== jasmine.undefined;
-  };
-
-  for (var property in b) {
-    if (!hasKey(a, property) && hasKey(b, property)) {
-      mismatchKeys.push("expected has key '" + property + "', but missing from actual.");
-    }
-  }
-  for (property in a) {
-    if (!hasKey(b, property) && hasKey(a, property)) {
-      mismatchKeys.push("expected missing key '" + property + "', but present in actual.");
-    }
-  }
-  for (property in b) {
-    if (property == '__Jasmine_been_here_before__') continue;
-    if (!this.equals_(a[property], b[property], mismatchKeys, mismatchValues)) {
-      mismatchValues.push("'" + property + "' was '" + (b[property] ? jasmine.util.htmlEscape(b[property].toString()) : b[property]) + "' in expected, but was '" + (a[property] ? jasmine.util.htmlEscape(a[property].toString()) : a[property]) + "' in actual.");
-    }
-  }
-
-  if (jasmine.isArray_(a) && jasmine.isArray_(b) && a.length != b.length) {
-    mismatchValues.push("arrays were not the same length");
-  }
-
-  delete a.__Jasmine_been_here_before__;
-  delete b.__Jasmine_been_here_before__;
-  return (mismatchKeys.length === 0 && mismatchValues.length === 0);
-};
-
-jasmine.Env.prototype.equals_ = function(a, b, mismatchKeys, mismatchValues) {
-  mismatchKeys = mismatchKeys || [];
-  mismatchValues = mismatchValues || [];
-
-  for (var i = 0; i < this.equalityTesters_.length; i++) {
-    var equalityTester = this.equalityTesters_[i];
-    var result = equalityTester(a, b, this, mismatchKeys, mismatchValues);
-    if (result !== jasmine.undefined) return result;
-  }
-
-  if (a === b) return true;
-
-  if (a === jasmine.undefined || a === null || b === jasmine.undefined || b === null) {
-    return (a == jasmine.undefined && b == jasmine.undefined);
-  }
-
-  if (jasmine.isDomNode(a) && jasmine.isDomNode(b)) {
-    return a === b;
-  }
-
-  if (a instanceof Date && b instanceof Date) {
-    return a.getTime() == b.getTime();
-  }
-
-  if (a.jasmineMatches) {
-    return a.jasmineMatches(b);
-  }
-
-  if (b.jasmineMatches) {
-    return b.jasmineMatches(a);
-  }
-
-  if (a instanceof jasmine.Matchers.ObjectContaining) {
-    return a.matches(b);
-  }
-
-  if (b instanceof jasmine.Matchers.ObjectContaining) {
-    return b.matches(a);
-  }
-
-  if (jasmine.isString_(a) && jasmine.isString_(b)) {
-    return (a == b);
-  }
-
-  if (jasmine.isNumber_(a) && jasmine.isNumber_(b)) {
-    return (a == b);
-  }
-
-  if (a instanceof RegExp && b instanceof RegExp) {
-    return this.compareRegExps_(a, b, mismatchKeys, mismatchValues);
-  }
-
-  if (typeof a === "object" && typeof b === "object") {
-    return this.compareObjects_(a, b, mismatchKeys, mismatchValues);
-  }
-
-  //Straight check
-  return (a === b);
-};
-
-jasmine.Env.prototype.contains_ = function(haystack, needle) {
-  if (jasmine.isArray_(haystack)) {
-    for (var i = 0; i < haystack.length; i++) {
-      if (this.equals_(haystack[i], needle)) return true;
-    }
-    return false;
-  }
-  return haystack.indexOf(needle) >= 0;
-};
-
-jasmine.Env.prototype.addEqualityTester = function(equalityTester) {
-  this.equalityTesters_.push(equalityTester);
-};
-/** No-op base class for Jasmine reporters.
- *
- * @constructor
- */
-jasmine.Reporter = function() {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportRunnerStarting = function(runner) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportRunnerResults = function(runner) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportSuiteResults = function(suite) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportSpecStarting = function(spec) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.reportSpecResults = function(spec) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.Reporter.prototype.log = function(str) {
-};
-
-/**
- * Blocks are functions with executable code that make up a spec.
- *
- * @constructor
- * @param {jasmine.Env} env
- * @param {Function} func
- * @param {jasmine.Spec} spec
- */
-jasmine.Block = function(env, func, spec) {
-  this.env = env;
-  this.func = func;
-  this.spec = spec;
-};
-
-jasmine.Block.prototype.execute = function(onComplete) {
-  if (!jasmine.CATCH_EXCEPTIONS) {
-    this.func.apply(this.spec);
-  }
-  else {
-    try {
-      this.func.apply(this.spec);
-    } catch (e) {
-      this.spec.fail(e);
-    }
-  }
-  onComplete();
-};
-/** JavaScript API reporter.
- *
- * @constructor
- */
-jasmine.JsApiReporter = function() {
-  this.started = false;
-  this.finished = false;
-  this.suites_ = [];
-  this.results_ = {};
-};
-
-jasmine.JsApiReporter.prototype.reportRunnerStarting = function(runner) {
-  this.started = true;
-  var suites = runner.topLevelSuites();
-  for (var i = 0; i < suites.length; i++) {
-    var suite = suites[i];
-    this.suites_.push(this.summarize_(suite));
-  }
-};
-
-jasmine.JsApiReporter.prototype.suites = function() {
-  return this.suites_;
-};
-
-jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) {
-  var isSuite = suiteOrSpec instanceof jasmine.Suite;
-  var summary = {
-    id: suiteOrSpec.id,
-    name: suiteOrSpec.description,
-    type: isSuite ? 'suite' : 'spec',
-    children: []
-  };
-  
-  if (isSuite) {
-    var children = suiteOrSpec.children();
-    for (var i = 0; i < children.length; i++) {
-      summary.children.push(this.summarize_(children[i]));
-    }
-  }
-  return summary;
-};
-
-jasmine.JsApiReporter.prototype.results = function() {
-  return this.results_;
-};
-
-jasmine.JsApiReporter.prototype.resultsForSpec = function(specId) {
-  return this.results_[specId];
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.JsApiReporter.prototype.reportRunnerResults = function(runner) {
-  this.finished = true;
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.JsApiReporter.prototype.reportSuiteResults = function(suite) {
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.JsApiReporter.prototype.reportSpecResults = function(spec) {
-  this.results_[spec.id] = {
-    messages: spec.results().getItems(),
-    result: spec.results().failedCount > 0 ? "failed" : "passed"
-  };
-};
-
-//noinspection JSUnusedLocalSymbols
-jasmine.JsApiReporter.prototype.log = function(str) {
-};
-
-jasmine.JsApiReporter.prototype.resultsForSpecs = function(specIds){
-  var results = {};
-  for (var i = 0; i < specIds.length; i++) {
-    var specId = specIds[i];
-    results[specId] = this.summarizeResult_(this.results_[specId]);
-  }
-  return results;
-};
-
-jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
-  var summaryMessages = [];
-  var messagesLength = result.messages.length;
-  for (var messageIndex = 0; messageIndex < messagesLength; messageIndex++) {
-    var resultMessage = result.messages[messageIndex];
-    summaryMessages.push({
-      text: resultMessage.type == 'log' ? resultMessage.toString() : jasmine.undefined,
-      passed: resultMessage.passed ? resultMessage.passed() : true,
-      type: resultMessage.type,
-      message: resultMessage.message,
-      trace: {
-        stack: resultMessage.passed && !resultMessage.passed() ? resultMessage.trace.stack : jasmine.undefined
-      }
-    });
-  }
-
-  return {
-    result : result.result,
-    messages : summaryMessages
-  };
-};
-
-/**
- * @constructor
- * @param {jasmine.Env} env
- * @param actual
- * @param {jasmine.Spec} spec
- */
-jasmine.Matchers = function(env, actual, spec, opt_isNot) {
-  this.env = env;
-  this.actual = actual;
-  this.spec = spec;
-  this.isNot = opt_isNot || false;
-  this.reportWasCalled_ = false;
-};
-
-// todo: @deprecated as of Jasmine 0.11, remove soon [xw]
-jasmine.Matchers.pp = function(str) {
-  throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!");
-};
-
-// todo: @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. [xw]
-jasmine.Matchers.prototype.report = function(result, failing_message, details) {
-  throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
-};
-
-jasmine.Matchers.wrapInto_ = function(prototype, matchersClass) {
-  for (var methodName in prototype) {
-    if (methodName == 'report') continue;
-    var orig = prototype[methodName];
-    matchersClass.prototype[methodName] = jasmine.Matchers.matcherFn_(methodName, orig);
-  }
-};
-
-jasmine.Matchers.matcherFn_ = function(matcherName, matcherFunction) {
-  return function() {
-    var matcherArgs = jasmine.util.argsToArray(arguments);
-    var result = matcherFunction.apply(this, arguments);
-
-    if (this.isNot) {
-      result = !result;
-    }
-
-    if (this.reportWasCalled_) return result;
-
-    var message;
-    if (!result) {
-      if (this.message) {
-        message = this.message.apply(this, arguments);
-        if (jasmine.isArray_(message)) {
-          message = message[this.isNot ? 1 : 0];
-        }
-      } else {
-        var englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); });
-        message = "Expected " + jasmine.pp(this.actual) + (this.isNot ? " not " : " ") + englishyPredicate;
-        if (matcherArgs.length > 0) {
-          for (var i = 0; i < matcherArgs.length; i++) {
-            if (i > 0) message += ",";
-            message += " " + jasmine.pp(matcherArgs[i]);
-          }
-        }
-        message += ".";
-      }
-    }
-    var expectationResult = new jasmine.ExpectationResult({
-      matcherName: matcherName,
-      passed: result,
-      expected: matcherArgs.length > 1 ? matcherArgs : matcherArgs[0],
-      actual: this.actual,
-      message: message
-    });
-    this.spec.addMatcherResult(expectationResult);
-    return jasmine.undefined;
-  };
-};
-
-
-
-
-/**
- * toBe: compares the actual to the expected using ===
- * @param expected
- */
-jasmine.Matchers.prototype.toBe = function(expected) {
-  return this.actual === expected;
-};
-
-/**
- * toNotBe: compares the actual to the expected using !==
- * @param expected
- * @deprecated as of 1.0. Use not.toBe() instead.
- */
-jasmine.Matchers.prototype.toNotBe = function(expected) {
-  return this.actual !== expected;
-};
-
-/**
- * toEqual: compares the actual to the expected using common sense equality. Handles Objects, Arrays, etc.
- *
- * @param expected
- */
-jasmine.Matchers.prototype.toEqual = function(expected) {
-  return this.env.equals_(this.actual, expected);
-};
-
-/**
- * toNotEqual: compares the actual to the expected using the ! of jasmine.Matchers.toEqual
- * @param expected
- * @deprecated as of 1.0. Use not.toEqual() instead.
- */
-jasmine.Matchers.prototype.toNotEqual = function(expected) {
-  return !this.env.equals_(this.actual, expected);
-};
-
-/**
- * Matcher that compares the actual to the expected using a regular expression.  Constructs a RegExp, so takes
- * a pattern or a String.
- *
- * @param expected
- */
-jasmine.Matchers.prototype.toMatch = function(expected) {
-  return new RegExp(expected).test(this.actual);
-};
-
-/**
- * Matcher that compares the actual to the expected using the boolean inverse of jasmine.Matchers.toMatch
- * @param expected
- * @deprecated as of 1.0. Use not.toMatch() instead.
- */
-jasmine.Matchers.prototype.toNotMatch = function(expected) {
-  return !(new RegExp(expected).test(this.actual));
-};
-
-/**
- * Matcher that compares the actual to jasmine.undefined.
- */
-jasmine.Matchers.prototype.toBeDefined = function() {
-  return (this.actual !== jasmine.undefined);
-};
-
-/**
- * Matcher that compares the actual to jasmine.undefined.
- */
-jasmine.Matchers.prototype.toBeUndefined = function() {
-  return (this.actual === jasmine.undefined);
-};
-
-/**
- * Matcher that compares the actual to null.
- */
-jasmine.Matchers.prototype.toBeNull = function() {
-  return (this.actual === null);
-};
-
-/**
- * Matcher that compares the actual to NaN.
- */
-jasmine.Matchers.prototype.toBeNaN = function() {
-	this.message = function() {
-		return [ "Expected " + jasmine.pp(this.actual) + " to be NaN." ];
-	};
-
-	return (this.actual !== this.actual);
-};
-
-/**
- * Matcher that boolean not-nots the actual.
- */
-jasmine.Matchers.prototype.toBeTruthy = function() {
-  return !!this.actual;
-};
-
-
-/**
- * Matcher that boolean nots the actual.
- */
-jasmine.Matchers.prototype.toBeFalsy = function() {
-  return !this.actual;
-};
-
-
-/**
- * Matcher that checks to see if the actual, a Jasmine spy, was called.
- */
-jasmine.Matchers.prototype.toHaveBeenCalled = function() {
-  if (arguments.length > 0) {
-    throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
-  }
-
-  if (!jasmine.isSpy(this.actual)) {
-    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
-  }
-
-  this.message = function() {
-    return [
-      "Expected spy " + this.actual.identity + " to have been called.",
-      "Expected spy " + this.actual.identity + " not to have been called."
-    ];
-  };
-
-  return this.actual.wasCalled;
-};
-
-/** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
-jasmine.Matchers.prototype.wasCalled = jasmine.Matchers.prototype.toHaveBeenCalled;
-
-/**
- * Matcher that checks to see if the actual, a Jasmine spy, was not called.
- *
- * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
- */
-jasmine.Matchers.prototype.wasNotCalled = function() {
-  if (arguments.length > 0) {
-    throw new Error('wasNotCalled does not take arguments');
-  }
-
-  if (!jasmine.isSpy(this.actual)) {
-    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
-  }
-
-  this.message = function() {
-    return [
-      "Expected spy " + this.actual.identity + " to not have been called.",
-      "Expected spy " + this.actual.identity + " to have been called."
-    ];
-  };
-
-  return !this.actual.wasCalled;
-};
-
-/**
- * Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
- *
- * @example
- *
- */
-jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
-  var expectedArgs = jasmine.util.argsToArray(arguments);
-  if (!jasmine.isSpy(this.actual)) {
-    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
-  }
-  this.message = function() {
-    var invertedMessage = "Expected spy " + this.actual.identity + " not to have been called with " + jasmine.pp(expectedArgs) + " but it was.";
-    var positiveMessage = "";
-    if (this.actual.callCount === 0) {
-      positiveMessage = "Expected spy " + this.actual.identity + " to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.";
-    } else {
-      positiveMessage = "Expected spy " + this.actual.identity + " to have been called with " + jasmine.pp(expectedArgs) + " but actual calls were " + jasmine.pp(this.actual.argsForCall).replace(/^\[ | \]$/g, '')
-    }
-    return [positiveMessage, invertedMessage];
-  };
-
-  return this.env.contains_(this.actual.argsForCall, expectedArgs);
-};
-
-/** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
-jasmine.Matchers.prototype.wasCalledWith = jasmine.Matchers.prototype.toHaveBeenCalledWith;
-
-/** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
-jasmine.Matchers.prototype.wasNotCalledWith = function() {
-  var expectedArgs = jasmine.util.argsToArray(arguments);
-  if (!jasmine.isSpy(this.actual)) {
-    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
-  }
-
-  this.message = function() {
-    return [
-      "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was",
-      "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was"
-    ];
-  };
-
-  return !this.env.contains_(this.actual.argsForCall, expectedArgs);
-};
-
-/**
- * Matcher that checks that the expected item is an element in the actual Array.
- *
- * @param {Object} expected
- */
-jasmine.Matchers.prototype.toContain = function(expected) {
-  return this.env.contains_(this.actual, expected);
-};
-
-/**
- * Matcher that checks that the expected item is NOT an element in the actual Array.
- *
- * @param {Object} expected
- * @deprecated as of 1.0. Use not.toContain() instead.
- */
-jasmine.Matchers.prototype.toNotContain = function(expected) {
-  return !this.env.contains_(this.actual, expected);
-};
-
-jasmine.Matchers.prototype.toBeLessThan = function(expected) {
-  return this.actual < expected;
-};
-
-jasmine.Matchers.prototype.toBeGreaterThan = function(expected) {
-  return this.actual > expected;
-};
-
-/**
- * Matcher that checks that the expected item is equal to the actual item
- * up to a given level of decimal precision (default 2).
- *
- * @param {Number} expected
- * @param {Number} precision, as number of decimal places
- */
-jasmine.Matchers.prototype.toBeCloseTo = function(expected, precision) {
-  if (!(precision === 0)) {
-    precision = precision || 2;
-  }
-  return Math.abs(expected - this.actual) < (Math.pow(10, -precision) / 2);
-};
-
-/**
- * Matcher that checks that the expected exception was thrown by the actual.
- *
- * @param {String} [expected]
- */
-jasmine.Matchers.prototype.toThrow = function(expected) {
-  var result = false;
-  var exception;
-  if (typeof this.actual != 'function') {
-    throw new Error('Actual is not a function');
-  }
-  try {
-    this.actual();
-  } catch (e) {
-    exception = e;
-  }
-  if (exception) {
-    result = (expected === jasmine.undefined || this.env.equals_(exception.message || exception, expected.message || expected));
-  }
-
-  var not = this.isNot ? "not " : "";
-
-  this.message = function() {
-    if (exception && (expected === jasmine.undefined || !this.env.equals_(exception.message || exception, expected.message || expected))) {
-      return ["Expected function " + not + "to throw", expected ? expected.message || expected : "an exception", ", but it threw", exception.message || exception].join(' ');
-    } else {
-      return "Expected function to throw an exception.";
-    }
-  };
-
-  return result;
-};
-
-jasmine.Matchers.Any = function(expectedClass) {
-  this.expectedClass = expectedClass;
-};
-
-jasmine.Matchers.Any.prototype.jasmineMatches = function(other) {
-  if (this.expectedClass == String) {
-    return typeof other == 'string' || other instanceof String;
-  }
-
-  if (this.expectedClass == Number) {
-    return typeof other == 'number' || other instanceof Number;
-  }
-
-  if (this.expectedClass == Function) {
-    return typeof other == 'function' || other instanceof Function;
-  }
-
-  if (this.expectedClass == Object) {
-    return typeof other == 'object';
-  }
-
-  return other instanceof this.expectedClass;
-};
-
-jasmine.Matchers.Any.prototype.jasmineToString = function() {
-  return '<jasmine.any(' + this.expectedClass + ')>';
-};
-
-jasmine.Matchers.ObjectContaining = function (sample) {
-  this.sample = sample;
-};
-
-jasmine.Matchers.ObjectContaining.prototype.jasmineMatches = function(other, mismatchKeys, mismatchValues) {
-  mismatchKeys = mismatchKeys || [];
-  mismatchValues = mismatchValues || [];
-
-  var env = jasmine.getEnv();
-
-  var hasKey = function(obj, keyName) {
-    return obj != null && obj[keyName] !== jasmine.undefined;
-  };
-
-  for (var property in this.sample) {
-    if (!hasKey(other, property) && hasKey(this.sample, property)) {
-      mismatchKeys.push("expected has key '" + property + "', but missing from actual.");
-    }
-    else if (!env.equals_(this.sample[property], other[property], mismatchKeys, mismatchValues)) {
-      mismatchValues.push("'" + property + "' was '" + (other[property] ? jasmine.util.htmlEscape(other[property].toString()) : other[property]) + "' in expected, but was '" + (this.sample[property] ? jasmine.util.htmlEscape(this.sample[property].toString()) : this.sample[property]) + "' in actual.");
-    }
-  }
-
-  return (mismatchKeys.length === 0 && mismatchValues.length === 0);
-};
-
-jasmine.Matchers.ObjectContaining.prototype.jasmineToString = function () {
-  return "<jasmine.objectContaining(" + jasmine.pp(this.sample) + ")>";
-};
-// Mock setTimeout, clearTimeout
-// Contributed by Pivotal Computer Systems, www.pivotalsf.com
-
-jasmine.FakeTimer = function() {
-  this.reset();
-
-  var self = this;
-  self.setTimeout = function(funcToCall, millis) {
-    self.timeoutsMade++;
-    self.scheduleFunction(self.timeoutsMade, funcToCall, millis, false);
-    return self.timeoutsMade;
-  };
-
-  self.setInterval = function(funcToCall, millis) {
-    self.timeoutsMade++;
-    self.scheduleFunction(self.timeoutsMade, funcToCall, millis, true);
-    return self.timeoutsMade;
-  };
-
-  self.clearTimeout = function(timeoutKey) {
-    self.scheduledFunctions[timeoutKey] = jasmine.undefined;
-  };
-
-  self.clearInterval = function(timeoutKey) {
-    self.scheduledFunctions[timeoutKey] = jasmine.undefined;
-  };
-
-};
-
-jasmine.FakeTimer.prototype.reset = function() {
-  this.timeoutsMade = 0;
-  this.scheduledFunctions = {};
-  this.nowMillis = 0;
-};
-
-jasmine.FakeTimer.prototype.tick = function(millis) {
-  var oldMillis = this.nowMillis;
-  var newMillis = oldMillis + millis;
-  this.runFunctionsWithinRange(oldMillis, newMillis);
-  this.nowMillis = newMillis;
-};
-
-jasmine.FakeTimer.prototype.runFunctionsWithinRange = function(oldMillis, nowMillis) {
-  var scheduledFunc;
-  var funcsToRun = [];
-  for (var timeoutKey in this.scheduledFunctions) {
-    scheduledFunc = this.scheduledFunctions[timeoutKey];
-    if (scheduledFunc != jasmine.undefined &&
-        scheduledFunc.runAtMillis >= oldMillis &&
-        scheduledFunc.runAtMillis <= nowMillis) {
-      funcsToRun.push(scheduledFunc);
-      this.scheduledFunctions[timeoutKey] = jasmine.undefined;
-    }
-  }
-
-  if (funcsToRun.length > 0) {
-    funcsToRun.sort(function(a, b) {
-      return a.runAtMillis - b.runAtMillis;
-    });
-    for (var i = 0; i < funcsToRun.length; ++i) {
-      try {
-        var funcToRun = funcsToRun[i];
-        this.nowMillis = funcToRun.runAtMillis;
-        funcToRun.funcToCall();
-        if (funcToRun.recurring) {
-          this.scheduleFunction(funcToRun.timeoutKey,
-              funcToRun.funcToCall,
-              funcToRun.millis,
-              true);
-        }
-      } catch(e) {
-      }
-    }
-    this.runFunctionsWithinRange(oldMillis, nowMillis);
-  }
-};
-
-jasmine.FakeTimer.prototype.scheduleFunction = function(timeoutKey, funcToCall, millis, recurring) {
-  this.scheduledFunctions[timeoutKey] = {
-    runAtMillis: this.nowMillis + millis,
-    funcToCall: funcToCall,
-    recurring: recurring,
-    timeoutKey: timeoutKey,
-    millis: millis
-  };
-};
-
-/**
- * @namespace
- */
-jasmine.Clock = {
-  defaultFakeTimer: new jasmine.FakeTimer(),
-
-  reset: function() {
-    jasmine.Clock.assertInstalled();
-    jasmine.Clock.defaultFakeTimer.reset();
-  },
-
-  tick: function(millis) {
-    jasmine.Clock.assertInstalled();
-    jasmine.Clock.defaultFakeTimer.tick(millis);
-  },
-
-  runFunctionsWithinRange: function(oldMillis, nowMillis) {
-    jasmine.Clock.defaultFakeTimer.runFunctionsWithinRange(oldMillis, nowMillis);
-  },
-
-  scheduleFunction: function(timeoutKey, funcToCall, millis, recurring) {
-    jasmine.Clock.defaultFakeTimer.scheduleFunction(timeoutKey, funcToCall, millis, recurring);
-  },
-
-  useMock: function() {
-    if (!jasmine.Clock.isInstalled()) {
-      var spec = jasmine.getEnv().currentSpec;
-      spec.after(jasmine.Clock.uninstallMock);
-
-      jasmine.Clock.installMock();
-    }
-  },
-
-  installMock: function() {
-    jasmine.Clock.installed = jasmine.Clock.defaultFakeTimer;
-  },
-
-  uninstallMock: function() {
-    jasmine.Clock.assertInstalled();
-    jasmine.Clock.installed = jasmine.Clock.real;
-  },
-
-  real: {
-    setTimeout: jasmine.getGlobal().setTimeout,
-    clearTimeout: jasmine.getGlobal().clearTimeout,
-    setInterval: jasmine.getGlobal().setInterval,
-    clearInterval: jasmine.getGlobal().clearInterval
-  },
-
-  assertInstalled: function() {
-    if (!jasmine.Clock.isInstalled()) {
-      throw new Error("Mock clock is not installed, use jasmine.Clock.useMock()");
-    }
-  },
-
-  isInstalled: function() {
-    return jasmine.Clock.installed == jasmine.Clock.defaultFakeTimer;
-  },
-
-  installed: null
-};
-jasmine.Clock.installed = jasmine.Clock.real;
-
-//else for IE support
-jasmine.getGlobal().setTimeout = function(funcToCall, millis) {
-  if (jasmine.Clock.installed.setTimeout.apply) {
-    return jasmine.Clock.installed.setTimeout.apply(this, arguments);
-  } else {
-    return jasmine.Clock.installed.setTimeout(funcToCall, millis);
-  }
-};
-
-jasmine.getGlobal().setInterval = function(funcToCall, millis) {
-  if (jasmine.Clock.installed.setInterval.apply) {
-    return jasmine.Clock.installed.setInterval.apply(this, arguments);
-  } else {
-    return jasmine.Clock.installed.setInterval(funcToCall, millis);
-  }
-};
-
-jasmine.getGlobal().clearTimeout = function(timeoutKey) {
-  if (jasmine.Clock.installed.clearTimeout.apply) {
-    return jasmine.Clock.installed.clearTimeout.apply(this, arguments);
-  } else {
-    return jasmine.Clock.installed.clearTimeout(timeoutKey);
-  }
-};
-
-jasmine.getGlobal().clearInterval = function(timeoutKey) {
-  if (jasmine.Clock.installed.clearTimeout.apply) {
-    return jasmine.Clock.installed.clearInterval.apply(this, arguments);
-  } else {
-    return jasmine.Clock.installed.clearInterval(timeoutKey);
-  }
-};
-
-/**
- * @constructor
- */
-jasmine.MultiReporter = function() {
-  this.subReporters_ = [];
-};
-jasmine.util.inherit(jasmine.MultiReporter, jasmine.Reporter);
-
-jasmine.MultiReporter.prototype.addReporter = function(reporter) {
-  this.subReporters_.push(reporter);
-};
-
-(function() {
-  var functionNames = [
-    "reportRunnerStarting",
-    "reportRunnerResults",
-    "reportSuiteResults",
-    "reportSpecStarting",
-    "reportSpecResults",
-    "log"
-  ];
-  for (var i = 0; i < functionNames.length; i++) {
-    var functionName = functionNames[i];
-    jasmine.MultiReporter.prototype[functionName] = (function(functionName) {
-      return function() {
-        for (var j = 0; j < this.subReporters_.length; j++) {
-          var subReporter = this.subReporters_[j];
-          if (subReporter[functionName]) {
-            subReporter[functionName].apply(subReporter, arguments);
-          }
-        }
-      };
-    })(functionName);
-  }
-})();
-/**
- * Holds results for a set of Jasmine spec. Allows for the results array to hold another jasmine.NestedResults
- *
- * @constructor
- */
-jasmine.NestedResults = function() {
-  /**
-   * The total count of results
-   */
-  this.totalCount = 0;
-  /**
-   * Number of passed results
-   */
-  this.passedCount = 0;
-  /**
-   * Number of failed results
-   */
-  this.failedCount = 0;
-  /**
-   * Was this suite/spec skipped?
-   */
-  this.skipped = false;
-  /**
-   * @ignore
-   */
-  this.items_ = [];
-};
-
-/**
- * Roll up the result counts.
- *
- * @param result
- */
-jasmine.NestedResults.prototype.rollupCounts = function(result) {
-  this.totalCount += result.totalCount;
-  this.passedCount += result.passedCount;
-  this.failedCount += result.failedCount;
-};
-
-/**
- * Adds a log message.
- * @param values Array of message parts which will be concatenated later.
- */
-jasmine.NestedResults.prototype.log = function(values) {
-  this.items_.push(new jasmine.MessageResult(values));
-};
-
-/**
- * Getter for the results: message & results.
- */
-jasmine.NestedResults.prototype.getItems = function() {
-  return this.items_;
-};
-
-/**
- * Adds a result, tracking counts (total, passed, & failed)
- * @param {jasmine.ExpectationResult|jasmine.NestedResults} result
- */
-jasmine.NestedResults.prototype.addResult = function(result) {
-  if (result.type != 'log') {
-    if (result.items_) {
-      this.rollupCounts(result);
-    } else {
-      this.totalCount++;
-      if (result.passed()) {
-        this.passedCount++;
-      } else {
-        this.failedCount++;
-      }
-    }
-  }
-  this.items_.push(result);
-};
-
-/**
- * @returns {Boolean} True if <b>everything</b> below passed
- */
-jasmine.NestedResults.prototype.passed = function() {
-  return this.passedCount === this.totalCount;
-};
-/**
- * Base class for pretty printing for expectation results.
- */
-jasmine.PrettyPrinter = function() {
-  this.ppNestLevel_ = 0;
-};
-
-/**
- * Formats a value in a nice, human-readable string.
- *
- * @param value
- */
-jasmine.PrettyPrinter.prototype.format = function(value) {
-  this.ppNestLevel_++;
-  try {
-    if (value === jasmine.undefined) {
-      this.emitScalar('undefined');
-    } else if (value === null) {
-      this.emitScalar('null');
-    } else if (value === jasmine.getGlobal()) {
-      this.emitScalar('<global>');
-    } else if (value.jasmineToString) {
-      this.emitScalar(value.jasmineToString());
-    } else if (typeof value === 'string') {
-      this.emitString(value);
-    } else if (jasmine.isSpy(value)) {
-      this.emitScalar("spy on " + value.identity);
-    } else if (value instanceof RegExp) {
-      this.emitScalar(value.toString());
-    } else if (typeof value === 'function') {
-      this.emitScalar('Function');
-    } else if (typeof value.nodeType === 'number') {
-      this.emitScalar('HTMLNode');
-    } else if (value instanceof Date) {
-      this.emitScalar('Date(' + value + ')');
-    } else if (value.__Jasmine_been_here_before__) {
-      this.emitScalar('<circular reference: ' + (jasmine.isArray_(value) ? 'Array' : 'Object') + '>');
-    } else if (jasmine.isArray_(value) || typeof value == 'object') {
-      value.__Jasmine_been_here_before__ = true;
-      if (jasmine.isArray_(value)) {
-        this.emitArray(value);
-      } else {
-        this.emitObject(value);
-      }
-      delete value.__Jasmine_been_here_before__;
-    } else {
-      this.emitScalar(value.toString());
-    }
-  } finally {
-    this.ppNestLevel_--;
-  }
-};
-
-jasmine.PrettyPrinter.prototype.iterateObject = function(obj, fn) {
-  for (var property in obj) {
-    if (!obj.hasOwnProperty(property)) continue;
-    if (property == '__Jasmine_been_here_before__') continue;
-    fn(property, obj.__lookupGetter__ ? (obj.__lookupGetter__(property) !== jasmine.undefined && 
-                                         obj.__lookupGetter__(property) !== null) : false);
-  }
-};
-
-jasmine.PrettyPrinter.prototype.emitArray = jasmine.unimplementedMethod_;
-jasmine.PrettyPrinter.prototype.emitObject = jasmine.unimplementedMethod_;
-jasmine.PrettyPrinter.prototype.emitScalar = jasmine.unimplementedMethod_;
-jasmine.PrettyPrinter.prototype.emitString = jasmine.unimplementedMethod_;
-
-jasmine.StringPrettyPrinter = function() {
-  jasmine.PrettyPrinter.call(this);
-
-  this.string = '';
-};
-jasmine.util.inherit(jasmine.StringPrettyPrinter, jasmine.PrettyPrinter);
-
-jasmine.StringPrettyPrinter.prototype.emitScalar = function(value) {
-  this.append(value);
-};
-
-jasmine.StringPrettyPrinter.prototype.emitString = function(value) {
-  this.append("'" + value + "'");
-};
-
-jasmine.StringPrettyPrinter.prototype.emitArray = function(array) {
-  if (this.ppNestLevel_ > jasmine.MAX_PRETTY_PRINT_DEPTH) {
-    this.append("Array");
-    return;
-  }
-
-  this.append('[ ');
-  for (var i = 0; i < array.length; i++) {
-    if (i > 0) {
-      this.append(', ');
-    }
-    this.format(array[i]);
-  }
-  this.append(' ]');
-};
-
-jasmine.StringPrettyPrinter.prototype.emitObject = function(obj) {
-  if (this.ppNestLevel_ > jasmine.MAX_PRETTY_PRINT_DEPTH) {
-    this.append("Object");
-    return;
-  }
-
-  var self = this;
-  this.append('{ ');
-  var first = true;
-
-  this.iterateObject(obj, function(property, isGetter) {
-    if (first) {
-      first = false;
-    } else {
-      self.append(', ');
-    }
-
-    self.append(property);
-    self.append(' : ');
-    if (isGetter) {
-      self.append('<getter>');
-    } else {
-      self.format(obj[property]);
-    }
-  });
-
-  this.append(' }');
-};
-
-jasmine.StringPrettyPrinter.prototype.append = function(value) {
-  this.string += value;
-};
-jasmine.Queue = function(env) {
-  this.env = env;
-
-  // parallel to blocks. each true value in this array means the block will
-  // get executed even if we abort
-  this.ensured = [];
-  this.blocks = [];
-  this.running = false;
-  this.index = 0;
-  this.offset = 0;
-  this.abort = false;
-};
-
-jasmine.Queue.prototype.addBefore = function(block, ensure) {
-  if (ensure === jasmine.undefined) {
-    ensure = false;
-  }
-
-  this.blocks.unshift(block);
-  this.ensured.unshift(ensure);
-};
-
-jasmine.Queue.prototype.add = function(block, ensure) {
-  if (ensure === jasmine.undefined) {
-    ensure = false;
-  }
-
-  this.blocks.push(block);
-  this.ensured.push(ensure);
-};
-
-jasmine.Queue.prototype.insertNext = function(block, ensure) {
-  if (ensure === jasmine.undefined) {
-    ensure = false;
-  }
-
-  this.ensured.splice((this.index + this.offset + 1), 0, ensure);
-  this.blocks.splice((this.index + this.offset + 1), 0, block);
-  this.offset++;
-};
-
-jasmine.Queue.prototype.start = function(onComplete) {
-  this.running = true;
-  this.onComplete = onComplete;
-  this.next_();
-};
-
-jasmine.Queue.prototype.isRunning = function() {
-  return this.running;
-};
-
-jasmine.Queue.LOOP_DONT_RECURSE = true;
-
-jasmine.Queue.prototype.next_ = function() {
-  var self = this;
-  var goAgain = true;
-
-  while (goAgain) {
-    goAgain = false;
-    
-    if (self.index < self.blocks.length && !(this.abort && !this.ensured[self.index])) {
-      var calledSynchronously = true;
-      var completedSynchronously = false;
-
-      var onComplete = function () {
-        if (jasmine.Queue.LOOP_DONT_RECURSE && calledSynchronously) {
-          completedSynchronously = true;
-          return;
-        }
-
-        if (self.blocks[self.index].abort) {
-          self.abort = true;
-        }
-
-        self.offset = 0;
-        self.index++;
-
-        var now = new Date().getTime();
-        if (self.env.updateInterval && now - self.env.lastUpdate > self.env.updateInterval) {
-          self.env.lastUpdate = now;
-          self.env.setTimeout(function() {
-            self.next_();
-          }, 0);
-        } else {
-          if (jasmine.Queue.LOOP_DONT_RECURSE && completedSynchronously) {
-            goAgain = true;
-          } else {
-            self.next_();
-          }
-        }
-      };
-      self.blocks[self.index].execute(onComplete);
-
-      calledSynchronously = false;
-      if (completedSynchronously) {
-        onComplete();
-      }
-      
-    } else {
-      self.running = false;
-      if (self.onComplete) {
-        self.onComplete();
-      }
-    }
-  }
-};
-
-jasmine.Queue.prototype.results = function() {
-  var results = new jasmine.NestedResults();
-  for (var i = 0; i < this.blocks.length; i++) {
-    if (this.blocks[i].results) {
-      results.addResult(this.blocks[i].results());
-    }
-  }
-  return results;
-};
-
-
-/**
- * Runner
- *
- * @constructor
- * @param {jasmine.Env} env
- */
-jasmine.Runner = function(env) {
-  var self = this;
-  self.env = env;
-  self.queue = new jasmine.Queue(env);
-  self.before_ = [];
-  self.after_ = [];
-  self.suites_ = [];
-};
-
-jasmine.Runner.prototype.execute = function() {
-  var self = this;
-  if (self.env.reporter.reportRunnerStarting) {
-    self.env.reporter.reportRunnerStarting(this);
-  }
-  self.queue.start(function () {
-    self.finishCallback();
-  });
-};
-
-jasmine.Runner.prototype.beforeEach = function(beforeEachFunction) {
-  beforeEachFunction.typeName = 'beforeEach';
-  this.before_.splice(0,0,beforeEachFunction);
-};
-
-jasmine.Runner.prototype.afterEach = function(afterEachFunction) {
-  afterEachFunction.typeName = 'afterEach';
-  this.after_.splice(0,0,afterEachFunction);
-};
-
-
-jasmine.Runner.prototype.finishCallback = function() {
-  this.env.reporter.reportRunnerResults(this);
-};
-
-jasmine.Runner.prototype.addSuite = function(suite) {
-  this.suites_.push(suite);
-};
-
-jasmine.Runner.prototype.add = function(block) {
-  if (block instanceof jasmine.Suite) {
-    this.addSuite(block);
-  }
-  this.queue.add(block);
-};
-
-jasmine.Runner.prototype.specs = function () {
-  var suites = this.suites();
-  var specs = [];
-  for (var i = 0; i < suites.length; i++) {
-    specs = specs.concat(suites[i].specs());
-  }
-  return specs;
-};
-
-jasmine.Runner.prototype.suites = function() {
-  return this.suites_;
-};
-
-jasmine.Runner.prototype.topLevelSuites = function() {
-  var topLevelSuites = [];
-  for (var i = 0; i < this.suites_.length; i++) {
-    if (!this.suites_[i].parentSuite) {
-      topLevelSuites.push(this.suites_[i]);
-    }
-  }
-  return topLevelSuites;
-};
-
-jasmine.Runner.prototype.results = function() {
-  return this.queue.results();
-};
-/**
- * Internal representation of a Jasmine specification, or test.
- *
- * @constructor
- * @param {jasmine.Env} env
- * @param {jasmine.Suite} suite
- * @param {String} description
- */
-jasmine.Spec = function(env, suite, description) {
-  if (!env) {
-    throw new Error('jasmine.Env() required');
-  }
-  if (!suite) {
-    throw new Error('jasmine.Suite() required');
-  }
-  var spec = this;
-  spec.id = env.nextSpecId ? env.nextSpecId() : null;
-  spec.env = env;
-  spec.suite = suite;
-  spec.description = description;
-  spec.queue = new jasmine.Queue(env);
-
-  spec.afterCallbacks = [];
-  spec.spies_ = [];
-
-  spec.results_ = new jasmine.NestedResults();
-  spec.results_.description = description;
-  spec.matchersClass = null;
-};
-
-jasmine.Spec.prototype.getFullName = function() {
-  return this.suite.getFullName() + ' ' + this.description + '.';
-};
-
-
-jasmine.Spec.prototype.results = function() {
-  return this.results_;
-};
-
-/**
- * All parameters are pretty-printed and concatenated together, then written to the spec's output.
- *
- * Be careful not to leave calls to <code>jasmine.log</code> in production code.
- */
-jasmine.Spec.prototype.log = function() {
-  return this.results_.log(arguments);
-};
-
-jasmine.Spec.prototype.runs = function (func) {
-  var block = new jasmine.Block(this.env, func, this);
-  this.addToQueue(block);
-  return this;
-};
-
-jasmine.Spec.prototype.addToQueue = function (block) {
-  if (this.queue.isRunning()) {
-    this.queue.insertNext(block);
-  } else {
-    this.queue.add(block);
-  }
-};
-
-/**
- * @param {jasmine.ExpectationResult} result
- */
-jasmine.Spec.prototype.addMatcherResult = function(result) {
-  this.results_.addResult(result);
-};
-
-jasmine.Spec.prototype.expect = function(actual) {
-  var positive = new (this.getMatchersClass_())(this.env, actual, this);
-  positive.not = new (this.getMatchersClass_())(this.env, actual, this, true);
-  return positive;
-};
-
-/**
- * Waits a fixed time period before moving to the next block.
- *
- * @deprecated Use waitsFor() instead
- * @param {Number} timeout milliseconds to wait
- */
-jasmine.Spec.prototype.waits = function(timeout) {
-  var waitsFunc = new jasmine.WaitsBlock(this.env, timeout, this);
-  this.addToQueue(waitsFunc);
-  return this;
-};
-
-/**
- * Waits for the latchFunction to return true before proceeding to the next block.
- *
- * @param {Function} latchFunction
- * @param {String} optional_timeoutMessage
- * @param {Number} optional_timeout
- */
-jasmine.Spec.prototype.waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
-  var latchFunction_ = null;
-  var optional_timeoutMessage_ = null;
-  var optional_timeout_ = null;
-
-  for (var i = 0; i < arguments.length; i++) {
-    var arg = arguments[i];
-    switch (typeof arg) {
-      case 'function':
-        latchFunction_ = arg;
-        break;
-      case 'string':
-        optional_timeoutMessage_ = arg;
-        break;
-      case 'number':
-        optional_timeout_ = arg;
-        break;
-    }
-  }
-
-  var waitsForFunc = new jasmine.WaitsForBlock(this.env, optional_timeout_, latchFunction_, optional_timeoutMessage_, this);
-  this.addToQueue(waitsForFunc);
-  return this;
-};
-
-jasmine.Spec.prototype.fail = function (e) {
-  var expectationResult = new jasmine.ExpectationResult({
-    passed: false,
-    message: e ? jasmine.util.formatException(e) : 'Exception',
-    trace: { stack: e.stack }
-  });
-  this.results_.addResult(expectationResult);
-};
-
-jasmine.Spec.prototype.getMatchersClass_ = function() {
-  return this.matchersClass || this.env.matchersClass;
-};
-
-jasmine.Spec.prototype.addMatchers = function(matchersPrototype) {
-  var parent = this.getMatchersClass_();
-  var newMatchersClass = function() {
-    parent.apply(this, arguments);
-  };
-  jasmine.util.inherit(newMatchersClass, parent);
-  jasmine.Matchers.wrapInto_(matchersPrototype, newMatchersClass);
-  this.matchersClass = newMatchersClass;
-};
-
-jasmine.Spec.prototype.finishCallback = function() {
-  this.env.reporter.reportSpecResults(this);
-};
-
-jasmine.Spec.prototype.finish = function(onComplete) {
-  this.removeAllSpies();
-  this.finishCallback();
-  if (onComplete) {
-    onComplete();
-  }
-};
-
-jasmine.Spec.prototype.after = function(doAfter) {
-  if (this.queue.isRunning()) {
-    this.queue.add(new jasmine.Block(this.env, doAfter, this), true);
-  } else {
-    this.afterCallbacks.unshift(doAfter);
-  }
-};
-
-jasmine.Spec.prototype.execute = function(onComplete) {
-  var spec = this;
-  if (!spec.env.specFilter(spec)) {
-    spec.results_.skipped = true;
-    spec.finish(onComplete);
-    return;
-  }
-
-  this.env.reporter.reportSpecStarting(this);
-
-  spec.env.currentSpec = spec;
-
-  spec.addBeforesAndAftersToQueue();
-
-  spec.queue.start(function () {
-    spec.finish(onComplete);
-  });
-};
-
-jasmine.Spec.prototype.addBeforesAndAftersToQueue = function() {
-  var runner = this.env.currentRunner();
-  var i;
-
-  for (var suite = this.suite; suite; suite = suite.parentSuite) {
-    for (i = 0; i < suite.before_.length; i++) {
-      this.queue.addBefore(new jasmine.Block(this.env, suite.before_[i], this));
-    }
-  }
-  for (i = 0; i < runner.before_.length; i++) {
-    this.queue.addBefore(new jasmine.Block(this.env, runner.before_[i], this));
-  }
-  for (i = 0; i < this.afterCallbacks.length; i++) {
-    this.queue.add(new jasmine.Block(this.env, this.afterCallbacks[i], this), true);
-  }
-  for (suite = this.suite; suite; suite = suite.parentSuite) {
-    for (i = 0; i < suite.after_.length; i++) {
-      this.queue.add(new jasmine.Block(this.env, suite.after_[i], this), true);
-    }
-  }
-  for (i = 0; i < runner.after_.length; i++) {
-    this.queue.add(new jasmine.Block(this.env, runner.after_[i], this), true);
-  }
-};
-
-jasmine.Spec.prototype.explodes = function() {
-  throw 'explodes function should not have been called';
-};
-
-jasmine.Spec.prototype.spyOn = function(obj, methodName, ignoreMethodDoesntExist) {
-  if (obj == jasmine.undefined) {
-    throw "spyOn could not find an object to spy upon for " + methodName + "()";
-  }
-
-  if (!ignoreMethodDoesntExist && obj[methodName] === jasmine.undefined) {
-    throw methodName + '() method does not exist';
-  }
-
-  if (!ignoreMethodDoesntExist && obj[methodName] && obj[methodName].isSpy) {
-    throw new Error(methodName + ' has already been spied upon');
-  }
-
-  var spyObj = jasmine.createSpy(methodName);
-
-  this.spies_.push(spyObj);
-  spyObj.baseObj = obj;
-  spyObj.methodName = methodName;
-  spyObj.originalValue = obj[methodName];
-
-  obj[methodName] = spyObj;
-
-  return spyObj;
-};
-
-jasmine.Spec.prototype.removeAllSpies = function() {
-  for (var i = 0; i < this.spies_.length; i++) {
-    var spy = this.spies_[i];
-    spy.baseObj[spy.methodName] = spy.originalValue;
-  }
-  this.spies_ = [];
-};
-
-/**
- * Internal representation of a Jasmine suite.
- *
- * @constructor
- * @param {jasmine.Env} env
- * @param {String} description
- * @param {Function} specDefinitions
- * @param {jasmine.Suite} parentSuite
- */
-jasmine.Suite = function(env, description, specDefinitions, parentSuite) {
-  var self = this;
-  self.id = env.nextSuiteId ? env.nextSuiteId() : null;
-  self.description = description;
-  self.queue = new jasmine.Queue(env);
-  self.parentSuite = parentSuite;
-  self.env = env;
-  self.before_ = [];
-  self.after_ = [];
-  self.children_ = [];
-  self.suites_ = [];
-  self.specs_ = [];
-};
-
-jasmine.Suite.prototype.getFullName = function() {
-  var fullName = this.description;
-  for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
-    fullName = parentSuite.description + ' ' + fullName;
-  }
-  return fullName;
-};
-
-jasmine.Suite.prototype.finish = function(onComplete) {
-  this.env.reporter.reportSuiteResults(this);
-  this.finished = true;
-  if (typeof(onComplete) == 'function') {
-    onComplete();
-  }
-};
-
-jasmine.Suite.prototype.beforeEach = function(beforeEachFunction) {
-  beforeEachFunction.typeName = 'beforeEach';
-  this.before_.unshift(beforeEachFunction);
-};
-
-jasmine.Suite.prototype.afterEach = function(afterEachFunction) {
-  afterEachFunction.typeName = 'afterEach';
-  this.after_.unshift(afterEachFunction);
-};
-
-jasmine.Suite.prototype.results = function() {
-  return this.queue.results();
-};
-
-jasmine.Suite.prototype.add = function(suiteOrSpec) {
-  this.children_.push(suiteOrSpec);
-  if (suiteOrSpec instanceof jasmine.Suite) {
-    this.suites_.push(suiteOrSpec);
-    this.env.currentRunner().addSuite(suiteOrSpec);
-  } else {
-    this.specs_.push(suiteOrSpec);
-  }
-  this.queue.add(suiteOrSpec);
-};
-
-jasmine.Suite.prototype.specs = function() {
-  return this.specs_;
-};
-
-jasmine.Suite.prototype.suites = function() {
-  return this.suites_;
-};
-
-jasmine.Suite.prototype.children = function() {
-  return this.children_;
-};
-
-jasmine.Suite.prototype.execute = function(onComplete) {
-  var self = this;
-  this.queue.start(function () {
-    self.finish(onComplete);
-  });
-};
-jasmine.WaitsBlock = function(env, timeout, spec) {
-  this.timeout = timeout;
-  jasmine.Block.call(this, env, null, spec);
-};
-
-jasmine.util.inherit(jasmine.WaitsBlock, jasmine.Block);
-
-jasmine.WaitsBlock.prototype.execute = function (onComplete) {
-  if (jasmine.VERBOSE) {
-    this.env.reporter.log('>> Jasmine waiting for ' + this.timeout + ' ms...');
-  }
-  this.env.setTimeout(function () {
-    onComplete();
-  }, this.timeout);
-};
-/**
- * A block which waits for some condition to become true, with timeout.
- *
- * @constructor
- * @extends jasmine.Block
- * @param {jasmine.Env} env The Jasmine environment.
- * @param {Number} timeout The maximum time in milliseconds to wait for the condition to become true.
- * @param {Function} latchFunction A function which returns true when the desired condition has been met.
- * @param {String} message The message to display if the desired condition hasn't been met within the given time period.
- * @param {jasmine.Spec} spec The Jasmine spec.
- */
-jasmine.WaitsForBlock = function(env, timeout, latchFunction, message, spec) {
-  this.timeout = timeout || env.defaultTimeoutInterval;
-  this.latchFunction = latchFunction;
-  this.message = message;
-  this.totalTimeSpentWaitingForLatch = 0;
-  jasmine.Block.call(this, env, null, spec);
-};
-jasmine.util.inherit(jasmine.WaitsForBlock, jasmine.Block);
-
-jasmine.WaitsForBlock.TIMEOUT_INCREMENT = 10;
-
-jasmine.WaitsForBlock.prototype.execute = function(onComplete) {
-  if (jasmine.VERBOSE) {
-    this.env.reporter.log('>> Jasmine waiting for ' + (this.message || 'something to happen'));
-  }
-  var latchFunctionResult;
-  try {
-    latchFunctionResult = this.latchFunction.apply(this.spec);
-  } catch (e) {
-    this.spec.fail(e);
-    onComplete();
-    return;
-  }
-
-  if (latchFunctionResult) {
-    onComplete();
-  } else if (this.totalTimeSpentWaitingForLatch >= this.timeout) {
-    var message = 'timed out after ' + this.timeout + ' msec waiting for ' + (this.message || 'something to happen');
-    this.spec.fail({
-      name: 'timeout',
-      message: message
-    });
-
-    this.abort = true;
-    onComplete();
-  } else {
-    this.totalTimeSpentWaitingForLatch += jasmine.WaitsForBlock.TIMEOUT_INCREMENT;
-    var self = this;
-    this.env.setTimeout(function() {
-      self.execute(onComplete);
-    }, jasmine.WaitsForBlock.TIMEOUT_INCREMENT);
-  }
-};
-
-jasmine.version_= {
-  "major": 1,
-  "minor": 3,
-  "build": 1,
-  "revision": 1354556913
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/lib/jasmine-node/reporter.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/reporter.js b/blackberry10/node_modules/jasmine-node/lib/jasmine-node/reporter.js
deleted file mode 100755
index 619fcae..0000000
--- a/blackberry10/node_modules/jasmine-node/lib/jasmine-node/reporter.js
+++ /dev/null
@@ -1,276 +0,0 @@
-(function() {
-  //
-  // Imports
-  //
-  var util;
-  try {
-    util = require('util')
-  } catch(e) {
-    util = require('sys')
-  }
-
-  var jasmineNode = {};
-  //
-  // Helpers
-  //
-  function noop() {}
-
-
-  jasmineNode.TerminalReporter = function(config) {
-    this.print_ = config.print || util.print;
-    this.color_ = config.color ? this.ANSIColors : this.NoColors;
-
-    this.started_ = false;
-    this.finished_ = false;
-
-    this.callback_ = config.onComplete || false
-
-    this.suites_ = [];
-    this.specResults_ = {};
-    this.failures_ = [];
-    this.includeStackTrace_ = config.includeStackTrace === false ? false : true;
-  }
-
-
-  jasmineNode.TerminalReporter.prototype = {
-    reportRunnerStarting: function(runner) {
-      this.started_ = true;
-      this.startedAt = new Date();
-      var suites = runner.topLevelSuites();
-      for (var i = 0; i < suites.length; i++) {
-        var suite = suites[i];
-        this.suites_.push(this.summarize_(suite));
-      }
-    },
-
-    ANSIColors: {
-        pass:    function() { return '\033[32m'; }, // Green
-        fail:    function() { return '\033[31m'; }, // Red
-        neutral: function() { return '\033[0m';  }  // Normal
-    },
-
-    NoColors: {
-        pass:    function() { return ''; },
-        fail:    function() { return ''; },
-        neutral: function() { return ''; }
-    },
-
-    summarize_: function(suiteOrSpec) {
-      var isSuite = suiteOrSpec instanceof jasmine.Suite;
-
-      // We could use a separate object for suite and spec
-      var summary = {
-        id: suiteOrSpec.id,
-        name: suiteOrSpec.description,
-        type: isSuite? 'suite' : 'spec',
-        suiteNestingLevel: 0,
-        children: []
-      };
-
-      if (isSuite) {
-        var calculateNestingLevel = function(examinedSuite) {
-          var nestingLevel = 0;
-          while (examinedSuite.parentSuite !== null) {
-            nestingLevel += 1;
-            examinedSuite = examinedSuite.parentSuite;
-          }
-          return nestingLevel;
-        };
-
-        summary.suiteNestingLevel = calculateNestingLevel(suiteOrSpec);
-
-        var children = suiteOrSpec.children();
-        for (var i = 0; i < children.length; i++) {
-          summary.children.push(this.summarize_(children[i]));
-        }
-      }
-
-      return summary;
-    },
-
-    // This is heavily influenced by Jasmine's Html/Trivial Reporter
-    reportRunnerResults: function(runner) {
-      this.reportFailures_();
-
-      var results = runner.results();
-      var resultColor = (results.failedCount > 0) ? this.color_.fail() : this.color_.pass();
-
-      var specs = runner.specs();
-      var specCount = specs.length;
-
-      var message = "\n\nFinished in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + " seconds";
-      this.printLine_(message);
-
-      // This is what jasmine-html.js has
-      //message = "" + specCount + " spec" + ( specCount === 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount === 1) ? "" : "s");
-
-      this.printLine_(this.stringWithColor_(this.printRunnerResults_(runner), resultColor));
-
-      this.finished_ = true;
-      if(this.callback_) { this.callback_(runner); }
-    },
-
-    reportFailures_: function() {
-      if (this.failures_.length === 0) {
-        return;
-      }
-
-      var indent = '  ', failure;
-      this.printLine_('\n');
-
-      this.print_('Failures:');
-
-      for (var i = 0; i < this.failures_.length; i++) {
-        failure = this.failures_[i];
-        this.printLine_('\n');
-        this.printLine_('  ' + (i + 1) + ') ' + failure.spec);
-        this.printLine_('   Message:');
-        this.printLine_('     ' + this.stringWithColor_(failure.message, this.color_.fail()));
-        if (this.includeStackTrace_) {
-            this.printLine_('   Stacktrace:');
-            this.print_('     ' + failure.stackTrace);
-        }
-      }
-    },
-
-    reportSuiteResults: function(suite) {
-      // Not used in this context
-    },
-
-    reportSpecResults: function(spec) {
-      var result = spec.results();
-      var msg = '';
-      if (result.passed()) {
-        msg = this.stringWithColor_('.', this.color_.pass());
-        //      } else if (result.skipped) {  TODO: Research why "result.skipped" returns false when "xit" is called on a spec?
-        //        msg = (colors) ? (ansi.yellow + '*' + ansi.none) : '*';
-      } else {
-        msg = this.stringWithColor_('F', this.color_.fail());
-        this.addFailureToFailures_(spec);
-      }
-      this.spec_results += msg;
-      this.print_(msg);
-    },
-
-    addFailureToFailures_: function(spec) {
-      var result = spec.results();
-      var failureItem = null;
-
-      var items_length = result.items_.length;
-      for (var i = 0; i < items_length; i++) {
-        if (result.items_[i].passed_ === false) {
-          failureItem = result.items_[i];
-
-          var failure = {
-            spec: spec.suite.getFullName() + " " + spec.description,
-            message: failureItem.message,
-            stackTrace: failureItem.trace.stack
-          }
-
-          this.failures_.push(failure);
-        }
-      }
-    },
-
-    printRunnerResults_: function(runner){
-      var results = runner.results();
-      var specs = runner.specs();
-      var msg = '';
-      msg += specs.length + ' test' + ((specs.length === 1) ? '' : 's') + ', ';
-      msg += results.totalCount + ' assertion' + ((results.totalCount === 1) ? '' : 's') + ', ';
-      msg += results.failedCount + ' failure' + ((results.failedCount === 1) ? '' : 's') + '\n';
-      return msg;
-    },
-
-      // Helper Methods //
-    stringWithColor_: function(stringValue, color) {
-      return (color || this.color_.neutral()) + stringValue + this.color_.neutral();
-    },
-
-    printLine_: function(stringValue) {
-      this.print_(stringValue);
-      this.print_('\n');
-    }
-  };
-
-  // ***************************************************************
-  // TerminalVerboseReporter uses the TerminalReporter's constructor
-  // ***************************************************************
-  jasmineNode.TerminalVerboseReporter = function(config) {
-    jasmineNode.TerminalReporter.call(this, config);
-    // The extra field in this object
-    this.indent_ = 0;
-  }
-
-
-  jasmineNode.TerminalVerboseReporter.prototype = {
-    reportSpecResults: function(spec) {
-      if (spec.results().failedCount > 0) {
-        this.addFailureToFailures_(spec);
-      }
-
-      this.specResults_[spec.id] = {
-        messages: spec.results().getItems(),
-        result: spec.results().failedCount > 0 ? 'failed' : 'passed'
-      };
-    },
-
-    reportRunnerResults: function(runner) {
-      var messages = new Array();
-      this.buildMessagesFromResults_(messages, this.suites_);
-
-      var messages_length = messages.length;
-      for (var i = 0; i < messages_length-1; i++) {
-        this.printLine_(messages[i]);
-      }
-
-      this.print_(messages[messages_length-1]);
-
-      // Call the parent object's method
-      jasmineNode.TerminalReporter.prototype.reportRunnerResults.call(this, runner);
-    },
-
-    buildMessagesFromResults_: function(messages, results, depth) {
-      var element, specResult, specIndentSpaces, msg = '';
-      depth = (depth === undefined) ? 0 : depth;
-
-      var results_length = results.length;
-      for (var i = 0; i < results_length; i++) {
-        element = results[i];
-
-        if (element.type === 'spec') {
-          specResult = this.specResults_[element.id.toString()];
-
-          if (specResult.result === 'passed') {
-            msg = this.stringWithColor_(this.indentMessage_(element.name, depth), this.color_.pass());
-          } else {
-            msg = this.stringWithColor_(this.indentMessage_(element.name, depth), this.color_.fail());
-          }
-
-          messages.push(msg);
-        } else {
-          messages.push('');
-          messages.push(this.indentMessage_(element.name, depth));
-        }
-
-        this.buildMessagesFromResults_(messages, element.children, depth + 2);
-      }
-    },
-
-    indentMessage_: function(message, indentCount) {
-      var _indent = '';
-      for (var i = 0; i < indentCount; i++) {
-        _indent += '  ';
-      }
-      return (_indent + message);
-    }
-  };
-
-  // Inherit from TerminalReporter
-  jasmineNode.TerminalVerboseReporter.prototype.__proto__ = jasmineNode.TerminalReporter.prototype;
-
-  //
-  // Exports
-  //
-  exports.jasmineNode = jasmineNode;
-})();


[30/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.junit_reporter.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.junit_reporter.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.junit_reporter.js
deleted file mode 100644
index 39d0666..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.junit_reporter.js
+++ /dev/null
@@ -1,200 +0,0 @@
-(function() {
-
-    if (! jasmine) {
-        throw new Exception("jasmine library does not exist in global namespace!");
-    }
-
-    function elapsed(startTime, endTime) {
-        return (endTime - startTime)/1000;
-    }
-
-    function ISODateString(d) {
-        function pad(n) { return n < 10 ? '0'+n : n; }
-
-        return d.getFullYear() + '-' +
-            pad(d.getMonth()+1) + '-' +
-            pad(d.getDate()) + 'T' +
-            pad(d.getHours()) + ':' +
-            pad(d.getMinutes()) + ':' +
-            pad(d.getSeconds());
-    }
-
-    function trim(str) {
-        return str.replace(/^\s+/, "" ).replace(/\s+$/, "" );
-    }
-
-    function escapeInvalidXmlChars(str) {
-        return str.replace(/\&/g, "&amp;")
-            .replace(/</g, "&lt;")
-            .replace(/\>/g, "&gt;")
-            .replace(/\"/g, "&quot;")
-            .replace(/\'/g, "&apos;");
-    }
-
-    /**
-     * Generates JUnit XML for the given spec run.
-     * Allows the test results to be used in java based CI
-     * systems like CruiseControl and Hudson.
-     *
-     * @param {string} savePath where to save the files
-     * @param {boolean} consolidate whether to save nested describes within the
-     *                  same file as their parent; default: true
-     * @param {boolean} useDotNotation whether to separate suite names with
-     *                  dots rather than spaces (ie "Class.init" not
-     *                  "Class init"); default: true
-     */
-    var JUnitXmlReporter = function(savePath, consolidate, useDotNotation) {
-        this.savePath = savePath || '';
-        this.consolidate = consolidate === jasmine.undefined ? true : consolidate;
-        this.useDotNotation = useDotNotation === jasmine.undefined ? true : useDotNotation;
-    };
-    JUnitXmlReporter.finished_at = null; // will be updated after all files have been written
-
-    JUnitXmlReporter.prototype = {
-        reportSpecStarting: function(spec) {
-            spec.startTime = new Date();
-
-            if (!spec.suite.startTime) {
-                spec.suite.startTime = spec.startTime;
-            }
-        },
-
-        reportSpecResults: function(spec) {
-            var results = spec.results();
-            spec.didFail = !results.passed();
-            spec.duration = elapsed(spec.startTime, new Date());
-            spec.output = '<testcase classname="' + this.getFullName(spec.suite) +
-                '" name="' + escapeInvalidXmlChars(spec.description) + '" time="' + spec.duration + '">';
-
-            var failure = "";
-            var failures = 0;
-            var resultItems = results.getItems();
-            for (var i = 0; i < resultItems.length; i++) {
-                var result = resultItems[i];
-
-                if (result.type == 'expect' && result.passed && !result.passed()) {
-                    failures += 1;
-                    failure += (failures + ": " + escapeInvalidXmlChars(result.message) + " ");
-                }
-            }
-            if (failure) {
-                spec.output += "<failure>" + trim(failure) + "</failure>";
-            }
-            spec.output += "</testcase>";
-        },
-
-        reportSuiteResults: function(suite) {
-            var results = suite.results();
-            var specs = suite.specs();
-            var specOutput = "";
-            // for JUnit results, let's only include directly failed tests (not nested suites')
-            var failedCount = 0;
-
-            suite.status = results.passed() ? 'Passed.' : 'Failed.';
-            if (results.totalCount === 0) { // todo: change this to check results.skipped
-                suite.status = 'Skipped.';
-            }
-
-            // if a suite has no (active?) specs, reportSpecStarting is never called
-            // and thus the suite has no startTime -- account for that here
-            suite.startTime = suite.startTime || new Date();
-            suite.duration = elapsed(suite.startTime, new Date());
-
-            for (var i = 0; i < specs.length; i++) {
-                failedCount += specs[i].didFail ? 1 : 0;
-                specOutput += "\n  " + specs[i].output;
-            }
-            suite.output = '\n<testsuite name="' + this.getFullName(suite) +
-                '" errors="0" tests="' + specs.length + '" failures="' + failedCount +
-                '" time="' + suite.duration + '" timestamp="' + ISODateString(suite.startTime) + '">';
-            suite.output += specOutput;
-            suite.output += "\n</testsuite>";
-        },
-
-        reportRunnerResults: function(runner) {
-            var suites = runner.suites();
-            for (var i = 0; i < suites.length; i++) {
-                var suite = suites[i];
-                var fileName = 'TEST-' + this.getFullName(suite, true) + '.xml';
-                var output = '<?xml version="1.0" encoding="UTF-8" ?>';
-                // if we are consolidating, only write out top-level suites
-                if (this.consolidate && suite.parentSuite) {
-                    continue;
-                }
-                else if (this.consolidate) {
-                    output += "\n<testsuites>";
-                    output += this.getNestedOutput(suite);
-                    output += "\n</testsuites>";
-                    this.writeFile(this.savePath + fileName, output);
-                }
-                else {
-                    output += suite.output;
-                    this.writeFile(this.savePath + fileName, output);
-                }
-            }
-            // When all done, make it known on JUnitXmlReporter
-            JUnitXmlReporter.finished_at = (new Date()).getTime();
-        },
-
-        getNestedOutput: function(suite) {
-            var output = suite.output;
-            for (var i = 0; i < suite.suites().length; i++) {
-                output += this.getNestedOutput(suite.suites()[i]);
-            }
-            return output;
-        },
-
-        writeFile: function(filename, text) {
-            // Rhino
-            try {
-                var out = new java.io.BufferedWriter(new java.io.FileWriter(filename));
-                out.write(text);
-                out.close();
-                return;
-            } catch (e) {}
-            // PhantomJS, via a method injected by phantomjs-testrunner.js
-            try {
-                __phantom_writeFile(filename, text);
-                return;
-            } catch (f) {}
-            // Node.js
-            try {
-                var fs = require("fs");
-                var fd = fs.openSync(filename, "w");
-                fs.writeSync(fd, text, 0);
-                fs.closeSync(fd);
-                return;
-            } catch (g) {}
-        },
-
-        getFullName: function(suite, isFilename) {
-            var fullName;
-            if (this.useDotNotation) {
-                fullName = suite.description;
-                for (var parentSuite = suite.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
-                    fullName = parentSuite.description + '.' + fullName;
-                }
-            }
-            else {
-                fullName = suite.getFullName();
-            }
-
-            // Either remove or escape invalid XML characters
-            if (isFilename) {
-                return fullName.replace(/[^\w]/g, "");
-            }
-            return escapeInvalidXmlChars(fullName);
-        },
-
-        log: function(str) {
-            var console = jasmine.getGlobal().console;
-
-            if (console && console.log) {
-                console.log(str);
-            }
-        }
-    };
-
-    // export public
-    jasmine.JUnitXmlReporter = JUnitXmlReporter;
-})();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.teamcity_reporter.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.teamcity_reporter.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.teamcity_reporter.js
deleted file mode 100644
index e96e072..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/jasmine.teamcity_reporter.js
+++ /dev/null
@@ -1,139 +0,0 @@
-(function() {
-    if (! jasmine) {
-        throw new Exception("jasmine library does not exist in global namespace!");
-    }
-
-    /**
-     * Basic reporter that outputs spec results to for the Teamcity build system
-     *
-     * Usage:
-     *
-     * jasmine.getEnv().addReporter(new jasmine.TeamcityReporter());
-     * jasmine.getEnv().execute();
-     */
-    var TeamcityReporter = function() {
-        this.started = false;
-        this.finished = false;
-    };
-
-    TeamcityReporter.prototype = {
-        reportRunnerResults: function(runner) { },
-
-        reportRunnerStarting: function(runner) { },
-
-        reportSpecResults: function(spec) { },
-
-        reportSpecStarting: function(spec) { },
-
-        reportSuiteResults: function(suite) {
-            var results = suite.results();
-            var path = [];
-            while(suite) {
-                path.unshift(suite.description);
-                suite = suite.parentSuite;
-            }
-            var description = path.join(' ');
-
-            this.log("##teamcity[testSuiteStarted name='" + this.escapeTeamcityString(description) + "']");
-
-            var outerThis = this;
-            var eachSpecFn = function(spec){
-                if (spec.description) {
-                    outerThis.log("##teamcity[testStarted name='" + outerThis.escapeTeamcityString(spec.description) + "' captureStandardOutput='true']");
-                    var specResultFn = function(result){
-                        if (!result.passed_) {
-                            outerThis.log("##teamcity[testFailed name='" + outerThis.escapeTeamcityString(spec.description) + "' message='|[FAILED|]' details='" + outerThis.escapeTeamcityString(result.trace.stack) + "']");
-                        }
-                    };
-
-                    for (var j = 0, jlen = spec.items_.length; j < jlen; j++) {
-                        specResultFn(spec.items_[j]);
-                    }
-                    outerThis.log("##teamcity[testFinished name='" + outerThis.escapeTeamcityString(spec.description) + "']");
-                }
-            };
-            for (var i = 0, ilen = results.items_.length; i < ilen; i++) {
-                eachSpecFn(results.items_[i]);
-            }
-
-
-
-            this.log("##teamcity[testSuiteFinished name='" + outerThis.escapeTeamcityString(description) + "']");
-        },
-
-        log: function(str) {
-            var console = jasmine.getGlobal().console;
-            if (console && console.log) {
-                console.log(str);
-            }
-        },
-
-        hasGroupedConsole: function() {
-            var console = jasmine.getGlobal().console;
-            return console && console.info && console.warn && console.group && console.groupEnd && console.groupCollapsed;
-        },
-
-        escapeTeamcityString: function(message) {
-            if(!message) {
-                return "";
-            }
-
-            return message.replace(/\|/g, "||")
-                          .replace(/\'/g, "|'")
-                          .replace(/\n/g, "|n")
-                          .replace(/\r/g, "|r")
-                          .replace(/\u0085/g, "|x")
-                          .replace(/\u2028/g, "|l")
-                          .replace(/\u2029/g, "|p")
-                          .replace(/\[/g, "|[")
-                          .replace(/]/g, "|]");
-        }
-    };
-
-    function suiteResults(suite) {
-        console.group(suite.description);
-        var specs = suite.specs();
-        for (var i in specs) {
-            if (specs.hasOwnProperty(i)) {
-                specResults(specs[i]);
-            }
-        }
-        var suites = suite.suites();
-        for (var j in suites) {
-            if (suites.hasOwnProperty(j)) {
-                suiteResults(suites[j]);
-            }
-        }
-        console.groupEnd();
-    }
-
-    function specResults(spec) {
-        var results = spec.results();
-        if (results.passed() && console.groupCollapsed) {
-            console.groupCollapsed(spec.description);
-        } else {
-            console.group(spec.description);
-        }
-        var items = results.getItems();
-        for (var k in items) {
-            if (items.hasOwnProperty(k)) {
-                itemResults(items[k]);
-            }
-        }
-        console.groupEnd();
-    }
-
-    function itemResults(item) {
-        if (item.passed && !item.passed()) {
-            console.warn({actual:item.actual,expected: item.expected});
-            item.trace.message = item.matcherName;
-            console.error(item.trace);
-        } else {
-            console.info('Passed');
-        }
-    }
-
-    // export public
-    jasmine.TeamcityReporter = TeamcityReporter;
-})();
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/load_reporters.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/load_reporters.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/load_reporters.js
deleted file mode 100644
index 3b4a742..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/src/load_reporters.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require("./jasmine.console_reporter.js")
-require("./jasmine.junit_reporter.js")
-require("./jasmine.teamcity_reporter.js")

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/JUnitXmlReporterSpec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/JUnitXmlReporterSpec.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/JUnitXmlReporterSpec.js
deleted file mode 100644
index e76d7fb..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/JUnitXmlReporterSpec.js
+++ /dev/null
@@ -1,214 +0,0 @@
-(function(){
-    var env, spec, suite, reporter, runner;
-    function fakeSpec(suite, name) {
-        var s = new jasmine.Spec(env, suite, name);
-        suite.add(s);
-        return s;
-    }
-    function fakeSuite(name, parentSuite) {
-        var s = new jasmine.Suite(env, name, null, parentSuite || null);
-        if (parentSuite) {
-            parentSuite.add(s);
-        }
-        runner.add(s);
-        return s;
-    }
-
-    // make sure reporter is set before calling this
-    function triggerSuiteEvents(suites) {
-        for (var i=0; i<suites.length; i++) {
-            var s = suites[i];
-            for (var j=0; j<s.specs().length; j++) {
-                reporter.reportSpecStarting(s.specs()[j]);
-                reporter.reportSpecResults(s.specs()[j]);
-            }
-            reporter.reportSuiteResults(s);
-        }
-    }
-
-    describe("JUnitXmlReporter", function(){
-
-        beforeEach(function(){
-            env = new jasmine.Env();
-            env.updateInterval = 0;
-            runner = new jasmine.Runner(env);
-
-            suite = fakeSuite("ParentSuite");
-            spec = fakeSpec(suite, "should be a dummy with invalid characters: & < > \" '");
-            reporter = new jasmine.JUnitXmlReporter();
-        });
-
-        describe("constructor", function(){
-            it("should default path to an empty string", function(){
-                expect(reporter.savePath).toEqual("");
-            });
-            it("should default consolidate to true", function(){
-                expect(reporter.consolidate).toBe(true);
-            });
-            it("should default useDotNotation to true", function(){
-                expect(reporter.useDotNotation).toBe(true);
-            });
-        });
-
-        describe("reportSpecStarting", function(){
-            it("should add start time", function(){
-                reporter.reportSpecStarting(spec);
-                expect(spec.startTime).not.toBeUndefined();
-            });
-            it("shound add start time to the suite", function(){
-                expect(suite.startTime).toBeUndefined();
-                reporter.reportSpecStarting(spec);
-                expect(suite.startTime).not.toBeUndefined();
-            });
-            it("should not add start time to the suite if it already exists", function(){
-                var a = new Date();
-                suite.startTime = a;
-                reporter.reportSpecStarting(spec);
-                expect(suite.startTime).toBe(a);
-            });
-        });
-
-        describe("reportSpecResults", function(){
-            beforeEach(function(){
-                reporter.reportSpecStarting(spec);
-                //spec.results_ = fakeResults();
-                reporter.reportSpecResults(spec);
-            });
-            it("should compute duration", function(){
-                expect(spec.duration).not.toBeUndefined();
-            });
-            it("should generate <testcase> output", function(){
-                expect(spec.output).not.toBeUndefined();
-                expect(spec.output).toContain("<testcase");
-            });
-            it("should escape bad xml characters in spec description", function() {
-                expect(spec.output).toContain("&amp; &lt; &gt; &quot; &apos;");
-            });
-            it("should generate valid xml <failure> output if test failed", function(){
-                // this one takes a bit of setup to pretend a failure
-                spec = fakeSpec(suite, "should be a dummy");
-                reporter.reportSpecStarting(spec);
-                var expectationResult = new jasmine.ExpectationResult({
-                    matcherName: "toEqual", passed: false, message: "Expected 'a' to equal '&'."
-                });
-                var results = {
-                    passed: function() { return false; },
-                    getItems: function() { return [expectationResult]; }
-                };
-                spyOn(spec, "results").andReturn(results);
-                reporter.reportSpecResults(spec);
-                expect(spec.output).toContain("<failure>");
-                expect(spec.output).toContain("to equal &apos;&amp;");
-            });
-        });
-
-        describe("reportSuiteResults", function(){
-            beforeEach(function(){
-                triggerSuiteEvents([suite]);
-            });
-            it("should compute duration", function(){
-                expect(suite.duration).not.toBeUndefined();
-            });
-            it("should generate startTime if no specs were executed", function(){
-                suite = fakeSuite("just a fake suite");
-                triggerSuiteEvents([suite]);
-                expect(suite.startTime).not.toBeUndefined();
-            });
-            it("should generate <testsuite> output", function(){
-                expect(suite.output).not.toBeUndefined();
-                expect(suite.output).toContain("<testsuite");
-            });
-            it("should contain <testcase> output from specs", function(){
-                expect(suite.output).toContain("<testcase");
-            });
-        });
-
-        describe("reportRunnerResults", function(){
-            var subSuite, subSubSuite, siblingSuite;
-
-            beforeEach(function(){
-                subSuite = fakeSuite("SubSuite", suite);
-                subSubSuite = fakeSuite("SubSubSuite", subSuite);
-                siblingSuite = fakeSuite("SiblingSuite With Invalid Chars & < > \" ' | : \\ /");
-                var subSpec = fakeSpec(subSuite, "should be one level down");
-                var subSubSpec = fakeSpec(subSubSuite, "should be two levels down");
-                var siblingSpec = fakeSpec(siblingSuite, "should be a sibling of Parent");
-
-                spyOn(reporter, "writeFile");
-                spyOn(reporter, "getNestedOutput").andCallThrough();
-                triggerSuiteEvents([suite, subSuite, subSubSuite, siblingSuite]);
-            });
-
-            describe("general functionality", function() {
-                beforeEach(function() {
-                    reporter.reportRunnerResults(runner);
-                });
-                it("should remove invalid filename chars from the filename", function() {
-                    expect(reporter.writeFile).toHaveBeenCalledWith("TEST-SiblingSuiteWithInvalidChars.xml", jasmine.any(String));
-                });
-                it("should remove invalid xml chars from the classname", function() {
-                    expect(siblingSuite.output).toContain("SiblingSuite With Invalid Chars &amp; &lt; &gt; &quot; &apos; | : \\ /");
-                });
-            });
-
-            describe("consolidated is true", function(){
-                beforeEach(function(){
-                    reporter.reportRunnerResults(runner);
-                });
-                it("should write one file per parent suite", function(){
-                    expect(reporter.writeFile.callCount).toEqual(2);
-                });
-                it("should consolidate suite output", function(){
-                    expect(reporter.getNestedOutput.callCount).toEqual(4);
-                });
-                it("should wrap output in <testsuites>", function(){
-                    expect(reporter.writeFile.mostRecentCall.args[1]).toContain("<testsuites>");
-                });
-                it("should include xml header in every file", function(){
-                    for (var i = 0; i < reporter.writeFile.callCount; i++) {
-                        expect(reporter.writeFile.argsForCall[i][1]).toContain("<?xml");
-                    }
-                });
-            });
-
-            describe("consolidated is false", function(){
-                beforeEach(function(){
-                    reporter.consolidate = false;
-                    reporter.reportRunnerResults(runner);
-                });
-                it("should write one file per suite", function(){
-                    expect(reporter.writeFile.callCount).toEqual(4);
-                });
-                it("should not wrap results in <testsuites>", function(){
-                    expect(reporter.writeFile.mostRecentCall.args[1]).not.toContain("<testsuites>");
-                });
-                it("should include xml header in every file", function(){
-                    for (var i = 0; i < reporter.writeFile.callCount; i++) {
-                        expect(reporter.writeFile.argsForCall[i][1]).toContain("<?xml");
-                    }
-                });
-            });
-
-            describe("dot notation is true", function(){
-                beforeEach(function(){
-                    reporter.reportRunnerResults(runner);
-                });
-                it("should separate descriptions with dot notation", function(){
-                    expect(subSubSuite.output).toContain('classname="ParentSuite.SubSuite.SubSubSuite"');
-                });
-            });
-
-            describe("dot notation is false", function(){
-                beforeEach(function(){
-                    reporter.useDotNotation = false;
-                    triggerSuiteEvents([suite, subSuite, subSubSuite, siblingSuite]);
-                    reporter.reportRunnerResults(runner);
-                });
-                it("should separate descriptions with whitespace", function(){
-                    expect(subSubSuite.output).toContain('classname="ParentSuite SubSuite SubSubSuite"');
-                });
-            });
-        });
-    });
-})();
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/console_reporter.html
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/console_reporter.html b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/console_reporter.html
deleted file mode 100644
index b0da97f..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/console_reporter.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8" />
-    <title>Console Reporter Spec</title>
-    
-    <link rel="stylesheet" href="../ext/jasmine.css" type="text/css" />
-    
-    <script type="text/javascript" src="../ext/jasmine.js"></script>
-    <script type="text/javascript" src="../ext/jasmine-html.js"></script>
-    <script type="text/javascript" src="../src/jasmine.console_reporter.js"></script>
-</head>
-<body>
-    <script type="text/javascript">
-        describe("Basic Suite", function() {
-            it("Should pass a basic truthiness test.", function() {
-                expect(true).toEqual(true);
-            });
-            
-            it("Should fail when it hits an inequal statement.", function() {
-                expect(1+1).toEqual(3);
-            });
-        });
-        
-        describe("Another Suite", function() {
-            it("Should pass this test as well.", function() {
-                expect(0).toEqual(0);
-            });
-        });
-        
-        jasmine.getEnv().addReporter(new jasmine.ConsoleReporter());
-        jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
-        jasmine.getEnv().execute();
-    </script>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/envjs.bootstrap.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/envjs.bootstrap.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/envjs.bootstrap.js
deleted file mode 100644
index 4415594..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/envjs.bootstrap.js
+++ /dev/null
@@ -1,14 +0,0 @@
-load('../ext/env.rhino.1.2.js');
-
-Envjs.scriptTypes['text/javascript'] = true;
-
-var specFile;
-
-for (i = 0; i < arguments.length; i++) {
-    specFile = arguments[i];
-    
-    console.log("Loading: " + specFile);
-    
-    window.location = specFile
-}
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/envjs.runner.sh
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/envjs.runner.sh b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/envjs.runner.sh
deleted file mode 100755
index 6bc583b..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/envjs.runner.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-# cleanup previous test runs
-rm -f *.xml
-
-# fire up the envjs environment
-java -cp ../ext/js.jar:../ext/jline.jar org.mozilla.javascript.tools.shell.Main -opt -1 envjs.bootstrap.js $@

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/junit_xml_reporter.html
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/junit_xml_reporter.html b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/junit_xml_reporter.html
deleted file mode 100644
index 25c1ac2..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/junit_xml_reporter.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8" />
-    <title>JUnit XML Reporter Spec</title>
-
-    <link rel="stylesheet" href="../ext/jasmine.css" type="text/css" />
-
-    <script type="text/javascript" src="../ext/jasmine.js"></script>
-    <script type="text/javascript" src="../ext/jasmine-html.js"></script>
-    <script type="text/javascript" src="../src/jasmine.junit_reporter.js"></script>
-
-    <!-- Include spec file -->
-    <script type="text/javascript" src="JUnitXmlReporterSpec.js"></script>
-</head>
-<body>
-    <script type="text/javascript">
-        jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
-        jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter());
-        jasmine.getEnv().execute();
-    </script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/phantomjs-testrunner.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/phantomjs-testrunner.js b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/phantomjs-testrunner.js
deleted file mode 100644
index edcca35..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/phantomjs-testrunner.js
+++ /dev/null
@@ -1,183 +0,0 @@
-// Verify arguments
-if (phantom.args.length === 0) {
-    console.log("Simple JasmineBDD test runner for phantom.js");
-    console.log("Usage: phantomjs-testrunner.js url_to_runner.html");
-    console.log("Accepts http:// and file:// urls");
-    console.log("");
-    console.log("NOTE: This script depends on jasmine.TrivialReporter being used\non the page, for the DOM elements it creates.\n");
-    phantom.exit(2);
-}
-else {
-    var args = phantom.args;
-    var pages = [], page, address, resultsKey, i, l;
-
-    var setupPageFn = function(p, k) {
-        return function() {
-            overloadPageEvaluate(p);
-            setupWriteFileFunction(p, k);
-        };
-    };
-
-    for (i = 0, l = args.length; i < l; i++) {
-        address = args[i];
-        console.log("Loading " + address);
-
-        // if provided a url without a protocol, try to use file://
-        address = address.indexOf("://") === -1 ? "file://" + address : address;
-
-        // create a WebPage object to work with
-        page = require("webpage").create();
-        page.url = address;
-
-        // When initialized, inject the reporting functions before the page is loaded
-        // (and thus before it will try to utilize the functions)
-        resultsKey = "__jr" + Math.ceil(Math.random() * 1000000);
-        page.onInitialized = setupPageFn(page, resultsKey);
-        page.open(address, processPage(null, page, resultsKey));
-        pages.push(page);
-    }
-
-    // bail when all pages have been processed
-    setInterval(function(){
-        var exit_code = 0;
-        for (i = 0, l = pages.length; i < l; i++) {
-            page = pages[i];
-            if (page.__exit_code === null) {
-                // wait until later
-                return;
-            }
-            exit_code |= page.__exit_code;
-        }
-        phantom.exit(exit_code);
-    }, 100);
-}
-
-// Thanks to hoisting, these helpers are still available when needed above
-/**
- * Stringifies the function, replacing any %placeholders% with mapped values.
- *
- * @param {function} fn The function to replace occurrences within.
- * @param {object} replacements Key => Value object of string replacements.
- */
-function replaceFunctionPlaceholders(fn, replacements) {
-    if (replacements && typeof replacements === "object") {
-        fn = fn.toString();
-        for (var p in replacements) {
-            if (replacements.hasOwnProperty(p)) {
-                var match = new RegExp("%" + p + "%", "g");
-                do {
-                    fn = fn.replace(match, replacements[p]);
-                } while(fn.indexOf(match) !== -1);
-            }
-        }
-    }
-    return fn;
-}
-
-/**
- * Replaces the "evaluate" method with one we can easily do substitution with.
- *
- * @param {phantomjs.WebPage} page The WebPage object to overload
- */
-function overloadPageEvaluate(page) {
-    page._evaluate = page.evaluate;
-    page.evaluate = function(fn, replacements) { return page._evaluate(replaceFunctionPlaceholders(fn, replacements)); };
-    return page;
-}
-
-/** Stubs a fake writeFile function into the test runner.
- *
- * @param {phantomjs.WebPage} page The WebPage object to inject functions into.
- * @param {string} key The name of the global object in which file data should
- *                     be stored for later retrieval.
- */
-// TODO: not bothering with error checking for now (closed environment)
-function setupWriteFileFunction(page, key) {
-    page.evaluate(function(){
-        window["%resultsObj%"] = {};
-        window.__phantom_writeFile = function(filename, text) {
-            window["%resultsObj%"][filename] = text;
-        };
-    }, {resultsObj: key});
-}
-
-/**
- * Returns the loaded page's filename => output object.
- *
- * @param {phantomjs.WebPage} page The WebPage object to retrieve data from.
- * @param {string} key The name of the global object to be returned. Should
- *                     be the same key provided to setupWriteFileFunction.
- */
-function getXmlResults(page, key) {
-    return page.evaluate(function(){
-        return window["%resultsObj%"] || {};
-    }, {resultsObj: key});
-}
-
-/**
- * Processes a page.
- *
- * @param {string} status The status from opening the page via WebPage#open.
- * @param {phantomjs.WebPage} page The WebPage to be processed.
- */
-function processPage(status, page, resultsKey) {
-    if (status === null && page) {
-        page.__exit_code = null;
-        return function(stat){
-            processPage(stat, page, resultsKey);
-        };
-    }
-    if (status !== "success") {
-        console.error("Unable to load resource: " + address);
-        page.__exit_code = 2;
-    }
-    else {
-        var isFinished = function() {
-            return page.evaluate(function(){
-                // if there's a JUnitXmlReporter, return a boolean indicating if it is finished
-                if (jasmine.JUnitXmlReporter) {
-                    return jasmine.JUnitXmlReporter.finished_at !== null;
-                }
-                // otherwise, see if there is anything in a "finished-at" element
-                return document.getElementsByClassName("finished-at").length &&
-                       document.getElementsByClassName("finished-at")[0].innerHTML.length > 0;
-            });
-        };
-        var getResults = function() {
-            return page.evaluate(function(){
-                return document.getElementsByClassName("description").length &&
-                       document.getElementsByClassName("description")[0].innerHTML.match(/(\d+) spec.* (\d+) failure.*/) ||
-                       ["Unable to determine success or failure."];
-            });
-        };
-        var ival = setInterval(function(){
-            if (isFinished()) {
-                // get the results that need to be written to disk
-                var fs = require("fs"),
-                    xml_results = getXmlResults(page, resultsKey),
-                    output;
-                for (var filename in xml_results) {
-                    if (xml_results.hasOwnProperty(filename) && (output = xml_results[filename]) && typeof(output) === "string") {
-                        fs.write(filename, output, "w");
-                    }
-                }
-
-                // print out a success / failure message of the results
-                var results = getResults();
-                var specs = Number(results[1]);
-                var failures = Number(results[2]);
-                console.log("Results for url " + page.url + ":");
-                if (failures > 0) {
-                    console.error("  FAILURE: " + results[0]);
-                    page.__exit_code = 1;
-                    clearInterval(ival);
-                }
-                else {
-                    console.log("  SUCCESS: " + results[0]);
-                    page.__exit_code = 0;
-                    clearInterval(ival);
-                }
-            }
-        }, 100);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/phantomjs.runner.sh
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/phantomjs.runner.sh b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/phantomjs.runner.sh
deleted file mode 100755
index ca5d8fa..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/phantomjs.runner.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-# sanity check to make sure phantomjs exists in the PATH
-hash /usr/bin/env phantomjs &> /dev/null
-if [ $? -eq 1 ]; then
-    echo "ERROR: phantomjs is not installed"
-    echo "Please visit http://www.phantomjs.org/"
-    exit 1
-fi
-
-# sanity check number of args
-if [ $# -lt 1 ]
-then
-    echo "Usage: `basename $0` path_to_runner.html"
-    echo
-    exit 1
-fi
-
-SCRIPTDIR=$(dirname `perl -e 'use Cwd "abs_path";print abs_path(shift)' $0`)
-TESTFILE=""
-while (( "$#" )); do
-    TESTFILE="$TESTFILE `perl -e 'use Cwd "abs_path";print abs_path(shift)' $1`"
-    shift
-done
-
-# cleanup previous test runs
-cd $SCRIPTDIR
-rm -f *.xml
-
-# make sure phantomjs submodule is initialized
-cd ..
-git submodule update --init
-
-# fire up the phantomjs environment and run the test
-cd $SCRIPTDIR
-/usr/bin/env phantomjs $SCRIPTDIR/phantomjs-testrunner.js $TESTFILE

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/teamcity_reporter.html
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/teamcity_reporter.html b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/teamcity_reporter.html
deleted file mode 100644
index 4803e1e..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/test/teamcity_reporter.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8" />
-    <title>Console Reporter Spec</title>
-
-    <link rel="stylesheet" href="../ext/jasmine.css" type="text/css" />
-
-    <script type="text/javascript" src="../ext/jasmine.js"></script>
-    <script type="text/javascript" src="../ext/jasmine-html.js"></script>
-    <script type="text/javascript" src="../src/jasmine.teamcity_reporter.js"></script>
-</head>
-<body>
-    <script type="text/javascript">
-        describe("Basic Suite", function() {
-            it("Should pass a basic truthiness test.", function() {
-                expect(true).toEqual(true);
-            });
-
-            it("Should fail when it hits an inequal statement.", function() {
-                expect(1+1).toEqual(3);
-            });
-        });
-
-        describe("Another Suite", function() {
-            it("Should pass this test as well.", function() {
-                expect(0).toEqual(0);
-            });
-        });
-
-        jasmine.getEnv().addReporter(new jasmine.TeamcityReporter());
-        jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
-        jasmine.getEnv().execute();
-    </script>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/.npmignore
deleted file mode 100644
index 9303c34..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/
-npm-debug.log
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/.travis.yml b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/.travis.yml
deleted file mode 100644
index 84fd7ca..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.6
-  - 0.8
-  - 0.9

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/LICENSE
deleted file mode 100644
index 432d1ae..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright 2010 James Halliday (mail@substack.net)
-
-This project is free software released under the MIT/X11 license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/examples/pow.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/examples/pow.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/examples/pow.js
deleted file mode 100644
index e692421..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/examples/pow.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var mkdirp = require('mkdirp');
-
-mkdirp('/tmp/foo/bar/baz', function (err) {
-    if (err) console.error(err)
-    else console.log('pow!')
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/index.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/index.js
deleted file mode 100644
index fda6de8..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/index.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var path = require('path');
-var fs = require('fs');
-
-module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
-
-function mkdirP (p, mode, f, made) {
-    if (typeof mode === 'function' || mode === undefined) {
-        f = mode;
-        mode = 0777 & (~process.umask());
-    }
-    if (!made) made = null;
-
-    var cb = f || function () {};
-    if (typeof mode === 'string') mode = parseInt(mode, 8);
-    p = path.resolve(p);
-
-    fs.mkdir(p, mode, function (er) {
-        if (!er) {
-            made = made || p;
-            return cb(null, made);
-        }
-        switch (er.code) {
-            case 'ENOENT':
-                mkdirP(path.dirname(p), mode, function (er, made) {
-                    if (er) cb(er, made);
-                    else mkdirP(p, mode, cb, made);
-                });
-                break;
-
-            // In the case of any other error, just see if there's a dir
-            // there already.  If so, then hooray!  If not, then something
-            // is borked.
-            default:
-                fs.stat(p, function (er2, stat) {
-                    // if the stat fails, then that's super weird.
-                    // let the original error be the failure reason.
-                    if (er2 || !stat.isDirectory()) cb(er, made)
-                    else cb(null, made);
-                });
-                break;
-        }
-    });
-}
-
-mkdirP.sync = function sync (p, mode, made) {
-    if (mode === undefined) {
-        mode = 0777 & (~process.umask());
-    }
-    if (!made) made = null;
-
-    if (typeof mode === 'string') mode = parseInt(mode, 8);
-    p = path.resolve(p);
-
-    try {
-        fs.mkdirSync(p, mode);
-        made = made || p;
-    }
-    catch (err0) {
-        switch (err0.code) {
-            case 'ENOENT' :
-                made = sync(path.dirname(p), mode, made);
-                sync(p, mode, made);
-                break;
-
-            // In the case of any other error, just see if there's a dir
-            // there already.  If so, then hooray!  If not, then something
-            // is borked.
-            default:
-                var stat;
-                try {
-                    stat = fs.statSync(p);
-                }
-                catch (err1) {
-                    throw err0;
-                }
-                if (!stat.isDirectory()) throw err0;
-                break;
-        }
-    }
-
-    return made;
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/package.json b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/package.json
deleted file mode 100644
index 169f15a..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "name": "mkdirp",
-  "description": "Recursively mkdir, like `mkdir -p`",
-  "version": "0.3.5",
-  "author": {
-    "name": "James Halliday",
-    "email": "mail@substack.net",
-    "url": "http://substack.net"
-  },
-  "main": "./index",
-  "keywords": [
-    "mkdir",
-    "directory"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/substack/node-mkdirp.git"
-  },
-  "scripts": {
-    "test": "tap test/*.js"
-  },
-  "devDependencies": {
-    "tap": "~0.4.0"
-  },
-  "license": "MIT",
-  "readme": "# mkdirp\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\n# example\n\n## pow.js\n\n```js\nvar mkdirp = require('mkdirp');\n    \nmkdirp('/tmp/foo/bar/baz', function (err) {\n    if (err) console.error(err)\n    else console.log('pow!')\n});\n```\n\nOutput\n\n```\npow!\n```\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\n# methods\n\n```js\nvar mkdirp = require('mkdirp');\n```\n\n## mkdirp(dir, mode, cb)\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `mode`.\n\nIf `mode` isn't specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\n## mkdirp.sync(dir, mode)\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `mode`.\n\nIf `mode` isn't specified, it def
 aults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install mkdirp\n```\n\n# license\n\nMIT\n",
-  "readmeFilename": "readme.markdown",
-  "bugs": {
-    "url": "https://github.com/substack/node-mkdirp/issues"
-  },
-  "_id": "mkdirp@0.3.5",
-  "_from": "mkdirp@~0.3.5"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/readme.markdown
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/readme.markdown b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/readme.markdown
deleted file mode 100644
index 83b0216..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/readme.markdown
+++ /dev/null
@@ -1,63 +0,0 @@
-# mkdirp
-
-Like `mkdir -p`, but in node.js!
-
-[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)
-
-# example
-
-## pow.js
-
-```js
-var mkdirp = require('mkdirp');
-    
-mkdirp('/tmp/foo/bar/baz', function (err) {
-    if (err) console.error(err)
-    else console.log('pow!')
-});
-```
-
-Output
-
-```
-pow!
-```
-
-And now /tmp/foo/bar/baz exists, huzzah!
-
-# methods
-
-```js
-var mkdirp = require('mkdirp');
-```
-
-## mkdirp(dir, mode, cb)
-
-Create a new directory and any necessary subdirectories at `dir` with octal
-permission string `mode`.
-
-If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
-
-`cb(err, made)` fires with the error or the first directory `made`
-that had to be created, if any.
-
-## mkdirp.sync(dir, mode)
-
-Synchronously create a new directory and any necessary subdirectories at `dir`
-with octal permission string `mode`.
-
-If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
-
-Returns the first directory that had to be created, if any.
-
-# install
-
-With [npm](http://npmjs.org) do:
-
-```
-npm install mkdirp
-```
-
-# license
-
-MIT

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/chmod.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/chmod.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/chmod.js
deleted file mode 100644
index 520dcb8..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/chmod.js
+++ /dev/null
@@ -1,38 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-var ps = [ '', 'tmp' ];
-
-for (var i = 0; i < 25; i++) {
-    var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    ps.push(dir);
-}
-
-var file = ps.join('/');
-
-test('chmod-pre', function (t) {
-    var mode = 0744
-    mkdirp(file, mode, function (er) {
-        t.ifError(er, 'should not error');
-        fs.stat(file, function (er, stat) {
-            t.ifError(er, 'should exist');
-            t.ok(stat && stat.isDirectory(), 'should be directory');
-            t.equal(stat && stat.mode & 0777, mode, 'should be 0744');
-            t.end();
-        });
-    });
-});
-
-test('chmod', function (t) {
-    var mode = 0755
-    mkdirp(file, mode, function (er) {
-        t.ifError(er, 'should not error');
-        fs.stat(file, function (er, stat) {
-            t.ifError(er, 'should exist');
-            t.ok(stat && stat.isDirectory(), 'should be directory');
-            t.end();
-        });
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/clobber.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/clobber.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/clobber.js
deleted file mode 100644
index 0eb7099..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/clobber.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-var ps = [ '', 'tmp' ];
-
-for (var i = 0; i < 25; i++) {
-    var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    ps.push(dir);
-}
-
-var file = ps.join('/');
-
-// a file in the way
-var itw = ps.slice(0, 3).join('/');
-
-
-test('clobber-pre', function (t) {
-    console.error("about to write to "+itw)
-    fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.');
-
-    fs.stat(itw, function (er, stat) {
-        t.ifError(er)
-        t.ok(stat && stat.isFile(), 'should be file')
-        t.end()
-    })
-})
-
-test('clobber', function (t) {
-    t.plan(2);
-    mkdirp(file, 0755, function (err) {
-        t.ok(err);
-        t.equal(err.code, 'ENOTDIR');
-        t.end();
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/mkdirp.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/mkdirp.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/mkdirp.js
deleted file mode 100644
index b07cd70..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/mkdirp.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('woo', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    
-    var file = '/tmp/' + [x,y,z].join('/');
-    
-    mkdirp(file, 0755, function (err) {
-        if (err) t.fail(err);
-        else path.exists(file, function (ex) {
-            if (!ex) t.fail('file not created')
-            else fs.stat(file, function (err, stat) {
-                if (err) t.fail(err)
-                else {
-                    t.equal(stat.mode & 0777, 0755);
-                    t.ok(stat.isDirectory(), 'target not a directory');
-                    t.end();
-                }
-            })
-        })
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/perm.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/perm.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/perm.js
deleted file mode 100644
index 23a7abb..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/perm.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('async perm', function (t) {
-    t.plan(2);
-    var file = '/tmp/' + (Math.random() * (1<<30)).toString(16);
-    
-    mkdirp(file, 0755, function (err) {
-        if (err) t.fail(err);
-        else path.exists(file, function (ex) {
-            if (!ex) t.fail('file not created')
-            else fs.stat(file, function (err, stat) {
-                if (err) t.fail(err)
-                else {
-                    t.equal(stat.mode & 0777, 0755);
-                    t.ok(stat.isDirectory(), 'target not a directory');
-                    t.end();
-                }
-            })
-        })
-    });
-});
-
-test('async root perm', function (t) {
-    mkdirp('/tmp', 0755, function (err) {
-        if (err) t.fail(err);
-        t.end();
-    });
-    t.end();
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/perm_sync.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/perm_sync.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/perm_sync.js
deleted file mode 100644
index f685f60..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/perm_sync.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('sync perm', function (t) {
-    t.plan(2);
-    var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json';
-    
-    mkdirp.sync(file, 0755);
-    path.exists(file, function (ex) {
-        if (!ex) t.fail('file not created')
-        else fs.stat(file, function (err, stat) {
-            if (err) t.fail(err)
-            else {
-                t.equal(stat.mode & 0777, 0755);
-                t.ok(stat.isDirectory(), 'target not a directory');
-                t.end();
-            }
-        })
-    });
-});
-
-test('sync root perm', function (t) {
-    t.plan(1);
-    
-    var file = '/tmp';
-    mkdirp.sync(file, 0755);
-    path.exists(file, function (ex) {
-        if (!ex) t.fail('file not created')
-        else fs.stat(file, function (err, stat) {
-            if (err) t.fail(err)
-            else {
-                t.ok(stat.isDirectory(), 'target not a directory');
-                t.end();
-            }
-        })
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/race.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/race.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/race.js
deleted file mode 100644
index 96a0447..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/race.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var mkdirp = require('../').mkdirp;
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('race', function (t) {
-    t.plan(4);
-    var ps = [ '', 'tmp' ];
-    
-    for (var i = 0; i < 25; i++) {
-        var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-        ps.push(dir);
-    }
-    var file = ps.join('/');
-    
-    var res = 2;
-    mk(file, function () {
-        if (--res === 0) t.end();
-    });
-    
-    mk(file, function () {
-        if (--res === 0) t.end();
-    });
-    
-    function mk (file, cb) {
-        mkdirp(file, 0755, function (err) {
-            if (err) t.fail(err);
-            else path.exists(file, function (ex) {
-                if (!ex) t.fail('file not created')
-                else fs.stat(file, function (err, stat) {
-                    if (err) t.fail(err)
-                    else {
-                        t.equal(stat.mode & 0777, 0755);
-                        t.ok(stat.isDirectory(), 'target not a directory');
-                        if (cb) cb();
-                    }
-                })
-            })
-        });
-    }
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/rel.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/rel.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/rel.js
deleted file mode 100644
index 7985824..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/rel.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('rel', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    
-    var cwd = process.cwd();
-    process.chdir('/tmp');
-    
-    var file = [x,y,z].join('/');
-    
-    mkdirp(file, 0755, function (err) {
-        if (err) t.fail(err);
-        else path.exists(file, function (ex) {
-            if (!ex) t.fail('file not created')
-            else fs.stat(file, function (err, stat) {
-                if (err) t.fail(err)
-                else {
-                    process.chdir(cwd);
-                    t.equal(stat.mode & 0777, 0755);
-                    t.ok(stat.isDirectory(), 'target not a directory');
-                    t.end();
-                }
-            })
-        })
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/return.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/return.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/return.js
deleted file mode 100644
index bce68e5..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/return.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('return value', function (t) {
-    t.plan(4);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
-    var file = '/tmp/' + [x,y,z].join('/');
-
-    // should return the first dir created.
-    // By this point, it would be profoundly surprising if /tmp didn't
-    // already exist, since every other test makes things in there.
-    mkdirp(file, function (err, made) {
-        t.ifError(err);
-        t.equal(made, '/tmp/' + x);
-        mkdirp(file, function (err, made) {
-          t.ifError(err);
-          t.equal(made, null);
-        });
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/return_sync.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/return_sync.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/return_sync.js
deleted file mode 100644
index 7c222d3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/return_sync.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('return value', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
-    var file = '/tmp/' + [x,y,z].join('/');
-
-    // should return the first dir created.
-    // By this point, it would be profoundly surprising if /tmp didn't
-    // already exist, since every other test makes things in there.
-    // Note that this will throw on failure, which will fail the test.
-    var made = mkdirp.sync(file);
-    t.equal(made, '/tmp/' + x);
-
-    // making the same file again should have no effect.
-    made = mkdirp.sync(file);
-    t.equal(made, null);
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/root.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/root.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/root.js
deleted file mode 100644
index 97ad7a2..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/root.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('root', function (t) {
-    // '/' on unix, 'c:/' on windows.
-    var file = path.resolve('/');
-
-    mkdirp(file, 0755, function (err) {
-        if (err) throw err
-        fs.stat(file, function (er, stat) {
-            if (er) throw er
-            t.ok(stat.isDirectory(), 'target is a directory');
-            t.end();
-        })
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/sync.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/sync.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/sync.js
deleted file mode 100644
index 7530cad..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/sync.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('sync', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
-    var file = '/tmp/' + [x,y,z].join('/');
-
-    try {
-        mkdirp.sync(file, 0755);
-    } catch (err) {
-        t.fail(err);
-        return t.end();
-    }
-
-    path.exists(file, function (ex) {
-        if (!ex) t.fail('file not created')
-        else fs.stat(file, function (err, stat) {
-            if (err) t.fail(err)
-            else {
-                t.equal(stat.mode & 0777, 0755);
-                t.ok(stat.isDirectory(), 'target not a directory');
-                t.end();
-            }
-        });
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/umask.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/umask.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/umask.js
deleted file mode 100644
index 64ccafe..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/umask.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('implicit mode from umask', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    
-    var file = '/tmp/' + [x,y,z].join('/');
-    
-    mkdirp(file, function (err) {
-        if (err) t.fail(err);
-        else path.exists(file, function (ex) {
-            if (!ex) t.fail('file not created')
-            else fs.stat(file, function (err, stat) {
-                if (err) t.fail(err)
-                else {
-                    t.equal(stat.mode & 0777, 0777 & (~process.umask()));
-                    t.ok(stat.isDirectory(), 'target not a directory');
-                    t.end();
-                }
-            })
-        })
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/umask_sync.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/umask_sync.js b/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/umask_sync.js
deleted file mode 100644
index 35bd5cb..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/mkdirp/test/umask_sync.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var mkdirp = require('../');
-var path = require('path');
-var fs = require('fs');
-var test = require('tap').test;
-
-test('umask sync modes', function (t) {
-    t.plan(2);
-    var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-    var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
-
-    var file = '/tmp/' + [x,y,z].join('/');
-
-    try {
-        mkdirp.sync(file);
-    } catch (err) {
-        t.fail(err);
-        return t.end();
-    }
-
-    path.exists(file, function (ex) {
-        if (!ex) t.fail('file not created')
-        else fs.stat(file, function (err, stat) {
-            if (err) t.fail(err)
-            else {
-                t.equal(stat.mode & 0777, (0777 & (~process.umask())));
-                t.ok(stat.isDirectory(), 'target not a directory');
-                t.end();
-            }
-        });
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/requirejs/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/requirejs/README.md b/blackberry10/node_modules/jasmine-node/node_modules/requirejs/README.md
deleted file mode 100644
index 545b31d..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/requirejs/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# requirejs
-
-RequireJS for use in Node. includes:
-
-* r.js: the RequireJS optimizer, and AMD runtime for use in Node.
-* require.js: The browser-based AMD loader.
-
-More information at http://requirejs.org
-


[16/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/package.json b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/package.json
deleted file mode 100644
index d775309..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/package.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
-  "name": "xmldom",
-  "version": "0.1.16",
-  "description": "A W3C Standard XML DOM(Level2 CORE) implementation and parser(DOMParser/XMLSerializer).",
-  "keywords": [
-    "w3c",
-    "dom",
-    "xml",
-    "parser",
-    "javascript",
-    "DOMParser",
-    "XMLSerializer"
-  ],
-  "author": {
-    "name": "jindw",
-    "email": "jindw@xidea.org",
-    "url": "http://www.xidea.org"
-  },
-  "homepage": "https://github.com/jindw/xmldom",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/jindw/xmldom.git"
-  },
-  "main": "./dom-parser.js",
-  "scripts": {
-    "test": "proof platform win32 && proof test */*/*.t.js || t/test"
-  },
-  "engines": {
-    "node": ">=0.1"
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "proof": "0.0.28"
-  },
-  "maintainers": [
-    {
-      "name": "jindw",
-      "email": "jindw@xidea.org",
-      "url": "http://www.xidea.org"
-    }
-  ],
-  "contributors": [
-    {
-      "name": "Yaron Naveh",
-      "email": "yaronn01@gmail.com",
-      "url": "http://webservices20.blogspot.com/"
-    },
-    {
-      "name": "Harutyun Amirjanyan",
-      "email": "amirjanyan@gmail.com",
-      "url": "https://github.com/nightwing"
-    },
-    {
-      "name": "Alan Gutierrez",
-      "email": "alan@prettyrobots.com",
-      "url": "http://www.prettyrobots.com/"
-    }
-  ],
-  "bugs": {
-    "url": "http://github.com/jindw/xmldom/issues",
-    "email": "jindw@xidea.org"
-  },
-  "licenses": [
-    {
-      "type": "LGPL",
-      "url": "http://www.gnu.org/licenses/lgpl.html"
-    }
-  ],
-  "readme": "# XMLDOM [![Build Status](https://secure.travis-ci.org/bigeasy/xmldom.png?branch=master)](http://travis-ci.org/bigeasy/xmldom) [![Coverage Status](https://coveralls.io/repos/bigeasy/xmldom/badge.png?branch=master)](https://coveralls.io/r/bigeasy/xmldom) [![NPM version](https://badge.fury.io/js/xmldom.png)](http://badge.fury.io/js/xmldom)\n\nA JavaScript implementation of W3C DOM for Node.js, Rhino and the browser. Fully\ncompatible with `W3C DOM level2`; and some compatible with `level3`. Supports\n`DOMParser` and `XMLSerializer` interface such as in browser.\n\nInstall:\n-------\n>npm install xmldom\n\nExample:\n====\n```javascript\nvar DOMParser = require('xmldom').DOMParser;\nvar doc = new DOMParser().parseFromString(\n    '<xml xmlns=\"a\" xmlns:c=\"./lite\">\\n'+\n        '\\t<child>test</child>\\n'+\n        '\\t<child></child>\\n'+\n        '\\t<child/>\\n'+\n    '</xml>'\n    ,'text/xml');\ndoc.documentElement.setAttribute('x','y');\ndoc.documentElement.setAttri
 buteNS('./lite','c:x','y2');\nvar nsAttr = doc.documentElement.getAttributeNS('./lite','x')\nconsole.info(nsAttr)\nconsole.info(doc)\n```\nAPI Reference\n=====\n\n * [DOMParser](https://developer.mozilla.org/en/DOMParser):\n\n\t```javascript\n\tparseFromString(xmlsource,mimeType)\n\t```\n\t* **options extension** _by xmldom_(not BOM standard!!)\n\n\t```javascript\n\t//added the options argument\n\tnew DOMParser(options)\n\t\n\t//errorHandler is supported\n\tnew DOMParser({\n\t\t/**\n\t\t * youcan override the errorHandler for xml parser\n\t\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t\t */\n\t\terrorHandler:{warning:callback,error:callback,fatalError:callback}\n\t})\n\t\t\n\t```\n\n * [XMLSerializer](https://developer.mozilla.org/en/XMLSerializer)\n \n\t```javascript\n\tserializeToString(node)\n\t```\nDOM level2 method and attribute:\n------\n\n * [Node](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247)\n\t\n\t\tattribut
 e:\n\t\t\tnodeValue|prefix\n\t\treadonly attribute:\n\t\t\tnodeName|nodeType|parentNode|childNodes|firstChild|lastChild|previousSibling|nextSibling|attributes|ownerDocument|namespaceURI|localName\n\t\tmethod:\t\n\t\t\tinsertBefore(newChild, refChild)\n\t\t\treplaceChild(newChild, oldChild)\n\t\t\tremoveChild(oldChild)\n\t\t\tappendChild(newChild)\n\t\t\thasChildNodes()\n\t\t\tcloneNode(deep)\n\t\t\tnormalize()\n\t\t\tisSupported(feature, version)\n\t\t\thasAttributes()\n\n * [DOMImplementation](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-102161490)\n\t\t\n\t\tmethod:\n\t\t\thasFeature(feature, version)\n\t\t\tcreateDocumentType(qualifiedName, publicId, systemId)\n\t\t\tcreateDocument(namespaceURI, qualifiedName, doctype)\n\n * [Document](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document) : Node\n\t\t\n\t\treadonly attribute:\n\t\t\tdoctype|implementation|documentElement\n\t\tmethod:\n\t\t\tcreateElement(tagName)\n\t\t\tcreateDocume
 ntFragment()\n\t\t\tcreateTextNode(data)\n\t\t\tcreateComment(data)\n\t\t\tcreateCDATASection(data)\n\t\t\tcreateProcessingInstruction(target, data)\n\t\t\tcreateAttribute(name)\n\t\t\tcreateEntityReference(name)\n\t\t\tgetElementsByTagName(tagname)\n\t\t\timportNode(importedNode, deep)\n\t\t\tcreateElementNS(namespaceURI, qualifiedName)\n\t\t\tcreateAttributeNS(namespaceURI, qualifiedName)\n\t\t\tgetElementsByTagNameNS(namespaceURI, localName)\n\t\t\tgetElementById(elementId)\n\n * [DocumentFragment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-B63ED1A3) : Node\n * [Element](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-745549614) : Node\n\t\t\n\t\treadonly attribute:\n\t\t\ttagName\n\t\tmethod:\n\t\t\tgetAttribute(name)\n\t\t\tsetAttribute(name, value)\n\t\t\tremoveAttribute(name)\n\t\t\tgetAttributeNode(name)\n\t\t\tsetAttributeNode(newAttr)\n\t\t\tremoveAttributeNode(oldAttr)\n\t\t\tgetElementsByTagName(name)\n\t\t\tgetAttributeNS(n
 amespaceURI, localName)\n\t\t\tsetAttributeNS(namespaceURI, qualifiedName, value)\n\t\t\tremoveAttributeNS(namespaceURI, localName)\n\t\t\tgetAttributeNodeNS(namespaceURI, localName)\n\t\t\tsetAttributeNodeNS(newAttr)\n\t\t\tgetElementsByTagNameNS(namespaceURI, localName)\n\t\t\thasAttribute(name)\n\t\t\thasAttributeNS(namespaceURI, localName)\n\n * [Attr](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-637646024) : Node\n\t\n\t\tattribute:\n\t\t\tvalue\n\t\treadonly attribute:\n\t\t\tname|specified|ownerElement\n\n * [NodeList](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177)\n\t\t\n\t\treadonly attribute:\n\t\t\tlength\n\t\tmethod:\n\t\t\titem(index)\n\t\n * [NamedNodeMap](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1780488922)\n\n\t\treadonly attribute:\n\t\t\tlength\n\t\tmethod:\n\t\t\tgetNamedItem(name)\n\t\t\tsetNamedItem(arg)\n\t\t\tremoveNamedItem(name)\n\t\t\titem(index)\n\t\t\tgetNamedItemNS(names
 paceURI, localName)\n\t\t\tsetNamedItemNS(arg)\n\t\t\tremoveNamedItemNS(namespaceURI, localName)\n\t\t\n * [CharacterData](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-FF21A306) : Node\n\t\n\t\tmethod:\n\t\t\tsubstringData(offset, count)\n\t\t\tappendData(arg)\n\t\t\tinsertData(offset, arg)\n\t\t\tdeleteData(offset, count)\n\t\t\treplaceData(offset, count, arg)\n\t\t\n * [Text](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1312295772) : CharacterData\n\t\n\t\tmethod:\n\t\t\tsplitText(offset)\n\t\t\t\n * [CDATASection](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-667469212)\n * [Comment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1728279322) : CharacterData\n\t\n * [DocumentType](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-412266927)\n\t\n\t\treadonly attribute:\n\t\t\tname|entities|notations|publicId|systemId|internalSubset\n\t\t\t\n * Notation : Node\n\t\n\t\tre
 adonly attribute:\n\t\t\tpublicId|systemId\n\t\t\t\n * Entity : Node\n\t\n\t\treadonly attribute:\n\t\t\tpublicId|systemId|notationName\n\t\t\t\n * EntityReference : Node \n * ProcessingInstruction : Node \n\t\n\t\tattribute:\n\t\t\tdata\n\t\treadonly attribute:\n\t\t\ttarget\n\t\t\nDOM level 3 support:\n-----\n\n * [Node](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent)\n\t\t\n\t\tattribute:\n\t\t\ttextContent\n\t\tmethod:\n\t\t\tisDefaultNamespace(namespaceURI){\n\t\t\tlookupNamespaceURI(prefix)\n\nDOM extension by xmldom\n---\n * [Node] Source position extension; \n\t\t\n\t\tattribute:\n\t\t\t//Numbered starting from '1'\n\t\t\tlineNumber\n\t\t\t//Numbered starting from '1'\n\t\t\tcolumnNumber\n",
-  "readmeFilename": "readme.md",
-  "_id": "xmldom@0.1.16",
-  "_from": "xmldom@0.1.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/readme.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/readme.md b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/readme.md
deleted file mode 100644
index 5ce0e81..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/readme.md
+++ /dev/null
@@ -1,213 +0,0 @@
-# XMLDOM [![Build Status](https://secure.travis-ci.org/bigeasy/xmldom.png?branch=master)](http://travis-ci.org/bigeasy/xmldom) [![Coverage Status](https://coveralls.io/repos/bigeasy/xmldom/badge.png?branch=master)](https://coveralls.io/r/bigeasy/xmldom) [![NPM version](https://badge.fury.io/js/xmldom.png)](http://badge.fury.io/js/xmldom)
-
-A JavaScript implementation of W3C DOM for Node.js, Rhino and the browser. Fully
-compatible with `W3C DOM level2`; and some compatible with `level3`. Supports
-`DOMParser` and `XMLSerializer` interface such as in browser.
-
-Install:
--------
->npm install xmldom
-
-Example:
-====
-```javascript
-var DOMParser = require('xmldom').DOMParser;
-var doc = new DOMParser().parseFromString(
-    '<xml xmlns="a" xmlns:c="./lite">\n'+
-        '\t<child>test</child>\n'+
-        '\t<child></child>\n'+
-        '\t<child/>\n'+
-    '</xml>'
-    ,'text/xml');
-doc.documentElement.setAttribute('x','y');
-doc.documentElement.setAttributeNS('./lite','c:x','y2');
-var nsAttr = doc.documentElement.getAttributeNS('./lite','x')
-console.info(nsAttr)
-console.info(doc)
-```
-API Reference
-=====
-
- * [DOMParser](https://developer.mozilla.org/en/DOMParser):
-
-	```javascript
-	parseFromString(xmlsource,mimeType)
-	```
-	* **options extension** _by xmldom_(not BOM standard!!)
-
-	```javascript
-	//added the options argument
-	new DOMParser(options)
-	
-	//errorHandler is supported
-	new DOMParser({
-		/**
-		 * youcan override the errorHandler for xml parser
-		 * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html
-		 */
-		errorHandler:{warning:callback,error:callback,fatalError:callback}
-	})
-		
-	```
-
- * [XMLSerializer](https://developer.mozilla.org/en/XMLSerializer)
- 
-	```javascript
-	serializeToString(node)
-	```
-DOM level2 method and attribute:
-------
-
- * [Node](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247)
-	
-		attribute:
-			nodeValue|prefix
-		readonly attribute:
-			nodeName|nodeType|parentNode|childNodes|firstChild|lastChild|previousSibling|nextSibling|attributes|ownerDocument|namespaceURI|localName
-		method:	
-			insertBefore(newChild, refChild)
-			replaceChild(newChild, oldChild)
-			removeChild(oldChild)
-			appendChild(newChild)
-			hasChildNodes()
-			cloneNode(deep)
-			normalize()
-			isSupported(feature, version)
-			hasAttributes()
-
- * [DOMImplementation](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-102161490)
-		
-		method:
-			hasFeature(feature, version)
-			createDocumentType(qualifiedName, publicId, systemId)
-			createDocument(namespaceURI, qualifiedName, doctype)
-
- * [Document](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document) : Node
-		
-		readonly attribute:
-			doctype|implementation|documentElement
-		method:
-			createElement(tagName)
-			createDocumentFragment()
-			createTextNode(data)
-			createComment(data)
-			createCDATASection(data)
-			createProcessingInstruction(target, data)
-			createAttribute(name)
-			createEntityReference(name)
-			getElementsByTagName(tagname)
-			importNode(importedNode, deep)
-			createElementNS(namespaceURI, qualifiedName)
-			createAttributeNS(namespaceURI, qualifiedName)
-			getElementsByTagNameNS(namespaceURI, localName)
-			getElementById(elementId)
-
- * [DocumentFragment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-B63ED1A3) : Node
- * [Element](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-745549614) : Node
-		
-		readonly attribute:
-			tagName
-		method:
-			getAttribute(name)
-			setAttribute(name, value)
-			removeAttribute(name)
-			getAttributeNode(name)
-			setAttributeNode(newAttr)
-			removeAttributeNode(oldAttr)
-			getElementsByTagName(name)
-			getAttributeNS(namespaceURI, localName)
-			setAttributeNS(namespaceURI, qualifiedName, value)
-			removeAttributeNS(namespaceURI, localName)
-			getAttributeNodeNS(namespaceURI, localName)
-			setAttributeNodeNS(newAttr)
-			getElementsByTagNameNS(namespaceURI, localName)
-			hasAttribute(name)
-			hasAttributeNS(namespaceURI, localName)
-
- * [Attr](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-637646024) : Node
-	
-		attribute:
-			value
-		readonly attribute:
-			name|specified|ownerElement
-
- * [NodeList](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177)
-		
-		readonly attribute:
-			length
-		method:
-			item(index)
-	
- * [NamedNodeMap](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1780488922)
-
-		readonly attribute:
-			length
-		method:
-			getNamedItem(name)
-			setNamedItem(arg)
-			removeNamedItem(name)
-			item(index)
-			getNamedItemNS(namespaceURI, localName)
-			setNamedItemNS(arg)
-			removeNamedItemNS(namespaceURI, localName)
-		
- * [CharacterData](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-FF21A306) : Node
-	
-		method:
-			substringData(offset, count)
-			appendData(arg)
-			insertData(offset, arg)
-			deleteData(offset, count)
-			replaceData(offset, count, arg)
-		
- * [Text](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1312295772) : CharacterData
-	
-		method:
-			splitText(offset)
-			
- * [CDATASection](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-667469212)
- * [Comment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1728279322) : CharacterData
-	
- * [DocumentType](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-412266927)
-	
-		readonly attribute:
-			name|entities|notations|publicId|systemId|internalSubset
-			
- * Notation : Node
-	
-		readonly attribute:
-			publicId|systemId
-			
- * Entity : Node
-	
-		readonly attribute:
-			publicId|systemId|notationName
-			
- * EntityReference : Node 
- * ProcessingInstruction : Node 
-	
-		attribute:
-			data
-		readonly attribute:
-			target
-		
-DOM level 3 support:
------
-
- * [Node](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent)
-		
-		attribute:
-			textContent
-		method:
-			isDefaultNamespace(namespaceURI){
-			lookupNamespaceURI(prefix)
-
-DOM extension by xmldom
----
- * [Node] Source position extension; 
-		
-		attribute:
-			//Numbered starting from '1'
-			lineNumber
-			//Numbered starting from '1'
-			columnNumber

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/sax.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/sax.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/sax.js
deleted file mode 100644
index be6e34e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/sax.js
+++ /dev/null
@@ -1,564 +0,0 @@
-//[4]   	NameStartChar	   ::=   	":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
-//[4a]   	NameChar	   ::=   	NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
-//[5]   	Name	   ::=   	NameStartChar (NameChar)*
-var nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]///\u10000-\uEFFFF
-var nameChar = new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\u00B7\u0300-\u036F\\ux203F-\u2040]");
-var tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\:'+nameStartChar.source+nameChar.source+'*)?$');
-//var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/
-//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')
-
-//S_TAG,	S_ATTR,	S_EQ,	S_V
-//S_ATTR_S,	S_E,	S_S,	S_C
-var S_TAG = 0;//tag name offerring
-var S_ATTR = 1;//attr name offerring 
-var S_ATTR_S=2;//attr name end and space offer
-var S_EQ = 3;//=space?
-var S_V = 4;//attr value(no quot value only)
-var S_E = 5;//attr value end and no space(quot end)
-var S_S = 6;//(attr value end || tag end ) && (space offer)
-var S_C = 7;//closed el<el />
-
-function XMLReader(){
-}
-
-XMLReader.prototype = {
-	parse:function(source,defaultNSMap,entityMap){
-		var domBuilder = this.domBuilder;
-		domBuilder.startDocument();
-		_copy(defaultNSMap ,defaultNSMap = {})
-		parse(source,defaultNSMap,entityMap,
-				domBuilder,this.errorHandler);
-		domBuilder.endDocument();
-	}
-}
-function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){
-  function fixedFromCharCode(code) {
-		// String.prototype.fromCharCode does not supports
-		// > 2 bytes unicode chars directly
-		if (code > 0xffff) {
-			code -= 0x10000;
-			var surrogate1 = 0xd800 + (code >> 10)
-				, surrogate2 = 0xdc00 + (code & 0x3ff);
-
-			return String.fromCharCode(surrogate1, surrogate2);
-		} else {
-			return String.fromCharCode(code);
-		}
-	}
-	function entityReplacer(a){
-		var k = a.slice(1,-1);
-		if(k in entityMap){
-			return entityMap[k]; 
-		}else if(k.charAt(0) === '#'){
-			return fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))
-		}else{
-			errorHandler.error('entity not found:'+a);
-			return a;
-		}
-	}
-	function appendText(end){//has some bugs
-		var xt = source.substring(start,end).replace(/&#?\w+;/g,entityReplacer);
-		locator&&position(start);
-		domBuilder.characters(xt,0,end-start);
-		start = end
-	}
-	function position(start,m){
-		while(start>=endPos && (m = linePattern.exec(source))){
-			startPos = m.index;
-			endPos = startPos + m[0].length;
-			locator.lineNumber++;
-			//console.log('line++:',locator,startPos,endPos)
-		}
-		locator.columnNumber = start-startPos+1;
-	}
-	var startPos = 0;
-	var endPos = 0;
-	var linePattern = /.+(?:\r\n?|\n)|.*$/g
-	var locator = domBuilder.locator;
-	
-	var parseStack = [{currentNSMap:defaultNSMapCopy}]
-	var closeMap = {};
-	var start = 0;
-	while(true){
-		var i = source.indexOf('<',start);
-		if(i>start){
-			appendText(i);
-		}
-		switch(source.charAt(i+1)){
-		case '/':
-			var end = source.indexOf('>',i+3);
-			var tagName = source.substring(i+2,end);
-			var config = parseStack.pop();
-			var localNSMap = config.localNSMap;
-			
-	        if(config.tagName != tagName){
-	            errorHandler.fatalError("end tag name: "+tagName+' is not match the current start tagName:'+config.tagName );
-	        }
-			domBuilder.endElement(config.uri,config.localName,tagName);
-			if(localNSMap){
-				for(var prefix in localNSMap){
-					domBuilder.endPrefixMapping(prefix) ;
-				}
-			}
-			end++;
-			break;
-			// end elment
-		case '?':// <?...?>
-			locator&&position(i);
-			end = parseInstruction(source,i,domBuilder);
-			break;
-		case '!':// <!doctype,<![CDATA,<!--
-			locator&&position(i);
-			end = parseDCC(source,i,domBuilder);
-			break;
-		default:
-			if(i<0){
-				if(!source.substr(start).match(/^\s*$/)){
-					errorHandler.error('source code out of document root');
-				}
-				return;
-			}else{
-				try{
-					locator&&position(i);
-					var el = new ElementAttributes();
-					//elStartEnd
-					var end = parseElementStartPart(source,i,el,entityReplacer,errorHandler);
-					var len = el.length;
-					//position fixed
-					if(len && locator){
-						var backup = copyLocator(locator,{});
-						for(var i = 0;i<len;i++){
-							var a = el[i];
-							position(a.offset);
-							a.offset = copyLocator(locator,{});
-						}
-						copyLocator(backup,locator);
-					}
-					el.closed = el.closed||fixSelfClosed(source,end,el.tagName,closeMap);
-					appendElement(el,domBuilder,parseStack);
-					
-					
-					if(el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed){
-						end = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)
-					}else{
-						end++;
-					}
-				}catch(e){
-					errorHandler.error('element parse error: '+e);
-					end = -1;
-				}
-			}
-
-		}
-		if(end<0){
-			//TODO: 这里有可能sax回退,有位置错误风险
-			appendText(i+1);
-		}else{
-			start = end;
-		}
-	}
-}
-function copyLocator(f,t){
-	t.lineNumber = f.lineNumber;
-	t.columnNumber = f.columnNumber;
-	return t;
-	
-}
-
-/**
- * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);
- * @return end of the elementStartPart(end of elementEndPart for selfClosed el)
- */
-function parseElementStartPart(source,start,el,entityReplacer,errorHandler){
-	var attrName;
-	var value;
-	var p = ++start;
-	var s = S_TAG;//status
-	while(true){
-		var c = source.charAt(p);
-		switch(c){
-		case '=':
-			if(s === S_ATTR){//attrName
-				attrName = source.slice(start,p);
-				s = S_EQ;
-			}else if(s === S_ATTR_S){
-				s = S_EQ;
-			}else{
-				//fatalError: equal must after attrName or space after attrName
-				throw new Error('attribute equal must after attrName');
-			}
-			break;
-		case '\'':
-		case '"':
-			if(s === S_EQ){//equal
-				start = p+1;
-				p = source.indexOf(c,start)
-				if(p>0){
-					value = source.slice(start,p).replace(/&#?\w+;/g,entityReplacer);
-					el.add(attrName,value,start-1);
-					s = S_E;
-				}else{
-					//fatalError: no end quot match
-					throw new Error('attribute value no end \''+c+'\' match');
-				}
-			}else if(s == S_V){
-				value = source.slice(start,p).replace(/&#?\w+;/g,entityReplacer);
-				//console.log(attrName,value,start,p)
-				el.add(attrName,value,start);
-				//console.dir(el)
-				errorHandler.warning('attribute "'+attrName+'" missed start quot('+c+')!!');
-				start = p+1;
-				s = S_E
-			}else{
-				//fatalError: no equal before
-				throw new Error('attribute value must after "="');
-			}
-			break;
-		case '/':
-			switch(s){
-			case S_TAG:
-				el.setTagName(source.slice(start,p));
-			case S_E:
-			case S_S:
-			case S_C:
-				s = S_C;
-				el.closed = true;
-			case S_V:
-			case S_ATTR:
-			case S_ATTR_S:
-				break;
-			//case S_EQ:
-			default:
-				throw new Error("attribute invalid close char('/')")
-			}
-			break;
-		case '>':
-			switch(s){
-			case S_TAG:
-				el.setTagName(source.slice(start,p));
-			case S_E:
-			case S_S:
-			case S_C:
-				break;//normal
-			case S_V://Compatible state
-			case S_ATTR:
-				value = source.slice(start,p);
-				if(value.slice(-1) === '/'){
-					el.closed  = true;
-					value = value.slice(0,-1)
-				}
-			case S_ATTR_S:
-				if(s === S_ATTR_S){
-					value = attrName;
-				}
-				if(s == S_V){
-					errorHandler.warning('attribute "'+value+'" missed quot(")!!');
-					el.add(attrName,value.replace(/&#?\w+;/g,entityReplacer),start)
-				}else{
-					errorHandler.warning('attribute "'+value+'" missed value!! "'+value+'" instead!!')
-					el.add(value,value,start)
-				}
-				break;
-			case S_EQ:
-				throw new Error('attribute value missed!!');
-			}
-//			console.log(tagName,tagNamePattern,tagNamePattern.test(tagName))
-			return p;
-		/*xml space '\x20' | #x9 | #xD | #xA; */
-		case '\u0080':
-			c = ' ';
-		default:
-			if(c<= ' '){//space
-				switch(s){
-				case S_TAG:
-					el.setTagName(source.slice(start,p));//tagName
-					s = S_S;
-					break;
-				case S_ATTR:
-					attrName = source.slice(start,p)
-					s = S_ATTR_S;
-					break;
-				case S_V:
-					var value = source.slice(start,p).replace(/&#?\w+;/g,entityReplacer);
-					errorHandler.warning('attribute "'+value+'" missed quot(")!!');
-					el.add(attrName,value,start)
-				case S_E:
-					s = S_S;
-					break;
-				//case S_S:
-				//case S_EQ:
-				//case S_ATTR_S:
-				//	void();break;
-				//case S_C:
-					//ignore warning
-				}
-			}else{//not space
-//S_TAG,	S_ATTR,	S_EQ,	S_V
-//S_ATTR_S,	S_E,	S_S,	S_C
-				switch(s){
-				//case S_TAG:void();break;
-				//case S_ATTR:void();break;
-				//case S_V:void();break;
-				case S_ATTR_S:
-					errorHandler.warning('attribute "'+attrName+'" missed value!! "'+attrName+'" instead!!')
-					el.add(attrName,attrName,start);
-					start = p;
-					s = S_ATTR;
-					break;
-				case S_E:
-					errorHandler.warning('attribute space is required"'+attrName+'"!!')
-				case S_S:
-					s = S_ATTR;
-					start = p;
-					break;
-				case S_EQ:
-					s = S_V;
-					start = p;
-					break;
-				case S_C:
-					throw new Error("elements closed character '/' and '>' must be connected to");
-				}
-			}
-		}
-		p++;
-	}
-}
-/**
- * @return end of the elementStartPart(end of elementEndPart for selfClosed el)
- */
-function appendElement(el,domBuilder,parseStack){
-	var tagName = el.tagName;
-	var localNSMap = null;
-	var currentNSMap = parseStack[parseStack.length-1].currentNSMap;
-	var i = el.length;
-	while(i--){
-		var a = el[i];
-		var qName = a.qName;
-		var value = a.value;
-		var nsp = qName.indexOf(':');
-		if(nsp>0){
-			var prefix = a.prefix = qName.slice(0,nsp);
-			var localName = qName.slice(nsp+1);
-			var nsPrefix = prefix === 'xmlns' && localName
-		}else{
-			localName = qName;
-			prefix = null
-			nsPrefix = qName === 'xmlns' && ''
-		}
-		//can not set prefix,because prefix !== ''
-		a.localName = localName ;
-		//prefix == null for no ns prefix attribute 
-		if(nsPrefix !== false){//hack!!
-			if(localNSMap == null){
-				localNSMap = {}
-				_copy(currentNSMap,currentNSMap={})
-			}
-			currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;
-			a.uri = 'http://www.w3.org/2000/xmlns/'
-			domBuilder.startPrefixMapping(nsPrefix, value) 
-		}
-	}
-	var i = el.length;
-	while(i--){
-		a = el[i];
-		var prefix = a.prefix;
-		if(prefix){//no prefix attribute has no namespace
-			if(prefix === 'xml'){
-				a.uri = 'http://www.w3.org/XML/1998/namespace';
-			}if(prefix !== 'xmlns'){
-				a.uri = currentNSMap[prefix]
-			}
-		}
-	}
-	var nsp = tagName.indexOf(':');
-	if(nsp>0){
-		prefix = el.prefix = tagName.slice(0,nsp);
-		localName = el.localName = tagName.slice(nsp+1);
-	}else{
-		prefix = null;//important!!
-		localName = el.localName = tagName;
-	}
-	//no prefix element has default namespace
-	var ns = el.uri = currentNSMap[prefix || ''];
-	domBuilder.startElement(ns,localName,tagName,el);
-	//endPrefixMapping and startPrefixMapping have not any help for dom builder
-	//localNSMap = null
-	if(el.closed){
-		domBuilder.endElement(ns,localName,tagName);
-		if(localNSMap){
-			for(prefix in localNSMap){
-				domBuilder.endPrefixMapping(prefix) 
-			}
-		}
-	}else{
-		el.currentNSMap = currentNSMap;
-		el.localNSMap = localNSMap;
-		parseStack.push(el);
-	}
-}
-function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){
-	if(/^(?:script|textarea)$/i.test(tagName)){
-		var elEndStart =  source.indexOf('</'+tagName+'>',elStartEnd);
-		var text = source.substring(elStartEnd+1,elEndStart);
-		if(/[&<]/.test(text)){
-			if(/^script$/i.test(tagName)){
-				//if(!/\]\]>/.test(text)){
-					//lexHandler.startCDATA();
-					domBuilder.characters(text,0,text.length);
-					//lexHandler.endCDATA();
-					return elEndStart;
-				//}
-			}//}else{//text area
-				text = text.replace(/&#?\w+;/g,entityReplacer);
-				domBuilder.characters(text,0,text.length);
-				return elEndStart;
-			//}
-			
-		}
-	}
-	return elStartEnd+1;
-}
-function fixSelfClosed(source,elStartEnd,tagName,closeMap){
-	//if(tagName in closeMap){
-	var pos = closeMap[tagName];
-	if(pos == null){
-		//console.log(tagName)
-		pos = closeMap[tagName] = source.lastIndexOf('</'+tagName+'>')
-	}
-	return pos<elStartEnd;
-	//} 
-}
-function _copy(source,target){
-	for(var n in source){target[n] = source[n]}
-}
-function parseDCC(source,start,domBuilder){//sure start with '<!'
-	var next= source.charAt(start+2)
-	switch(next){
-	case '-':
-		if(source.charAt(start + 3) === '-'){
-			var end = source.indexOf('-->',start+4);
-			//append comment source.substring(4,end)//<!--
-			domBuilder.comment(source,start+4,end-start-4);
-			return end+3;
-		}else{
-			//error
-			return -1;
-		}
-	default:
-		if(source.substr(start+3,6) == 'CDATA['){
-			var end = source.indexOf(']]>',start+9);
-			domBuilder.startCDATA();
-			domBuilder.characters(source,start+9,end-start-9);
-			domBuilder.endCDATA() 
-			return end+3;
-		}
-		//<!DOCTYPE
-		//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) 
-		var matchs = split(source,start);
-		var len = matchs.length;
-		if(len>1 && /!doctype/i.test(matchs[0][0])){
-			var name = matchs[1][0];
-			var pubid = len>3 && /^public$/i.test(matchs[2][0]) && matchs[3][0]
-			var sysid = len>4 && matchs[4][0];
-			var lastMatch = matchs[len-1]
-			domBuilder.startDTD(name,pubid,sysid);
-			domBuilder.endDTD();
-			
-			return lastMatch.index+lastMatch[0].length
-		}
-	}
-	return -1;
-}
-
-
-
-function parseInstruction(source,start,domBuilder){
-	var end = source.indexOf('?>',start);
-	if(end){
-		var match = source.substring(start,end).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
-		if(match){
-			var len = match[0].length;
-			domBuilder.processingInstruction(match[1], match[2]) ;
-			return end+2;
-		}else{//error
-			return -1;
-		}
-	}
-	return -1;
-}
-
-/**
- * @param source
- */
-function ElementAttributes(source){
-	
-}
-ElementAttributes.prototype = {
-	setTagName:function(tagName){
-		if(!tagNamePattern.test(tagName)){
-			throw new Error('invalid tagName:'+tagName)
-		}
-		this.tagName = tagName
-	},
-	add:function(qName,value,offset){
-		if(!tagNamePattern.test(qName)){
-			throw new Error('invalid attribute:'+qName)
-		}
-		this[this.length++] = {qName:qName,value:value,offset:offset}
-	},
-	length:0,
-	getLocalName:function(i){return this[i].localName},
-	getOffset:function(i){return this[i].offset},
-	getQName:function(i){return this[i].qName},
-	getURI:function(i){return this[i].uri},
-	getValue:function(i){return this[i].value}
-//	,getIndex:function(uri, localName)){
-//		if(localName){
-//			
-//		}else{
-//			var qName = uri
-//		}
-//	},
-//	getValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},
-//	getType:function(uri,localName){}
-//	getType:function(i){},
-}
-
-
-
-
-function _set_proto_(thiz,parent){
-	thiz.__proto__ = parent;
-	return thiz;
-}
-if(!(_set_proto_({},_set_proto_.prototype) instanceof _set_proto_)){
-	_set_proto_ = function(thiz,parent){
-		function p(){};
-		p.prototype = parent;
-		p = new p();
-		for(parent in thiz){
-			p[parent] = thiz[parent];
-		}
-		return p;
-	}
-}
-
-function split(source,start){
-	var match;
-	var buf = [];
-	var reg = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;
-	reg.lastIndex = start;
-	reg.exec(source);//skip <
-	while(match = reg.exec(source)){
-		buf.push(match);
-		if(match[1])return buf;
-	}
-}
-
-if(typeof require == 'function'){
-	exports.XMLReader = XMLReader;
-}
-
-if(typeof require == 'function'){
-exports.XMLReader=XMLReader;
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/cover
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/cover b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/cover
deleted file mode 100755
index 5b146e4..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/cover
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-set -e
-
-rm -rf coverage
-
-count=1;
-for file in $(find t -name \*.t.js); do
-  node_modules/.bin/istanbul cover -x 't/**' $file > /dev/null 2>&1
-  mv coverage/coverage.json coverage/coverage$count.json
-  count=$(expr $count + 1)
-done
-
-node_modules/.bin/istanbul report --root coverage --dir coverage > /dev/null
-
-sed -i -e s,'^SF:'`pwd`/,SF:, coverage/lcov.info
-
-exit 0

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/dom/require.t.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/dom/require.t.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/dom/require.t.js
deleted file mode 100755
index 2464e93..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/dom/require.t.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env node
-
-require('proof')(1, function (ok) {
-  ok(require('../..'), 'require');
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/test
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/test b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/test
deleted file mode 100755
index 460073e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/t/test
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-set -e
-
-echo ""
-
-(proof run t/*/*.t.js | tee .proof.out | proof progress) || (proof errors < .proof.out) || exit 1
-
-if [ "$TRAVIS" = "true" ]; then
-  echo "running with coverage"
-  t/cover
-
-  echo "submitting to coveralls.io"
-  (cat coverage/lcov.info | node_modules/.bin/coveralls) > /dev/null 2>&1
-fi
-
-echo ""

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/index.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/index.js
deleted file mode 100644
index 1998125..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/index.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./o3xml')
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/mock.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/mock.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/mock.js
deleted file mode 100644
index 42013e7..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/mock.js
+++ /dev/null
@@ -1 +0,0 @@
-exports.test = 1;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/o3xml.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/o3xml.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/o3xml.js
deleted file mode 100644
index 26a86b2..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/3rd-cases/o3xml.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var DOMParser = require('xmldom').DOMParser;
-require('./mock')
-//Compatibility
-{
-	var doc = new DOMParser().parseFromString("<xml/>",'text/xml');
-	var np = doc.__proto__.__proto__.__proto__;
-	for(var n in np){
-		if(/_NODE$/.test(n)){
-//			console.log(n.replace(/_NODE$/,''),np[n])
-			np[n.replace(/_NODE$/,'')] = np[n];
-		}
-	}
-	
-}
-
-require.cache[require.resolve('node-o3-xml')] 
-	= require.cache[require.resolve('./mock')];
-require('node-o3-xml').parseFromString = function(xml){
-	return new DOMParser().parseFromString(xml,'text/xml');
-}
-require('node-o3-xml/test/test')

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/big-file-performance.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/big-file-performance.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/big-file-performance.js
deleted file mode 100644
index a8007f9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/big-file-performance.js
+++ /dev/null
@@ -1,152 +0,0 @@
-var wows = require('vows');
-var assert = require('assert');
-var XMLSerializer = require('xmldom').XMLSerializer;
-var DOMParser = require('xmldom').DOMParser;
-var DomJS = require("dom-js").DomJS;
-try{
-	var Libxml = require('libxmljs');
-}catch(e){
-}
-
-function xmldom(data){
-	console.time('xmldom');
-	var doc = new DOMParser({locator:null,checkLater:true}).parseFromString(data);
-	console.timeEnd('xmldom');
-	doc.toString = function(){
-		return new XMLSerializer().serializeToString(doc);
-	}
-	return doc;
-}
-function libxml(data){
-	if(Libxml){
-		console.time('libxml');
-		var doc = Libxml.parseXmlString(data);
-		console.timeEnd('libxml');
-		var ToString=doc.toString ;
-		doc.toString = function(){
-			return ToString.apply(this,arguments).replace(/^\s+|\s+$/g,'');
-		}
-		return doc;
-	}else{
-		console.warn('libxml is not installed')
-	}
-}
-
-function domjs(data){
-	console.time('dom-js');
-	var doc;
-	new DomJS().parse(data, function(err, dom) {
-	    doc = dom;
-	});
-	console.timeEnd('dom-js');
-	
-	doc.toString = function(){
-		return doc.toXml();
-	}
-	return doc
-}
-var maxRandomAttr =parseInt(Math.random()*60);
-console.log('maxRandomAttr',maxRandomAttr)
-function addAttributes(el){
-	var c =parseInt(Math.random()*maxRandomAttr);
-	while(c--){
-		el.setAttribute('dynamic-attr'+c,c+new Array(c).join('.'));
-	}
-	var child = el.firstChild;
-	while(child){
-		if(child.nodeType == 1){
-			addAttributes(child)
-		}else if(child.nodeType == 4){//cdata
-			el.insertBefore(el.ownerDocument.createTextNode(child.data),child);
-			el.removeChild(child);
-		}
-		child = child.nextSibling;
-	}
-}
-// Create a Test Suite
-wows.describe('XML Node Parse').addBatch({
-    "big file parse":function(){
-		var fs = require('fs');
-		var path = require('path')
-		var data = fs.readFileSync(path.resolve(__dirname,'./test.xml'), 'ascii');
-		//data = "<?xml version=\"1.0\"?><xml><child> ![CDATA[v]] d &amp;</child>\n</xml>"
-		console.log('test simple xml')
-		var t1 = new Date();
-		var doc1 = xmldom(data);
-		var t2 = new Date();
-		var doc2 = domjs(data);
-		var t3 = new Date();
-		var doc3 = libxml(data);
-		var t4 = new Date();
-		var xmldomTime = t2-t1;
-		var domjsTime = t3-t2;
-		console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!')
-		
-		
-		doc1 = doc1.cloneNode(true);
-		addAttributes(doc1.documentElement);
-		
-		data = doc1.toString();
-		console.log('test more attribute xml')
-		var t1 = new Date();
-		var doc1 = xmldom(data);
-		var t2 = new Date();
-		var doc2 = domjs(data);
-		var t3 = new Date();
-		var doc3 = libxml(data);
-		var t4 = new Date();
-		var xmldomTime = t2-t1;
-		var domjsTime = t3-t2;
-		console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!')
-		function xmlReplace(a,v){
-			switch(v){
-			case '&':
-			return '&amp;'
-			case '<':
-			return '&lt;'
-			default:
-			if(v.length>1){
-				return v.replace(/([&<])/g,xmlReplace)
-			}
-			}
-		}
-		xmldomresult = (domjs(doc1+'')+'').replace(/^<\?.*?\?>\s*|<!\[CDATA\[([\s\S]*?)\]\]>/g,xmlReplace)
-		domjsresult = (doc2+'').replace(/^<\?.*?\?>\s*|<!\[CDATA\[([\s\S]*?)\]\]>/g,xmlReplace)
-		data = xmldomresult;
-		//console.log(data.substring(100,200))
-		
-		console.log('test more attribute xml without cdata')
-		var t1 = new Date();
-		var doc1 = xmldom(data);
-		var t2 = new Date();
-		var doc2 = domjs(data);
-		var t3 = new Date();
-		var doc3 = libxml(data);
-		var t4 = new Date();
-		var xmldomTime = t2-t1;
-		var domjsTime = t3-t2;
-		console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!')
-		
-		//console.log(xmldomresult,domjsresult)
-		
-		//assert.equal(xmldomresult,domjsresult);
-		//,xmldomresult,domjsresult)
-		if(xmldomresult !== domjsresult){
-			for(var i=0;i<xmldomresult.length;i++){
-				if(xmldomresult.charAt(i)!=domjsresult.charAt(i)){
-					console.log(xmldomresult.charAt(i))
-					var begin = i-50;
-					var len = 100;
-					xmldomresult = xmldomresult.substr(begin,len)
-					domjsresult = domjsresult.substr(begin,len)
-					//console.log(xmldomresult.length,domjsresult.length)
-					console.log('pos'+i,'\n',xmldomresult,'\n\n\n\n',domjsresult)
-					console.assert(xmldomresult == domjsresult)
-					break;
-				}
-			} 
-			
-		}
-		//console.assert(xmldomresult == domjsresult,xmldomresult.length,i)
-    }
-}).run(); // Run it

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/attr.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/attr.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/attr.js
deleted file mode 100644
index b48cbde..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/attr.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-
-// Create a Test Suite
-wows.describe('XML attrs').addBatch({
-    "set attribute":function(){
-    	var root = new DOMParser().parseFromString("<xml/>",'text/xml').documentElement;
-    	root.setAttribute('a','1');
-    	console.assert(root.attributes[0].localName == 'a');
-    	root.setAttribute('b',2);
-    	root.setAttribute('a',1);
-    	root.setAttribute('a',1);
-    	root.setAttribute('a',1);
-    	console.assert(root.attributes.length == 2);
-    	try {
-    		var c = root.ownerDocument.createElement('c');
-    		c.setAttributeNode(root.attributes.item(0));
-    	} catch (e) {
-    		console.assert(e.code == 10);
-    		return;
-    	}
-    	console.assert(false);
-    },
-    "set ns attribute":function(){
-    	var root = new DOMParser().parseFromString("<xml xmlns:a='a' xmlns:b='b' xmlns='e'><child/></xml>",'text/xml').documentElement;
-    	var child = root.firstChild
-    	child.setAttributeNS('a','a:a','1');
-    	child.setAttributeNS('b','b:b','2');
-    	child.setAttributeNS('b','b:a','1');
-    	console.assert(child.attributes.length == 3,child.attributes.length,child+'');
-    	child.setAttribute('a',1);
-    	child.setAttributeNS('b','b:b','2');
-    	console.assert(child.attributes.length == 4,child.attributes.length);
-    	try {
-    		var c = root.ownerDocument.createElement('c');
-    		c.setAttributeNodeNS(root.attributes.item(0));
-    	} catch (e) {
-    		console.assert(e.code == 10);
-    		return;
-    	}
-    	console.assert(false);
-    },
-    "override attribute":function(){
-    	var root = new DOMParser().parseFromString("<xml xmlns:a='a' xmlns:b='b' xmlns='e'><child/></xml>",'text/xml').documentElement;
-    	root.setAttributeNS('a','a:a','1');
-    	console.assert(root.attributes.length == 4,root.attributes.length);
-//not standart
-//    	root.firstChild.setAttributeNode(root.attributes[0]);
-//    	console.assert(root.attributes.length == 0);
-    },
-    "attribute namespace":function(){
-    	var root = new DOMParser().parseFromString("<xml xmlns:a='a' xmlns:b='b' a:b='e'></xml>",'text/xml').documentElement;
-    	console.assert(root.getAttributeNS("a", "b"), "e");
-    },
-    "override ns attribute":function(){
-    	
-    },
-    "set existed attribute":function(){
-    	
-    },
-    "set document existed attribute":function(){
-    	
-    }
-}).run(); // Run it
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/clone.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/clone.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/clone.js
deleted file mode 100644
index d8dff68..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/clone.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var wows = require('vows');
-var XMLSerializer = require('xmldom').XMLSerializer;
-var DOMParser = require('xmldom').DOMParser;
-
-// Create a Test Suite
-wows.describe('XML Namespace Parse').addBatch({
-    'clone': function () { 
-		var doc1 = new DOMParser().parseFromString("<doc1 attr1='1' attr2='a2'>text1<child>text2</child></doc1>",'text/xml')
-		var n =doc1.cloneNode(true)
-		console.assert(n == new XMLSerializer().serializeToString(doc1))
-    },
-    'import': function () { 
-		var doc1 = new DOMParser().parseFromString("<doc2 attr='2'/>")
-		var doc2 = new DOMParser().parseFromString("<doc1 attr1='1' attr2='a2'>text1<child>text2</child></doc1>",'text/xml')
-		
-		var doc3 = new DOMParser().parseFromString("<doc2 attr='2'><doc1 attr1='1' attr2='a2'>text1<child>text2</child></doc1></doc2>")
-		var n =doc1.importNode(doc2.documentElement, true)
-		doc1.documentElement.appendChild(n)
-		console.assert(doc1 == doc3+'')
-		console.assert(doc2 != doc3+'')
-    }
-}).run(); // Run it
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/element.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/element.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/element.js
deleted file mode 100644
index 72a4efe..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/element.js
+++ /dev/null
@@ -1,139 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-var XMLSerializer = require('xmldom').XMLSerializer;
-// Create a Test Suite
-wows.describe('XML Namespace Parse').addBatch({
-    // See: http://jsfiddle.net/bigeasy/ShcXP/1/
-    "Document_getElementsByTagName":function () {
-    	var doc = new DOMParser().parseFromString('<a><b/></a>');
-    	console.assert(doc.getElementsByTagName('*').length == 2);
-    	console.assert(doc.documentElement.getElementsByTagName('*').length == 1);
-    },
-    'getElementsByTagName': function () { 
-    	
-
-       var doc = new DOMParser().parseFromString('<xml xmlns="http://test.com" xmlns:t="http://test.com" xmlns:t2="http://test2.com">' +
-       		'<t:test/><test/><t2:test/>'+
-       		'<child attr="1"><test><child attr="2"/></test></child>' +
-       		'<child attr="3"/></xml>','text/xml');
-       var childs = doc.documentElement.getElementsByTagName('child');
-       console.assert(childs.item(0).getAttribute('attr')=="1",childs.item(0)+'');
-       console.assert(childs.item(1).getAttribute('attr')=="2",childs.item(1)+'');
-       console.assert(childs.item(2).getAttribute('attr')=="3",childs.item(2)+'');
-       console.assert(childs.length==3,3,childs.length);
-       
-       var childs = doc.getElementsByTagName('child');
-       console.assert(childs.item(0).getAttribute('attr')=="1",childs.item(0)+'');
-       console.assert(childs.item(1).getAttribute('attr')=="2",childs.item(1)+'');
-       console.assert(childs.item(2).getAttribute('attr')=="3",childs.item(2)+'');
-       console.assert(childs.length==3,3,childs.length);
-       
-       
-       
-       
-       
-       var childs = doc.documentElement.getElementsByTagName('*');
-       for(var i=0,buf = [];i<childs.length;i++){
-       	buf.push(childs[i].tagName)
-       }
-       console.assert(childs.length==7,childs.length,buf);
-       
-       
-       
-       
-		var feed = new DOMParser().parseFromString('<feed><entry>foo</entry></feed>');
-		var entries = feed.documentElement.getElementsByTagName('entry');
-		console.log(entries[0].nodeName);
-       console.log(feed.documentElement.childNodes.item(0).nodeName);
-    },
-    'getElementsByTagNameNS': function () { 
-       var doc = new DOMParser().parseFromString('<xml xmlns="http://test.com" xmlns:t="http://test.com" xmlns:t2="http://test2.com">' +
-       		'<t:test/><test/><t2:test/>'+
-       		'<child attr="1"><test><child attr="2"/></test></child>' +
-       		'<child attr="3"/></xml>','text/xml');
-       		
-       var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'*');
-       console.assert(childs.length==6,childs.length);
-       
-        var childs = doc.getElementsByTagNameNS("http://test.com",'*');
-       console.assert(childs.length==7,childs.length);
-       
-       
-       var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'test');
-       console.assert(childs.length==3,childs.length);
-       
-       var childs = doc.getElementsByTagNameNS("http://test.com",'test');
-       console.assert(childs.length==3,childs.length);
-       
-       
-       
-    },
-    'getElementById': function () { 
-       var doc = new DOMParser().parseFromString('<xml xmlns="http://test.com" id="root">' +
-       		'<child id="a1" title="1"><child id="a2"  title="2"/></child>' +
-       		'<child id="a1"   title="3"/></xml>','text/xml');
-       console.assert(doc.getElementById('root'))
-       console.assert(doc.getElementById('a1').getAttribute('title')=="1",doc.getElementById('a1'));
-       console.assert(doc.getElementById('a2').getAttribute('title')=="2",doc.getElementById('a2'));
-       console.assert(doc.getElementById('a2').getAttribute('title2')=="",doc.getElementById('a2'));
-    },
-    "append exist child":function(){
-       var doc = new DOMParser().parseFromString('<xml xmlns="http://test.com" id="root">' +
-       		'<child1 id="a1" title="1"><child11 id="a2"  title="2"/></child1>' +
-       		'<child2 id="a1"   title="3"/><child3 id="a1"   title="3"/></xml>','text/xml');
-       	
-       	var doc1 = doc;
-       	var str1=new XMLSerializer().serializeToString(doc);
-       	var doc2 = doc1.cloneNode(true);
-       	var doc3 = doc1.cloneNode(true);
-       	var doc4 = doc1.cloneNode(true);
-       	
-       	doc3.documentElement.appendChild(doc3.documentElement.lastChild);
-       	doc4.documentElement.appendChild(doc4.documentElement.firstChild);
-       	
-       	var str2=new XMLSerializer().serializeToString(doc2);
-       	var str3=new XMLSerializer().serializeToString(doc3);
-       	var str4=new XMLSerializer().serializeToString(doc4);
-       	console.assert(str1 == str2 && str2 == str3,str3,str1);
-       	console.assert(str3 != str4 && str3.length == str4.length,str3);
-       	
-    },
-    "append exist other child":function(){
-    	var doc = new DOMParser().parseFromString('<xml xmlns="http://test.com" id="root">' +
-       		'<child1 id="a1" title="1"><child11 id="a2"  title="2"><child/></child11></child1>' +
-       		'<child2 id="a1"   title="3"/><child3 id="a1"   title="3"/></xml>','text/xml');
-       	
-       	var doc1 = doc;
-       	var str1=new XMLSerializer().serializeToString(doc);
-       	var doc2 = doc1.cloneNode(true);
-       	
-       	console.assert(doc2.documentElement.lastChild.childNodes.length == 0);
-       	doc2.documentElement.appendChild(doc2.documentElement.firstChild.firstChild);
-       	
-       	var str2=new XMLSerializer().serializeToString(doc2);
-       	
-       	console.assert(doc2.documentElement.lastChild.childNodes.length == 1);
-       	console.assert(str1 != str2 && str1.length != str2.length,str3);
-       	var doc3 = new DOMParser().parseFromString(str2,'text/xml');
-       	doc3.documentElement.firstChild.appendChild(doc3.documentElement.lastChild);
-       	var str3 = new XMLSerializer().serializeToString(doc3);
-       	console.assert(str1 == str3);
-    },
-    "set textContent":function() {
-        var doc = new DOMParser().parseFromString('<test><a/><b><c/></b></test>');
-        var a = doc.documentElement.firstChild;
-        var b = a.nextSibling;
-        a.textContent = 'hello';
-        console.assert(doc.documentElement.toString() == '<test><a>hello</a><b><c/></b></test>');
-        b.textContent = 'there';
-        console.assert(doc.documentElement.toString() == '<test><a>hello</a><b>there</b></test>');
-        b.textContent = '';
-        console.assert(doc.documentElement.toString() == '<test><a>hello</a><b/></test>');
-        doc.documentElement.textContent = 'bye';
-        console.assert(doc.documentElement.toString() == '<test>bye</test>');
-    },
-    "nested append failed":function(){
-    },
-    "self append failed":function(){
-    }
-}).run(); // Run it

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/fragment.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/fragment.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/fragment.js
deleted file mode 100644
index 3f72824..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/fragment.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-var XMLSerializer = require('xmldom').XMLSerializer;
-
-wows.describe('DOM DocumentFragment').addBatch({
-	// see: http://jsfiddle.net/9Wmh2/1/
-	"append empty fragment":function(){
-		var document = new DOMParser().parseFromString('<p id="p"/>');
-		var fragment = document.createDocumentFragment();
-		document.getElementById("p").insertBefore(fragment, null);
-		fragment.appendChild(document.createTextNode("a"));
-		document.getElementById("p").insertBefore(fragment, null);
-		console.assert(document.toString() == '<p id="p">a</p>', document.toString());
-	},
-}).run();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/index.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/index.js
deleted file mode 100644
index 201a0b0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./element');
-require('./level3');
-require('./clone');
-require('./attr');
-require('./serializer');

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/level3.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/level3.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/level3.js
deleted file mode 100644
index b3810e2..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/level3.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-
-// Create a Test Suite
-wows.describe('XML Namespace Parse').addBatch({
-	"test":function(){}
-    //see namespace.js
-}).run(); // Run it
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/serializer.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/serializer.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/serializer.js
deleted file mode 100644
index 73d86ad..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/dom/serializer.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-
-wows.describe('XML Serializer').addBatch({
-  'text node containing "]]>"': function() {
-    var doc = new DOMParser().parseFromString('<test/>', 'text/xml');
-    doc.documentElement.appendChild(doc.createTextNode('hello ]]> there'));
-    console.assert(doc.documentElement.firstChild.toString() == 'hello ]]> there',doc.documentElement.firstChild.toString());
-  },
-  '<script> element with no children': function() {
-    var doc = new DOMParser().parseFromString('<html><script></script></html>', 'text/html');
-    console.assert(doc.documentElement.firstChild.toString() == '<script></script>');
-  },
-}).run();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/error.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/error.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/error.js
deleted file mode 100644
index ec15a45..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/error.js
+++ /dev/null
@@ -1,71 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-
-
-wows.describe('errorHandle').addBatch({
-  'only function two args': function() {
-  	var error = {}
-    var parser = new DOMParser({
-    	errorHandler:function(key,msg){error[key] = msg}
-	});
-	try{
-    	var doc = parser.parseFromString('<html disabled><1 1="2"/></body></html>', 'text/xml');
-		console.assert(error.warning!=null ,'error.error:'+error.warning);
-		console.assert(error.error!=null ,'error.error:'+error.error);
-		console.assert(error.fatalError!=null ,'error.error:'+error.fatalError);
-		//console.log(doc+'')
-	}catch(e){
-	}
-  },
-  'only function': function() {
-  	var error = []
-    var parser = new DOMParser({
-    	errorHandler:function(msg){error.push(msg)}
-	});
-	try{
-    	var doc = parser.parseFromString('<html disabled><1 1="2"/></body></html>', 'text/xml');
-    	error.map(function(e){error[e.replace(/\:[\s\S]*/,'')]=e})
-		console.assert(error.warning!=null ,'error.error:'+error.warning);
-		console.assert(error.error!=null ,'error.error:'+error.error);
-		console.assert(error.fatalError!=null ,'error.error:'+error.fatalError);
-		//console.log(doc+'')
-	}catch(e){
-	}
-  },
-  'only function': function() {
-  	var error = []
-  	var errorMap = []
-    new DOMParser({
-    	errorHandler:function(msg){error.push(msg)}
-	}).parseFromString('<html><body title="1<2">test</body></html>', 'text/xml');
-    'warn,warning,error,fatalError'.replace(/\w+/g,function(k){
-    	var errorHandler = {};
-    	errorMap[k] = [];
-    	errorHandler[k] = function(msg){errorMap[k] .push(msg)}
-	    new DOMParser({errorHandler:errorHandler}).parseFromString('<html><body title="1<2">test</body></html>', 'text/xml');
-    });
-    for(var n in errorMap){
-    	console.assert(error.length == errorMap[n].length)
-    }
-  },
-  'error function': function() {
-  	var error = []
-    var parser = new DOMParser({
-    	locator:{},
-    	errorHandler:{
-			error:function(msg){
-				error.push(msg);
-				throw new Error(msg)
-			}
-		}
-	});
-	try{
-    	var doc = parser.parseFromString('<html><body title="1<2"><table>&lt;;test</body></body></html>', 'text/html');
-	}catch(e){
-		console.log(e);
-		console.assert(/\n@#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error)
-		return;
-	}
-	console.assert(false,doc+' should be null');
-  }
-}).run();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/html/normalize.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/html/normalize.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/html/normalize.js
deleted file mode 100644
index b855bad..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/html/normalize.js
+++ /dev/null
@@ -1,89 +0,0 @@
-var wows = require('vows');
-var assert = require('assert');
-var DOMParser = require('xmldom').DOMParser;
-var XMLSerializer = require('xmldom').XMLSerializer;
-var parser = new DOMParser();
-// Create a Test Suite
-wows.describe('html normalizer').addBatch({
-    'text & <': function () { 
-    	var dom = new DOMParser().parseFromString('<div>&amp;&lt;123&456<789;&&</div>','text/html');
-    	console.assert(dom == '<div>&amp;&lt;123&amp;456&lt;789;&amp;&amp;</div>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<div><123e>&<a<br/></div>','text/html');
-    	console.assert(dom == '<div>&lt;123e>&amp;&lt;a<br/></div>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<div>&nbsp;&copy;&nbsp&copy</div>','text/html');
-    	console.assert(dom == '<div>\u00a0\u00a9&amp;nbsp&amp;copy</div>',dom+'')
-    	
-    	
-    	var dom = new DOMParser().parseFromString('<html xmlns:x="1"><body/></html>','text/html');
-    	console.assert(dom == '<html xmlns:x="1"><body></body></html>',dom+'')
-	},
-    'attr': function () { 
-    	var dom = new DOMParser().parseFromString('<html test="a<b && a>b && \'&amp;&&\'"/>','text/html');
-    	console.assert(dom == '<html test="a&lt;b &amp;&amp; a>b &amp;&amp; \'&amp;&amp;&amp;\'"></html>',dom+'')
-		
-		var dom = new DOMParser().parseFromString('<div test="alert(\'<br/>\')"/>','text/html');
-    	console.assert(dom == '<div test="alert(\'&lt;br/>\')"></div>',dom+'')
-    	var dom = new DOMParser().parseFromString('<div test="a<b&&a< c && a>d"></div>','text/html');
-    	console.assert(dom == '<div test="a&lt;b&amp;&amp;a&lt; c &amp;&amp; a>d"></div>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<div a=& bb c d=123&&456/>','text/html');
-    	console.assert(dom == '<div a="&amp;" bb="bb" c="c" d="123&amp;&amp;456"></div>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<div a=& a="&\'\'" b/>','text/html');
-    	console.assert(dom == '<div a="&amp;\'\'" b="b"></div>',dom+'')
-	},
-    'attrQute': function () { 
-    	var dom = new DOMParser().parseFromString('<html test="123"/>','text/html');
-    	console.assert(dom == '<html test="123"></html>',dom+'')
-    	
-//		var dom = new DOMParser().parseFromString('<r><Label onClick="doClick..>Hello, World</Label></r>','text/html');
-//    	console.assert(dom == '<r><Label onClick="doClick..">Hello, World</Label></r>',dom+'!!')
-//		
-		var dom = new DOMParser().parseFromString('<Label onClick=doClick..">Hello, World</Label>','text/html');
-    	console.assert(dom == '<Label onClick="doClick..">Hello, World</Label>',dom+'')
-	},
-	"unclosed":function(){
-    	var dom = new DOMParser().parseFromString('<html><meta><link><img><br><hr><input></html>','text/html');
-    	console.assert(dom == '<html><meta/><link/><img/><br/><hr/><input/></html>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<html title =1/2></html>','text/html');
-    	console.assert(dom == '<html title="1/2"></html>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<html title= 1/>','text/html');
-    	console.assert(dom == '<html title="1"></html>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<html title = 1/>','text/html');
-    	console.assert(dom == '<html title="1"></html>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<html title/>','text/html');
-    	console.assert(dom == '<html title="title"></html>',dom+'')
-    	
-    	
-    	
-    	var dom = new DOMParser().parseFromString('<html><meta><link><img><br><hr><input></html>','text/html');
-    	console.assert(dom == '<html><meta/><link/><img/><br/><hr/><input/></html>',dom+'')
-    	
-    	
-	},
-    'script': function () { 
-    	var dom = new DOMParser().parseFromString('<script>alert(a<b&&c?"<br>":">>");</script>','text/html');
-    	console.assert(dom == '<script>alert(a<b&&c?"<br>":">>");</script>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<script>alert(a<b&&c?"<br>":">>");</script>','text/xml');
-    	console.assert(dom == '<script>alert(a&lt;b&amp;&amp;c?"<br/>":">>");</script>',dom+'')
-    	
-    	var dom = new DOMParser().parseFromString('<script>alert(a<b&&c?"<br/>":">>");</script>','text/html');
-    	console.assert(dom == '<script>alert(a<b&&c?"<br/>":">>");</script>',dom+'')
-
-	},
-    'textarea': function () { 
-    	var dom = new DOMParser().parseFromString('<textarea>alert(a<b&&c?"<br>":">>");</textarea>','text/html');
-    	console.assert(dom == '<textarea>alert(a&lt;b&amp;&amp;c?"&lt;br>":">>");</textarea>',dom+'')
-    	
-    	
-    	var dom = new DOMParser().parseFromString('<textarea>alert(a<b&&c?"<br>":">>");</textarea>','text/xml');
-    	console.assert(dom == '<textarea>alert(a&lt;b&amp;&amp;c?"<br/>":">>");</textarea>',dom+'')
-	}
-}).run();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/index.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/index.js
deleted file mode 100644
index 4b7703f..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/index.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var XMLSerializer = require('xmldom').XMLSerializer;
-var DOMParser = require('xmldom').DOMParser;
-try{
-	var libxml = require('libxmljs');
-}catch(e){
-	var DomJS = require("dom-js");
-}
-
-var assert = require('assert');
-var oldParser = DOMParser.prototype.parseFromString ;
-function format(s){
-	if(libxml){
-		var result = libxml.parseXmlString(s).toString().replace(/^\s+|\s+$/g,'');
-		//console.log(result.charCodeAt().toString(16),result)
-	}else{
-		var domjs = new DomJS.DomJS();
-		domjs.parse(s, function(err, dom) {
-	  	  result = dom.toXml();
-		});
-	}
-	return result;
-}
-function check(data,doc){
-	var domjsresult = format(data);
-	var xmldomresult = new XMLSerializer().serializeToString(doc);
-	var xmldomresult2 = new XMLSerializer().serializeToString(doc.cloneNode(true));
-	assert.equal(xmldomresult,xmldomresult2);
-	xmldomresult = xmldomresult.replace(/^<\?.*?\?>\s*|<!\[CDATA\[\]\]>/g,'')
-	domjsresult = domjsresult.replace(/^<\?.*?\?>\s*|<!\[CDATA\[\]\]>/g,'')
-	//console.log('['+xmldomresult+'],['+domjsresult+']')
-	if(xmldomresult!=domjsresult){
-		assert.equal(format(xmldomresult),domjsresult);
-	}
-	
-}
-DOMParser.prototype.parseFromString = function(data,mimeType){
-	var doc = oldParser.apply(this,arguments);
-	function ck(){
-		if(!/\/x?html?\b/.test(mimeType)){
-			try{
-			check(data,doc);
-			}catch(e){console.dir(e)}
-		}
-	}
-	if(this.options.checkLater){
-	setTimeout(ck,1);
-	}else{ck()}
-	return doc;
-}
-function include(){
-	for(var i=0;i<arguments.length;i++){
-		var file = arguments[i]
-		console.log('test ',file);
-		require(file);
-	}
-}
-include('./dom','./parse-element','./node','./namespace','./html/normalize'
-		,'./error','./locator'
-		,'./big-file-performance'
-		)
-
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/locator.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/locator.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/locator.js
deleted file mode 100644
index 912520a..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/locator.js
+++ /dev/null
@@ -1,50 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-
-function assertPosition(n, line, col) {
-  console.assert(n.lineNumber == line,'lineNumber:'+n.lineNumber+'/'+line);
-  console.assert(n.columnNumber == col,'columnNumber:'+n.columnNumber+'/'+col);
-}
-
-wows.describe('DOMLocator').addBatch({
-  'node positions': function() {
-    var parser = new DOMParser({locator:{}});
-    var doc = parser.parseFromString('<?xml version="1.0"?><!-- aaa -->\n<test>\n  <a attr="value"><![CDATA[1]]>something\n</a>x</test>', 'text/xml');
-    var test = doc.documentElement;
-    var a = test.firstChild.nextSibling;
-    assertPosition(doc.firstChild, 1, 1);
-    assertPosition(doc.firstChild.nextSibling, 1, 1+'<?xml version="1.0"?>'.length);
-    assertPosition(test, 2, 1);
-    //assertPosition(test.firstChild, 1, 7);
-    assertPosition(a, 3, 3);
-    assertPosition(a.firstChild, 3, 19);
-    assertPosition(a.firstChild.nextSibling, 3, 19+'<![CDATA[1]]>'.length);
-    assertPosition(test.lastChild, 4, 5);
-  },
-  'error positions':function(){
-  	var error = []
-    var parser = new DOMParser({
-    	locator:{systemId:'c:/test/1.xml'},
-    	errorHandler:function(msg){
-			error.push(msg);
-		}
-	});
-    var doc = parser.parseFromString('<html><body title="1<2"><table>&lt;;test</body></body></html>', 'text/html');
-	console.assert(/\n@c\:\/test\/1\.xml#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error)
-  },
-  'error positions p':function(){
-  	var error = []
-    var parser = new DOMParser({
-    	locator:{},
-    	errorHandler:function(msg){
-			error.push(msg);
-		}
-	});
-    var doc = parser.parseFromString('<root>\n\t<err</root>', 'text/html');
-    var root = doc.documentElement;
-    var textNode = root.firstChild;
-	console.log(root+'/'+textNode)
-	console.assert(/\n@#\[line\:2,col\:2\]/.test(error.join(' ')),'line,col must record:'+error);
-	console.log(textNode.lineNumber+'/'+textNode.columnNumber)
-  }
-}).run();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/namespace.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/namespace.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/namespace.js
deleted file mode 100644
index a06248c..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/namespace.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-
-// Create a Test Suite
-wows.describe('XML Namespace Parse').addBatch({
-    'default namespace': function () { 
-       var dom = new DOMParser().parseFromString('<xml xmlns="http://test.com"><child attr="1"/></xml>','text/xml');
-       var root = dom.documentElement;
-       console.assert(root.namespaceURI=='http://test.com')
-       console.assert(root.lookupNamespaceURI('') == 'http://test.com')
-       console.assert(root.firstChild.namespaceURI=='http://test.com')
-       console.assert(root.firstChild.lookupNamespaceURI('') == 'http://test.com')
-       console.assert(root.firstChild.getAttributeNode('attr').namespaceURI==null)
-    },
-    'prefix namespace': function () { 
-       var dom = new DOMParser().parseFromString('<xml xmlns:p1="http://p1.com" xmlns:p2="http://p2.com"><p1:child a="1" p1:attr="1" b="2"/><p2:child/></xml>','text/xml');
-       var root = dom.documentElement;
-       console.assert(root.firstChild.namespaceURI == 'http://p1.com')
-       console.assert(root.lookupNamespaceURI('p1') == 'http://p1.com')
-       console.assert(root.firstChild.getAttributeNode('attr') == null)
-       console.assert(root.firstChild.getAttributeNode('p1:attr').namespaceURI == 'http://p1.com')
-       console.assert(root.firstChild.nextSibling.namespaceURI == 'http://p2.com')
-       console.assert(root.firstChild.nextSibling.lookupNamespaceURI('p2') == 'http://p2.com')
-    },
-    'after prefix namespace': function () { 
-       var dom = new DOMParser().parseFromString('<xml xmlns:p="http://test.com"><p:child xmlns:p="http://p.com"/><p:child/></xml>','text/xml');
-       var root = dom.documentElement;
-       console.assert(root.firstChild.namespaceURI=='http://p.com')
-       console.assert(root.lastChild.namespaceURI=='http://test.com')
-       console.assert(root.firstChild.nextSibling.lookupNamespaceURI('p') == 'http://test.com')
-    }
-}).run(); // Run it
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/node.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/node.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/node.js
deleted file mode 100644
index 6527eee..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/node.js
+++ /dev/null
@@ -1,102 +0,0 @@
-var wows = require('vows');
-var assert = require('assert');
-var DOMParser = require('xmldom').DOMParser;
-var XMLSerializer = require('xmldom').XMLSerializer;
-var parser = new DOMParser();
-// Create a Test Suite
-wows.describe('XML Node Parse').addBatch({
-    'element': function () { 
-    	var dom = new DOMParser().parseFromString('<xml><child/></xml>');
-    	console.assert (dom.childNodes.length== 1,dom.childNodes.length, 1);
-    	console.assert (dom.documentElement.childNodes.length== 1);
-    	console.assert (dom.documentElement.tagName== 'xml');
-    	console.assert (dom.documentElement.firstChild.tagName== 'child');
-    },
-    'text':function(){
-    	var dom = new DOMParser().parseFromString('<xml>start center end</xml>');
-    	var root = dom.documentElement;
-    	console.assert( root.firstChild.data =='start center end');
-    	console.assert( root.firstChild.nextSibling ==null);
-    },
-    'cdata': function () {
-    	var dom = new DOMParser().parseFromString('<xml>start <![CDATA[<encoded>]]> end<![CDATA[[[[[[[[[]]]]]]]]]]></xml>');
-    	var root = dom.documentElement;
-    	console.assert ( root.firstChild.data =='start ');
-    	console.assert ( root.firstChild.nextSibling.data =='<encoded>');
-    	console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.data =='[[[[[[[[]]]]]]]]');
-    },
-    'cdata empty': function () {
-    	var dom = new DOMParser().parseFromString('<xml><![CDATA[]]>start <![CDATA[]]> end</xml>');
-    	var root = dom.documentElement;
-    	console.assert ( root.textContent =='start  end');
-    },
-    'comment': function(){
-    	var dom = new DOMParser().parseFromString('<xml><!-- comment&>< --></xml>');
-    	var root = dom.documentElement;
-    	console.assert ( root.firstChild.nodeValue ==' comment&>< ');
-    },
-    'cdata comment': function(){
-    	var dom = new DOMParser().parseFromString('<xml>start <![CDATA[<encoded>]]> <!-- comment -->end</xml>');
-    	var root = dom.documentElement;
-    	console.assert ( root.firstChild.nodeValue =='start ');
-    	console.assert ( root.firstChild.nextSibling.nodeValue =='<encoded>');
-    	console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.nodeValue ==' comment ');
-    	console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.nextSibling.nodeValue =='end');
-    },
-    'append node': function () {
-    	var dom = new DOMParser().parseFromString('<xml/>');
-    	var child = dom.createElement("child");
-    	console.assert ( child == dom.documentElement.appendChild(child));
-    	console.assert ( child == dom.documentElement.firstChild);
-    	var fragment = new dom.createDocumentFragment();
-    	console.assert ( child == fragment.appendChild(child));
-    },
-    'insert node': function () {
-    	var dom = new DOMParser().parseFromString('<xml><child/></xml>');
-    	var node = dom.createElement("sibling");
-    	var child = dom.documentElement.firstChild;
-    	child.parentNode.insertBefore(node, child);
-    	console.assert ( node == child.previousSibling);
-    	console.assert ( node.nextSibling == child);
-    	console.assert ( node.parentNode == child.parentNode);
-    },
-    'insert fragment': function () {
-    	var dom = new DOMParser().parseFromString('<xml><child/></xml>');
-    	var fragment = dom.createDocumentFragment();
-    	assert(fragment.nodeType === 11);
-    	var first = fragment.appendChild(dom.createElement("first"));
-    	var last = fragment.appendChild(dom.createElement("last"));
-    	console.assert ( fragment.firstChild == first);
-    	console.assert ( fragment.lastChild == last);
-    	console.assert ( last.previousSibling == first);
-    	console.assert ( first.nextSibling == last);
-    	var child = dom.documentElement.firstChild;
-    	child.parentNode.insertBefore(fragment, child);
-    	console.assert ( last.previousSibling == first);
-    	console.assert ( first.nextSibling == last);
-    	console.assert ( child.parentNode.firstChild == first);
-    	console.assert ( last == child.previousSibling);
-    	console.assert ( last.nextSibling == child);
-    	console.assert ( first.parentNode == child.parentNode);
-    	console.assert ( last.parentNode == child.parentNode);
-    }
-}).addBatch({
-	"instruction":function(){
-		var source = '<?xml version="1.0"?><root><child>&amp;<!-- &amp; --></child></root>';
-		var doc = new DOMParser().parseFromString(source,"text/xml");
-    	var source2 = new XMLSerializer().serializeToString(doc);
-    	console.assert(source == source2,source2);
-	}
-}).run(); // Run it
-//var ELEMENT_NODE                = NodeType.ELEMENT_NODE                = 1;
-//var ATTRIBUTE_NODE              = NodeType.ATTRIBUTE_NODE              = 2;
-//var TEXT_NODE                   = NodeType.TEXT_NODE                   = 3;
-//var CDATA_SECTION_NODE          = NodeType.CDATA_SECTION_NODE          = 4;
-//var ENTITY_REFERENCE_NODE       = NodeType.ENTITY_REFERENCE_NODE       = 5;
-//var ENTITY_NODE                 = NodeType.ENTITY_NODE                 = 6;
-//var PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;
-//var COMMENT_NODE                = NodeType.COMMENT_NODE                = 8;
-//var DOCUMENT_NODE               = NodeType.DOCUMENT_NODE               = 9;
-//var DOCUMENT_TYPE_NODE          = NodeType.DOCUMENT_TYPE_NODE          = 10;
-//var DOCUMENT_FRAGMENT_NODE      = NodeType.DOCUMENT_FRAGMENT_NODE      = 11;
-//var NOTATION_NODE               = NodeType.NOTATION_NODE               = 12;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/parse-element.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/parse-element.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/parse-element.js
deleted file mode 100644
index 53b8395..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/parse-element.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var wows = require('vows');
-var assert = require('assert');
-var DOMParser = require('xmldom').DOMParser;
-var XMLSerializer = require('xmldom').XMLSerializer;
-var parser = new DOMParser();
-// Create a Test Suite
-wows.describe('XML Node Parse').addBatch({
-    'noAttribute': function () { 
-    	var dom = new DOMParser().parseFromString('<xml ></xml>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml></xml>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml />','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml/>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml/>','text/xml');
-	},
-    'simpleAttribute': function () { 
-    	var dom = new DOMParser().parseFromString('<xml a="1" b="2"></xml>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml a="1" b="2" ></xml>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml a="1" b=\'\'></xml>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml a="1" b=\'\' ></xml>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml a="1" b="2/">','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml a="1" b="2" />','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml  a="1" b=\'\'/>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml  a="1" b=\'\' />','text/xml');
-	},
-    'nsAttribute': function () { 
-    	var dom = new DOMParser().parseFromString('<xml xmlns="1" xmlns:a="2" a:test="3"></xml>','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml xmlns="1" xmlns:a="2" a:test="3" ></xml>','text/xml');
-     	var dom = new DOMParser().parseFromString('<xml xmlns="1" xmlns:a="2" a:test="3/">','text/xml');
-    	var dom = new DOMParser().parseFromString('<xml xmlns="1" xmlns:a="2" a:test="3" />','text/xml');
-	}
-}).run();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/simple.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/simple.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/simple.js
deleted file mode 100644
index 4a398be..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/simple.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var wows = require('vows');
-var DOMParser = require('xmldom').DOMParser;
-
-
-wows.describe('errorHandle').addBatch({
-  'simple': function() {
-    var parser = new DOMParser();
-	var doc = parser.parseFromString('<html><body title="1<2"></body></html>', 'text/html');
-	console.log(doc+'');
-  }
-}).run();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/test.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/test.js
deleted file mode 100644
index a8aa97f..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/test/test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var wows = require('vows');
-var assert = require('assert');
-var DOMParser = require('xmldom').DOMParser;
-var XMLSerializer = require('xmldom').XMLSerializer;
-
-
-var doc = new DOMParser().parseFromString('<xml xmlns="http://test.com" id="root">' +
-	'<child1 id="a1" title="1"><child11 id="a2"  title="2"/></child1>' +
-	'<child2 id="a1"   title="3"/><child3 id="a1"   title="3"/></xml>','text/xml');
-
-var doc1 = doc;
-var str1=new XMLSerializer().serializeToString(doc);
-var doc2 = doc1.cloneNode(true);
-var doc3 = doc1.cloneNode(true);
-var doc4 = doc1.cloneNode(true);
-
-doc3.documentElement.appendChild(doc3.documentElement.lastChild);
-//doc4.documentElement.appendChild(doc4.documentElement.firstChild);
-
-var str2=new XMLSerializer().serializeToString(doc2);
-var str3=new XMLSerializer().serializeToString(doc3);
-var str4=new XMLSerializer().serializeToString(doc4);
-console.assert(str1 == str3,str3,str1);
-//console.assert(str3 != str4 && str3.length == str4.length,str3);


[02/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/lib/peg.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/lib/peg.js b/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/lib/peg.js
deleted file mode 100644
index 94c9423..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/node_modules/pegjs/lib/peg.js
+++ /dev/null
@@ -1,5141 +0,0 @@
-/* PEG.js 0.6.2 (http://pegjs.majda.cz/) */
-
-(function() {
-
-var undefined;
-
-var PEG = {
-  /* PEG.js version. */
-  VERSION: "0.6.2",
-
-  /*
-   * Generates a parser from a specified grammar and returns it.
-   *
-   * The grammar must be a string in the format described by the metagramar in
-   * the parser.pegjs file.
-   *
-   * Throws |PEG.parser.SyntaxError| if the grammar contains a syntax error or
-   * |PEG.GrammarError| if it contains a semantic error. Note that not all
-   * errors are detected during the generation and some may protrude to the
-   * generated parser and cause its malfunction.
-   */
-  buildParser: function(grammar) {
-    return PEG.compiler.compile(PEG.parser.parse(grammar));
-  }
-};
-
-/* Thrown when the grammar contains an error. */
-
-PEG.GrammarError = function(message) {
-  this.name = "PEG.GrammarError";
-  this.message = message;
-};
-
-PEG.GrammarError.prototype = Error.prototype;
-
-function contains(array, value) {
-  /*
-   * Stupid IE does not have Array.prototype.indexOf, otherwise this function
-   * would be a one-liner.
-   */
-  var length = array.length;
-  for (var i = 0; i < length; i++) {
-    if (array[i] === value) {
-      return true;
-    }
-  }
-  return false;
-}
-
-function each(array, callback) {
-  var length = array.length;
-  for (var i = 0; i < length; i++) {
-    callback(array[i]);
-  }
-}
-
-function map(array, callback) {
-  var result = [];
-  var length = array.length;
-  for (var i = 0; i < length; i++) {
-    result[i] = callback(array[i]);
-  }
-  return result;
-}
-
-/*
- * Returns a string padded on the left to a desired length with a character.
- *
- * The code needs to be in sync with th code template in the compilation
- * function for "action" nodes.
- */
-function padLeft(input, padding, length) {
-  var result = input;
-
-  var padLength = length - input.length;
-  for (var i = 0; i < padLength; i++) {
-    result = padding + result;
-  }
-
-  return result;
-}
-
-/*
- * Returns an escape sequence for given character. Uses \x for characters <=
- * 0xFF to save space, \u for the rest.
- *
- * The code needs to be in sync with th code template in the compilation
- * function for "action" nodes.
- */
-function escape(ch) {
-  var charCode = ch.charCodeAt(0);
-
-  if (charCode <= 0xFF) {
-    var escapeChar = 'x';
-    var length = 2;
-  } else {
-    var escapeChar = 'u';
-    var length = 4;
-  }
-
-  return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);
-}
-
-/*
- * Surrounds the string with quotes and escapes characters inside so that the
- * result is a valid JavaScript string.
- *
- * The code needs to be in sync with th code template in the compilation
- * function for "action" nodes.
- */
-function quote(s) {
-  /*
-   * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string
-   * literal except for the closing quote character, backslash, carriage return,
-   * line separator, paragraph separator, and line feed. Any character may
-   * appear in the form of an escape sequence.
-   *
-   * For portability, we also escape escape all non-ASCII characters.
-   */
-  return '"' + s
-    .replace(/\\/g, '\\\\')            // backslash
-    .replace(/"/g, '\\"')              // closing quote character
-    .replace(/\r/g, '\\r')             // carriage return
-    .replace(/\n/g, '\\n')             // line feed
-    .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
-    + '"';
-};
-
-/*
- * Escapes characters inside the string so that it can be used as a list of
- * characters in a character class of a regular expression.
- */
-function quoteForRegexpClass(s) {
-  /*
-   * Based on ECMA-262, 5th ed., 7.8.5 & 15.10.1.
-   *
-   * For portability, we also escape escape all non-ASCII characters.
-   */
-  return s
-    .replace(/\\/g, '\\\\')            // backslash
-    .replace(/\0/g, '\\0')             // null, IE needs this
-    .replace(/\//g, '\\/')             // closing slash
-    .replace(/]/g, '\\]')              // closing bracket
-    .replace(/-/g, '\\-')              // dash
-    .replace(/\r/g, '\\r')             // carriage return
-    .replace(/\n/g, '\\n')             // line feed
-    .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
-}
-
-/*
- * Builds a node visitor -- a function which takes a node and any number of
- * other parameters, calls an appropriate function according to the node type,
- * passes it all its parameters and returns its value. The functions for various
- * node types are passed in a parameter to |buildNodeVisitor| as a hash.
- */
-function buildNodeVisitor(functions) {
-  return function(node) {
-    return functions[node.type].apply(null, arguments);
-  }
-}
-PEG.parser = (function(){
-  /* Generated by PEG.js 0.6.2 (http://pegjs.majda.cz/). */
-  
-  var result = {
-    /*
-     * Parses the input with a generated parser. If the parsing is successfull,
-     * returns a value explicitly or implicitly specified by the grammar from
-     * which the parser was generated (see |PEG.buildParser|). If the parsing is
-     * unsuccessful, throws |PEG.parser.SyntaxError| describing the error.
-     */
-    parse: function(input, startRule) {
-      var parseFunctions = {
-        "__": parse___,
-        "action": parse_action,
-        "and": parse_and,
-        "braced": parse_braced,
-        "bracketDelimitedCharacter": parse_bracketDelimitedCharacter,
-        "choice": parse_choice,
-        "class": parse_class,
-        "classCharacter": parse_classCharacter,
-        "classCharacterRange": parse_classCharacterRange,
-        "colon": parse_colon,
-        "comment": parse_comment,
-        "digit": parse_digit,
-        "dot": parse_dot,
-        "doubleQuotedCharacter": parse_doubleQuotedCharacter,
-        "doubleQuotedLiteral": parse_doubleQuotedLiteral,
-        "eol": parse_eol,
-        "eolChar": parse_eolChar,
-        "eolEscapeSequence": parse_eolEscapeSequence,
-        "equals": parse_equals,
-        "grammar": parse_grammar,
-        "hexDigit": parse_hexDigit,
-        "hexEscapeSequence": parse_hexEscapeSequence,
-        "identifier": parse_identifier,
-        "initializer": parse_initializer,
-        "labeled": parse_labeled,
-        "letter": parse_letter,
-        "literal": parse_literal,
-        "lowerCaseLetter": parse_lowerCaseLetter,
-        "lparen": parse_lparen,
-        "multiLineComment": parse_multiLineComment,
-        "nonBraceCharacter": parse_nonBraceCharacter,
-        "nonBraceCharacters": parse_nonBraceCharacters,
-        "not": parse_not,
-        "plus": parse_plus,
-        "prefixed": parse_prefixed,
-        "primary": parse_primary,
-        "question": parse_question,
-        "rparen": parse_rparen,
-        "rule": parse_rule,
-        "semicolon": parse_semicolon,
-        "sequence": parse_sequence,
-        "simpleBracketDelimitedCharacter": parse_simpleBracketDelimitedCharacter,
-        "simpleDoubleQuotedCharacter": parse_simpleDoubleQuotedCharacter,
-        "simpleEscapeSequence": parse_simpleEscapeSequence,
-        "simpleSingleQuotedCharacter": parse_simpleSingleQuotedCharacter,
-        "singleLineComment": parse_singleLineComment,
-        "singleQuotedCharacter": parse_singleQuotedCharacter,
-        "singleQuotedLiteral": parse_singleQuotedLiteral,
-        "slash": parse_slash,
-        "star": parse_star,
-        "suffixed": parse_suffixed,
-        "unicodeEscapeSequence": parse_unicodeEscapeSequence,
-        "upperCaseLetter": parse_upperCaseLetter,
-        "whitespace": parse_whitespace,
-        "zeroEscapeSequence": parse_zeroEscapeSequence
-      };
-      
-      if (startRule !== undefined) {
-        if (parseFunctions[startRule] === undefined) {
-          throw new Error("Invalid rule name: " + quote(startRule) + ".");
-        }
-      } else {
-        startRule = "grammar";
-      }
-      
-      var pos = 0;
-      var reportMatchFailures = true;
-      var rightmostMatchFailuresPos = 0;
-      var rightmostMatchFailuresExpected = [];
-      var cache = {};
-      
-      function padLeft(input, padding, length) {
-        var result = input;
-        
-        var padLength = length - input.length;
-        for (var i = 0; i < padLength; i++) {
-          result = padding + result;
-        }
-        
-        return result;
-      }
-      
-      function escape(ch) {
-        var charCode = ch.charCodeAt(0);
-        
-        if (charCode <= 0xFF) {
-          var escapeChar = 'x';
-          var length = 2;
-        } else {
-          var escapeChar = 'u';
-          var length = 4;
-        }
-        
-        return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);
-      }
-      
-      function quote(s) {
-        /*
-         * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a
-         * string literal except for the closing quote character, backslash,
-         * carriage return, line separator, paragraph separator, and line feed.
-         * Any character may appear in the form of an escape sequence.
-         */
-        return '"' + s
-          .replace(/\\/g, '\\\\')            // backslash
-          .replace(/"/g, '\\"')              // closing quote character
-          .replace(/\r/g, '\\r')             // carriage return
-          .replace(/\n/g, '\\n')             // line feed
-          .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
-          + '"';
-      }
-      
-      function matchFailed(failure) {
-        if (pos < rightmostMatchFailuresPos) {
-          return;
-        }
-        
-        if (pos > rightmostMatchFailuresPos) {
-          rightmostMatchFailuresPos = pos;
-          rightmostMatchFailuresExpected = [];
-        }
-        
-        rightmostMatchFailuresExpected.push(failure);
-      }
-      
-      function parse_grammar() {
-        var cacheKey = 'grammar@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse___();
-        if (result3 !== null) {
-          var result7 = parse_initializer();
-          var result4 = result7 !== null ? result7 : '';
-          if (result4 !== null) {
-            var result6 = parse_rule();
-            if (result6 !== null) {
-              var result5 = [];
-              while (result6 !== null) {
-                result5.push(result6);
-                var result6 = parse_rule();
-              }
-            } else {
-              var result5 = null;
-            }
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(initializer, rules) {
-                var rulesConverted = {};
-                each(rules, function(rule) { rulesConverted[rule.name] = rule; });
-          
-                return {
-                  type:        "grammar",
-                  initializer: initializer !== "" ? initializer : null,
-                  rules:       rulesConverted,
-                  startRule:   rules[0].name
-                }
-              })(result1[1], result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_initializer() {
-        var cacheKey = 'initializer@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_action();
-        if (result3 !== null) {
-          var result5 = parse_semicolon();
-          var result4 = result5 !== null ? result5 : '';
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(code) {
-                return {
-                  type: "initializer",
-                  code: code
-                };
-              })(result1[0])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_rule() {
-        var cacheKey = 'rule@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_identifier();
-        if (result3 !== null) {
-          var result10 = parse_literal();
-          if (result10 !== null) {
-            var result4 = result10;
-          } else {
-            if (input.substr(pos, 0) === "") {
-              var result9 = "";
-              pos += 0;
-            } else {
-              var result9 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"\"");
-              }
-            }
-            if (result9 !== null) {
-              var result4 = result9;
-            } else {
-              var result4 = null;;
-            };
-          }
-          if (result4 !== null) {
-            var result5 = parse_equals();
-            if (result5 !== null) {
-              var result6 = parse_choice();
-              if (result6 !== null) {
-                var result8 = parse_semicolon();
-                var result7 = result8 !== null ? result8 : '';
-                if (result7 !== null) {
-                  var result1 = [result3, result4, result5, result6, result7];
-                } else {
-                  var result1 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(name, displayName, expression) {
-                return {
-                  type:        "rule",
-                  name:        name,
-                  displayName: displayName !== "" ? displayName : null,
-                  expression:  expression
-                };
-              })(result1[0], result1[1], result1[3])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_choice() {
-        var cacheKey = 'choice@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_sequence();
-        if (result3 !== null) {
-          var result4 = [];
-          var savedPos2 = pos;
-          var result6 = parse_slash();
-          if (result6 !== null) {
-            var result7 = parse_sequence();
-            if (result7 !== null) {
-              var result5 = [result6, result7];
-            } else {
-              var result5 = null;
-              pos = savedPos2;
-            }
-          } else {
-            var result5 = null;
-            pos = savedPos2;
-          }
-          while (result5 !== null) {
-            result4.push(result5);
-            var savedPos2 = pos;
-            var result6 = parse_slash();
-            if (result6 !== null) {
-              var result7 = parse_sequence();
-              if (result7 !== null) {
-                var result5 = [result6, result7];
-              } else {
-                var result5 = null;
-                pos = savedPos2;
-              }
-            } else {
-              var result5 = null;
-              pos = savedPos2;
-            }
-          }
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(head, tail) {
-                if (tail.length > 0) {
-                  var alternatives = [head].concat(map(
-                      tail,
-                      function(element) { return element[1]; }
-                  ));
-                  return {
-                    type:         "choice",
-                    alternatives: alternatives
-                  }
-                } else {
-                  return head;
-                }
-              })(result1[0], result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_sequence() {
-        var cacheKey = 'sequence@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos1 = pos;
-        var savedPos2 = pos;
-        var result8 = [];
-        var result10 = parse_labeled();
-        while (result10 !== null) {
-          result8.push(result10);
-          var result10 = parse_labeled();
-        }
-        if (result8 !== null) {
-          var result9 = parse_action();
-          if (result9 !== null) {
-            var result6 = [result8, result9];
-          } else {
-            var result6 = null;
-            pos = savedPos2;
-          }
-        } else {
-          var result6 = null;
-          pos = savedPos2;
-        }
-        var result7 = result6 !== null
-          ? (function(elements, code) {
-                var expression = elements.length != 1
-                  ? {
-                      type:     "sequence",
-                      elements: elements
-                    }
-                  : elements[0];
-                return {
-                  type:       "action",
-                  expression: expression,
-                  code:       code
-                };
-              })(result6[0], result6[1])
-          : null;
-        if (result7 !== null) {
-          var result5 = result7;
-        } else {
-          var result5 = null;
-          pos = savedPos1;
-        }
-        if (result5 !== null) {
-          var result0 = result5;
-        } else {
-          var savedPos0 = pos;
-          var result2 = [];
-          var result4 = parse_labeled();
-          while (result4 !== null) {
-            result2.push(result4);
-            var result4 = parse_labeled();
-          }
-          var result3 = result2 !== null
-            ? (function(elements) {
-                  return elements.length != 1
-                    ? {
-                        type:     "sequence",
-                        elements: elements
-                      }
-                    : elements[0];
-                })(result2)
-            : null;
-          if (result3 !== null) {
-            var result1 = result3;
-          } else {
-            var result1 = null;
-            pos = savedPos0;
-          }
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_labeled() {
-        var cacheKey = 'labeled@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result5 = parse_identifier();
-        if (result5 !== null) {
-          var result6 = parse_colon();
-          if (result6 !== null) {
-            var result7 = parse_prefixed();
-            if (result7 !== null) {
-              var result3 = [result5, result6, result7];
-            } else {
-              var result3 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result3 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result3 = null;
-          pos = savedPos1;
-        }
-        var result4 = result3 !== null
-          ? (function(label, expression) {
-                return {
-                  type:       "labeled",
-                  label:      label,
-                  expression: expression
-                };
-              })(result3[0], result3[2])
-          : null;
-        if (result4 !== null) {
-          var result2 = result4;
-        } else {
-          var result2 = null;
-          pos = savedPos0;
-        }
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result1 = parse_prefixed();
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_prefixed() {
-        var cacheKey = 'prefixed@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos6 = pos;
-        var savedPos7 = pos;
-        var result20 = parse_and();
-        if (result20 !== null) {
-          var result21 = parse_action();
-          if (result21 !== null) {
-            var result18 = [result20, result21];
-          } else {
-            var result18 = null;
-            pos = savedPos7;
-          }
-        } else {
-          var result18 = null;
-          pos = savedPos7;
-        }
-        var result19 = result18 !== null
-          ? (function(code) {
-                return {
-                  type: "semantic_and",
-                  code: code
-                };
-              })(result18[1])
-          : null;
-        if (result19 !== null) {
-          var result17 = result19;
-        } else {
-          var result17 = null;
-          pos = savedPos6;
-        }
-        if (result17 !== null) {
-          var result0 = result17;
-        } else {
-          var savedPos4 = pos;
-          var savedPos5 = pos;
-          var result15 = parse_and();
-          if (result15 !== null) {
-            var result16 = parse_suffixed();
-            if (result16 !== null) {
-              var result13 = [result15, result16];
-            } else {
-              var result13 = null;
-              pos = savedPos5;
-            }
-          } else {
-            var result13 = null;
-            pos = savedPos5;
-          }
-          var result14 = result13 !== null
-            ? (function(expression) {
-                  return {
-                    type:       "simple_and",
-                    expression: expression
-                  };
-                })(result13[1])
-            : null;
-          if (result14 !== null) {
-            var result12 = result14;
-          } else {
-            var result12 = null;
-            pos = savedPos4;
-          }
-          if (result12 !== null) {
-            var result0 = result12;
-          } else {
-            var savedPos2 = pos;
-            var savedPos3 = pos;
-            var result10 = parse_not();
-            if (result10 !== null) {
-              var result11 = parse_action();
-              if (result11 !== null) {
-                var result8 = [result10, result11];
-              } else {
-                var result8 = null;
-                pos = savedPos3;
-              }
-            } else {
-              var result8 = null;
-              pos = savedPos3;
-            }
-            var result9 = result8 !== null
-              ? (function(code) {
-                    return {
-                      type: "semantic_not",
-                      code: code
-                    };
-                  })(result8[1])
-              : null;
-            if (result9 !== null) {
-              var result7 = result9;
-            } else {
-              var result7 = null;
-              pos = savedPos2;
-            }
-            if (result7 !== null) {
-              var result0 = result7;
-            } else {
-              var savedPos0 = pos;
-              var savedPos1 = pos;
-              var result5 = parse_not();
-              if (result5 !== null) {
-                var result6 = parse_suffixed();
-                if (result6 !== null) {
-                  var result3 = [result5, result6];
-                } else {
-                  var result3 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result3 = null;
-                pos = savedPos1;
-              }
-              var result4 = result3 !== null
-                ? (function(expression) {
-                      return {
-                        type:       "simple_not",
-                        expression: expression
-                      };
-                    })(result3[1])
-                : null;
-              if (result4 !== null) {
-                var result2 = result4;
-              } else {
-                var result2 = null;
-                pos = savedPos0;
-              }
-              if (result2 !== null) {
-                var result0 = result2;
-              } else {
-                var result1 = parse_suffixed();
-                if (result1 !== null) {
-                  var result0 = result1;
-                } else {
-                  var result0 = null;;
-                };
-              };
-            };
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_suffixed() {
-        var cacheKey = 'suffixed@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos4 = pos;
-        var savedPos5 = pos;
-        var result15 = parse_primary();
-        if (result15 !== null) {
-          var result16 = parse_question();
-          if (result16 !== null) {
-            var result13 = [result15, result16];
-          } else {
-            var result13 = null;
-            pos = savedPos5;
-          }
-        } else {
-          var result13 = null;
-          pos = savedPos5;
-        }
-        var result14 = result13 !== null
-          ? (function(expression) {
-                return {
-                  type:       "optional",
-                  expression: expression
-                };
-              })(result13[0])
-          : null;
-        if (result14 !== null) {
-          var result12 = result14;
-        } else {
-          var result12 = null;
-          pos = savedPos4;
-        }
-        if (result12 !== null) {
-          var result0 = result12;
-        } else {
-          var savedPos2 = pos;
-          var savedPos3 = pos;
-          var result10 = parse_primary();
-          if (result10 !== null) {
-            var result11 = parse_star();
-            if (result11 !== null) {
-              var result8 = [result10, result11];
-            } else {
-              var result8 = null;
-              pos = savedPos3;
-            }
-          } else {
-            var result8 = null;
-            pos = savedPos3;
-          }
-          var result9 = result8 !== null
-            ? (function(expression) {
-                  return {
-                    type:       "zero_or_more",
-                    expression: expression
-                  };
-                })(result8[0])
-            : null;
-          if (result9 !== null) {
-            var result7 = result9;
-          } else {
-            var result7 = null;
-            pos = savedPos2;
-          }
-          if (result7 !== null) {
-            var result0 = result7;
-          } else {
-            var savedPos0 = pos;
-            var savedPos1 = pos;
-            var result5 = parse_primary();
-            if (result5 !== null) {
-              var result6 = parse_plus();
-              if (result6 !== null) {
-                var result3 = [result5, result6];
-              } else {
-                var result3 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result3 = null;
-              pos = savedPos1;
-            }
-            var result4 = result3 !== null
-              ? (function(expression) {
-                    return {
-                      type:       "one_or_more",
-                      expression: expression
-                    };
-                  })(result3[0])
-              : null;
-            if (result4 !== null) {
-              var result2 = result4;
-            } else {
-              var result2 = null;
-              pos = savedPos0;
-            }
-            if (result2 !== null) {
-              var result0 = result2;
-            } else {
-              var result1 = parse_primary();
-              if (result1 !== null) {
-                var result0 = result1;
-              } else {
-                var result0 = null;;
-              };
-            };
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_primary() {
-        var cacheKey = 'primary@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos4 = pos;
-        var savedPos5 = pos;
-        var result17 = parse_identifier();
-        if (result17 !== null) {
-          var savedPos6 = pos;
-          var savedReportMatchFailuresVar0 = reportMatchFailures;
-          reportMatchFailures = false;
-          var savedPos7 = pos;
-          var result23 = parse_literal();
-          if (result23 !== null) {
-            var result20 = result23;
-          } else {
-            if (input.substr(pos, 0) === "") {
-              var result22 = "";
-              pos += 0;
-            } else {
-              var result22 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"\"");
-              }
-            }
-            if (result22 !== null) {
-              var result20 = result22;
-            } else {
-              var result20 = null;;
-            };
-          }
-          if (result20 !== null) {
-            var result21 = parse_equals();
-            if (result21 !== null) {
-              var result19 = [result20, result21];
-            } else {
-              var result19 = null;
-              pos = savedPos7;
-            }
-          } else {
-            var result19 = null;
-            pos = savedPos7;
-          }
-          reportMatchFailures = savedReportMatchFailuresVar0;
-          if (result19 === null) {
-            var result18 = '';
-          } else {
-            var result18 = null;
-            pos = savedPos6;
-          }
-          if (result18 !== null) {
-            var result15 = [result17, result18];
-          } else {
-            var result15 = null;
-            pos = savedPos5;
-          }
-        } else {
-          var result15 = null;
-          pos = savedPos5;
-        }
-        var result16 = result15 !== null
-          ? (function(name) {
-                return {
-                  type: "rule_ref",
-                  name: name
-                };
-              })(result15[0])
-          : null;
-        if (result16 !== null) {
-          var result14 = result16;
-        } else {
-          var result14 = null;
-          pos = savedPos4;
-        }
-        if (result14 !== null) {
-          var result0 = result14;
-        } else {
-          var savedPos3 = pos;
-          var result12 = parse_literal();
-          var result13 = result12 !== null
-            ? (function(value) {
-                  return {
-                    type:  "literal",
-                    value: value
-                  };
-                })(result12)
-            : null;
-          if (result13 !== null) {
-            var result11 = result13;
-          } else {
-            var result11 = null;
-            pos = savedPos3;
-          }
-          if (result11 !== null) {
-            var result0 = result11;
-          } else {
-            var savedPos2 = pos;
-            var result9 = parse_dot();
-            var result10 = result9 !== null
-              ? (function() { return { type: "any" }; })()
-              : null;
-            if (result10 !== null) {
-              var result8 = result10;
-            } else {
-              var result8 = null;
-              pos = savedPos2;
-            }
-            if (result8 !== null) {
-              var result0 = result8;
-            } else {
-              var result7 = parse_class();
-              if (result7 !== null) {
-                var result0 = result7;
-              } else {
-                var savedPos0 = pos;
-                var savedPos1 = pos;
-                var result4 = parse_lparen();
-                if (result4 !== null) {
-                  var result5 = parse_choice();
-                  if (result5 !== null) {
-                    var result6 = parse_rparen();
-                    if (result6 !== null) {
-                      var result2 = [result4, result5, result6];
-                    } else {
-                      var result2 = null;
-                      pos = savedPos1;
-                    }
-                  } else {
-                    var result2 = null;
-                    pos = savedPos1;
-                  }
-                } else {
-                  var result2 = null;
-                  pos = savedPos1;
-                }
-                var result3 = result2 !== null
-                  ? (function(expression) { return expression; })(result2[1])
-                  : null;
-                if (result3 !== null) {
-                  var result1 = result3;
-                } else {
-                  var result1 = null;
-                  pos = savedPos0;
-                }
-                if (result1 !== null) {
-                  var result0 = result1;
-                } else {
-                  var result0 = null;;
-                };
-              };
-            };
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_action() {
-        var cacheKey = 'action@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        var savedReportMatchFailures = reportMatchFailures;
-        reportMatchFailures = false;
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_braced();
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(braced) { return braced.substr(1, braced.length - 2); })(result1[0])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        reportMatchFailures = savedReportMatchFailures;
-        if (reportMatchFailures && result0 === null) {
-          matchFailed("action");
-        }
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_braced() {
-        var cacheKey = 'braced@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "{") {
-          var result3 = "{";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"{\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = [];
-          var result8 = parse_braced();
-          if (result8 !== null) {
-            var result6 = result8;
-          } else {
-            var result7 = parse_nonBraceCharacter();
-            if (result7 !== null) {
-              var result6 = result7;
-            } else {
-              var result6 = null;;
-            };
-          }
-          while (result6 !== null) {
-            result4.push(result6);
-            var result8 = parse_braced();
-            if (result8 !== null) {
-              var result6 = result8;
-            } else {
-              var result7 = parse_nonBraceCharacter();
-              if (result7 !== null) {
-                var result6 = result7;
-              } else {
-                var result6 = null;;
-              };
-            }
-          }
-          if (result4 !== null) {
-            if (input.substr(pos, 1) === "}") {
-              var result5 = "}";
-              pos += 1;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"}\"");
-              }
-            }
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(parts) {
-                return "{" + parts.join("") + "}";
-              })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_nonBraceCharacters() {
-        var cacheKey = 'nonBraceCharacters@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var result3 = parse_nonBraceCharacter();
-        if (result3 !== null) {
-          var result1 = [];
-          while (result3 !== null) {
-            result1.push(result3);
-            var result3 = parse_nonBraceCharacter();
-          }
-        } else {
-          var result1 = null;
-        }
-        var result2 = result1 !== null
-          ? (function(chars) { return chars.join(""); })(result1)
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_nonBraceCharacter() {
-        var cacheKey = 'nonBraceCharacter@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.substr(pos).match(/^[^{}]/) !== null) {
-          var result0 = input.charAt(pos);
-          pos++;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed("[^{}]");
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_equals() {
-        var cacheKey = 'equals@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "=") {
-          var result3 = "=";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"=\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "="; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_colon() {
-        var cacheKey = 'colon@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === ":") {
-          var result3 = ":";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\":\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return ":"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_semicolon() {
-        var cacheKey = 'semicolon@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === ";") {
-          var result3 = ";";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\";\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return ";"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_slash() {
-        var cacheKey = 'slash@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "/") {
-          var result3 = "/";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"/\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "/"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_and() {
-        var cacheKey = 'and@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "&") {
-          var result3 = "&";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"&\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "&"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_not() {
-        var cacheKey = 'not@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "!") {
-          var result3 = "!";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"!\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "!"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_question() {
-        var cacheKey = 'question@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "?") {
-          var result3 = "?";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"?\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "?"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_star() {
-        var cacheKey = 'star@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "*") {
-          var result3 = "*";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"*\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "*"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_plus() {
-        var cacheKey = 'plus@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "+") {
-          var result3 = "+";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"+\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "+"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_lparen() {
-        var cacheKey = 'lparen@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "(") {
-          var result3 = "(";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"(\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "("; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_rparen() {
-        var cacheKey = 'rparen@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === ")") {
-          var result3 = ")";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\")\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return ")"; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_dot() {
-        var cacheKey = 'dot@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === ".") {
-          var result3 = ".";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\".\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return "."; })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_identifier() {
-        var cacheKey = 'identifier@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        var savedReportMatchFailures = reportMatchFailures;
-        reportMatchFailures = false;
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result13 = parse_letter();
-        if (result13 !== null) {
-          var result3 = result13;
-        } else {
-          if (input.substr(pos, 1) === "_") {
-            var result12 = "_";
-            pos += 1;
-          } else {
-            var result12 = null;
-            if (reportMatchFailures) {
-              matchFailed("\"_\"");
-            }
-          }
-          if (result12 !== null) {
-            var result3 = result12;
-          } else {
-            if (input.substr(pos, 1) === "$") {
-              var result11 = "$";
-              pos += 1;
-            } else {
-              var result11 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"$\"");
-              }
-            }
-            if (result11 !== null) {
-              var result3 = result11;
-            } else {
-              var result3 = null;;
-            };
-          };
-        }
-        if (result3 !== null) {
-          var result4 = [];
-          var result10 = parse_letter();
-          if (result10 !== null) {
-            var result6 = result10;
-          } else {
-            var result9 = parse_digit();
-            if (result9 !== null) {
-              var result6 = result9;
-            } else {
-              if (input.substr(pos, 1) === "_") {
-                var result8 = "_";
-                pos += 1;
-              } else {
-                var result8 = null;
-                if (reportMatchFailures) {
-                  matchFailed("\"_\"");
-                }
-              }
-              if (result8 !== null) {
-                var result6 = result8;
-              } else {
-                if (input.substr(pos, 1) === "$") {
-                  var result7 = "$";
-                  pos += 1;
-                } else {
-                  var result7 = null;
-                  if (reportMatchFailures) {
-                    matchFailed("\"$\"");
-                  }
-                }
-                if (result7 !== null) {
-                  var result6 = result7;
-                } else {
-                  var result6 = null;;
-                };
-              };
-            };
-          }
-          while (result6 !== null) {
-            result4.push(result6);
-            var result10 = parse_letter();
-            if (result10 !== null) {
-              var result6 = result10;
-            } else {
-              var result9 = parse_digit();
-              if (result9 !== null) {
-                var result6 = result9;
-              } else {
-                if (input.substr(pos, 1) === "_") {
-                  var result8 = "_";
-                  pos += 1;
-                } else {
-                  var result8 = null;
-                  if (reportMatchFailures) {
-                    matchFailed("\"_\"");
-                  }
-                }
-                if (result8 !== null) {
-                  var result6 = result8;
-                } else {
-                  if (input.substr(pos, 1) === "$") {
-                    var result7 = "$";
-                    pos += 1;
-                  } else {
-                    var result7 = null;
-                    if (reportMatchFailures) {
-                      matchFailed("\"$\"");
-                    }
-                  }
-                  if (result7 !== null) {
-                    var result6 = result7;
-                  } else {
-                    var result6 = null;;
-                  };
-                };
-              };
-            }
-          }
-          if (result4 !== null) {
-            var result5 = parse___();
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(head, tail) {
-                return head + tail.join("");
-              })(result1[0], result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        reportMatchFailures = savedReportMatchFailures;
-        if (reportMatchFailures && result0 === null) {
-          matchFailed("identifier");
-        }
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_literal() {
-        var cacheKey = 'literal@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        var savedReportMatchFailures = reportMatchFailures;
-        reportMatchFailures = false;
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result6 = parse_doubleQuotedLiteral();
-        if (result6 !== null) {
-          var result3 = result6;
-        } else {
-          var result5 = parse_singleQuotedLiteral();
-          if (result5 !== null) {
-            var result3 = result5;
-          } else {
-            var result3 = null;;
-          };
-        }
-        if (result3 !== null) {
-          var result4 = parse___();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(literal) { return literal; })(result1[0])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        reportMatchFailures = savedReportMatchFailures;
-        if (reportMatchFailures && result0 === null) {
-          matchFailed("literal");
-        }
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_doubleQuotedLiteral() {
-        var cacheKey = 'doubleQuotedLiteral@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "\"") {
-          var result3 = "\"";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"\\\"\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = [];
-          var result6 = parse_doubleQuotedCharacter();
-          while (result6 !== null) {
-            result4.push(result6);
-            var result6 = parse_doubleQuotedCharacter();
-          }
-          if (result4 !== null) {
-            if (input.substr(pos, 1) === "\"") {
-              var result5 = "\"";
-              pos += 1;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"\\\"\"");
-              }
-            }
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(chars) { return chars.join(""); })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_doubleQuotedCharacter() {
-        var cacheKey = 'doubleQuotedCharacter@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result6 = parse_simpleDoubleQuotedCharacter();
-        if (result6 !== null) {
-          var result0 = result6;
-        } else {
-          var result5 = parse_simpleEscapeSequence();
-          if (result5 !== null) {
-            var result0 = result5;
-          } else {
-            var result4 = parse_zeroEscapeSequence();
-            if (result4 !== null) {
-              var result0 = result4;
-            } else {
-              var result3 = parse_hexEscapeSequence();
-              if (result3 !== null) {
-                var result0 = result3;
-              } else {
-                var result2 = parse_unicodeEscapeSequence();
-                if (result2 !== null) {
-                  var result0 = result2;
-                } else {
-                  var result1 = parse_eolEscapeSequence();
-                  if (result1 !== null) {
-                    var result0 = result1;
-                  } else {
-                    var result0 = null;;
-                  };
-                };
-              };
-            };
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_simpleDoubleQuotedCharacter() {
-        var cacheKey = 'simpleDoubleQuotedCharacter@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var savedPos2 = pos;
-        var savedReportMatchFailuresVar0 = reportMatchFailures;
-        reportMatchFailures = false;
-        if (input.substr(pos, 1) === "\"") {
-          var result8 = "\"";
-          pos += 1;
-        } else {
-          var result8 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"\\\"\"");
-          }
-        }
-        if (result8 !== null) {
-          var result5 = result8;
-        } else {
-          if (input.substr(pos, 1) === "\\") {
-            var result7 = "\\";
-            pos += 1;
-          } else {
-            var result7 = null;
-            if (reportMatchFailures) {
-              matchFailed("\"\\\\\"");
-            }
-          }
-          if (result7 !== null) {
-            var result5 = result7;
-          } else {
-            var result6 = parse_eolChar();
-            if (result6 !== null) {
-              var result5 = result6;
-            } else {
-              var result5 = null;;
-            };
-          };
-        }
-        reportMatchFailures = savedReportMatchFailuresVar0;
-        if (result5 === null) {
-          var result3 = '';
-        } else {
-          var result3 = null;
-          pos = savedPos2;
-        }
-        if (result3 !== null) {
-          if (input.length > pos) {
-            var result4 = input.charAt(pos);
-            pos++;
-          } else {
-            var result4 = null;
-            if (reportMatchFailures) {
-              matchFailed('any character');
-            }
-          }
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(char_) { return char_; })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_singleQuotedLiteral() {
-        var cacheKey = 'singleQuotedLiteral@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "'") {
-          var result3 = "'";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"'\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = [];
-          var result6 = parse_singleQuotedCharacter();
-          while (result6 !== null) {
-            result4.push(result6);
-            var result6 = parse_singleQuotedCharacter();
-          }
-          if (result4 !== null) {
-            if (input.substr(pos, 1) === "'") {
-              var result5 = "'";
-              pos += 1;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"'\"");
-              }
-            }
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(chars) { return chars.join(""); })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_singleQuotedCharacter() {
-        var cacheKey = 'singleQuotedCharacter@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result6 = parse_simpleSingleQuotedCharacter();
-        if (result6 !== null) {
-          var result0 = result6;
-        } else {
-          var result5 = parse_simpleEscapeSequence();
-          if (result5 !== null) {
-            var result0 = result5;
-          } else {
-            var result4 = parse_zeroEscapeSequence();
-            if (result4 !== null) {
-              var result0 = result4;
-            } else {
-              var result3 = parse_hexEscapeSequence();
-              if (result3 !== null) {
-                var result0 = result3;
-              } else {
-                var result2 = parse_unicodeEscapeSequence();
-                if (result2 !== null) {
-                  var result0 = result2;
-                } else {
-                  var result1 = parse_eolEscapeSequence();
-                  if (result1 !== null) {
-                    var result0 = result1;
-                  } else {
-                    var result0 = null;;
-                  };
-                };
-              };
-            };
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_simpleSingleQuotedCharacter() {
-        var cacheKey = 'simpleSingleQuotedCharacter@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var savedPos2 = pos;
-        var savedReportMatchFailuresVar0 = reportMatchFailures;
-        reportMatchFailures = false;
-        if (input.substr(pos, 1) === "'") {
-          var result8 = "'";
-          pos += 1;
-        } else {
-          var result8 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"'\"");
-          }
-        }
-        if (result8 !== null) {
-          var result5 = result8;
-        } else {
-          if (input.substr(pos, 1) === "\\") {
-            var result7 = "\\";
-            pos += 1;
-          } else {
-            var result7 = null;
-            if (reportMatchFailures) {
-              matchFailed("\"\\\\\"");
-            }
-          }
-          if (result7 !== null) {
-            var result5 = result7;
-          } else {
-            var result6 = parse_eolChar();
-            if (result6 !== null) {
-              var result5 = result6;
-            } else {
-              var result5 = null;;
-            };
-          };
-        }
-        reportMatchFailures = savedReportMatchFailuresVar0;
-        if (result5 === null) {
-          var result3 = '';
-        } else {
-          var result3 = null;
-          pos = savedPos2;
-        }
-        if (result3 !== null) {
-          if (input.length > pos) {
-            var result4 = input.charAt(pos);
-            pos++;
-          } else {
-            var result4 = null;
-            if (reportMatchFailures) {
-              matchFailed('any character');
-            }
-          }
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(char_) { return char_; })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_class() {
-        var cacheKey = 'class@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        var savedReportMatchFailures = reportMatchFailures;
-        reportMatchFailures = false;
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "[") {
-          var result3 = "[";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"[\"");
-          }
-        }
-        if (result3 !== null) {
-          if (input.substr(pos, 1) === "^") {
-            var result11 = "^";
-            pos += 1;
-          } else {
-            var result11 = null;
-            if (reportMatchFailures) {
-              matchFailed("\"^\"");
-            }
-          }
-          var result4 = result11 !== null ? result11 : '';
-          if (result4 !== null) {
-            var result5 = [];
-            var result10 = parse_classCharacterRange();
-            if (result10 !== null) {
-              var result8 = result10;
-            } else {
-              var result9 = parse_classCharacter();
-              if (result9 !== null) {
-                var result8 = result9;
-              } else {
-                var result8 = null;;
-              };
-            }
-            while (result8 !== null) {
-              result5.push(result8);
-              var result10 = parse_classCharacterRange();
-              if (result10 !== null) {
-                var result8 = result10;
-              } else {
-                var result9 = parse_classCharacter();
-                if (result9 !== null) {
-                  var result8 = result9;
-                } else {
-                  var result8 = null;;
-                };
-              }
-            }
-            if (result5 !== null) {
-              if (input.substr(pos, 1) === "]") {
-                var result6 = "]";
-                pos += 1;
-              } else {
-                var result6 = null;
-                if (reportMatchFailures) {
-                  matchFailed("\"]\"");
-                }
-              }
-              if (result6 !== null) {
-                var result7 = parse___();
-                if (result7 !== null) {
-                  var result1 = [result3, result4, result5, result6, result7];
-                } else {
-                  var result1 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(inverted, parts) {
-                var partsConverted = map(parts, function(part) { return part.data; });
-                var rawText = "["
-                  + inverted
-                  + map(parts, function(part) { return part.rawText; }).join("")
-                  + "]";
-          
-                return {
-                  type:     "class",
-                  inverted: inverted === "^",
-                  parts:    partsConverted,
-                  // FIXME: Get the raw text from the input directly.
-                  rawText:  rawText
-                };
-              })(result1[1], result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        reportMatchFailures = savedReportMatchFailures;
-        if (reportMatchFailures && result0 === null) {
-          matchFailed("character class");
-        }
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_classCharacterRange() {
-        var cacheKey = 'classCharacterRange@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_classCharacter();
-        if (result3 !== null) {
-          if (input.substr(pos, 1) === "-") {
-            var result4 = "-";
-            pos += 1;
-          } else {
-            var result4 = null;
-            if (reportMatchFailures) {
-              matchFailed("\"-\"");
-            }
-          }
-          if (result4 !== null) {
-            var result5 = parse_classCharacter();
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(begin, end) {
-                if (begin.data.charCodeAt(0) > end.data.charCodeAt(0)) {
-                  throw new this.SyntaxError(
-                    "Invalid character range: " + begin.rawText + "-" + end.rawText + "."
-                  );
-                }
-          
-                return {
-                  data:    [begin.data, end.data],
-                  // FIXME: Get the raw text from the input directly.
-                  rawText: begin.rawText + "-" + end.rawText
-                }
-              })(result1[0], result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_classCharacter() {
-        var cacheKey = 'classCharacter@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var result1 = parse_bracketDelimitedCharacter();
-        var result2 = result1 !== null
-          ? (function(char_) {
-                return {
-                  data:    char_,
-                  // FIXME: Get the raw text from the input directly.
-                  rawText: quoteForRegexpClass(char_)
-                };
-              })(result1)
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_bracketDelimitedCharacter() {
-        var cacheKey = 'bracketDelimitedCharacter@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result6 = parse_simpleBracketDelimitedCharacter();
-        if (result6 !== null) {
-          var result0 = result6;
-        } else {
-          var result5 = parse_simpleEscapeSequence();
-          if (result5 !== null) {
-            var result0 = result5;
-          } else {
-            var result4 = parse_zeroEscapeSequence();
-            if (result4 !== null) {
-              var result0 = result4;
-            } else {
-              var result3 = parse_hexEscapeSequence();
-              if (result3 !== null) {
-                var result0 = result3;
-              } else {
-                var result2 = parse_unicodeEscapeSequence();
-                if (result2 !== null) {
-                  var result0 = result2;
-                } else {
-                  var result1 = parse_eolEscapeSequence();
-                  if (result1 !== null) {
-                    var result0 = result1;
-                  } else {
-                    var result0 = null;;
-                  };
-                };
-              };
-            };
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_simpleBracketDelimitedCharacter() {
-        var cacheKey = 'simpleBracketDelimitedCharacter@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var savedPos2 = pos;
-        var savedReportMatchFailuresVar0 = reportMatchFailures;
-        reportMatchFailures = false;
-        if (input.substr(pos, 1) === "]") {
-          var result8 = "]";
-          pos += 1;
-        } else {
-          var result8 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"]\"");
-          }
-        }
-        if (result8 !== null) {
-          var result5 = result8;
-        } else {
-          if (input.substr(pos, 1) === "\\") {
-            var result7 = "\\";
-            pos += 1;
-          } else {
-            var result7 = null;
-            if (reportMatchFailures) {
-              matchFailed("\"\\\\\"");
-            }
-          }
-          if (result7 !== null) {
-            var result5 = result7;
-          } else {
-            var result6 = parse_eolChar();
-            if (result6 !== null) {
-              var result5 = result6;
-            } else {
-              var result5 = null;;
-            };
-          };
-        }
-        reportMatchFailures = savedReportMatchFailuresVar0;
-        if (result5 === null) {
-          var result3 = '';
-        } else {
-          var result3 = null;
-          pos = savedPos2;
-        }
-        if (result3 !== null) {
-          if (input.length > pos) {
-            var result4 = input.charAt(pos);
-            pos++;
-          } else {
-            var result4 = null;
-            if (reportMatchFailures) {
-              matchFailed('any character');
-            }
-          }
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(char_) { return char_; })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-       

<TRUNCATED>

[17/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/lib/plist.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/lib/plist.js b/blackberry10/node_modules/plugman/node_modules/plist/lib/plist.js
deleted file mode 100644
index 379c5d1..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/lib/plist.js
+++ /dev/null
@@ -1,301 +0,0 @@
-;(function (exports, DOMParser, xmlbuilder) {
-	// Checks if running in a non-browser environment
- 	var inNode = typeof window === 'undefined' ? true : false
- 	  , utf8_to_b64
- 	  , b64_to_utf8;
-
- 	// this library runs in browsers and nodejs, set up functions accordingly
- 	if (inNode) {
- 		exports.parseFile = function (filename, callback) {
- 			console.warn('parseFile is deprecated. Please use parseFileSync instead.');
-    		var fs = require('fs');
-			var inxml = fs.readFileSync(filename, 'utf8');
-			exports.parseString(inxml, callback);
-  		}
-
-  		exports.parseFileSync = function (filename) {
-    		var fs = require('fs');
-			var inxml = fs.readFileSync(filename, 'utf8');
-			return exports.parseStringSync(inxml);
-  		}
-
-  		// set up base64 encode/decode functions
-  		utf8_to_b64= function ( str ) {
-  			return new Buffer(str).toString('base64');
-		}
-		b64_to_utf8 = function ( str ) {
-		    return new Buffer(str, 'base64').toString('utf8');
-		}
-  	} else {
-  		// we're in a browser context, find the DOMParser
-		if (typeof window.DOMParser != 'undefined') {
-		    DOMParser = function(xmlStr) {
-		        return ( new window.DOMParser() ).parseFromString(xmlStr, 'text/xml');
-		    };
-		} else if (typeof window.ActiveXObject != 'undefined' &&
-		       new window.ActiveXObject('Microsoft.XMLDOM')) {
-		    DOMParser = function(xmlStr) {
-		        var xmlDoc = new window.ActiveXObject('Microsoft.XMLDOM');
-		        xmlDoc.async = 'false';
-		        xmlDoc.loadXML(xmlStr);
-		        return xmlDoc;
-		    };
-		} else {
-		    throw new Error('No XML parser found');
-		}
-
-		// set up base64 encode/decode functions
-		if (typeof window.btoa == 'undefined') {
-			throw new Error('No base64 support found');
-			// TODO: shim btoa and atob if not present (ie < 10)
-			//http://stackoverflow.com/questions/246801/how-can-you-encode-to-base64-using-javascript/247261#247261
-		} else {
-			utf8_to_b64= function ( str ) {
-			    return window.btoa(unescape(encodeURIComponent( str )));
-			}
-			 
-			b64_to_utf8 = function ( str ) {
-			    return decodeURIComponent(escape(window.atob( str )));
-			}
-		}
-
-	}
-
-	exports.parseString = function (xml, callback) {
-		console.warn('parseString is deprecated. Please use parseStringSync instead.');
-		var doc, error, plist;
-		try {
-			doc = new DOMParser().parseFromString(xml);
-			plist = parsePlistXML(doc.documentElement);
-		} catch(e) {
-			error = e;
-		}
-		callback(error, plist);
-	}
-
-	exports.parseStringSync = function (xml) {
-		var doc = new DOMParser().parseFromString(xml);
-    var plist;
-		if (doc.documentElement.nodeName !== 'plist') {
-			throw new Error('malformed document. First element should be <plist>');
-		}
-		plist = parsePlistXML(doc.documentElement);
-
-		// if the plist is an array with 1 element, pull it out of the array
-		if(isArray(plist) && plist.length == 1) {
-			plist = plist[0]; 
-		}
-		return plist;
-	}
-
-	/**
-	 * convert an XML based plist document into a JSON representation
-	 * 
-	 * @param object xml_node current XML node in the plist
-	 * @return built up JSON object
-	 */
-	function parsePlistXML(node) {
-		var i, new_obj, key, val, new_arr;
-		if (!node)
-			return null;
-
-		if (node.nodeName === 'plist') {
-			new_arr = [];
-			for (i=0;i < node.childNodes.length;i++) {
-				// ignore comment nodes (text) 
-				if (node.childNodes[i].nodeType !== 3) {
-					new_arr.push( parsePlistXML(node.childNodes[i]));
-				}
-			}
-			return new_arr;
-		}
-		else if(node.nodeName === 'dict') {
-			new_obj = {};
-			key = null;
-			for (i=0;i < node.childNodes.length;i++) {
-				// ignore comment nodes (text) 
-				if (node.childNodes[i].nodeType !== 3) {
-					if (key === null) {
-						key = parsePlistXML(node.childNodes[i]);
-					} else {
-						new_obj[key] = parsePlistXML(node.childNodes[i]);
-						key = null;
-					}
-				}
-			}
-			return new_obj;
-		}
-		else if(node.nodeName === 'array') {
-			new_arr = [];
-			for (i=0;i < node.childNodes.length;i++) {
-				// ignore comment nodes (text) 
-				if (node.childNodes[i].nodeType !== 3) {
-					res = parsePlistXML(node.childNodes[i]);
-					if (res) new_arr.push( res );
-				}
-			}
-			return new_arr;
-		}
-		else if(node.nodeName === '#text') {
-			// TODO: what should we do with text types? (CDATA sections)
-		}
-		else if(node.nodeName === 'key') {
-			return node.childNodes[0].nodeValue;
-		}
-		else if(node.nodeName === 'string') {
-			var res = '';
-			for (var d=0; d < node.childNodes.length; d++)
-			{
-				res += node.childNodes[d].nodeValue;
-			}
-			return res;
-		}
-		else if(node.nodeName === 'integer') {
-			// parse as base 10 integer
-			return parseInt(node.childNodes[0].nodeValue, 10);
-		}
-		else if(node.nodeName === 'real') {
-			var res = '';
-			for (var d=0; d < node.childNodes.length; d++)
-			{
-				if(node.childNodes[d].nodeType === 3) {
-					res += node.childNodes[d].nodeValue;
-				}
-			}
-			return parseFloat(res);
-		}
-		else if(node.nodeName === 'data') {
-			var res = '';
-			for (var d=0; d < node.childNodes.length; d++)
-			{
-				if(node.childNodes[d].nodeType === 3) {
-					res += node.childNodes[d].nodeValue;
-				}
-			}
-		
-			// validate that the string is encoded as base64
-			var base64Matcher = new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$");
-			if (!base64Matcher.test(res.replace(/\s/g,'')) ) {
-				throw new Error('malformed document. <data> element is not base64 encoded');
-			}
-
-			// decode base64 data as utf8 string
-			return b64_to_utf8(res);
-		}
-		else if(node.nodeName === 'date') {
-			return new Date(node.childNodes[0].nodeValue);
-		}
-		else if(node.nodeName === 'true') {
-			return true;
-		}
-		else if(node.nodeName === 'false') {
-			return false;
-		}
-	}
-
-
-  function ISODateString(d){  
-    function pad(n){return n<10 ? '0'+n : n}  
-    return d.getUTCFullYear()+'-'  
-        + pad(d.getUTCMonth()+1)+'-'  
-        + pad(d.getUTCDate())+'T'  
-        + pad(d.getUTCHours())+':'  
-        + pad(d.getUTCMinutes())+':'  
-        + pad(d.getUTCSeconds())+'Z'  
-  }
-
-  // instanceof is horribly unreliable so we use these hackish but safer checks 
-  // http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray
-  function isArray(obj) {
-    return Object.prototype.toString.call(obj) === '[object Array]';
-  }
-
-  function isDate(obj) {
-    return Object.prototype.toString.call(obj) === '[object Date]';
-  }
-
-  function isBoolean(obj) {
-    return (obj === true || obj === false || toString.call(obj) == '[object Boolean]');
-  }
-
-  function isNumber(obj) {
-    return Object.prototype.toString.call(obj) === '[object Number]';
-  }
-
-  function isObject(obj) {
-    return Object.prototype.toString.call(obj) === '[object Object]';
-  }
-
-  function isString(obj) {
-    return Object.prototype.toString.call(obj) === '[object String]';
-  }
-
-  /**
-   * generate an XML plist string from the input object
-   *
-   * @param object obj the object to convert
-   * @return string converted plist
-   */
-  exports.build = function(obj) {
-    var XMLHDR = { 'version': '1.0','encoding': 'UTF-8'}
-        , XMLDTD = { 'ext': 'PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"'}
-        , doc = xmlbuilder.create()
-        , child = doc.begin('plist', XMLHDR, XMLDTD).att('version', '1.0');
-
-    walk_obj(obj, child);
-    return child.end({pretty: true });
-  }
-
-  // depth first, recursive traversal of a javascript object. when complete,
-  // next_child contains a reference to the build XML object.
-  function walk_obj(next, next_child) {
-    var tag_type, i, prop;
-
-    if(isArray(next)) {
-      next_child = next_child.ele('array');
-      for(i=0 ;i < next.length;i++) {
-        walk_obj(next[i], next_child);
-      }
-    }
-    else if (isObject(next)) {
-      if (inNode && next instanceof Buffer) {
-        next_child.ele('data').raw(next.toString('base64'));
-      } else {
-        next_child = next_child.ele('dict');
-        for(prop in next) {
-          if(next.hasOwnProperty(prop)) {
-            next_child.ele('key').txt(prop);
-            walk_obj(next[prop], next_child);
-          }
-        }
-      }
-    }
-    else if(isNumber(next)) {
-      // detect if this is an integer or real
-      tag_type =(next % 1 === 0) ? 'integer' : 'real';
-      next_child.ele(tag_type).txt(next.toString());
-    }
-    else if(isDate(next)) {
-      next_child.ele('date').raw(ISODateString(new Date(next)));
-    }
-    else if(isBoolean(next)) {
-      val = next ? 'true' : 'false';
-      next_child.ele(val);
-    }
-    else if(isString(next)) {
-      //if (str!=obj || str.indexOf("\n")>=0) str = "<![CDATA["+str+"]]>";
-      var base64Matcher = new RegExp("^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$");
-      if (!inNode && base64Matcher.test(next.replace(/\s/g,''))) {
-      	// data is base 64 encoded so assume it's a <data> node
-        next_child.ele('data').raw(utf8_to_b64(next));
-      } else {
-      	// it's not base 64 encoded, assume it's a <string> node
-      	next_child.ele('string').raw(next);
-      }
-    }
-  };
-
-})(typeof exports === 'undefined' ? plist = {} : exports, typeof window === 'undefined' ? require('xmldom').DOMParser : null, typeof window === 'undefined' ? require('xmlbuilder') : xmlbuilder)
-// the above line checks for exports (defined in node) and uses it, or creates 
-// a global variable and exports to that. also, if in node, require DOMParser
-// node-style, in browser it should already be present

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/.npmignore b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/.npmignore
deleted file mode 100644
index 29db527..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/.npmignore
+++ /dev/null
@@ -1,8 +0,0 @@
-.gitignore
-.travis.yml
-Makefile
-.git/
-src/
-test/
-node_modules/
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/README.md b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/README.md
deleted file mode 100644
index 4025ea5..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# xmlbuilder-js
-
-An XMLBuilder for [node.js](http://nodejs.org/) similar to 
-[java-xmlbuilder](http://code.google.com/p/java-xmlbuilder/).
-
-[![Build Status](https://secure.travis-ci.org/oozcitak/xmlbuilder-js.png)](http://travis-ci.org/oozcitak/xmlbuilder-js)
-
-### Installation:
-
-``` sh
-npm install xmlbuilder
-```
-
-### Important:
-
-I had to break compatibility while adding multiple instances in 0.1.3. 
-As a result, version from v0.1.3 are **not** compatible with previous versions.
-
-### Usage:
-
-``` js
-var builder = require('xmlbuilder');
-var xml = builder.create('root')
-  .ele('xmlbuilder', {'for': 'node-js'})
-    .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git')
-  .end({ pretty: true});
-    
-console.log(xml);
-```
-
-will result in:
-
-``` xml
-<?xml version="1.0"?>
-<root>
-  <xmlbuilder for="node-js">
-    <repo type="git">git://github.com/oozcitak/xmlbuilder-js.git</repo>
-  </xmlbuilder>
-</root>
-```
-
-If you need to do some processing:
-
-``` js
-var root = builder.create('squares');
-root.com('f(x) = x^2');
-for(var i = 1; i <= 5; i++)
-{
-  var item = root.ele('data');
-  item.att('x', i);
-  item.att('y', i * i);
-}
-```
-
-This will result in:
-
-``` xml
-<?xml version="1.0"?>
-<squares>
-  <!-- f(x) = x^2 -->
-  <data x="1" y="1"/>
-  <data x="2" y="4"/>
-  <data x="3" y="9"/>
-  <data x="4" y="16"/>
-  <data x="5" y="25"/>
-</squares>
-```
-
-See the [Usage](https://github.com/oozcitak/xmlbuilder-js/wiki/Usage) page in the wiki for more detailed instructions.
-
-### License:
-
-`xmlbuilder-js` is [MIT Licensed](http://opensource.org/licenses/mit-license.php).

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/XMLBuilder.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/XMLBuilder.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/XMLBuilder.js
deleted file mode 100644
index 2850c8a..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/XMLBuilder.js
+++ /dev/null
@@ -1,119 +0,0 @@
-// Generated by CoffeeScript 1.3.3
-(function() {
-  var XMLBuilder, XMLFragment;
-
-  XMLFragment = require('./XMLFragment');
-
-  XMLBuilder = (function() {
-
-    function XMLBuilder(name, xmldec, doctype) {
-      var att, child, _ref;
-      this.children = [];
-      this.rootObject = null;
-      if (this.is(name, 'Object')) {
-        _ref = [name, xmldec], xmldec = _ref[0], doctype = _ref[1];
-        name = null;
-      }
-      if (name != null) {
-        name = '' + name || '';
-        if (xmldec == null) {
-          xmldec = {
-            'version': '1.0'
-          };
-        }
-      }
-      if ((xmldec != null) && !(xmldec.version != null)) {
-        throw new Error("Version number is required");
-      }
-      if (xmldec != null) {
-        xmldec.version = '' + xmldec.version || '';
-        if (!xmldec.version.match(/1\.[0-9]+/)) {
-          throw new Error("Invalid version number: " + xmldec.version);
-        }
-        att = {
-          version: xmldec.version
-        };
-        if (xmldec.encoding != null) {
-          xmldec.encoding = '' + xmldec.encoding || '';
-          if (!xmldec.encoding.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/)) {
-            throw new Error("Invalid encoding: " + xmldec.encoding);
-          }
-          att.encoding = xmldec.encoding;
-        }
-        if (xmldec.standalone != null) {
-          att.standalone = xmldec.standalone ? "yes" : "no";
-        }
-        child = new XMLFragment(this, '?xml', att);
-        this.children.push(child);
-      }
-      if (doctype != null) {
-        att = {};
-        if (name != null) {
-          att.name = name;
-        }
-        if (doctype.ext != null) {
-          doctype.ext = '' + doctype.ext || '';
-          att.ext = doctype.ext;
-        }
-        child = new XMLFragment(this, '!DOCTYPE', att);
-        this.children.push(child);
-      }
-      if (name != null) {
-        this.begin(name);
-      }
-    }
-
-    XMLBuilder.prototype.begin = function(name, xmldec, doctype) {
-      var doc, root;
-      if (!(name != null)) {
-        throw new Error("Root element needs a name");
-      }
-      if (this.rootObject) {
-        this.children = [];
-        this.rootObject = null;
-      }
-      if (xmldec != null) {
-        doc = new XMLBuilder(name, xmldec, doctype);
-        return doc.root();
-      }
-      name = '' + name || '';
-      root = new XMLFragment(this, name, {});
-      root.isRoot = true;
-      root.documentObject = this;
-      this.children.push(root);
-      this.rootObject = root;
-      return root;
-    };
-
-    XMLBuilder.prototype.root = function() {
-      return this.rootObject;
-    };
-
-    XMLBuilder.prototype.end = function(options) {
-      return toString(options);
-    };
-
-    XMLBuilder.prototype.toString = function(options) {
-      var child, r, _i, _len, _ref;
-      r = '';
-      _ref = this.children;
-      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-        child = _ref[_i];
-        r += child.toString(options);
-      }
-      return r;
-    };
-
-    XMLBuilder.prototype.is = function(obj, type) {
-      var clas;
-      clas = Object.prototype.toString.call(obj).slice(8, -1);
-      return (obj != null) && clas === type;
-    };
-
-    return XMLBuilder;
-
-  })();
-
-  module.exports = XMLBuilder;
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/XMLFragment.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/XMLFragment.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/XMLFragment.js
deleted file mode 100644
index 7a0fff5..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/XMLFragment.js
+++ /dev/null
@@ -1,422 +0,0 @@
-// Generated by CoffeeScript 1.3.3
-(function() {
-  var XMLFragment,
-    __hasProp = {}.hasOwnProperty;
-
-  XMLFragment = (function() {
-
-    function XMLFragment(parent, name, attributes, text) {
-      this.isRoot = false;
-      this.documentObject = null;
-      this.parent = parent;
-      this.name = name;
-      this.attributes = attributes;
-      this.value = text;
-      this.children = [];
-    }
-
-    XMLFragment.prototype.element = function(name, attributes, text) {
-      var child, key, val, _ref, _ref1;
-      if (!(name != null)) {
-        throw new Error("Missing element name");
-      }
-      name = '' + name || '';
-      this.assertLegalChar(name);
-      if (attributes == null) {
-        attributes = {};
-      }
-      if (this.is(attributes, 'String') && this.is(text, 'Object')) {
-        _ref = [text, attributes], attributes = _ref[0], text = _ref[1];
-      } else if (this.is(attributes, 'String')) {
-        _ref1 = [{}, attributes], attributes = _ref1[0], text = _ref1[1];
-      }
-      for (key in attributes) {
-        if (!__hasProp.call(attributes, key)) continue;
-        val = attributes[key];
-        val = '' + val || '';
-        attributes[key] = this.escape(val);
-      }
-      child = new XMLFragment(this, name, attributes);
-      if (text != null) {
-        text = '' + text || '';
-        text = this.escape(text);
-        this.assertLegalChar(text);
-        child.raw(text);
-      }
-      this.children.push(child);
-      return child;
-    };
-
-    XMLFragment.prototype.insertBefore = function(name, attributes, text) {
-      var child, i, key, val, _ref, _ref1;
-      if (this.isRoot) {
-        throw new Error("Cannot insert elements at root level");
-      }
-      if (!(name != null)) {
-        throw new Error("Missing element name");
-      }
-      name = '' + name || '';
-      this.assertLegalChar(name);
-      if (attributes == null) {
-        attributes = {};
-      }
-      if (this.is(attributes, 'String') && this.is(text, 'Object')) {
-        _ref = [text, attributes], attributes = _ref[0], text = _ref[1];
-      } else if (this.is(attributes, 'String')) {
-        _ref1 = [{}, attributes], attributes = _ref1[0], text = _ref1[1];
-      }
-      for (key in attributes) {
-        if (!__hasProp.call(attributes, key)) continue;
-        val = attributes[key];
-        val = '' + val || '';
-        attributes[key] = this.escape(val);
-      }
-      child = new XMLFragment(this.parent, name, attributes);
-      if (text != null) {
-        text = '' + text || '';
-        text = this.escape(text);
-        this.assertLegalChar(text);
-        child.raw(text);
-      }
-      i = this.parent.children.indexOf(this);
-      this.parent.children.splice(i, 0, child);
-      return child;
-    };
-
-    XMLFragment.prototype.insertAfter = function(name, attributes, text) {
-      var child, i, key, val, _ref, _ref1;
-      if (this.isRoot) {
-        throw new Error("Cannot insert elements at root level");
-      }
-      if (!(name != null)) {
-        throw new Error("Missing element name");
-      }
-      name = '' + name || '';
-      this.assertLegalChar(name);
-      if (attributes == null) {
-        attributes = {};
-      }
-      if (this.is(attributes, 'String') && this.is(text, 'Object')) {
-        _ref = [text, attributes], attributes = _ref[0], text = _ref[1];
-      } else if (this.is(attributes, 'String')) {
-        _ref1 = [{}, attributes], attributes = _ref1[0], text = _ref1[1];
-      }
-      for (key in attributes) {
-        if (!__hasProp.call(attributes, key)) continue;
-        val = attributes[key];
-        val = '' + val || '';
-        attributes[key] = this.escape(val);
-      }
-      child = new XMLFragment(this.parent, name, attributes);
-      if (text != null) {
-        text = '' + text || '';
-        text = this.escape(text);
-        this.assertLegalChar(text);
-        child.raw(text);
-      }
-      i = this.parent.children.indexOf(this);
-      this.parent.children.splice(i + 1, 0, child);
-      return child;
-    };
-
-    XMLFragment.prototype.remove = function() {
-      var i, _ref;
-      if (this.isRoot) {
-        throw new Error("Cannot remove the root element");
-      }
-      i = this.parent.children.indexOf(this);
-      [].splice.apply(this.parent.children, [i, i - i + 1].concat(_ref = [])), _ref;
-      return this.parent;
-    };
-
-    XMLFragment.prototype.text = function(value) {
-      var child;
-      if (!(value != null)) {
-        throw new Error("Missing element text");
-      }
-      value = '' + value || '';
-      value = this.escape(value);
-      this.assertLegalChar(value);
-      child = new XMLFragment(this, '', {}, value);
-      this.children.push(child);
-      return this;
-    };
-
-    XMLFragment.prototype.cdata = function(value) {
-      var child;
-      if (!(value != null)) {
-        throw new Error("Missing CDATA text");
-      }
-      value = '' + value || '';
-      this.assertLegalChar(value);
-      if (value.match(/]]>/)) {
-        throw new Error("Invalid CDATA text: " + value);
-      }
-      child = new XMLFragment(this, '', {}, '<![CDATA[' + value + ']]>');
-      this.children.push(child);
-      return this;
-    };
-
-    XMLFragment.prototype.comment = function(value) {
-      var child;
-      if (!(value != null)) {
-        throw new Error("Missing comment text");
-      }
-      value = '' + value || '';
-      value = this.escape(value);
-      this.assertLegalChar(value);
-      if (value.match(/--/)) {
-        throw new Error("Comment text cannot contain double-hypen: " + value);
-      }
-      child = new XMLFragment(this, '', {}, '<!-- ' + value + ' -->');
-      this.children.push(child);
-      return this;
-    };
-
-    XMLFragment.prototype.raw = function(value) {
-      var child;
-      if (!(value != null)) {
-        throw new Error("Missing raw text");
-      }
-      value = '' + value || '';
-      child = new XMLFragment(this, '', {}, value);
-      this.children.push(child);
-      return this;
-    };
-
-    XMLFragment.prototype.up = function() {
-      if (this.isRoot) {
-        throw new Error("This node has no parent. Use doc() if you need to get the document object.");
-      }
-      return this.parent;
-    };
-
-    XMLFragment.prototype.root = function() {
-      var child;
-      if (this.isRoot) {
-        return this;
-      }
-      child = this.parent;
-      while (!child.isRoot) {
-        child = child.parent;
-      }
-      return child;
-    };
-
-    XMLFragment.prototype.document = function() {
-      return this.root().documentObject;
-    };
-
-    XMLFragment.prototype.end = function(options) {
-      return this.document().toString(options);
-    };
-
-    XMLFragment.prototype.prev = function() {
-      var i;
-      if (this.isRoot) {
-        throw new Error("Root node has no siblings");
-      }
-      i = this.parent.children.indexOf(this);
-      if (i < 1) {
-        throw new Error("Already at the first node");
-      }
-      return this.parent.children[i - 1];
-    };
-
-    XMLFragment.prototype.next = function() {
-      var i;
-      if (this.isRoot) {
-        throw new Error("Root node has no siblings");
-      }
-      i = this.parent.children.indexOf(this);
-      if (i === -1 || i === this.parent.children.length - 1) {
-        throw new Error("Already at the last node");
-      }
-      return this.parent.children[i + 1];
-    };
-
-    XMLFragment.prototype.clone = function(deep) {
-      var clonedSelf;
-      clonedSelf = new XMLFragment(this.parent, this.name, this.attributes, this.value);
-      if (deep) {
-        this.children.forEach(function(child) {
-          var clonedChild;
-          clonedChild = child.clone(deep);
-          clonedChild.parent = clonedSelf;
-          return clonedSelf.children.push(clonedChild);
-        });
-      }
-      return clonedSelf;
-    };
-
-    XMLFragment.prototype.importXMLBuilder = function(xmlbuilder) {
-      var clonedRoot;
-      clonedRoot = xmlbuilder.root().clone(true);
-      clonedRoot.parent = this;
-      this.children.push(clonedRoot);
-      clonedRoot.isRoot = false;
-      return this;
-    };
-
-    XMLFragment.prototype.attribute = function(name, value) {
-      var _ref;
-      if (!(name != null)) {
-        throw new Error("Missing attribute name");
-      }
-      if (!(value != null)) {
-        throw new Error("Missing attribute value");
-      }
-      name = '' + name || '';
-      value = '' + value || '';
-      if ((_ref = this.attributes) == null) {
-        this.attributes = {};
-      }
-      this.attributes[name] = this.escape(value);
-      return this;
-    };
-
-    XMLFragment.prototype.removeAttribute = function(name) {
-      if (!(name != null)) {
-        throw new Error("Missing attribute name");
-      }
-      name = '' + name || '';
-      delete this.attributes[name];
-      return this;
-    };
-
-    XMLFragment.prototype.toString = function(options, level) {
-      var attName, attValue, child, indent, newline, pretty, r, space, _i, _len, _ref, _ref1;
-      pretty = (options != null) && options.pretty || false;
-      indent = (options != null) && options.indent || '  ';
-      newline = (options != null) && options.newline || '\n';
-      level || (level = 0);
-      space = new Array(level + 1).join(indent);
-      r = '';
-      if (pretty) {
-        r += space;
-      }
-      if (!(this.value != null)) {
-        r += '<' + this.name;
-      } else {
-        r += '' + this.value;
-      }
-      _ref = this.attributes;
-      for (attName in _ref) {
-        attValue = _ref[attName];
-        if (this.name === '!DOCTYPE') {
-          r += ' ' + attValue;
-        } else {
-          r += ' ' + attName + '="' + attValue + '"';
-        }
-      }
-      if (this.children.length === 0) {
-        if (!(this.value != null)) {
-          r += this.name === '?xml' ? '?>' : this.name === '!DOCTYPE' ? '>' : '/>';
-        }
-        if (pretty) {
-          r += newline;
-        }
-      } else if (pretty && this.children.length === 1 && this.children[0].value) {
-        r += '>';
-        r += this.children[0].value;
-        r += '</' + this.name + '>';
-        r += newline;
-      } else {
-        r += '>';
-        if (pretty) {
-          r += newline;
-        }
-        _ref1 = this.children;
-        for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-          child = _ref1[_i];
-          r += child.toString(options, level + 1);
-        }
-        if (pretty) {
-          r += space;
-        }
-        r += '</' + this.name + '>';
-        if (pretty) {
-          r += newline;
-        }
-      }
-      return r;
-    };
-
-    XMLFragment.prototype.escape = function(str) {
-      return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/'/g, '&apos;').replace(/"/g, '&quot;');
-    };
-
-    XMLFragment.prototype.assertLegalChar = function(str) {
-      var chars, chr;
-      chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/;
-      chr = str.match(chars);
-      if (chr) {
-        throw new Error("Invalid character (" + chr + ") in string: " + str);
-      }
-    };
-
-    XMLFragment.prototype.is = function(obj, type) {
-      var clas;
-      clas = Object.prototype.toString.call(obj).slice(8, -1);
-      return (obj != null) && clas === type;
-    };
-
-    XMLFragment.prototype.ele = function(name, attributes, text) {
-      return this.element(name, attributes, text);
-    };
-
-    XMLFragment.prototype.txt = function(value) {
-      return this.text(value);
-    };
-
-    XMLFragment.prototype.dat = function(value) {
-      return this.cdata(value);
-    };
-
-    XMLFragment.prototype.att = function(name, value) {
-      return this.attribute(name, value);
-    };
-
-    XMLFragment.prototype.com = function(value) {
-      return this.comment(value);
-    };
-
-    XMLFragment.prototype.doc = function() {
-      return this.document();
-    };
-
-    XMLFragment.prototype.e = function(name, attributes, text) {
-      return this.element(name, attributes, text);
-    };
-
-    XMLFragment.prototype.t = function(value) {
-      return this.text(value);
-    };
-
-    XMLFragment.prototype.d = function(value) {
-      return this.cdata(value);
-    };
-
-    XMLFragment.prototype.a = function(name, value) {
-      return this.attribute(name, value);
-    };
-
-    XMLFragment.prototype.c = function(value) {
-      return this.comment(value);
-    };
-
-    XMLFragment.prototype.r = function(value) {
-      return this.raw(value);
-    };
-
-    XMLFragment.prototype.u = function() {
-      return this.up();
-    };
-
-    return XMLFragment;
-
-  })();
-
-  module.exports = XMLFragment;
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/index.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/index.js
deleted file mode 100644
index a930f5b..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/lib/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Generated by CoffeeScript 1.3.3
-(function() {
-  var XMLBuilder;
-
-  XMLBuilder = require('./XMLBuilder');
-
-  module.exports.create = function(name, xmldec, doctype) {
-    if (name != null) {
-      return new XMLBuilder(name, xmldec, doctype).root();
-    } else {
-      return new XMLBuilder();
-    }
-  };
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/package.json b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/package.json
deleted file mode 100644
index dcc7fad..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmlbuilder/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "name": "xmlbuilder",
-  "version": "0.4.2",
-  "keywords": [
-    "xml",
-    "xmlbuilder"
-  ],
-  "homepage": "http://github.com/oozcitak/xmlbuilder-js",
-  "description": "An XML builder for node.js",
-  "author": {
-    "name": "Ozgur Ozcitak",
-    "email": "oozcitak@gmail.com"
-  },
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "http://opensource.org/licenses/mit-license.php"
-    }
-  ],
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/oozcitak/xmlbuilder-js.git"
-  },
-  "bugs": {
-    "url": "http://github.com/oozcitak/xmlbuilder-js/issues"
-  },
-  "main": "./lib/index",
-  "engines": {
-    "node": ">=0.2.0"
-  },
-  "devDependencies": {
-    "coffee-script": "1.1.x"
-  },
-  "scripts": {
-    "test": "make test"
-  },
-  "readme": "# xmlbuilder-js\n\nAn XMLBuilder for [node.js](http://nodejs.org/) similar to \n[java-xmlbuilder](http://code.google.com/p/java-xmlbuilder/).\n\n[![Build Status](https://secure.travis-ci.org/oozcitak/xmlbuilder-js.png)](http://travis-ci.org/oozcitak/xmlbuilder-js)\n\n### Installation:\n\n``` sh\nnpm install xmlbuilder\n```\n\n### Important:\n\nI had to break compatibility while adding multiple instances in 0.1.3. \nAs a result, version from v0.1.3 are **not** compatible with previous versions.\n\n### Usage:\n\n``` js\nvar builder = require('xmlbuilder');\nvar xml = builder.create('root')\n  .ele('xmlbuilder', {'for': 'node-js'})\n    .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git')\n  .end({ pretty: true});\n    \nconsole.log(xml);\n```\n\nwill result in:\n\n``` xml\n<?xml version=\"1.0\"?>\n<root>\n  <xmlbuilder for=\"node-js\">\n    <repo type=\"git\">git://github.com/oozcitak/xmlbuilder-js.git</repo>\n  </xmlbuilder>\n</root>\n```\n\nIf yo
 u need to do some processing:\n\n``` js\nvar root = builder.create('squares');\nroot.com('f(x) = x^2');\nfor(var i = 1; i <= 5; i++)\n{\n  var item = root.ele('data');\n  item.att('x', i);\n  item.att('y', i * i);\n}\n```\n\nThis will result in:\n\n``` xml\n<?xml version=\"1.0\"?>\n<squares>\n  <!-- f(x) = x^2 -->\n  <data x=\"1\" y=\"1\"/>\n  <data x=\"2\" y=\"4\"/>\n  <data x=\"3\" y=\"9\"/>\n  <data x=\"4\" y=\"16\"/>\n  <data x=\"5\" y=\"25\"/>\n</squares>\n```\n\nSee the [Usage](https://github.com/oozcitak/xmlbuilder-js/wiki/Usage) page in the wiki for more detailed instructions.\n\n### License:\n\n`xmlbuilder-js` is [MIT Licensed](http://opensource.org/licenses/mit-license.php).\n",
-  "readmeFilename": "README.md",
-  "_id": "xmlbuilder@0.4.2",
-  "_from": "xmlbuilder@0.4.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.npmignore b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.npmignore
deleted file mode 100644
index 69b007c..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/node_modules
-/.proof.out

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.project
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.project b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.project
deleted file mode 100644
index 49691ce..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>xmldom</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-	</buildSpec>
-	<natures>
-	</natures>
-</projectDescription>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.travis.yml b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.travis.yml
deleted file mode 100644
index 245cc5d..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/.travis.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-language: node_js
-
-node_js:
-  - 0.8
-
-branches:
-  only:
-    - master
-    - proof
-    - travis-ci
-
-# Not using `npm install --dev` because it is recursive. It will pull in the all
-# development dependencies for CoffeeScript. Way too much spew in the Travis CI
-# build output.
-
-before_install:
-  - npm install
-  - npm install istanbul coveralls

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/__package__.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/__package__.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/__package__.js
deleted file mode 100644
index 93af349..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/__package__.js
+++ /dev/null
@@ -1,4 +0,0 @@
-this.addScript('dom.js',['DOMImplementation','XMLSerializer']);
-this.addScript('dom-parser.js',['DOMHandler','DOMParser'],
-		['DOMImplementation','XMLReader']);
-this.addScript('sax.js','XMLReader');
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/changelog
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/changelog b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/changelog
deleted file mode 100644
index ab815bb..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/changelog
+++ /dev/null
@@ -1,14 +0,0 @@
-### Version 0.1.16
-
-Sat May  4 14:58:03 UTC 2013
-
- * Correctly handle multibyte Unicode greater than two byts. #57. #56.
- * Initial unit testing and test coverage. #53. #46. #19.
- * Create Bower `component.json` #52.
-
-### Version 0.1.8
-
- * Add: some test case from node-o3-xml(excludes xpath support)
- * Fix: remove existed attribute before setting  (bug introduced in v0.1.5)
- * Fix: index direct access for childNodes and any NodeList collection(not w3c standard)
- * Fix: remove last child bug

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/component.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/component.json b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/component.json
deleted file mode 100644
index 93b4d57..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/component.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name": "xmldom",
-  "version": "0.1.15",
-  "main": "dom-parser.js",
-  "ignore": [
-    "**/.*",
-    "node_modules",
-    "components"
-  ]
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/dom-parser.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/dom-parser.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/dom-parser.js
deleted file mode 100644
index 29fa644..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/dom-parser.js
+++ /dev/null
@@ -1,253 +0,0 @@
-function DOMParser(options){
-	this.options = 
-			options != true && //To the version (0.1.12) compatible
-			options ||{locator:{}};
-	
-}
-DOMParser.prototype.parseFromString = function(source,mimeType){
-	var sax =  new XMLReader();
-	var options = this.options;
-	var domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler
-	var errorHandler = options.errorHandler;
-	var locator = options.locator;
-	var defaultNSMap = {};
-	var entityMap = {'lt':'<','gt':'>','amp':'&','quot':'"','apos':"'"}
-	if(locator){
-		domBuilder.setDocumentLocator(locator)
-	}
-	
-	sax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);
-	sax.domBuilder = options.domBuilder || domBuilder;
-	if(/\/x?html?$/.test(mimeType)){
-		entityMap.nbsp = '\xa0';
-		entityMap.copy = '\xa9';
-		defaultNSMap['']= 'http://www.w3.org/1999/xhtml';
-	}
-	sax.parse(source,defaultNSMap,entityMap);
-	return domBuilder.document;
-}
-function buildErrorHandler(errorImpl,domBuilder,locator){
-	if(!errorImpl){
-		if(domBuilder instanceof DOMHandler){
-			return domBuilder;
-		}
-		errorImpl = domBuilder ;
-	}
-	var errorHandler = {}
-	var isCallback = errorImpl instanceof Function;
-	locator = locator||{}
-	function build(key){
-		var fn = errorImpl[key];
-		if(!fn){
-			if(isCallback){
-				fn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;
-			}else{
-				var i=arguments.length;
-				while(--i){
-					if(fn = errorImpl[arguments[i]]){
-						break;
-					}
-				}
-			}
-		}
-		errorHandler[key] = fn && function(msg){
-			fn(msg+_locator(locator));
-		}||function(){};
-	}
-	build('warning','warn');
-	build('error','warn','warning');
-	build('fatalError','warn','warning','error');
-	return errorHandler;
-}
-/**
- * +ContentHandler+ErrorHandler
- * +LexicalHandler+EntityResolver2
- * -DeclHandler-DTDHandler 
- * 
- * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler
- * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2
- * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html
- */
-function DOMHandler() {
-    this.cdata = false;
-}
-function position(locator,node){
-	node.lineNumber = locator.lineNumber;
-	node.columnNumber = locator.columnNumber;
-}
-/**
- * @see org.xml.sax.ContentHandler#startDocument
- * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html
- */ 
-DOMHandler.prototype = {
-	startDocument : function() {
-    	this.document = new DOMImplementation().createDocument(null, null, null);
-    	if (this.locator) {
-        	this.document.documentURI = this.locator.systemId;
-    	}
-	},
-	startElement:function(namespaceURI, localName, qName, attrs) {
-		var doc = this.document;
-	    var el = doc.createElementNS(namespaceURI, qName||localName);
-	    var len = attrs.length;
-	    appendElement(this, el);
-	    this.currentElement = el;
-	    
-		this.locator && position(this.locator,el)
-	    for (var i = 0 ; i < len; i++) {
-	        var namespaceURI = attrs.getURI(i);
-	        var value = attrs.getValue(i);
-	        var qName = attrs.getQName(i);
-			var attr = doc.createAttributeNS(namespaceURI, qName);
-			if( attr.getOffset){
-				position(attr.getOffset(1),attr)
-			}
-			attr.value = attr.nodeValue = value;
-			el.setAttributeNode(attr)
-	    }
-	},
-	endElement:function(namespaceURI, localName, qName) {
-		var current = this.currentElement
-	    var tagName = current.tagName;
-	    this.currentElement = current.parentNode;
-	},
-	startPrefixMapping:function(prefix, uri) {
-	},
-	endPrefixMapping:function(prefix) {
-	},
-	processingInstruction:function(target, data) {
-	    var ins = this.document.createProcessingInstruction(target, data);
-	    this.locator && position(this.locator,ins)
-	    appendElement(this, ins);
-	},
-	ignorableWhitespace:function(ch, start, length) {
-	},
-	characters:function(chars, start, length) {
-		chars = _toString.apply(this,arguments)
-		//console.log(chars)
-		if(this.currentElement && chars){
-			if (this.cdata) {
-				var charNode = this.document.createCDATASection(chars);
-				this.currentElement.appendChild(charNode);
-			} else {
-				var charNode = this.document.createTextNode(chars);
-				this.currentElement.appendChild(charNode);
-			}
-			this.locator && position(this.locator,charNode)
-		}
-	},
-	skippedEntity:function(name) {
-	},
-	endDocument:function() {
-		this.document.normalize();
-	},
-	setDocumentLocator:function (locator) {
-	    if(this.locator = locator){// && !('lineNumber' in locator)){
-	    	locator.lineNumber = 0;
-	    }
-	},
-	//LexicalHandler
-	comment:function(chars, start, length) {
-		chars = _toString.apply(this,arguments)
-	    var comm = this.document.createComment(chars);
-	    this.locator && position(this.locator,comm)
-	    appendElement(this, comm);
-	},
-	
-	startCDATA:function() {
-	    //used in characters() methods
-	    this.cdata = true;
-	},
-	endCDATA:function() {
-	    this.cdata = false;
-	},
-	
-	startDTD:function(name, publicId, systemId) {
-		var impl = this.document.implementation;
-	    if (impl && impl.createDocumentType) {
-	        var dt = impl.createDocumentType(name, publicId, systemId);
-	        this.locator && position(this.locator,dt)
-	        appendElement(this, dt);
-	    }
-	},
-	/**
-	 * @see org.xml.sax.ErrorHandler
-	 * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html
-	 */
-	warning:function(error) {
-		console.warn(error,_locator(this.locator));
-	},
-	error:function(error) {
-		console.error(error,_locator(this.locator));
-	},
-	fatalError:function(error) {
-		console.error(error,_locator(this.locator));
-	    throw error;
-	}
-}
-function _locator(l){
-	if(l){
-		return '\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'
-	}
-}
-function _toString(chars,start,length){
-	if(typeof chars == 'string'){
-		return chars.substr(start,length)
-	}else{//java sax connect width xmldom on rhino(what about: "? && !(chars instanceof String)")
-		if(chars.length >= start+length || start){
-			return new java.lang.String(chars,start,length)+'';
-		}
-		return chars;
-	}
-}
-
-/*
- * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html
- * used method of org.xml.sax.ext.LexicalHandler:
- *  #comment(chars, start, length)
- *  #startCDATA()
- *  #endCDATA()
- *  #startDTD(name, publicId, systemId)
- *
- *
- * IGNORED method of org.xml.sax.ext.LexicalHandler:
- *  #endDTD()
- *  #startEntity(name)
- *  #endEntity(name)
- *
- *
- * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html
- * IGNORED method of org.xml.sax.ext.DeclHandler
- * 	#attributeDecl(eName, aName, type, mode, value)
- *  #elementDecl(name, model)
- *  #externalEntityDecl(name, publicId, systemId)
- *  #internalEntityDecl(name, value)
- * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html
- * IGNORED method of org.xml.sax.EntityResolver2
- *  #resolveEntity(String name,String publicId,String baseURI,String systemId)
- *  #resolveEntity(publicId, systemId)
- *  #getExternalSubset(name, baseURI)
- * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html
- * IGNORED method of org.xml.sax.DTDHandler
- *  #notationDecl(name, publicId, systemId) {};
- *  #unparsedEntityDecl(name, publicId, systemId, notationName) {};
- */
-"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(key){
-	DOMHandler.prototype[key] = function(){return null}
-})
-
-/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */
-function appendElement (hander,node) {
-    if (!hander.currentElement) {
-        hander.document.appendChild(node);
-    } else {
-        hander.currentElement.appendChild(node);
-    }
-}//appendChild and setAttributeNS are preformance key
-
-if(typeof require == 'function'){
-	var XMLReader = require('./sax').XMLReader;
-	var DOMImplementation = exports.DOMImplementation = require('./dom').DOMImplementation;
-	exports.XMLSerializer = require('./dom').XMLSerializer ;
-	exports.DOMParser = DOMParser;
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/dom.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/dom.js b/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/dom.js
deleted file mode 100644
index a8e1d16..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/node_modules/xmldom/dom.js
+++ /dev/null
@@ -1,1138 +0,0 @@
-/*
- * DOM Level 2
- * Object DOMException
- * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html
- * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html
- */
-
-function copy(src,dest){
-	for(var p in src){
-		dest[p] = src[p];
-	}
-}
-/**
-^\w+\.prototype\.([_\w]+)\s*=\s*((?:.*\{\s*?[\r\n][\s\S]*?^})|\S.*?(?=[;\r\n]));?
-^\w+\.prototype\.([_\w]+)\s*=\s*(\S.*?(?=[;\r\n]));?
- */
-function _extends(Class,Super){
-	var pt = Class.prototype;
-	if(Object.create){
-		var ppt = Object.create(Super.prototype)
-		pt.__proto__ = ppt;
-	}
-	if(!(pt instanceof Super)){
-		function t(){};
-		t.prototype = Super.prototype;
-		t = new t();
-		copy(pt,t);
-		Class.prototype = pt = t;
-	}
-	if(pt.constructor != Class){
-		if(typeof Class != 'function'){
-			console.error("unknow Class:"+Class)
-		}
-		pt.constructor = Class
-	}
-}
-var htmlns = 'http://www.w3.org/1999/xhtml' ;
-// Node Types
-var NodeType = {}
-var ELEMENT_NODE                = NodeType.ELEMENT_NODE                = 1;
-var ATTRIBUTE_NODE              = NodeType.ATTRIBUTE_NODE              = 2;
-var TEXT_NODE                   = NodeType.TEXT_NODE                   = 3;
-var CDATA_SECTION_NODE          = NodeType.CDATA_SECTION_NODE          = 4;
-var ENTITY_REFERENCE_NODE       = NodeType.ENTITY_REFERENCE_NODE       = 5;
-var ENTITY_NODE                 = NodeType.ENTITY_NODE                 = 6;
-var PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;
-var COMMENT_NODE                = NodeType.COMMENT_NODE                = 8;
-var DOCUMENT_NODE               = NodeType.DOCUMENT_NODE               = 9;
-var DOCUMENT_TYPE_NODE          = NodeType.DOCUMENT_TYPE_NODE          = 10;
-var DOCUMENT_FRAGMENT_NODE      = NodeType.DOCUMENT_FRAGMENT_NODE      = 11;
-var NOTATION_NODE               = NodeType.NOTATION_NODE               = 12;
-
-// ExceptionCode
-var ExceptionCode = {}
-var ExceptionMessage = {};
-var INDEX_SIZE_ERR              = ExceptionCode.INDEX_SIZE_ERR              = ((ExceptionMessage[1]="Index size error"),1);
-var DOMSTRING_SIZE_ERR          = ExceptionCode.DOMSTRING_SIZE_ERR          = ((ExceptionMessage[2]="DOMString size error"),2);
-var HIERARCHY_REQUEST_ERR       = ExceptionCode.HIERARCHY_REQUEST_ERR       = ((ExceptionMessage[3]="Hierarchy request error"),3);
-var WRONG_DOCUMENT_ERR          = ExceptionCode.WRONG_DOCUMENT_ERR          = ((ExceptionMessage[4]="Wrong document"),4);
-var INVALID_CHARACTER_ERR       = ExceptionCode.INVALID_CHARACTER_ERR       = ((ExceptionMessage[5]="Invalid character"),5);
-var NO_DATA_ALLOWED_ERR         = ExceptionCode.NO_DATA_ALLOWED_ERR         = ((ExceptionMessage[6]="No data allowed"),6);
-var NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]="No modification allowed"),7);
-var NOT_FOUND_ERR               = ExceptionCode.NOT_FOUND_ERR               = ((ExceptionMessage[8]="Not found"),8);
-var NOT_SUPPORTED_ERR           = ExceptionCode.NOT_SUPPORTED_ERR           = ((ExceptionMessage[9]="Not supported"),9);
-var INUSE_ATTRIBUTE_ERR         = ExceptionCode.INUSE_ATTRIBUTE_ERR         = ((ExceptionMessage[10]="Attribute in use"),10);
-//level2
-var INVALID_STATE_ERR        	= ExceptionCode.INVALID_STATE_ERR        	= ((ExceptionMessage[11]="Invalid state"),11);
-var SYNTAX_ERR               	= ExceptionCode.SYNTAX_ERR               	= ((ExceptionMessage[12]="Syntax error"),12);
-var INVALID_MODIFICATION_ERR 	= ExceptionCode.INVALID_MODIFICATION_ERR 	= ((ExceptionMessage[13]="Invalid modification"),13);
-var NAMESPACE_ERR            	= ExceptionCode.NAMESPACE_ERR           	= ((ExceptionMessage[14]="Invalid namespace"),14);
-var INVALID_ACCESS_ERR       	= ExceptionCode.INVALID_ACCESS_ERR      	= ((ExceptionMessage[15]="Invalid access"),15);
-
-
-function DOMException(code, message) {
-	if(message instanceof Error){
-		var error = message;
-	}else{
-		error = this;
-		Error.call(this, ExceptionMessage[code]);
-		this.message = ExceptionMessage[code];
-		if(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);
-	}
-	error.code = code;
-	if(message) this.message = this.message + ": " + message;
-	return error;
-};
-DOMException.prototype = Error.prototype;
-copy(ExceptionCode,DOMException)
-/**
- * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177
- * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.
- * The items in the NodeList are accessible via an integral index, starting from 0.
- */
-function NodeList() {
-};
-NodeList.prototype = {
-	/**
-	 * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.
-	 * @standard level1
-	 */
-	length:0, 
-	/**
-	 * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.
-	 * @standard level1
-	 * @param index  unsigned long 
-	 *   Index into the collection.
-	 * @return Node
-	 * 	The node at the indexth position in the NodeList, or null if that is not a valid index. 
-	 */
-	item: function(index) {
-		return this[index] || null;
-	}
-};
-function LiveNodeList(node,refresh){
-	this._node = node;
-	this._refresh = refresh
-	_updateLiveList(this);
-}
-function _updateLiveList(list){
-	var inc = list._node._inc || list._node.ownerDocument._inc;
-	if(list._inc != inc){
-		var ls = list._refresh(list._node);
-		//console.log(ls.length)
-		__set__(list,'length',ls.length);
-		copy(ls,list);
-		list._inc = inc;
-	}
-}
-LiveNodeList.prototype.item = function(i){
-	_updateLiveList(this);
-	return this[i];
-}
-
-_extends(LiveNodeList,NodeList);
-/**
- * 
- * Objects implementing the NamedNodeMap interface are used to represent collections of nodes that can be accessed by name. Note that NamedNodeMap does not inherit from NodeList; NamedNodeMaps are not maintained in any particular order. Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a NamedNodeMap, and does not imply that the DOM specifies an order to these Nodes.
- * NamedNodeMap objects in the DOM are live.
- * used for attributes or DocumentType entities 
- */
-function NamedNodeMap() {
-};
-
-function _findNodeIndex(list,node){
-	var i = list.length;
-	while(i--){
-		if(list[i] === node){return i}
-	}
-}
-
-function _addNamedNode(el,list,newAttr,oldAttr){
-	if(oldAttr){
-		list[_findNodeIndex(list,oldAttr)] = newAttr;
-	}else{
-		list[list.length++] = newAttr;
-	}
-	if(el){
-		newAttr.ownerElement = el;
-		var doc = el.ownerDocument;
-		if(doc){
-			oldAttr && _onRemoveAttribute(doc,el,oldAttr);
-			_onAddAttribute(doc,el,newAttr);
-		}
-	}
-}
-function _removeNamedNode(el,list,attr){
-	var i = _findNodeIndex(list,attr);
-	if(i>=0){
-		var lastIndex = list.length-1
-		while(i<lastIndex){
-			list[i] = list[++i]
-		}
-		list.length = lastIndex;
-		if(el){
-			var doc = el.ownerDocument;
-			if(doc){
-				_onRemoveAttribute(doc,el,attr);
-				attr.ownerElement = null;
-			}
-		}
-	}else{
-		throw DOMException(NOT_FOUND_ERR,new Error())
-	}
-}
-NamedNodeMap.prototype = {
-	length:0,
-	item:NodeList.prototype.item,
-	getNamedItem: function(key) {
-//		if(key.indexOf(':')>0 || key == 'xmlns'){
-//			return null;
-//		}
-		var i = this.length;
-		while(i--){
-			var attr = this[i];
-			if(attr.nodeName == key){
-				return attr;
-			}
-		}
-	},
-	setNamedItem: function(attr) {
-		var el = attr.ownerElement;
-		if(el && el!=this._ownerElement){
-			throw new DOMException(INUSE_ATTRIBUTE_ERR);
-		}
-		var oldAttr = this.getNamedItem(attr.nodeName);
-		_addNamedNode(this._ownerElement,this,attr,oldAttr);
-		return oldAttr;
-	},
-	/* returns Node */
-	setNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR
-		var el = attr.ownerElement, oldAttr;
-		if(el && el!=this._ownerElement){
-			throw new DOMException(INUSE_ATTRIBUTE_ERR);
-		}
-		oldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);
-		_addNamedNode(this._ownerElement,this,attr,oldAttr);
-		return oldAttr;
-	},
-
-	/* returns Node */
-	removeNamedItem: function(key) {
-		var attr = this.getNamedItem(key);
-		_removeNamedNode(this._ownerElement,this,attr);
-		return attr;
-		
-		
-	},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR
-	
-	//for level2
-	removeNamedItemNS:function(namespaceURI,localName){
-		var attr = this.getNamedItemNS(namespaceURI,localName);
-		_removeNamedNode(this._ownerElement,this,attr);
-		return attr;
-	},
-	getNamedItemNS: function(namespaceURI, localName) {
-		var i = this.length;
-		while(i--){
-			var node = this[i];
-			if(node.localName == localName && node.namespaceURI == namespaceURI){
-				return node;
-			}
-		}
-		return null;
-	}
-};
-/**
- * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490
- */
-function DOMImplementation(/* Object */ features) {
-	this._features = {};
-	if (features) {
-		for (var feature in features) {
-			 this._features = features[feature];
-		}
-	}
-};
-
-DOMImplementation.prototype = {
-	hasFeature: function(/* string */ feature, /* string */ version) {
-		var versions = this._features[feature.toLowerCase()];
-		if (versions && (!version || version in versions)) {
-			return true;
-		} else {
-			return false;
-		}
-	},
-	// Introduced in DOM Level 2:
-	createDocument:function(namespaceURI,  qualifiedName, doctype){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR
-		var doc = new Document();
-		doc.doctype = doctype;
-		if(doctype){
-			doc.appendChild(doctype);
-		}
-		doc.implementation = this;
-		doc.childNodes = new NodeList();
-		if(qualifiedName){
-			var root = doc.createElementNS(namespaceURI,qualifiedName);
-			doc.appendChild(root);
-		}
-		return doc;
-	},
-	// Introduced in DOM Level 2:
-	createDocumentType:function(qualifiedName, publicId, systemId){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR
-		var node = new DocumentType();
-		node.name = qualifiedName;
-		node.nodeName = qualifiedName;
-		node.publicId = publicId;
-		node.systemId = systemId;
-		// Introduced in DOM Level 2:
-		//readonly attribute DOMString        internalSubset;
-		
-		//TODO:..
-		//  readonly attribute NamedNodeMap     entities;
-		//  readonly attribute NamedNodeMap     notations;
-		return node;
-	}
-};
-
-
-/**
- * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247
- */
-
-function Node() {
-};
-
-Node.prototype = {
-	firstChild : null,
-	lastChild : null,
-	previousSibling : null,
-	nextSibling : null,
-	attributes : null,
-	parentNode : null,
-	childNodes : null,
-	ownerDocument : null,
-	nodeValue : null,
-	namespaceURI : null,
-	prefix : null,
-	localName : null,
-	// Modified in DOM Level 2:
-	insertBefore:function(newChild, refChild){//raises 
-		return _insertBefore(this,newChild,refChild);
-	},
-	replaceChild:function(newChild, oldChild){//raises 
-		this.insertBefore(newChild,oldChild);
-		if(oldChild){
-			this.removeChild(oldChild);
-		}
-	},
-	removeChild:function(oldChild){
-		return _removeChild(this,oldChild);
-	},
-	appendChild:function(newChild){
-		return this.insertBefore(newChild,null);
-	},
-	hasChildNodes:function(){
-		return this.firstChild != null;
-	},
-	cloneNode:function(deep){
-		return cloneNode(this.ownerDocument||this,this,deep);
-	},
-	// Modified in DOM Level 2:
-	normalize:function(){
-		var child = this.firstChild;
-		while(child){
-			var next = child.nextSibling;
-			if(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){
-				this.removeChild(next);
-				child.appendData(next.data);
-			}else{
-				child.normalize();
-				child = next;
-			}
-		}
-	},
-  	// Introduced in DOM Level 2:
-	isSupported:function(feature, version){
-		return this.ownerDocument.implementation.hasFeature(feature,version);
-	},
-    // Introduced in DOM Level 2:
-    hasAttributes:function(){
-    	return this.attributes.length>0;
-    },
-    lookupPrefix:function(namespaceURI){
-    	var el = this;
-    	while(el){
-    		var map = el._nsMap;
-    		//console.dir(map)
-    		if(map){
-    			for(var n in map){
-    				if(map[n] == namespaceURI){
-    					return n;
-    				}
-    			}
-    		}
-    		el = el.nodeType == 2?el.ownerDocument : el.parentNode;
-    	}
-    	return null;
-    },
-    // Introduced in DOM Level 3:
-    lookupNamespaceURI:function(prefix){
-    	var el = this;
-    	while(el){
-    		var map = el._nsMap;
-    		//console.dir(map)
-    		if(map){
-    			if(prefix in map){
-    				return map[prefix] ;
-    			}
-    		}
-    		el = el.nodeType == 2?el.ownerDocument : el.parentNode;
-    	}
-    	return null;
-    },
-    // Introduced in DOM Level 3:
-    isDefaultNamespace:function(namespaceURI){
-    	var prefix = this.lookupPrefix(namespaceURI);
-    	return prefix == null;
-    }
-};
-
-
-function _xmlEncoder(c){
-	return c == '<' && '&lt;' ||
-         c == '>' && '&gt;' ||
-         c == '&' && '&amp;' ||
-         c == '"' && '&quot;' ||
-         '&#'+c.charCodeAt()+';'
-}
-
-
-copy(NodeType,Node);
-copy(NodeType,Node.prototype);
-
-/**
- * @param callback return true for continue,false for break
- * @return boolean true: break visit;
- */
-function _visitNode(node,callback){
-	if(callback(node)){
-		return true;
-	}
-	if(node = node.firstChild){
-		do{
-			if(_visitNode(node,callback)){return true}
-        }while(node=node.nextSibling)
-    }
-}
-
-
-
-function Document(){
-}
-function _onAddAttribute(doc,el,newAttr){
-	doc && doc._inc++;
-	var ns = newAttr.namespaceURI ;
-	if(ns == 'http://www.w3.org/2000/xmlns/'){
-		//update namespace
-		el._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value
-	}
-}
-function _onRemoveAttribute(doc,el,newAttr,remove){
-	doc && doc._inc++;
-	var ns = newAttr.namespaceURI ;
-	if(ns == 'http://www.w3.org/2000/xmlns/'){
-		//update namespace
-		delete el._nsMap[newAttr.prefix?newAttr.localName:'']
-	}
-}
-function _onUpdateChild(doc,el,newChild){
-	if(doc && doc._inc){
-		doc._inc++;
-		//update childNodes
-		var cs = el.childNodes;
-		if(newChild){
-			cs[cs.length++] = newChild;
-		}else{
-			//console.log(1)
-			var child = el.firstChild;
-			var i = 0;
-			while(child){
-				cs[i++] = child;
-				child =child.nextSibling;
-			}
-			cs.length = i;
-		}
-	}
-}
-
-/**
- * attributes;
- * children;
- * 
- * writeable properties:
- * nodeValue,Attr:value,CharacterData:data
- * prefix
- */
-function _removeChild(parentNode,child){
-	var previous = child.previousSibling;
-	var next = child.nextSibling;
-	if(previous){
-		previous.nextSibling = next;
-	}else{
-		parentNode.firstChild = next
-	}
-	if(next){
-		next.previousSibling = previous;
-	}else{
-		parentNode.lastChild = previous;
-	}
-	_onUpdateChild(parentNode.ownerDocument,parentNode);
-	return child;
-}
-/**
- * preformance key(refChild == null)
- */
-function _insertBefore(parentNode,newChild,nextChild){
-	var cp = newChild.parentNode;
-	if(cp){
-		cp.removeChild(newChild);//remove and update
-	}
-	if(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){
-		var newFirst = newChild.firstChild;
-		if (newFirst == null) {
-			return newChild;
-		}
-		var newLast = newChild.lastChild;
-	}else{
-		newFirst = newLast = newChild;
-	}
-	var pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;
-
-	newFirst.previousSibling = pre;
-	newLast.nextSibling = nextChild;
-	
-	
-	if(pre){
-		pre.nextSibling = newFirst;
-	}else{
-		parentNode.firstChild = newFirst;
-	}
-	if(nextChild == null){
-		parentNode.lastChild = newLast;
-	}else{
-		nextChild.previousSibling = newLast;
-	}
-	do{
-		newFirst.parentNode = parentNode;
-	}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))
-	_onUpdateChild(parentNode.ownerDocument||parentNode,parentNode);
-	//console.log(parentNode.lastChild.nextSibling == null)
-	if (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {
-		newChild.firstChild = newChild.lastChild = null;
-	}
-	return newChild;
-}
-function _appendSingleChild(parentNode,newChild){
-	var cp = newChild.parentNode;
-	if(cp){
-		var pre = parentNode.lastChild;
-		cp.removeChild(newChild);//remove and update
-		var pre = parentNode.lastChild;
-	}
-	var pre = parentNode.lastChild;
-	newChild.parentNode = parentNode;
-	newChild.previousSibling = pre;
-	newChild.nextSibling = null;
-	if(pre){
-		pre.nextSibling = newChild;
-	}else{
-		parentNode.firstChild = newChild;
-	}
-	parentNode.lastChild = newChild;
-	_onUpdateChild(parentNode.ownerDocument,parentNode,newChild);
-	return newChild;
-	//console.log("__aa",parentNode.lastChild.nextSibling == null)
-}
-Document.prototype = {
-	//implementation : null,
-	nodeName :  '#document',
-	nodeType :  DOCUMENT_NODE,
-	doctype :  null,
-	documentElement :  null,
-	_inc : 1,
-	
-	insertBefore :  function(newChild, refChild){//raises 
-		if(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){
-			var child = newChild.firstChild;
-			while(child){
-				var next = child.nextSibling;
-				this.insertBefore(child,refChild);
-				child = next;
-			}
-			return newChild;
-		}
-		if(this.documentElement == null && newChild.nodeType == 1){
-			this.documentElement = newChild;
-		}
-		
-		return _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),newChild;
-	},
-	removeChild :  function(oldChild){
-		if(this.documentElement == oldChild){
-			this.documentElement = null;
-		}
-		return _removeChild(this,oldChild);
-	},
-	// Introduced in DOM Level 2:
-	importNode : function(importedNode,deep){
-		return importNode(this,importedNode,deep);
-	},
-	// Introduced in DOM Level 2:
-	getElementById :	function(id){
-		var rtv = null;
-		_visitNode(this.documentElement,function(node){
-			if(node.nodeType == 1){
-				if(node.getAttribute('id') == id){
-					rtv = node;
-					return true;
-				}
-			}
-		})
-		return rtv;
-	},
-	
-	//document factory method:
-	createElement :	function(tagName){
-		var node = new Element();
-		node.ownerDocument = this;
-		node.nodeName = tagName;
-		node.tagName = tagName;
-		node.childNodes = new NodeList();
-		var attrs	= node.attributes = new NamedNodeMap();
-		attrs._ownerElement = node;
-		return node;
-	},
-	createDocumentFragment :	function(){
-		var node = new DocumentFragment();
-		node.ownerDocument = this;
-		node.childNodes = new NodeList();
-		return node;
-	},
-	createTextNode :	function(data){
-		var node = new Text();
-		node.ownerDocument = this;
-		node.appendData(data)
-		return node;
-	},
-	createComment :	function(data){
-		var node = new Comment();
-		node.ownerDocument = this;
-		node.appendData(data)
-		return node;
-	},
-	createCDATASection :	function(data){
-		var node = new CDATASection();
-		node.ownerDocument = this;
-		node.appendData(data)
-		return node;
-	},
-	createProcessingInstruction :	function(target,data){
-		var node = new ProcessingInstruction();
-		node.ownerDocument = this;
-		node.tagName = node.target = target;
-		node.nodeValue= node.data = data;
-		return node;
-	},
-	createAttribute :	function(name){
-		var node = new Attr();
-		node.ownerDocument	= this;
-		node.name = name;
-		node.nodeName	= name;
-		node.localName = name;
-		node.specified = true;
-		return node;
-	},
-	createEntityReference :	function(name){
-		var node = new EntityReference();
-		node.ownerDocument	= this;
-		node.nodeName	= name;
-		return node;
-	},
-	// Introduced in DOM Level 2:
-	createElementNS :	function(namespaceURI,qualifiedName){
-		var node = new Element();
-		var pl = qualifiedName.split(':');
-		var attrs	= node.attributes = new NamedNodeMap();
-		node.childNodes = new NodeList();
-		node.ownerDocument = this;
-		node.nodeName = qualifiedName;
-		node.tagName = qualifiedName;
-		node.namespaceURI = namespaceURI;
-		if(pl.length == 2){
-			node.prefix = pl[0];
-			node.localName = pl[1];
-		}else{
-			//el.prefix = null;
-			node.localName = qualifiedName;
-		}
-		attrs._ownerElement = node;
-		return node;
-	},
-	// Introduced in DOM Level 2:
-	createAttributeNS :	function(namespaceURI,qualifiedName){
-		var node = new Attr();
-		var pl = qualifiedName.split(':');
-		node.ownerDocument = this;
-		node.nodeName = qualifiedName;
-		node.name = qualifiedName;
-		node.namespaceURI = namespaceURI;
-		node.specified = true;
-		if(pl.length == 2){
-			node.prefix = pl[0];
-			node.localName = pl[1];
-		}else{
-			//el.prefix = null;
-			node.localName = qualifiedName;
-		}
-		return node;
-	}
-};
-_extends(Document,Node);
-
-
-function Element() {
-	this._nsMap = {};
-};
-Element.prototype = {
-	nodeType : ELEMENT_NODE,
-	hasAttribute : function(name){
-		return this.getAttributeNode(name)!=null;
-	},
-	getAttribute : function(name){
-		var attr = this.getAttributeNode(name);
-		return attr && attr.value || '';
-	},
-	getAttributeNode : function(name){
-		return this.attributes.getNamedItem(name);
-	},
-	setAttribute : function(name, value){
-		var attr = this.ownerDocument.createAttribute(name);
-		attr.value = attr.nodeValue = "" + value;
-		this.setAttributeNode(attr)
-	},
-	removeAttribute : function(name){
-		var attr = this.getAttributeNode(name)
-		attr && this.removeAttributeNode(attr);
-	},
-	
-	//four real opeartion method
-	appendChild:function(newChild){
-		if(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){
-			return this.insertBefore(newChild,null);
-		}else{
-			return _appendSingleChild(this,newChild);
-		}
-	},
-	setAttributeNode : function(newAttr){
-		return this.attributes.setNamedItem(newAttr);
-	},
-	setAttributeNodeNS : function(newAttr){
-		return this.attributes.setNamedItemNS(newAttr);
-	},
-	removeAttributeNode : function(oldAttr){
-		return this.attributes.removeNamedItem(oldAttr.nodeName);
-	},
-	//get real attribute name,and remove it by removeAttributeNode
-	removeAttributeNS : function(namespaceURI, localName){
-		var old = this.getAttributeNodeNS(namespaceURI, localName);
-		old && this.removeAttributeNode(old);
-	},
-	
-	hasAttributeNS : function(namespaceURI, localName){
-		return this.getAttributeNodeNS(namespaceURI, localName)!=null;
-	},
-	getAttributeNS : function(namespaceURI, localName){
-		var attr = this.getAttributeNodeNS(namespaceURI, localName);
-		return attr && attr.value || '';
-	},
-	setAttributeNS : function(namespaceURI, qualifiedName, value){
-		var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);
-		attr.value = attr.nodeValue = value;
-		this.setAttributeNode(attr)
-	},
-	getAttributeNodeNS : function(namespaceURI, localName){
-		return this.attributes.getNamedItemNS(namespaceURI, localName);
-	},
-	
-	getElementsByTagName : function(tagName){
-		return new LiveNodeList(this,function(base){
-			var ls = [];
-			_visitNode(base,function(node){
-				if(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){
-					ls.push(node);
-				}
-			});
-			return ls;
-		});
-	},
-	getElementsByTagNameNS : function(namespaceURI, localName){
-		return new LiveNodeList(this,function(base){
-			var ls = [];
-			_visitNode(base,function(node){
-				if(node !== base && node.nodeType === ELEMENT_NODE && node.namespaceURI === namespaceURI && (localName === '*' || node.localName == localName)){
-					ls.push(node);
-				}
-			});
-			return ls;
-		});
-	}
-};
-Document.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;
-Document.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;
-
-
-_extends(Element,Node);
-function Attr() {
-};
-Attr.prototype.nodeType = ATTRIBUTE_NODE;
-_extends(Attr,Node);
-
-
-function CharacterData() {
-};
-CharacterData.prototype = {
-	data : '',
-	substringData : function(offset, count) {
-		return this.data.substring(offset, offset+count);
-	},
-	appendData: function(text) {
-		text = this.data+text;
-		this.nodeValue = this.data = text;
-		this.length = text.length;
-	},
-	insertData: function(offset,text) {
-		this.replaceData(offset,0,text);
-	
-	},
-	appendChild:function(newChild){
-		//if(!(newChild instanceof CharacterData)){
-			throw new Error(ExceptionMessage[3])
-		//}
-		return Node.prototype.appendChild.apply(this,arguments)
-	},
-	deleteData: function(offset, count) {
-		this.replaceData(offset,count,"");
-	},
-	replaceData: function(offset, count, text) {
-		var start = this.data.substring(0,offset);
-		var end = this.data.substring(offset+count);
-		text = start + text + end;
-		this.nodeValue = this.data = text;
-		this.length = text.length;
-	}
-}
-_extends(CharacterData,Node);
-function Text() {
-};
-Text.prototype = {
-	nodeName : "#text",
-	nodeType : TEXT_NODE,
-	splitText : function(offset) {
-		var text = this.data;
-		var newText = text.substring(offset);
-		text = text.substring(0, offset);
-		this.data = this.nodeValue = text;
-		this.length = text.length;
-		var newNode = this.ownerDocument.createTextNode(newText);
-		if(this.parentNode){
-			this.parentNode.insertBefore(newNode, this.nextSibling);
-		}
-		return newNode;
-	}
-}
-_extends(Text,CharacterData);
-function Comment() {
-};
-Comment.prototype = {
-	nodeName : "#comment",
-	nodeType : COMMENT_NODE
-}
-_extends(Comment,CharacterData);
-
-function CDATASection() {
-};
-CDATASection.prototype = {
-	nodeName : "#cdata-section",
-	nodeType : CDATA_SECTION_NODE
-}
-_extends(CDATASection,CharacterData);
-
-
-function DocumentType() {
-};
-DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;
-_extends(DocumentType,Node);
-
-function Notation() {
-};
-Notation.prototype.nodeType = NOTATION_NODE;
-_extends(Notation,Node);
-
-function Entity() {
-};
-Entity.prototype.nodeType = ENTITY_NODE;
-_extends(Entity,Node);
-
-function EntityReference() {
-};
-EntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;
-_extends(EntityReference,Node);
-
-function DocumentFragment() {
-};
-DocumentFragment.prototype.nodeName =	"#document-fragment";
-DocumentFragment.prototype.nodeType =	DOCUMENT_FRAGMENT_NODE;
-_extends(DocumentFragment,Node);
-
-
-function ProcessingInstruction() {
-}
-ProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;
-_extends(ProcessingInstruction,Node);
-function XMLSerializer(){}
-XMLSerializer.prototype.serializeToString = function(node){
-	var buf = [];
-	serializeToString(node,buf);
-	return buf.join('');
-}
-Node.prototype.toString =function(){
-	return XMLSerializer.prototype.serializeToString(this);
-}
-function serializeToString(node,buf){
-	switch(node.nodeType){
-	case ELEMENT_NODE:
-		var attrs = node.attributes;
-		var len = attrs.length;
-		var child = node.firstChild;
-		var nodeName = node.tagName;
-		var isHTML = htmlns === node.namespaceURI
-		buf.push('<',nodeName);
-		for(var i=0;i<len;i++){
-			serializeToString(attrs.item(i),buf,isHTML);
-		}
-		if(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){
-			buf.push('>');
-			//if is cdata child node
-			if(isHTML && /^script$/i.test(nodeName)){
-				if(child){
-					buf.push(child.data);
-				}
-			}else{
-				while(child){
-					serializeToString(child,buf);
-					child = child.nextSibling;
-				}
-			}
-			buf.push('</',nodeName,'>');
-		}else{
-			buf.push('/>');
-		}
-		return;
-	case DOCUMENT_NODE:
-	case DOCUMENT_FRAGMENT_NODE:
-		var child = node.firstChild;
-		while(child){
-			serializeToString(child,buf);
-			child = child.nextSibling;
-		}
-		return;
-	case ATTRIBUTE_NODE:
-		return buf.push(' ',node.name,'="',node.value.replace(/[<&"]/g,_xmlEncoder),'"');
-	case TEXT_NODE:
-		return buf.push(node.data.replace(/[<&]/g,_xmlEncoder));
-	case CDATA_SECTION_NODE:
-		return buf.push( '<![CDATA[',node.data,']]>');
-	case COMMENT_NODE:
-		return buf.push( "<!--",node.data,"-->");
-	case DOCUMENT_TYPE_NODE:
-		var pubid = node.publicId;
-		var sysid = node.systemId;
-		buf.push('<!DOCTYPE ',node.name);
-		if(pubid){
-			buf.push(' PUBLIC "',pubid);
-			if (sysid && sysid!='.') {
-				buf.push( '" "',sysid);
-			}
-			buf.push('">');
-		}else if(sysid && sysid!='.'){
-			buf.push(' SYSTEM "',sysid,'">');
-		}else{
-			var sub = node.internalSubset;
-			if(sub){
-				buf.push(" [",sub,"]");
-			}
-			buf.push(">");
-		}
-		return;
-	case PROCESSING_INSTRUCTION_NODE:
-		return buf.push( "<?",node.target," ",node.data,"?>");
-	case ENTITY_REFERENCE_NODE:
-		return buf.push( '&',node.nodeName,';');
-	//case ENTITY_NODE:
-	//case NOTATION_NODE:
-	default:
-		buf.push('??',node.nodeName);
-	}
-}
-function importNode(doc,node,deep){
-	var node2;
-	switch (node.nodeType) {
-	case ELEMENT_NODE:
-		node2 = node.cloneNode(false);
-		node2.ownerDocument = doc;
-		var attrs = node2.attributes;
-		var len = attrs.length;
-		for(var i=0;i<len;i++){
-			node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));
-		}
-	case DOCUMENT_FRAGMENT_NODE:
-		break;
-	case ATTRIBUTE_NODE:
-		deep = true;
-		break;
-	//case ENTITY_REFERENCE_NODE:
-	//case PROCESSING_INSTRUCTION_NODE:
-	////case TEXT_NODE:
-	//case CDATA_SECTION_NODE:
-	//case COMMENT_NODE:
-	//	deep = false;
-	//	break;
-	//case DOCUMENT_NODE:
-	//case DOCUMENT_TYPE_NODE:
-	//cannot be imported.
-	//case ENTITY_NODE:
-	//case NOTATION_NODE:
-	//can not hit in level3
-	//default:throw e;
-	}
-	if(!node2){
-		node2 = node.cloneNode(false);//false
-	}
-	node2.ownerDocument = doc;
-	node2.parentNode = null;
-	if(deep){
-		var child = node.firstChild;
-		while(child){
-			node2.appendChild(importNode(doc,child,deep));
-			child = child.nextSibling;
-		}
-	}
-	return node2;
-}
-//
-//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,
-//					attributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};
-function cloneNode(doc,node,deep){
-	var node2 = new node.constructor();
-	for(var n in node){
-		var v = node[n];
-		if(typeof v != 'object' ){
-			if(v != node2[n]){
-				node2[n] = v;
-			}
-		}
-	}
-	if(node.childNodes){
-		node2.childNodes = new NodeList();
-	}
-	node2.ownerDocument = doc;
-	switch (node2.nodeType) {
-	case ELEMENT_NODE:
-		var attrs	= node.attributes;
-		var attrs2	= node2.attributes = new NamedNodeMap();
-		var len = attrs.length
-		attrs2._ownerElement = node2;
-		for(var i=0;i<len;i++){
-			node2.setAttributeNode(cloneNode(doc,attrs.item(i),true));
-		}
-		break;;
-	case ATTRIBUTE_NODE:
-		deep = true;
-	}
-	if(deep){
-		var child = node.firstChild;
-		while(child){
-			node2.appendChild(cloneNode(doc,child,deep));
-			child = child.nextSibling;
-		}
-	}
-	return node2;
-}
-
-function __set__(object,key,value){
-	object[key] = value
-}
-//do dynamic
-try{
-	if(Object.defineProperty){
-		Object.defineProperty(LiveNodeList.prototype,'length',{
-			get:function(){
-				_updateLiveList(this);
-				return this.$$length;
-			}
-		});
-		Object.defineProperty(Node.prototype,'textContent',{
-			get:function(){
-				return getTextContent(this);
-			},
-			set:function(data){
-				switch(this.nodeType){
-				case 1:
-				case 11:
-					while(this.firstChild){
-						this.removeChild(this.firstChild);
-					}
-					if(data || String(data)){
-						this.appendChild(this.ownerDocument.createTextNode(data));
-					}
-					break;
-				default:
-					//TODO:
-					this.data = data;
-					this.value = value;
-					this.nodeValue = data;
-				}
-			}
-		})
-		
-		function getTextContent(node){
-			switch(node.nodeType){
-			case 1:
-			case 11:
-				var buf = [];
-				node = node.firstChild;
-				while(node){
-					if(node.nodeType!==7 && node.nodeType !==8){
-						buf.push(getTextContent(node));
-					}
-					node = node.nextSibling;
-				}
-				return buf.join('');
-			default:
-				return node.nodeValue;
-			}
-		}
-		__set__ = function(object,key,value){
-			//console.log(value)
-			object['$$'+key] = value
-		}
-	}
-}catch(e){//ie8
-}
-
-if(typeof require == 'function'){
-	exports.DOMImplementation = DOMImplementation;
-	exports.XMLSerializer = XMLSerializer;
-}


[37/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/repl.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/repl.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/repl.js
deleted file mode 100644
index 6c79291..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/repl.js
+++ /dev/null
@@ -1,159 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var CoffeeScript, addHistory, addMultilineHandler, fs, merge, nodeREPL, path, prettyErrorMessage, replDefaults, vm, _ref;
-
-  fs = require('fs');
-
-  path = require('path');
-
-  vm = require('vm');
-
-  nodeREPL = require('repl');
-
-  CoffeeScript = require('./coffee-script');
-
-  _ref = require('./helpers'), merge = _ref.merge, prettyErrorMessage = _ref.prettyErrorMessage;
-
-  replDefaults = {
-    prompt: 'coffee> ',
-    historyFile: process.env.HOME ? path.join(process.env.HOME, '.coffee_history') : void 0,
-    historyMaxInputSize: 10240,
-    "eval": function(input, context, filename, cb) {
-      var Assign, Block, Literal, Value, ast, err, js, _ref1;
-      input = input.replace(/\uFF00/g, '\n');
-      input = input.replace(/^\(([\s\S]*)\n\)$/m, '$1');
-      _ref1 = require('./nodes'), Block = _ref1.Block, Assign = _ref1.Assign, Value = _ref1.Value, Literal = _ref1.Literal;
-      try {
-        ast = CoffeeScript.nodes(input);
-        ast = new Block([new Assign(new Value(new Literal('_')), ast, '=')]);
-        js = ast.compile({
-          bare: true,
-          locals: Object.keys(context)
-        });
-        return cb(null, vm.runInContext(js, context, filename));
-      } catch (_error) {
-        err = _error;
-        return cb(prettyErrorMessage(err, filename, input, true));
-      }
-    }
-  };
-
-  addMultilineHandler = function(repl) {
-    var inputStream, multiline, nodeLineListener, outputStream, rli;
-    rli = repl.rli, inputStream = repl.inputStream, outputStream = repl.outputStream;
-    multiline = {
-      enabled: false,
-      initialPrompt: repl.prompt.replace(/^[^> ]*/, function(x) {
-        return x.replace(/./g, '-');
-      }),
-      prompt: repl.prompt.replace(/^[^> ]*>?/, function(x) {
-        return x.replace(/./g, '.');
-      }),
-      buffer: ''
-    };
-    nodeLineListener = rli.listeners('line')[0];
-    rli.removeListener('line', nodeLineListener);
-    rli.on('line', function(cmd) {
-      if (multiline.enabled) {
-        multiline.buffer += "" + cmd + "\n";
-        rli.setPrompt(multiline.prompt);
-        rli.prompt(true);
-      } else {
-        nodeLineListener(cmd);
-      }
-    });
-    return inputStream.on('keypress', function(char, key) {
-      if (!(key && key.ctrl && !key.meta && !key.shift && key.name === 'v')) {
-        return;
-      }
-      if (multiline.enabled) {
-        if (!multiline.buffer.match(/\n/)) {
-          multiline.enabled = !multiline.enabled;
-          rli.setPrompt(repl.prompt);
-          rli.prompt(true);
-          return;
-        }
-        if ((rli.line != null) && !rli.line.match(/^\s*$/)) {
-          return;
-        }
-        multiline.enabled = !multiline.enabled;
-        rli.line = '';
-        rli.cursor = 0;
-        rli.output.cursorTo(0);
-        rli.output.clearLine(1);
-        multiline.buffer = multiline.buffer.replace(/\n/g, '\uFF00');
-        rli.emit('line', multiline.buffer);
-        multiline.buffer = '';
-      } else {
-        multiline.enabled = !multiline.enabled;
-        rli.setPrompt(multiline.initialPrompt);
-        rli.prompt(true);
-      }
-    });
-  };
-
-  addHistory = function(repl, filename, maxSize) {
-    var buffer, fd, lastLine, readFd, size, stat;
-    lastLine = null;
-    try {
-      stat = fs.statSync(filename);
-      size = Math.min(maxSize, stat.size);
-      readFd = fs.openSync(filename, 'r');
-      buffer = new Buffer(size);
-      fs.readSync(readFd, buffer, 0, size, stat.size - size);
-      repl.rli.history = buffer.toString().split('\n').reverse();
-      if (stat.size > maxSize) {
-        repl.rli.history.pop();
-      }
-      if (repl.rli.history[0] === '') {
-        repl.rli.history.shift();
-      }
-      repl.rli.historyIndex = -1;
-      lastLine = repl.rli.history[0];
-    } catch (_error) {}
-    fd = fs.openSync(filename, 'a');
-    repl.rli.addListener('line', function(code) {
-      if (code && code.length && code !== '.history' && lastLine !== code) {
-        fs.write(fd, "" + code + "\n");
-        return lastLine = code;
-      }
-    });
-    repl.rli.on('exit', function() {
-      return fs.close(fd);
-    });
-    return repl.commands['.history'] = {
-      help: 'Show command history',
-      action: function() {
-        repl.outputStream.write("" + (repl.rli.history.slice(0).reverse().join('\n')) + "\n");
-        return repl.displayPrompt();
-      }
-    };
-  };
-
-  module.exports = {
-    start: function(opts) {
-      var build, major, minor, repl, _ref1;
-      if (opts == null) {
-        opts = {};
-      }
-      _ref1 = process.versions.node.split('.').map(function(n) {
-        return parseInt(n);
-      }), major = _ref1[0], minor = _ref1[1], build = _ref1[2];
-      if (major === 0 && minor < 8) {
-        console.warn("Node 0.8.0+ required for CoffeeScript REPL");
-        process.exit(1);
-      }
-      opts = merge(replDefaults, opts);
-      repl = nodeREPL.start(opts);
-      repl.on('exit', function() {
-        return repl.outputStream.write('\n');
-      });
-      addMultilineHandler(repl);
-      if (opts.historyFile) {
-        addHistory(repl, opts.historyFile, opts.historyMaxInputSize);
-      }
-      return repl;
-    }
-  };
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/rewriter.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/rewriter.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/rewriter.js
deleted file mode 100644
index 11f36a3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/rewriter.js
+++ /dev/null
@@ -1,485 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var BALANCED_PAIRS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, generate, left, rite, _i, _len, _ref,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
-    __slice = [].slice;
-
-  generate = function(tag, value) {
-    var tok;
-    tok = [tag, value];
-    tok.generated = true;
-    return tok;
-  };
-
-  exports.Rewriter = (function() {
-    function Rewriter() {}
-
-    Rewriter.prototype.rewrite = function(tokens) {
-      this.tokens = tokens;
-      this.removeLeadingNewlines();
-      this.removeMidExpressionNewlines();
-      this.closeOpenCalls();
-      this.closeOpenIndexes();
-      this.addImplicitIndentation();
-      this.tagPostfixConditionals();
-      this.addImplicitBracesAndParens();
-      this.addLocationDataToGeneratedTokens();
-      return this.tokens;
-    };
-
-    Rewriter.prototype.scanTokens = function(block) {
-      var i, token, tokens;
-      tokens = this.tokens;
-      i = 0;
-      while (token = tokens[i]) {
-        i += block.call(this, token, i, tokens);
-      }
-      return true;
-    };
-
-    Rewriter.prototype.detectEnd = function(i, condition, action) {
-      var levels, token, tokens, _ref, _ref1;
-      tokens = this.tokens;
-      levels = 0;
-      while (token = tokens[i]) {
-        if (levels === 0 && condition.call(this, token, i)) {
-          return action.call(this, token, i);
-        }
-        if (!token || levels < 0) {
-          return action.call(this, token, i - 1);
-        }
-        if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) {
-          levels += 1;
-        } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) {
-          levels -= 1;
-        }
-        i += 1;
-      }
-      return i - 1;
-    };
-
-    Rewriter.prototype.removeLeadingNewlines = function() {
-      var i, tag, _i, _len, _ref;
-      _ref = this.tokens;
-      for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
-        tag = _ref[i][0];
-        if (tag !== 'TERMINATOR') {
-          break;
-        }
-      }
-      if (i) {
-        return this.tokens.splice(0, i);
-      }
-    };
-
-    Rewriter.prototype.removeMidExpressionNewlines = function() {
-      return this.scanTokens(function(token, i, tokens) {
-        var _ref;
-        if (!(token[0] === 'TERMINATOR' && (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0))) {
-          return 1;
-        }
-        tokens.splice(i, 1);
-        return 0;
-      });
-    };
-
-    Rewriter.prototype.closeOpenCalls = function() {
-      var action, condition;
-      condition = function(token, i) {
-        var _ref;
-        return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')';
-      };
-      action = function(token, i) {
-        return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END';
-      };
-      return this.scanTokens(function(token, i) {
-        if (token[0] === 'CALL_START') {
-          this.detectEnd(i + 1, condition, action);
-        }
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.closeOpenIndexes = function() {
-      var action, condition;
-      condition = function(token, i) {
-        var _ref;
-        return (_ref = token[0]) === ']' || _ref === 'INDEX_END';
-      };
-      action = function(token, i) {
-        return token[0] = 'INDEX_END';
-      };
-      return this.scanTokens(function(token, i) {
-        if (token[0] === 'INDEX_START') {
-          this.detectEnd(i + 1, condition, action);
-        }
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.matchTags = function() {
-      var fuzz, i, j, pattern, _i, _ref, _ref1;
-      i = arguments[0], pattern = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
-      fuzz = 0;
-      for (j = _i = 0, _ref = pattern.length; 0 <= _ref ? _i < _ref : _i > _ref; j = 0 <= _ref ? ++_i : --_i) {
-        while (this.tag(i + j + fuzz) === 'HERECOMMENT') {
-          fuzz += 2;
-        }
-        if (pattern[j] == null) {
-          continue;
-        }
-        if (typeof pattern[j] === 'string') {
-          pattern[j] = [pattern[j]];
-        }
-        if (_ref1 = this.tag(i + j + fuzz), __indexOf.call(pattern[j], _ref1) < 0) {
-          return false;
-        }
-      }
-      return true;
-    };
-
-    Rewriter.prototype.looksObjectish = function(j) {
-      return this.matchTags(j, '@', null, ':') || this.matchTags(j, null, ':');
-    };
-
-    Rewriter.prototype.findTagsBackwards = function(i, tags) {
-      var backStack, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;
-      backStack = [];
-      while (i >= 0 && (backStack.length || (_ref2 = this.tag(i), __indexOf.call(tags, _ref2) < 0) && ((_ref3 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref3) < 0) || this.tokens[i].generated) && (_ref4 = this.tag(i), __indexOf.call(LINEBREAKS, _ref4) < 0))) {
-        if (_ref = this.tag(i), __indexOf.call(EXPRESSION_END, _ref) >= 0) {
-          backStack.push(this.tag(i));
-        }
-        if ((_ref1 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref1) >= 0) && backStack.length) {
-          backStack.pop();
-        }
-        i -= 1;
-      }
-      return _ref5 = this.tag(i), __indexOf.call(tags, _ref5) >= 0;
-    };
-
-    Rewriter.prototype.addImplicitBracesAndParens = function() {
-      var stack;
-      stack = [];
-      return this.scanTokens(function(token, i, tokens) {
-        var endImplicitCall, endImplicitObject, forward, inImplicit, inImplicitCall, inImplicitControl, inImplicitObject, nextTag, offset, prevTag, s, sameLine, stackIdx, stackTag, stackTop, startIdx, startImplicitCall, startImplicitObject, startsLine, tag, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;
-        tag = token[0];
-        prevTag = (i > 0 ? tokens[i - 1] : [])[0];
-        nextTag = (i < tokens.length - 1 ? tokens[i + 1] : [])[0];
-        stackTop = function() {
-          return stack[stack.length - 1];
-        };
-        startIdx = i;
-        forward = function(n) {
-          return i - startIdx + n;
-        };
-        inImplicit = function() {
-          var _ref, _ref1;
-          return (_ref = stackTop()) != null ? (_ref1 = _ref[2]) != null ? _ref1.ours : void 0 : void 0;
-        };
-        inImplicitCall = function() {
-          var _ref;
-          return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '(';
-        };
-        inImplicitObject = function() {
-          var _ref;
-          return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '{';
-        };
-        inImplicitControl = function() {
-          var _ref;
-          return inImplicit && ((_ref = stackTop()) != null ? _ref[0] : void 0) === 'CONTROL';
-        };
-        startImplicitCall = function(j) {
-          var idx;
-          idx = j != null ? j : i;
-          stack.push([
-            '(', idx, {
-              ours: true
-            }
-          ]);
-          tokens.splice(idx, 0, generate('CALL_START', '('));
-          if (j == null) {
-            return i += 1;
-          }
-        };
-        endImplicitCall = function() {
-          stack.pop();
-          tokens.splice(i, 0, generate('CALL_END', ')'));
-          return i += 1;
-        };
-        startImplicitObject = function(j, startsLine) {
-          var idx;
-          if (startsLine == null) {
-            startsLine = true;
-          }
-          idx = j != null ? j : i;
-          stack.push([
-            '{', idx, {
-              sameLine: true,
-              startsLine: startsLine,
-              ours: true
-            }
-          ]);
-          tokens.splice(idx, 0, generate('{', generate(new String('{'))));
-          if (j == null) {
-            return i += 1;
-          }
-        };
-        endImplicitObject = function(j) {
-          j = j != null ? j : i;
-          stack.pop();
-          tokens.splice(j, 0, generate('}', '}'));
-          return i += 1;
-        };
-        if (inImplicitCall() && (tag === 'IF' || tag === 'TRY' || tag === 'FINALLY' || tag === 'CATCH' || tag === 'CLASS' || tag === 'SWITCH')) {
-          stack.push([
-            'CONTROL', i, {
-              ours: true
-            }
-          ]);
-          return forward(1);
-        }
-        if (tag === 'INDENT' && inImplicit()) {
-          if (prevTag !== '=>' && prevTag !== '->' && prevTag !== '[' && prevTag !== '(' && prevTag !== ',' && prevTag !== '{' && prevTag !== 'TRY' && prevTag !== 'ELSE' && prevTag !== '=') {
-            while (inImplicitCall()) {
-              endImplicitCall();
-            }
-          }
-          if (inImplicitControl()) {
-            stack.pop();
-          }
-          stack.push([tag, i]);
-          return forward(1);
-        }
-        if (__indexOf.call(EXPRESSION_START, tag) >= 0) {
-          stack.push([tag, i]);
-          return forward(1);
-        }
-        if (__indexOf.call(EXPRESSION_END, tag) >= 0) {
-          while (inImplicit()) {
-            if (inImplicitCall()) {
-              endImplicitCall();
-            } else if (inImplicitObject()) {
-              endImplicitObject();
-            } else {
-              stack.pop();
-            }
-          }
-          stack.pop();
-        }
-        if ((__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && token.spaced && !token.stringEnd || tag === '?' && i > 0 && !tokens[i - 1].spaced) && (__indexOf.call(IMPLICIT_CALL, nextTag) >= 0 || __indexOf.call(IMPLICIT_UNSPACED_CALL, nextTag) >= 0 && !((_ref = tokens[i + 1]) != null ? _ref.spaced : void 0) && !((_ref1 = tokens[i + 1]) != null ? _ref1.newLine : void 0))) {
-          if (tag === '?') {
-            tag = token[0] = 'FUNC_EXIST';
-          }
-          startImplicitCall(i + 1);
-          return forward(2);
-        }
-        if (__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.matchTags(i + 1, 'INDENT', null, ':') && !this.findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])) {
-          startImplicitCall(i + 1);
-          stack.push(['INDENT', i + 2]);
-          return forward(3);
-        }
-        if (tag === ':') {
-          if (this.tag(i - 2) === '@') {
-            s = i - 2;
-          } else {
-            s = i - 1;
-          }
-          while (this.tag(s - 2) === 'HERECOMMENT') {
-            s -= 2;
-          }
-          startsLine = s === 0 || (_ref2 = this.tag(s - 1), __indexOf.call(LINEBREAKS, _ref2) >= 0) || tokens[s - 1].newLine;
-          if (stackTop()) {
-            _ref3 = stackTop(), stackTag = _ref3[0], stackIdx = _ref3[1];
-            if ((stackTag === '{' || stackTag === 'INDENT' && this.tag(stackIdx - 1) === '{') && (startsLine || this.tag(s - 1) === ',' || this.tag(s - 1) === '{')) {
-              return forward(1);
-            }
-          }
-          startImplicitObject(s, !!startsLine);
-          return forward(2);
-        }
-        if (prevTag === 'OUTDENT' && inImplicitCall() && (tag === '.' || tag === '?.' || tag === '::' || tag === '?::')) {
-          endImplicitCall();
-          return forward(1);
-        }
-        if (inImplicitObject() && __indexOf.call(LINEBREAKS, tag) >= 0) {
-          stackTop()[2].sameLine = false;
-        }
-        if (__indexOf.call(IMPLICIT_END, tag) >= 0) {
-          while (inImplicit()) {
-            _ref4 = stackTop(), stackTag = _ref4[0], stackIdx = _ref4[1], (_ref5 = _ref4[2], sameLine = _ref5.sameLine, startsLine = _ref5.startsLine);
-            if (inImplicitCall() && prevTag !== ',') {
-              endImplicitCall();
-            } else if (inImplicitObject() && sameLine && !startsLine) {
-              endImplicitObject();
-            } else if (inImplicitObject() && tag === 'TERMINATOR' && prevTag !== ',' && !(startsLine && this.looksObjectish(i + 1))) {
-              endImplicitObject();
-            } else {
-              break;
-            }
-          }
-        }
-        if (tag === ',' && !this.looksObjectish(i + 1) && inImplicitObject() && (nextTag !== 'TERMINATOR' || !this.looksObjectish(i + 2))) {
-          offset = nextTag === 'OUTDENT' ? 1 : 0;
-          while (inImplicitObject()) {
-            endImplicitObject(i + offset);
-          }
-        }
-        return forward(1);
-      });
-    };
-
-    Rewriter.prototype.addLocationDataToGeneratedTokens = function() {
-      return this.scanTokens(function(token, i, tokens) {
-        var column, line, nextLocation, prevLocation, _ref, _ref1;
-        if (token[2]) {
-          return 1;
-        }
-        if (!(token.generated || token.explicit)) {
-          return 1;
-        }
-        if (token[0] === '{' && (nextLocation = (_ref = tokens[i + 1]) != null ? _ref[2] : void 0)) {
-          line = nextLocation.first_line, column = nextLocation.first_column;
-        } else if (prevLocation = (_ref1 = tokens[i - 1]) != null ? _ref1[2] : void 0) {
-          line = prevLocation.last_line, column = prevLocation.last_column;
-        } else {
-          line = column = 0;
-        }
-        token[2] = {
-          first_line: line,
-          first_column: column,
-          last_line: line,
-          last_column: column
-        };
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.addImplicitIndentation = function() {
-      var action, condition, indent, outdent, starter;
-      starter = indent = outdent = null;
-      condition = function(token, i) {
-        var _ref, _ref1;
-        return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'ELSE' && starter !== 'THEN') && !(((_ref1 = token[0]) === 'CATCH' || _ref1 === 'FINALLY') && (starter === '->' || starter === '=>'));
-      };
-      action = function(token, i) {
-        return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent);
-      };
-      return this.scanTokens(function(token, i, tokens) {
-        var j, tag, _i, _ref, _ref1;
-        tag = token[0];
-        if (tag === 'TERMINATOR' && this.tag(i + 1) === 'THEN') {
-          tokens.splice(i, 1);
-          return 0;
-        }
-        if (tag === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') {
-          tokens.splice.apply(tokens, [i, 0].concat(__slice.call(this.indentation())));
-          return 2;
-        }
-        if (tag === 'CATCH') {
-          for (j = _i = 1; _i <= 2; j = ++_i) {
-            if (!((_ref = this.tag(i + j)) === 'OUTDENT' || _ref === 'TERMINATOR' || _ref === 'FINALLY')) {
-              continue;
-            }
-            tokens.splice.apply(tokens, [i + j, 0].concat(__slice.call(this.indentation())));
-            return 2 + j;
-          }
-        }
-        if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) {
-          starter = tag;
-          _ref1 = this.indentation(true), indent = _ref1[0], outdent = _ref1[1];
-          if (starter === 'THEN') {
-            indent.fromThen = true;
-          }
-          tokens.splice(i + 1, 0, indent);
-          this.detectEnd(i + 2, condition, action);
-          if (tag === 'THEN') {
-            tokens.splice(i, 1);
-          }
-          return 1;
-        }
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.tagPostfixConditionals = function() {
-      var action, condition, original;
-      original = null;
-      condition = function(token, i) {
-        var prevTag, tag;
-        tag = token[0];
-        prevTag = this.tokens[i - 1][0];
-        return tag === 'TERMINATOR' || (tag === 'INDENT' && __indexOf.call(SINGLE_LINERS, prevTag) < 0);
-      };
-      action = function(token, i) {
-        if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) {
-          return original[0] = 'POST_' + original[0];
-        }
-      };
-      return this.scanTokens(function(token, i) {
-        if (token[0] !== 'IF') {
-          return 1;
-        }
-        original = token;
-        this.detectEnd(i + 1, condition, action);
-        return 1;
-      });
-    };
-
-    Rewriter.prototype.indentation = function(implicit) {
-      var indent, outdent;
-      if (implicit == null) {
-        implicit = false;
-      }
-      indent = ['INDENT', 2];
-      outdent = ['OUTDENT', 2];
-      if (implicit) {
-        indent.generated = outdent.generated = true;
-      }
-      if (!implicit) {
-        indent.explicit = outdent.explicit = true;
-      }
-      return [indent, outdent];
-    };
-
-    Rewriter.prototype.generate = generate;
-
-    Rewriter.prototype.tag = function(i) {
-      var _ref;
-      return (_ref = this.tokens[i]) != null ? _ref[0] : void 0;
-    };
-
-    return Rewriter;
-
-  })();
-
-  BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']];
-
-  exports.INVERSES = INVERSES = {};
-
-  EXPRESSION_START = [];
-
-  EXPRESSION_END = [];
-
-  for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) {
-    _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1];
-    EXPRESSION_START.push(INVERSES[rite] = left);
-    EXPRESSION_END.push(INVERSES[left] = rite);
-  }
-
-  EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END);
-
-  IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS'];
-
-  IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++'];
-
-  IMPLICIT_UNSPACED_CALL = ['+', '-'];
-
-  IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR'];
-
-  SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN'];
-
-  SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN'];
-
-  LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT'];
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/scope.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/scope.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/scope.js
deleted file mode 100644
index a09ba97..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/scope.js
+++ /dev/null
@@ -1,146 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var Scope, extend, last, _ref;
-
-  _ref = require('./helpers'), extend = _ref.extend, last = _ref.last;
-
-  exports.Scope = Scope = (function() {
-    Scope.root = null;
-
-    function Scope(parent, expressions, method) {
-      this.parent = parent;
-      this.expressions = expressions;
-      this.method = method;
-      this.variables = [
-        {
-          name: 'arguments',
-          type: 'arguments'
-        }
-      ];
-      this.positions = {};
-      if (!this.parent) {
-        Scope.root = this;
-      }
-    }
-
-    Scope.prototype.add = function(name, type, immediate) {
-      if (this.shared && !immediate) {
-        return this.parent.add(name, type, immediate);
-      }
-      if (Object.prototype.hasOwnProperty.call(this.positions, name)) {
-        return this.variables[this.positions[name]].type = type;
-      } else {
-        return this.positions[name] = this.variables.push({
-          name: name,
-          type: type
-        }) - 1;
-      }
-    };
-
-    Scope.prototype.namedMethod = function() {
-      var _ref1;
-      if (((_ref1 = this.method) != null ? _ref1.name : void 0) || !this.parent) {
-        return this.method;
-      }
-      return this.parent.namedMethod();
-    };
-
-    Scope.prototype.find = function(name) {
-      if (this.check(name)) {
-        return true;
-      }
-      this.add(name, 'var');
-      return false;
-    };
-
-    Scope.prototype.parameter = function(name) {
-      if (this.shared && this.parent.check(name, true)) {
-        return;
-      }
-      return this.add(name, 'param');
-    };
-
-    Scope.prototype.check = function(name) {
-      var _ref1;
-      return !!(this.type(name) || ((_ref1 = this.parent) != null ? _ref1.check(name) : void 0));
-    };
-
-    Scope.prototype.temporary = function(name, index) {
-      if (name.length > 1) {
-        return '_' + name + (index > 1 ? index - 1 : '');
-      } else {
-        return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a');
-      }
-    };
-
-    Scope.prototype.type = function(name) {
-      var v, _i, _len, _ref1;
-      _ref1 = this.variables;
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        v = _ref1[_i];
-        if (v.name === name) {
-          return v.type;
-        }
-      }
-      return null;
-    };
-
-    Scope.prototype.freeVariable = function(name, reserve) {
-      var index, temp;
-      if (reserve == null) {
-        reserve = true;
-      }
-      index = 0;
-      while (this.check((temp = this.temporary(name, index)))) {
-        index++;
-      }
-      if (reserve) {
-        this.add(temp, 'var', true);
-      }
-      return temp;
-    };
-
-    Scope.prototype.assign = function(name, value) {
-      this.add(name, {
-        value: value,
-        assigned: true
-      }, true);
-      return this.hasAssignments = true;
-    };
-
-    Scope.prototype.hasDeclarations = function() {
-      return !!this.declaredVariables().length;
-    };
-
-    Scope.prototype.declaredVariables = function() {
-      var realVars, tempVars, v, _i, _len, _ref1;
-      realVars = [];
-      tempVars = [];
-      _ref1 = this.variables;
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        v = _ref1[_i];
-        if (v.type === 'var') {
-          (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name);
-        }
-      }
-      return realVars.sort().concat(tempVars.sort());
-    };
-
-    Scope.prototype.assignedVariables = function() {
-      var v, _i, _len, _ref1, _results;
-      _ref1 = this.variables;
-      _results = [];
-      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
-        v = _ref1[_i];
-        if (v.type.assigned) {
-          _results.push("" + v.name + " = " + v.type.value);
-        }
-      }
-      return _results;
-    };
-
-    return Scope;
-
-  })();
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/sourcemap.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/sourcemap.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/sourcemap.js
deleted file mode 100644
index 4bb6f25..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/sourcemap.js
+++ /dev/null
@@ -1,161 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var LineMap, SourceMap;
-
-  LineMap = (function() {
-    function LineMap(line) {
-      this.line = line;
-      this.columns = [];
-    }
-
-    LineMap.prototype.add = function(column, _arg, options) {
-      var sourceColumn, sourceLine;
-      sourceLine = _arg[0], sourceColumn = _arg[1];
-      if (options == null) {
-        options = {};
-      }
-      if (this.columns[column] && options.noReplace) {
-        return;
-      }
-      return this.columns[column] = {
-        line: this.line,
-        column: column,
-        sourceLine: sourceLine,
-        sourceColumn: sourceColumn
-      };
-    };
-
-    LineMap.prototype.sourceLocation = function(column) {
-      var mapping;
-      while (!((mapping = this.columns[column]) || (column <= 0))) {
-        column--;
-      }
-      return mapping && [mapping.sourceLine, mapping.sourceColumn];
-    };
-
-    return LineMap;
-
-  })();
-
-  SourceMap = (function() {
-    var BASE64_CHARS, VLQ_CONTINUATION_BIT, VLQ_SHIFT, VLQ_VALUE_MASK;
-
-    function SourceMap() {
-      this.lines = [];
-    }
-
-    SourceMap.prototype.add = function(sourceLocation, generatedLocation, options) {
-      var column, line, lineMap, _base;
-      if (options == null) {
-        options = {};
-      }
-      line = generatedLocation[0], column = generatedLocation[1];
-      lineMap = ((_base = this.lines)[line] || (_base[line] = new LineMap(line)));
-      return lineMap.add(column, sourceLocation, options);
-    };
-
-    SourceMap.prototype.sourceLocation = function(_arg) {
-      var column, line, lineMap;
-      line = _arg[0], column = _arg[1];
-      while (!((lineMap = this.lines[line]) || (line <= 0))) {
-        line--;
-      }
-      return lineMap && lineMap.sourceLocation(column);
-    };
-
-    SourceMap.prototype.generate = function(options, code) {
-      var buffer, lastColumn, lastSourceColumn, lastSourceLine, lineMap, lineNumber, mapping, needComma, v3, writingline, _i, _j, _len, _len1, _ref, _ref1;
-      if (options == null) {
-        options = {};
-      }
-      if (code == null) {
-        code = null;
-      }
-      writingline = 0;
-      lastColumn = 0;
-      lastSourceLine = 0;
-      lastSourceColumn = 0;
-      needComma = false;
-      buffer = "";
-      _ref = this.lines;
-      for (lineNumber = _i = 0, _len = _ref.length; _i < _len; lineNumber = ++_i) {
-        lineMap = _ref[lineNumber];
-        if (lineMap) {
-          _ref1 = lineMap.columns;
-          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
-            mapping = _ref1[_j];
-            if (!(mapping)) {
-              continue;
-            }
-            while (writingline < mapping.line) {
-              lastColumn = 0;
-              needComma = false;
-              buffer += ";";
-              writingline++;
-            }
-            if (needComma) {
-              buffer += ",";
-              needComma = false;
-            }
-            buffer += this.encodeVlq(mapping.column - lastColumn);
-            lastColumn = mapping.column;
-            buffer += this.encodeVlq(0);
-            buffer += this.encodeVlq(mapping.sourceLine - lastSourceLine);
-            lastSourceLine = mapping.sourceLine;
-            buffer += this.encodeVlq(mapping.sourceColumn - lastSourceColumn);
-            lastSourceColumn = mapping.sourceColumn;
-            needComma = true;
-          }
-        }
-      }
-      v3 = {
-        version: 3,
-        file: options.generatedFile || '',
-        sourceRoot: options.sourceRoot || '',
-        sources: options.sourceFiles || [''],
-        names: [],
-        mappings: buffer
-      };
-      if (options.inline) {
-        v3.sourcesContent = [code];
-      }
-      return JSON.stringify(v3, null, 2);
-    };
-
-    VLQ_SHIFT = 5;
-
-    VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT;
-
-    VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1;
-
-    SourceMap.prototype.encodeVlq = function(value) {
-      var answer, nextChunk, signBit, valueToEncode;
-      answer = '';
-      signBit = value < 0 ? 1 : 0;
-      valueToEncode = (Math.abs(value) << 1) + signBit;
-      while (valueToEncode || !answer) {
-        nextChunk = valueToEncode & VLQ_VALUE_MASK;
-        valueToEncode = valueToEncode >> VLQ_SHIFT;
-        if (valueToEncode) {
-          nextChunk |= VLQ_CONTINUATION_BIT;
-        }
-        answer += this.encodeBase64(nextChunk);
-      }
-      return answer;
-    };
-
-    BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
-
-    SourceMap.prototype.encodeBase64 = function(value) {
-      return BASE64_CHARS[value] || (function() {
-        throw new Error("Cannot Base64 encode value: " + value);
-      })();
-    };
-
-    return SourceMap;
-
-  })();
-
-  module.exports = SourceMap;
-
-}).call(this);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/package.json b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/package.json
deleted file mode 100644
index c1fe8d0..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "name": "coffee-script",
-  "description": "Unfancy JavaScript",
-  "keywords": [
-    "javascript",
-    "language",
-    "coffeescript",
-    "compiler"
-  ],
-  "author": {
-    "name": "Jeremy Ashkenas"
-  },
-  "version": "1.6.3",
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "https://raw.github.com/jashkenas/coffee-script/master/LICENSE"
-    }
-  ],
-  "engines": {
-    "node": ">=0.8.0"
-  },
-  "directories": {
-    "lib": "./lib/coffee-script"
-  },
-  "main": "./lib/coffee-script/coffee-script",
-  "bin": {
-    "coffee": "./bin/coffee",
-    "cake": "./bin/cake"
-  },
-  "scripts": {
-    "test": "node ./bin/cake test"
-  },
-  "homepage": "http://coffeescript.org",
-  "bugs": {
-    "url": "https://github.com/jashkenas/coffee-script/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/jashkenas/coffee-script.git"
-  },
-  "devDependencies": {
-    "uglify-js": "~2.2",
-    "jison": ">=0.2.0"
-  },
-  "readme": "\n            {\n         }   }   {\n        {   {  }  }\n         }   }{  {\n        {  }{  }  }                    _____       __  __\n       ( }{ }{  { )                   / ____|     / _|/ _|\n     .- { { }  { }} -.               | |     ___ | |_| |_ ___  ___\n    (  ( } { } { } }  )              | |    / _ \\|  _|  _/ _ \\/ _ \\\n    |`-..________ ..-'|              | |___| (_) | | | ||  __/  __/\n    |                 |               \\_____\\___/|_| |_| \\___|\\___|\n    |                 ;--.\n    |                (__  \\            _____           _       _\n    |                 | )  )          / ____|         (_)     | |\n    |                 |/  /          | (___   ___ _ __ _ _ __ | |_\n    |                 (  /            \\___ \\ / __| '__| | '_ \\| __|\n    |                 |/              ____) | (__| |  | | |_) | |_\n    |                 |              |_____/ \\___|_|  |_| .__/ \\__|\n     `-.._________..-'                                  | |\n   
                                                      |_|\n\n\n  CoffeeScript is a little language that compiles into JavaScript.\n\n  Install Node.js, and then the CoffeeScript compiler:\n  sudo bin/cake install\n\n  Or, if you have the Node Package Manager installed:\n  npm install -g coffee-script\n  (Leave off the -g if you don't wish to install globally.)\n\n  Execute a script:\n  coffee /path/to/script.coffee\n\n  Compile a script:\n  coffee -c /path/to/script.coffee\n\n  For documentation, usage, and examples, see:\n  http://coffeescript.org/\n\n  To suggest a feature, report a bug, or general discussion:\n  http://github.com/jashkenas/coffee-script/issues/\n\n  If you'd like to chat, drop by #coffeescript on Freenode IRC,\n  or on webchat.freenode.net.\n\n  The source repository:\n  git://github.com/jashkenas/coffee-script.git\n\n  All contributors are listed here:\n  http://github.com/jashkenas/coffee-script/contributors\n",
-  "readmeFilename": "README",
-  "_id": "coffee-script@1.6.3",
-  "_from": "coffee-script@>=1.0.1"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/.editorconfig
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/.editorconfig b/blackberry10/node_modules/jasmine-node/node_modules/gaze/.editorconfig
deleted file mode 100644
index 0f09989..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/.editorconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-# editorconfig.org
-root = true
-
-[*]
-indent_style = space
-indent_size = 2
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/.jshintrc
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/.jshintrc b/blackberry10/node_modules/jasmine-node/node_modules/gaze/.jshintrc
deleted file mode 100644
index 6b4c1a9..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/.jshintrc
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "curly": true,
-  "eqeqeq": true,
-  "immed": true,
-  "latedef": true,
-  "newcap": true,
-  "noarg": true,
-  "sub": true,
-  "undef": true,
-  "boss": true,
-  "eqnull": true,
-  "node": true,
-  "es5": true
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/gaze/.npmignore
deleted file mode 100644
index 2ccbe46..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/.travis.yml b/blackberry10/node_modules/jasmine-node/node_modules/gaze/.travis.yml
deleted file mode 100644
index 343380c..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-  - 0.9
-before_script:
-  - npm install -g grunt-cli

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/AUTHORS
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/AUTHORS b/blackberry10/node_modules/jasmine-node/node_modules/gaze/AUTHORS
deleted file mode 100644
index 69d9663..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/AUTHORS
+++ /dev/null
@@ -1,5 +0,0 @@
-Kyle Robinson Young (http://dontkry.com)
-Sam Day (http://sam.is-super-awesome.com)
-Roarke Gaskill (http://starkinvestments.com)
-Lance Pollard (http://lancepollard.com/)
-Daniel Fagnan (http://hydrocodedesign.com/)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/Gruntfile.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/Gruntfile.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/Gruntfile.js
deleted file mode 100644
index 0206147..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/Gruntfile.js
+++ /dev/null
@@ -1,32 +0,0 @@
-module.exports = function(grunt) {
-  'use strict';
-  grunt.initConfig({
-    benchmark: {
-      all: {
-        src: ['benchmarks/*.js'],
-        options: { times: 10 }
-      }
-    },
-    nodeunit: {
-      files: ['test/**/*_test.js'],
-    },
-    jshint: {
-      options: {
-        jshintrc: '.jshintrc'
-      },
-      gruntfile: {
-        src: 'Gruntfile.js'
-      },
-      lib: {
-        src: ['lib/**/*.js']
-      },
-      test: {
-        src: ['test/**/*_test.js']
-      },
-    }
-  });
-  grunt.loadNpmTasks('grunt-benchmark');
-  grunt.loadNpmTasks('grunt-contrib-jshint');
-  grunt.loadNpmTasks('grunt-contrib-nodeunit');
-  grunt.registerTask('default', ['jshint', 'nodeunit']);
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/LICENSE-MIT
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/LICENSE-MIT b/blackberry10/node_modules/jasmine-node/node_modules/gaze/LICENSE-MIT
deleted file mode 100644
index 8c1a833..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/LICENSE-MIT
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2013 Kyle Robinson Young
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/README.md b/blackberry10/node_modules/jasmine-node/node_modules/gaze/README.md
deleted file mode 100644
index ed2acbe..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/README.md
+++ /dev/null
@@ -1,172 +0,0 @@
-# gaze [![Build Status](https://secure.travis-ci.org/shama/gaze.png?branch=master)](http://travis-ci.org/shama/gaze)
-
-A globbing fs.watch wrapper built from the best parts of other fine watch libs.
-
-Compatible with NodeJS v0.8/0.6, Windows, OSX and Linux.
-
-## Usage
-Install the module with: `npm install gaze` or place into your `package.json`
-and run `npm install`.
-
-```javascript
-var gaze = require('gaze');
-
-// Watch all .js files/dirs in process.cwd()
-gaze('**/*.js', function(err, watcher) {
-  // Files have all started watching
-  // watcher === this
-
-  // Get all watched files
-  console.log(this.watched());
-
-  // On file changed
-  this.on('changed', function(filepath) {
-    console.log(filepath + ' was changed');
-  });
-
-  // On file added
-  this.on('added', function(filepath) {
-    console.log(filepath + ' was added');
-  });
-
-  // On file deleted
-  this.on('deleted', function(filepath) {
-    console.log(filepath + ' was deleted');
-  });
-
-  // On changed/added/deleted
-  this.on('all', function(event, filepath) {
-    console.log(filepath + ' was ' + event);
-  });
-
-  // Get watched files with relative paths
-  console.log(this.relative());
-});
-
-// Also accepts an array of patterns
-gaze(['stylesheets/*.css', 'images/**/*.png'], function() {
-  // Add more patterns later to be watched
-  this.add(['js/*.js']);
-});
-```
-
-### Alternate Interface
-
-```javascript
-var Gaze = require('gaze').Gaze;
-
-var gaze = new Gaze('**/*');
-
-// Files have all started watching
-gaze.on('ready', function(watcher) { });
-
-// A file has been added/changed/deleted has occurred
-gaze.on('all', function(event, filepath) { });
-```
-
-### Errors
-
-```javascript
-gaze('**/*', function() {
-  this.on('error', function(err) {
-    // Handle error here
-  });
-});
-```
-
-### Minimatch / Glob
-
-See [isaacs's minimatch](https://github.com/isaacs/minimatch) for more
-information on glob patterns.
-
-## Documentation
-
-### gaze(patterns, [options], callback)
-
-* `patterns` {String|Array} File patterns to be matched
-* `options` {Object}
-* `callback` {Function}
-  * `err` {Error | null}
-  * `watcher` {Object} Instance of the Gaze watcher
-
-### Class: gaze.Gaze
-
-Create a Gaze object by instanting the `gaze.Gaze` class.
-
-```javascript
-var Gaze = require('gaze').Gaze;
-var gaze = new Gaze(pattern, options, callback);
-```
-
-#### Properties
-
-* `options` The options object passed in.
-  * `interval` {integer} Interval to pass to fs.watchFile
-  * `debounceDelay` {integer} Delay for events called in succession for the same
-    file/event
-
-#### Events
-
-* `ready(watcher)` When files have been globbed and watching has begun.
-* `all(event, filepath)` When an `added`, `changed` or `deleted` event occurs.
-* `added(filepath)` When a file has been added to a watch directory.
-* `changed(filepath)` When a file has been changed.
-* `deleted(filepath)` When a file has been deleted.
-* `renamed(newPath, oldPath)` When a file has been renamed.
-* `end()` When the watcher is closed and watches have been removed.
-* `error(err)` When an error occurs.
-
-#### Methods
-
-* `emit(event, [...])` Wrapper for the EventEmitter.emit.
-  `added`|`changed`|`deleted` events will also trigger the `all` event.
-* `close()` Unwatch all files and reset the watch instance.
-* `add(patterns, callback)` Adds file(s) patterns to be watched.
-* `remove(filepath)` removes a file or directory from being watched. Does not
-  recurse directories.
-* `watched()` Returns the currently watched files.
-* `relative([dir, unixify])` Returns the currently watched files with relative paths.
-  * `dir` {string} Only return relative files for this directory.
-  * `unixify` {boolean} Return paths with `/` instead of `\\` if on Windows.
-
-## FAQs
-
-### Why Another `fs.watch` Wrapper?
-I liked parts of other `fs.watch` wrappers but none had all the features I
-needed. This lib combines the features I needed from other fine watch libs:
-Speedy data behavior from
-[paulmillr's chokidar](https://github.com/paulmillr/chokidar), API interface
-from [mikeal's watch](https://github.com/mikeal/watch) and file globbing using
-[isaacs's glob](https://github.com/isaacs/node-glob) which is also used by
-[cowboy's Grunt](https://github.com/gruntjs/grunt).
-
-### How do I fix the error `EMFILE: Too many opened files.`?
-This is because of your system's max opened file limit. For OSX the default is
-very low (256). Increase your limit temporarily with `ulimit -n 10480`, the
-number being the new max limit.
-
-## Contributing
-In lieu of a formal styleguide, take care to maintain the existing coding style.
-Add unit tests for any new or changed functionality. Lint and test your code
-using [grunt](http://gruntjs.com/).
-
-## Release History
-* 0.3.4 - Code clean up. Fix path must be strings errors (@groner). Fix incorrect added events (@groner).
-* 0.3.3 - Fix for multiple patterns with negate.
-* 0.3.2 - Emit `end` before removeAllListeners.
-* 0.3.1 - Fix added events within subfolder patterns.
-* 0.3.0 - Handle safewrite events, `forceWatchMethod` option removed, bug fixes and watch optimizations (@rgaskill).
-* 0.2.2 - Fix issue where subsequent add calls dont get watched (@samcday). removeAllListeners on close.
-* 0.2.1 - Fix issue with invalid `added` events in current working dir.
-* 0.2.0 - Support and mark folders with `path.sep`. Add `forceWatchMethod` option. Support `renamed` events.
-* 0.1.6 - Recognize the `cwd` option properly
-* 0.1.5 - Catch too many open file errors
-* 0.1.4 - Really fix the race condition with 2 watches
-* 0.1.3 - Fix race condition with 2 watches
-* 0.1.2 - Read triggering changed event fix
-* 0.1.1 - Minor fixes
-* 0.1.0 - Initial release
-
-## License
-Copyright (c) 2013 Kyle Robinson Young
-Licensed under the MIT license.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/benchmarks/gaze100s.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/benchmarks/gaze100s.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/benchmarks/gaze100s.js
deleted file mode 100644
index 1ada219..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/benchmarks/gaze100s.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var gaze = require('../lib/gaze');
-var grunt = require('grunt');
-var path = require('path');
-
-// Folder to watch
-var watchDir = path.resolve(__dirname, 'watch');
-
-// Helper for creating mock files
-function createFiles(num, dir) {
-  for (var i = 0; i < num; i++) {
-    grunt.file.write(path.join(dir, 'test-' + i + '.js'), 'var test = ' + i + ';');
-  }
-}
-
-module.exports = {
-  'setUp': function(done) {
-    // ensure that your `ulimit -n` is higher than amount of files
-    if (grunt.file.exists(watchDir)) {
-      grunt.file.delete(watchDir, {force:true});
-    }
-    createFiles(100, path.join(watchDir, 'one'));
-    createFiles(100, path.join(watchDir, 'two'));
-    createFiles(100, path.join(watchDir, 'three'));
-    createFiles(100, path.join(watchDir, 'three', 'four'));
-    createFiles(100, path.join(watchDir, 'three', 'four', 'five', 'six'));
-    process.chdir(watchDir);
-    done();
-  },
-  'tearDown': function(done) {
-    if (grunt.file.exists(watchDir)) {
-      grunt.file.delete(watchDir, {force:true});
-    }
-    done();
-  },
-  changed: function(done) {
-    gaze('**/*', {maxListeners:0}, function(err, watcher) {
-      this.on('changed', done);
-      setTimeout(function() {
-        var rand = String(new Date().getTime()).replace(/[^\w]+/g, '');
-        grunt.file.write(path.join(watchDir, 'one', 'test-99.js'), 'var test = "' + rand + '"');
-      }, 100);
-    });
-  }
-};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/lib/gaze.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/lib/gaze.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/lib/gaze.js
deleted file mode 100644
index 85da897..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/lib/gaze.js
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
- * gaze
- * https://github.com/shama/gaze
- *
- * Copyright (c) 2013 Kyle Robinson Young
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-// libs
-var util = require('util');
-var EE = require('events').EventEmitter;
-var fs = require('fs');
-var path = require('path');
-var fileset = require('fileset');
-var minimatch = require('minimatch');
-
-// globals
-var delay = 10;
-
-// `Gaze` EventEmitter object to return in the callback
-function Gaze(patterns, opts, done) {
-  var _this = this;
-  EE.call(_this);
-
-  // If second arg is the callback
-  if (typeof opts === 'function') {
-    done = opts;
-    opts = {};
-  }
-
-  // Default options
-  opts = opts || {};
-  opts.mark = true;
-  opts.interval = opts.interval || 100;
-  opts.debounceDelay = opts.debounceDelay || 500;
-  opts.cwd = opts.cwd || process.cwd();
-  this.options = opts;
-
-  // Default done callback
-  done = done || function() {};
-
-  // Remember our watched dir:files
-  this._watched = Object.create(null);
-
-  // Store watchers
-  this._watchers = Object.create(null);
-
-  // Store patterns
-  this._patterns = [];
-
-  // Cached events for debouncing
-  this._cached = Object.create(null);
-
-  // Set maxListeners
-  if (this.options.maxListeners) {
-    this.setMaxListeners(this.options.maxListeners);
-    Gaze.super_.prototype.setMaxListeners(this.options.maxListeners);
-    delete this.options.maxListeners;
-  }
-
-  // Initialize the watch on files
-  if (patterns) {
-    this.add(patterns, done);
-  }
-
-  return this;
-}
-util.inherits(Gaze, EE);
-
-// Main entry point. Start watching and call done when setup
-module.exports = function gaze(patterns, opts, done) {
-  return new Gaze(patterns, opts, done);
-};
-module.exports.Gaze = Gaze;
-
-// Node v0.6 compat
-fs.existsSync = fs.existsSync || path.existsSync;
-path.sep = path.sep || path.normalize('/');
-
-/**
- * Lo-Dash 1.0.1 <http://lodash.com/>
- * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.4.4 <http://underscorejs.org/>
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
- * Available under MIT license <http://lodash.com/license>
- */
-function unique() { var array = Array.prototype.concat.apply(Array.prototype, arguments); var result = []; for (var i = 0; i < array.length; i++) { if (result.indexOf(array[i]) === -1) { result.push(array[i]); } } return result; }
-
-/**
- * Copyright (c) 2010 Caolan McMahon
- * Available under MIT license <https://raw.github.com/caolan/async/master/LICENSE>
- */
-function forEachSeries(arr, iterator, callback) {
-  if (!arr.length) { return callback(); }
-  var completed = 0;
-  var iterate = function() {
-    iterator(arr[completed], function (err) {
-      if (err) {
-        callback(err);
-        callback = function() {};
-      } else {
-        completed += 1;
-        if (completed === arr.length) {
-          callback(null);
-        } else {
-          iterate();
-        }
-      }
-    });
-  };
-  iterate();
-}
-
-// other helpers
-
-// Returns boolean whether filepath is dir terminated
-function _isDir(dir) {
-  if (typeof dir !== 'string') { return false; }
-  return (dir.slice(-(path.sep.length)) === path.sep);
-}
-
-// Create a `key:[]` if doesnt exist on `obj` then push or concat the `val`
-function _objectPush(obj, key, val) {
-  if (obj[key] == null) { obj[key] = []; }
-  if (Array.isArray(val)) { obj[key] = obj[key].concat(val); }
-  else if (val) { obj[key].push(val); }
-  return obj[key] = unique(obj[key]);
-}
-
-// Ensures the dir is marked with path.sep
-function _markDir(dir) {
-  if (typeof dir === 'string' &&
-    dir.slice(-(path.sep.length)) !== path.sep &&
-    dir !== '.') {
-    dir += path.sep;
-  }
-  return dir;
-}
-
-// Changes path.sep to unix ones for testing
-function _unixifyPathSep(filepath) {
-  return (process.platform === 'win32') ? String(filepath).replace(/\\/g, '/') : filepath;
-}
-
-// Override the emit function to emit `all` events
-// and debounce on duplicate events per file
-Gaze.prototype.emit = function() {
-  var _this = this;
-  var args = arguments;
-
-  var e = args[0];
-  var filepath = args[1];
-  var timeoutId;
-
-  // If not added/deleted/changed/renamed then just emit the event
-  if (e.slice(-2) !== 'ed') {
-    Gaze.super_.prototype.emit.apply(_this, args);
-    return this;
-  }
-
-  // Detect rename event, if added and previous deleted is in the cache
-  if (e === 'added') {
-    Object.keys(this._cached).forEach(function(oldFile) {
-      if (_this._cached[oldFile].indexOf('deleted') !== -1) {
-        args[0] = e = 'renamed';
-        [].push.call(args, oldFile);
-        delete _this._cached[oldFile];
-        return false;
-      }
-    });
-  }
-
-  // If cached doesnt exist, create a delay before running the next
-  // then emit the event
-  var cache = this._cached[filepath] || [];
-  if (cache.indexOf(e) === -1) {
-    _objectPush(_this._cached, filepath, e);
-    clearTimeout(timeoutId);
-    timeoutId = setTimeout(function() {
-      delete _this._cached[filepath];
-    }, this.options.debounceDelay);
-    // Emit the event and `all` event
-    Gaze.super_.prototype.emit.apply(_this, args);
-    Gaze.super_.prototype.emit.apply(_this, ['all', e].concat([].slice.call(args, 1)));
-  }
-
-  return this;
-};
-
-// Close watchers
-Gaze.prototype.close = function(_reset) {
-  var _this = this;
-  _reset = _reset === false ? false : true;
-  Object.keys(_this._watchers).forEach(function(file) {
-    _this._watchers[file].close();
-  });
-  _this._watchers = Object.create(null);
-  Object.keys(this._watched).forEach(function(dir) {
-    fs.unwatchFile(dir);
-    _this._watched[dir].forEach(function(uFile) {
-      fs.unwatchFile(uFile);
-    });
-  });
-  if (_reset) {
-    _this._watched = Object.create(null);
-    setTimeout(function() {
-      _this.emit('end');
-     _this.removeAllListeners();
-   }, delay + 100);
-  }
-  return _this;
-};
-
-// Add file patterns to be watched
-Gaze.prototype.add = function(files, done) {
-  var _this = this;
-  if (typeof files === 'string') {
-    files = [files];
-  }
-  this._patterns = unique.apply(null, [this._patterns, files]);
-
-  var include = [], exclude = [];
-  this._patterns.forEach(function(p) {
-    if (p.slice(0, 1) === '!') {
-      exclude.push(p.slice(1));
-    } else {
-      include.push(p);
-    }
-  });
-
-  fileset(include, exclude, _this.options, function(err, files) {
-    if (err) {
-      _this.emit('error', err);
-      return done(err);
-    }
-    _this._addToWatched(files);
-    _this.close(false);
-    _this._initWatched(done);
-  });
-};
-
-// Remove file/dir from `watched`
-Gaze.prototype.remove = function(file) {
-  var _this = this;
-  if (this._watched[file]) {
-    // is dir, remove all files
-    fs.unwatchFile(file);
-    this._watched[file].forEach(fs.unwatchFile);
-    delete this._watched[file];
-  } else {
-    // is a file, find and remove
-    Object.keys(this._watched).forEach(function(dir) {
-      var index = _this._watched[dir].indexOf(file);
-      if (index !== -1) {
-        fs.unwatchFile(file);
-        _this._watched[dir].splice(index, 1);
-        return false;
-      }
-    });
-  }
-  if (this._watchers[file]) {
-    this._watchers[file].close();
-  }
-  return this;
-};
-
-// Return watched files
-Gaze.prototype.watched = function() {
-  return this._watched;
-};
-
-// Returns `watched` files with relative paths to process.cwd()
-Gaze.prototype.relative = function(dir, unixify) {
-  var _this = this;
-  var relative = Object.create(null);
-  var relDir, relFile, unixRelDir;
-  var cwd = this.options.cwd || process.cwd();
-  if (dir === '') { dir = '.'; }
-  dir = _markDir(dir);
-  unixify = unixify || false;
-  Object.keys(this._watched).forEach(function(dir) {
-    relDir = path.relative(cwd, dir) + path.sep;
-    if (relDir === path.sep) { relDir = '.'; }
-    unixRelDir = unixify ? _unixifyPathSep(relDir) : relDir;
-    relative[unixRelDir] = _this._watched[dir].map(function(file) {
-      relFile = path.relative(path.join(cwd, relDir), file);
-      if (_isDir(file)) {
-        relFile = _markDir(relFile);
-      }
-      if (unixify) {
-        relFile = _unixifyPathSep(relFile);
-      }
-      return relFile;
-    });
-  });
-  if (dir && unixify) {
-    dir = _unixifyPathSep(dir);
-  }
-  return dir ? relative[dir] || [] : relative;
-};
-
-// Adds files and dirs to watched
-Gaze.prototype._addToWatched = function(files) {
-  var _this = this;
-  files.forEach(function(file) {
-    var filepath = path.resolve(_this.options.cwd, file);
-    if (file.slice(-1) === '/') { filepath += path.sep; }
-    _objectPush(_this._watched, path.dirname(filepath) + path.sep, filepath);
-  });
-  return this;
-};
-
-// Returns true if the file matches this._patterns
-Gaze.prototype._isMatch = function(file) {
-  var include = [], exclude = [];
-  this._patterns.forEach(function(p) {
-    if (p.slice(0, 1) === '!') {
-      exclude.push(p.slice(1));
-    } else {
-      include.push(p);
-    }
-  });
-  var matched = false, i = 0;
-  for (i = 0; i < include.length; i++) {
-    if (minimatch(file, include[i])) {
-      matched = true;
-      break;
-    }
-  }
-  for (i = 0; i < exclude.length; i++) {
-    if (minimatch(file, exclude[i])) {
-      matched = false;
-      break;
-    }
-  }
-  return matched;
-};
-
-Gaze.prototype._watchDir = function(dir, done) {
-  var _this = this;
-  try {
-    _this._watchers[dir] = fs.watch(dir, function(event) {
-      // race condition. Let's give the fs a little time to settle down. so we
-      // don't fire events on non existent files.
-      setTimeout(function() {
-        if (fs.existsSync(dir)) {
-          done(null, dir);
-        }
-      }, delay + 100);
-    });
-  } catch (err) {
-    return this._handleError(err);
-  }
-  return this;
-};
-
-Gaze.prototype._pollFile = function(file, done) {
-    var _this = this;
-    var opts = { persistent: true, interval: _this.options.interval };
-    try {
-      fs.watchFile(file, opts, function(curr, prev) {
-        done(null, file);
-      });
-    } catch (err) {
-      return this._handleError(err);
-    }
-  return this;
-};
-
-// Initialize the actual watch on `watched` files
-Gaze.prototype._initWatched = function(done) {
-  var _this = this;
-  var cwd = this.options.cwd || process.cwd();
-  var curWatched = Object.keys(_this._watched);
-  forEachSeries(curWatched, function(dir, next) {
-    var files = _this._watched[dir];
-    // Triggered when a watched dir has an event
-    _this._watchDir(dir, function(event, dirpath) {
-      var relDir = cwd === dir ? '.' : path.relative(cwd, dir);
-
-      fs.readdir(dirpath, function(err, current) {
-        if (err) { return _this.emit('error', err); }
-        if (!current) { return; }
-
-        try {
-          // append path.sep to directories so they match previous.
-          current = current.map(function(curPath) {
-            if (fs.existsSync(path.join(dir, curPath)) && fs.statSync(path.join(dir, curPath)).isDirectory()) {
-              return curPath + path.sep;
-            } else {
-              return curPath;
-            }
-          });
-        } catch (err) {
-          // race condition-- sometimes the file no longer exists
-        }
-
-        // Get watched files for this dir
-        var previous = _this.relative(relDir);
-
-        // If file was deleted
-        previous.filter(function(file) {
-          return current.indexOf(file) < 0;
-        }).forEach(function(file) {
-          if (!_isDir(file)) {
-            var filepath = path.join(dir, file);
-            _this.remove(filepath);
-            _this.emit('deleted', filepath);
-          }
-        });
-
-        // If file was added
-        current.filter(function(file) {
-          return previous.indexOf(file) < 0;
-        }).forEach(function(file) {
-          // Is it a matching pattern?
-          var relFile = path.join(relDir, file);
-          // TODO: this can be optimized more
-          // we shouldnt need isMatch() and could just use add()
-          if (_this._isMatch(relFile)) {
-            // Add to watch then emit event
-            _this.add(relFile, function() {
-              _this.emit('added', path.join(dir, file));
-            });
-          }
-        });
-
-      });
-    });
-
-    // Watch for change/rename events on files
-    files.forEach(function(file) {
-      if (_isDir(file)) { return; }
-      _this._pollFile(file, function(err, filepath) {
-        // Only emit changed if the file still exists
-        // Prevents changed/deleted duplicate events
-        // TODO: This ignores changed events on folders, maybe support this?
-        //       When a file is added, a folder changed event emits first
-        if (fs.existsSync(filepath)) {
-          _this.emit('changed', filepath);
-        }
-      });
-    });
-
-    next();
-  }, function() {
-
-    // Return this instance of Gaze
-    // delay before ready solves a lot of issues
-    setTimeout(function() {
-      _this.emit('ready', _this);
-      done.call(_this, null, _this);
-    }, delay + 100);
-
-  });
-};
-
-// If an error, handle it here
-Gaze.prototype._handleError = function(err) {
-  if (err.code === 'EMFILE') {
-    return this.emit('error', new Error('EMFILE: Too many opened files.'));
-  }
-  return this.emit('error', err);
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/.npmignore
deleted file mode 100644
index 3c3629e..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/.travis.yml b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/.travis.yml
deleted file mode 100644
index b740293..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-
-node_js:
-  - 0.4
-  - 0.6
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/LICENSE-MIT
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/LICENSE-MIT b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/LICENSE-MIT
deleted file mode 100644
index e6f8599..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/LICENSE-MIT
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012 Mickael Daniel
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/README.md b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/README.md
deleted file mode 100644
index c6ec211..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/README.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# node-fileset
-
-Exposes a basic wrapper on top of
-[Glob](https://github.com/isaacs/node-glob) /
-[minimatch](https://github.com/isaacs/minimatch) combo both written by
-@isaacs. Glob now uses JavaScript instead of C++ bindings which makes it
-usable in Node.js 0.6.x and Windows platforms.
-
-[![Build Status](https://secure.travis-ci.org/mklabs/node-fileset.png)](http://travis-ci.org/mklabs/node-fileset)
-
-Adds multiples patterns matching and exlude ability. This is
-basically just a sugar API syntax where you can specify a list of includes
-and optional exclude patterns. It works by setting up the necessary
-miniglob "fileset" and filtering out the results using minimatch.
-
-## Install
-
-    npm install fileset
-
-## Usage
-
-Can be used with callback or emitter style.
-
-* **include**: list of glob patterns `foo/**/*.js *.md src/lib/**/*`
-* **exclude**: *optional* list of glob patterns to filter include
-  results `foo/**/*.js *.md`
-* **callback**: *optional* function that gets called with an error if
-  something wrong happend, otherwise null with an array of results
-
-The callback is optional since the fileset method return an instance of
-EventEmitter which emit different events you might use:
-
-* *match*: Every time a match is found, miniglob emits this event with
-  the pattern.
-* *include*: Emitted each time an include match is found.
-* *exclude*: Emitted each time an exclude match is found and filtered
-  out from the fileset.
-* *end*:  Emitted when the matching is finished with all the matches
-  found, optionally filtered by the exclude patterns.
-
-#### Callback
-
-```js
-var fileset = require('fileset');
-
-fileset('**/*.js', '**.min.js', function(err, files) {
-  if (err) return console.error(err);
-
-  console.log('Files: ', files.length);
-  console.log(files);
-});
-```
-
-#### Event emitter
-
-```js
-var fileset = require('fileset');
-
-fileset('**.coffee README.md *.json Cakefile **.js', 'node_modules/**')
-  .on('match', console.log.bind(console, 'error'))
-  .on('include', console.log.bind(console, 'includes'))
-  .on('exclude', console.log.bind(console, 'excludes'))
-  .on('end', console.log.bind(console, 'end'));
-```
-
-`fileset` returns an instance of EventEmitter, with an `includes` property
-which is the array of Fileset objects (inheriting from
-`miniglob.Miniglob`) that were used during the mathing process, should
-you want to use them individually.
-
-Check out the
-[tests](https://github.com/mklabs/node-fileset/tree/master/tests) for
-more examples.
-
-## Tests
-
-Run `npm test`
-
-## Why
-
-Mainly for a build tool with cake files, to provide me an easy way to get
-a list of files by either using glob or path patterns, optionally
-allowing exclude patterns to filter out the results.
-
-All the magic is happening in
-[Glob](https://github.com/isaacs/node-glob) and
-[minimatch](https://github.com/isaacs/minimatch). Check them out!

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/lib/fileset.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/lib/fileset.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/lib/fileset.js
deleted file mode 100644
index a74077c..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/lib/fileset.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var util = require('util'),
-  minimatch = require('minimatch'),
-  Glob = require('glob').Glob,
-  EventEmitter = require('events').EventEmitter;
-
-module.exports = fileset;
-
-function fileset(include, exclude, options, cb) {
-  if (typeof exclude === 'function') cb = exclude, exclude = '';
-  else if (typeof options === 'function') cb = options, options = {};
-
-  var includes = (typeof include === 'string') ? include.split(' ') : include;
-  var excludes = (typeof exclude === 'string') ? exclude.split(' ') : exclude;
-
-  var em = new EventEmitter,
-    remaining = includes.length,
-    results = [];
-
-  if(!includes.length) return cb(new Error('Must provide an include pattern'));
-
-  em.includes = includes.map(function(pattern) {
-    return new fileset.Fileset(pattern, options)
-      .on('error', cb ? cb : em.emit.bind(em, 'error'))
-      .on('match', em.emit.bind(em, 'match'))
-      .on('match', em.emit.bind(em, 'include'))
-      .on('end', next.bind({}, pattern))
-  });
-
-  function next(pattern, matches) {
-    results = results.concat(matches);
-
-    if(!(--remaining)) {
-      results = results.filter(function(file) {
-        return !excludes.filter(function(glob) {
-          var match = minimatch(file, glob, { matchBase: true });
-          if(match) em.emit('exclude', file);
-          return match;
-        }).length;
-      });
-
-      if(cb) cb(null, results);
-      em.emit('end', results);
-    }
-  }
-
-  return em;
-}
-
-fileset.Fileset = function Fileset(pattern, options, cb) {
-
-  if (typeof options === 'function') cb = options, options = {};
-  if (!options) options = {};
-
-  Glob.call(this, pattern, options);
-
-  if(typeof cb === 'function') {
-    this.on('error', cb);
-    this.on('end', function(matches) { cb(null, matches); });
-  }
-};
-
-util.inherits(fileset.Fileset, Glob);
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/.npmignore
deleted file mode 100644
index 2af4b71..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.*.swp
-test/a/

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/.travis.yml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/.travis.yml b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/.travis.yml
deleted file mode 100644
index baa0031..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
-  - 0.8

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/LICENSE
deleted file mode 100644
index 0c44ae7..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/README.md b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/README.md
deleted file mode 100644
index cc69164..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/README.md
+++ /dev/null
@@ -1,250 +0,0 @@
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-This is a glob implementation in JavaScript.  It uses the `minimatch`
-library to do its matching.
-
-## Attention: node-glob users!
-
-The API has changed dramatically between 2.x and 3.x. This library is
-now 100% JavaScript, and the integer flags have been replaced with an
-options object.
-
-Also, there's an event emitter class, proper tests, and all the other
-things you've come to expect from node modules.
-
-And best of all, no compilation!
-
-## Usage
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
-  // files is an array of filenames.
-  // If the `nonull` option is set, and nothing
-  // was found, then files is ["**/*.js"]
-  // er is an error object or null.
-})
-```
-
-## Features
-
-Please see the [minimatch
-documentation](https://github.com/isaacs/minimatch) for more details.
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob(pattern, [options], cb)
-
-* `pattern` {String} Pattern to be matched
-* `options` {Object}
-* `cb` {Function}
-  * `err` {Error | null}
-  * `matches` {Array<String>} filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` {String} Pattern to be matched
-* `options` {Object}
-* return: {Array<String>} filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instanting the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` {String} pattern to search for
-* `options` {Object}
-* `cb` {Function} Called when an error occurs, or matches are found
-  * `err` {Error | null}
-  * `matches` {Array<String>} filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `error` The error encountered.  When an error is encountered, the
-  glob object is in an undefined state, and should be discarded.
-* `aborted` Boolean which is set to true when calling `abort()`.  There
-  is no way at this time to continue a glob search after aborting, but
-  you can re-use the statCache to avoid having to duplicate syscalls.
-* `statCache` Collection of all the stat results the glob search
-  performed.
-* `cache` Convenience object.  Each field has the following possible
-  values:
-  * `false` - Path does not exist
-  * `true` - Path exists
-  * `1` - Path exists, and is not a directory
-  * `2` - Path exists, and is a directory
-  * `[file, entries, ...]` - Path exists, is a directory, and the
-    array value is the results of `fs.readdir`
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
-  matches found.  If the `nonull` option is set, and no match was found,
-  then the `matches` list contains the original pattern.  The matches
-  are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the matched.
-* `error` Emitted when an unexpected error is encountered, or whenever
-  any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `abort` Stop the search.
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior.  Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the glob object, as well.
-
-* `cwd` The current working directory in which to search.  Defaults
-  to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
-  onto.  Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
-  systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
-  Note that an explicit dot in a portion of the pattern will always
-  match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
-  "mounted" onto the root setting, so that a valid filesystem path is
-  returned.  Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches.  Note that this
-  requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results.  This reduces performance
-  somewhat, and is completely unnecessary, unless `readdir` is presumed
-  to be an untrustworthy indicator of file existence.  It will cause
-  ELOOP to be triggered one level sooner in the case of cyclical
-  symbolic links.
-* `silent` When an unusual error is encountered
-  when attempting to read a directory, a warning will be printed to
-  stderr.  Set the `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered
-  when attempting to read a directory, the process will just continue on
-  in search of other matches.  Set the `strict` option to raise an error
-  in these cases.
-* `cache` See `cache` property above.  Pass in a previously generated
-  cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
-  unnecessary stat calls.  While it should not normally be necessary to
-  set this, you may pass the statCache from one glob() call to the
-  options object of another, if you know that the filesystem will not
-  change between calls.  (See "Race Conditions" below.)
-* `sync` Perform a synchronous glob search.
-* `nounique` In some cases, brace-expanded patterns can result in the
-  same file showing up multiple times in the result set.  By default,
-  this implementation prevents duplicates in the result set.
-  Set this flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
-  containing the pattern itself.  This is the default in glob(3).
-* `nocase` Perform a case-insensitive match.  Note that case-insensitive
-  filesystems will sometimes result in glob returning results that are
-  case-insensitively matched anyway, since readdir and stat will not
-  raise an error.
-* `debug` Set to enable debug logging in minimatch and glob.
-* `globDebug` Set to enable debug logging in glob, but not minimatch.
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated.  Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally.  This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything.  Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set.  This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes.  For example,
-`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`.  This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern.  Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity.  Since those two are valid, matching proceeds.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation.  You must use
-forward-slashes **only** in glob expressions.  Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`.  On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead.  However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes.  For the vast majority
-of operations, this is never a problem.


[33/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/package.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/package.json
deleted file mode 100644
index 70bd6d5..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me"
-  },
-  "name": "minimatch",
-  "description": "a glob matcher in javascript",
-  "version": "0.2.12",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/minimatch.git"
-  },
-  "main": "minimatch.js",
-  "scripts": {
-    "test": "tap test"
-  },
-  "engines": {
-    "node": "*"
-  },
-  "dependencies": {
-    "lru-cache": "2",
-    "sigmund": "~1.0.0"
-  },
-  "devDependencies": {
-    "tap": ""
-  },
-  "license": {
-    "type": "MIT",
-    "url": "http://github.com/isaacs/minimatch/raw/master/LICENSE"
-  },
-  "readme": "# minimatch\n\nA minimal matching utility.\n\n[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require(\"minimatch\")\n\nminimatch(\"bar.foo\", \"*.foo\") // true!\nminimatch(\"bar.foo\", \"*.bar\") // false!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* \"Globstar\" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` charac
 ter, then it is negated.  Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally.  This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything.  Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set.  This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not.  **Note that this is different from the way that `**` is\nhandled by ruby's `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\n
 then minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes.  For example,\n`minimatch.match([], \"\\\\*a\\\\?\")` will return `\"\\\\*a\\\\?\"` rather than\n`\"*a?\"`.  This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern.  Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity.  Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require(\"minimatch\").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The opt
 ions supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n  Each row in the\n  array corresponds to a brace-expanded pattern.  Each item in the row\n  corresponds to a single path-part.  For example, the pattern\n  `{a,b/c}/d` would expand to a set of patterns like:\n\n        [ [ a, d ]\n        , [ b, c, d ] ]\n\n    If a portion of the pattern doesn't have any \"magic\" in it\n    (that is, it's something like `\"foo\"` rather than `fo*o?`), then it\n    will be left as a string rather than converted to a regular\n    expression.\n\n* `regexp` Created by the `makeRe` method.  A single regular expression\n  expressing the entire pattern.  This is useful in cases where you wish\n  to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `\"\"`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if 
 necessary, and return it.\n  Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n  false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n  filename, and match it against a single row in the `regExpSet`.  This\n  method is mainly for internal use, but is exposed so that it can be\n  used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items.  So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export.  Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, \"*.js\", { matchBase: true })\n```\n\n### minim
 atch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`.  Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter(\"*.js\", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob.  If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, \"*.js\", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not expli
 citly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable \"extglob\" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself.  When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes.  For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/minimatch/issues"
-  },
-  "_id": "minimatch@0.2.12",
-  "_from": "minimatch@~0.2.9"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/basic.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/basic.js
deleted file mode 100644
index ae7ac73..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/basic.js
+++ /dev/null
@@ -1,399 +0,0 @@
-// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test
-//
-// TODO: Some of these tests do very bad things with backslashes, and will
-// most likely fail badly on windows.  They should probably be skipped.
-
-var tap = require("tap")
-  , globalBefore = Object.keys(global)
-  , mm = require("../")
-  , files = [ "a", "b", "c", "d", "abc"
-            , "abd", "abe", "bb", "bcd"
-            , "ca", "cb", "dd", "de"
-            , "bdir/", "bdir/cfile"]
-  , next = files.concat([ "a-b", "aXb"
-                        , ".x", ".y" ])
-
-
-var patterns =
-  [ "http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test"
-  , ["a*", ["a", "abc", "abd", "abe"]]
-  , ["X*", ["X*"], {nonull: true}]
-
-  // allow null glob expansion
-  , ["X*", []]
-
-  // isaacs: Slightly different than bash/sh/ksh
-  // \\* is not un-escaped to literal "*" in a failed match,
-  // but it does make it get treated as a literal star
-  , ["\\*", ["\\*"], {nonull: true}]
-  , ["\\**", ["\\**"], {nonull: true}]
-  , ["\\*\\*", ["\\*\\*"], {nonull: true}]
-
-  , ["b*/", ["bdir/"]]
-  , ["c*", ["c", "ca", "cb"]]
-  , ["**", files]
-
-  , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}]
-  , ["s/\\..*//", ["s/\\..*//"], {nonull: true}]
-
-  , "legendary larry crashes bashes"
-  , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}]
-  , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}]
-
-  , "character classes"
-  , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]]
-  , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd",
-     "bdir/", "ca", "cb", "dd", "de"]]
-  , ["a*[^c]", ["abd", "abe"]]
-  , function () { files.push("a-b", "aXb") }
-  , ["a[X-]b", ["a-b", "aXb"]]
-  , function () { files.push(".x", ".y") }
-  , ["[^a-c]*", ["d", "dd", "de"]]
-  , function () { files.push("a*b/", "a*b/ooo") }
-  , ["a\\*b/*", ["a*b/ooo"]]
-  , ["a\\*?/*", ["a*b/ooo"]]
-  , ["*\\\\!*", [], {null: true}, ["echo !7"]]
-  , ["*\\!*", ["echo !7"], null, ["echo !7"]]
-  , ["*.\\*", ["r.*"], null, ["r.*"]]
-  , ["a[b]c", ["abc"]]
-  , ["a[\\b]c", ["abc"]]
-  , ["a?c", ["abc"]]
-  , ["a\\*c", [], {null: true}, ["abc"]]
-  , ["", [""], { null: true }, [""]]
-
-  , "http://www.opensource.apple.com/source/bash/bash-23/" +
-    "bash/tests/glob-test"
-  , function () { files.push("man/", "man/man1/", "man/man1/bash.1") }
-  , ["*/man*/bash.*", ["man/man1/bash.1"]]
-  , ["man/man1/bash.1", ["man/man1/bash.1"]]
-  , ["a***c", ["abc"], null, ["abc"]]
-  , ["a*****?c", ["abc"], null, ["abc"]]
-  , ["?*****??", ["abc"], null, ["abc"]]
-  , ["*****??", ["abc"], null, ["abc"]]
-  , ["?*****?c", ["abc"], null, ["abc"]]
-  , ["?***?****c", ["abc"], null, ["abc"]]
-  , ["?***?****?", ["abc"], null, ["abc"]]
-  , ["?***?****", ["abc"], null, ["abc"]]
-  , ["*******c", ["abc"], null, ["abc"]]
-  , ["*******?", ["abc"], null, ["abc"]]
-  , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["[-abc]", ["-"], null, ["-"]]
-  , ["[abc-]", ["-"], null, ["-"]]
-  , ["\\", ["\\"], null, ["\\"]]
-  , ["[\\\\]", ["\\"], null, ["\\"]]
-  , ["[[]", ["["], null, ["["]]
-  , ["[", ["["], null, ["["]]
-  , ["[*", ["[abc"], null, ["[abc"]]
-  , "a right bracket shall lose its special meaning and\n" +
-    "represent itself in a bracket expression if it occurs\n" +
-    "first in the list.  -- POSIX.2 2.8.3.2"
-  , ["[]]", ["]"], null, ["]"]]
-  , ["[]-]", ["]"], null, ["]"]]
-  , ["[a-\z]", ["p"], null, ["p"]]
-  , ["??**********?****?", [], { null: true }, ["abc"]]
-  , ["??**********?****c", [], { null: true }, ["abc"]]
-  , ["?************c****?****", [], { null: true }, ["abc"]]
-  , ["*c*?**", [], { null: true }, ["abc"]]
-  , ["a*****c*?**", [], { null: true }, ["abc"]]
-  , ["a********???*******", [], { null: true }, ["abc"]]
-  , ["[]", [], { null: true }, ["a"]]
-  , ["[abc", [], { null: true }, ["["]]
-
-  , "nocase tests"
-  , ["XYZ", ["xYz"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-  , ["ab*", ["ABC"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-  , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  , "onestar/twostar"
-  , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]]
-  , ["{/?,*}", ["/a", "bb"], {null: true}
-    , ["/a", "/b/b", "/a/b/c", "bb"]]
-
-  , "dots should not match unless requested"
-  , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]]
-
-  // .. and . can only match patterns starting with .,
-  // even when options.dot is set.
-  , function () {
-      files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"]
-    }
-  , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}]
-  , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}]
-  , ["a/*/b", ["a/c/b"], {dot:false}]
-  , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}]
-
-
-  // this also tests that changing the options needs
-  // to change the cache key, even if the pattern is
-  // the same!
-  , ["**", ["a/b","a/.d",".a/.d"], { dot: true }
-    , [ ".a/.d", "a/.d", "a/b"]]
-
-  , "paren sets cannot contain slashes"
-  , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]]
-
-  // brace sets trump all else.
-  //
-  // invalid glob pattern.  fails on bash4 and bsdglob.
-  // however, in this implementation, it's easier just
-  // to do the intuitive thing, and let brace-expansion
-  // actually come before parsing any extglob patterns,
-  // like the documentation seems to say.
-  //
-  // XXX: if anyone complains about this, either fix it
-  // or tell them to grow up and stop complaining.
-  //
-  // bash/bsdglob says this:
-  // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]]
-  // but we do this instead:
-  , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]]
-
-  // test partial parsing in the presence of comment/negation chars
-  , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]]
-  , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]]
-
-  // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped.
-  , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g"
-    , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"]
-    , {}
-    , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]]
-
-
-  // crazy nested {,,} and *(||) tests.
-  , function () {
-      files = [ "a", "b", "c", "d"
-              , "ab", "ac", "ad"
-              , "bc", "cb"
-              , "bc,d", "c,db", "c,d"
-              , "d)", "(b|c", "*(b|c"
-              , "b|c", "b|cc", "cb|c"
-              , "x(a|b|c)", "x(a|c)"
-              , "(a|b|c)", "(a|c)"]
-    }
-  , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]]
-  , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]]
-  // a
-  // *(b|c)
-  // *(b|d)
-  , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]]
-  , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]]
-
-
-  // test various flag settings.
-  , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"]
-    , { noext: true } ]
-  , ["a?b", ["x/y/acb", "acb/"], {matchBase: true}
-    , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ]
-  , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]]
-
-
-  // begin channelling Boole and deMorgan...
-  , "negation tests"
-  , function () {
-      files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"]
-    }
-
-  // anything that is NOT a* matches.
-  , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]]
-
-  // anything that IS !a* matches.
-  , ["!a*", ["!ab", "!abc"], {nonegate: true}]
-
-  // anything that IS a* matches
-  , ["!!a*", ["a!b"]]
-
-  // anything that is NOT !a* matches
-  , ["!\\!a*", ["a!b", "d", "e", "\\!a"]]
-
-  // negation nestled within a pattern
-  , function () {
-      files = [ "foo.js"
-              , "foo.bar"
-              // can't match this one without negative lookbehind.
-              , "foo.js.js"
-              , "blar.js"
-              , "foo."
-              , "boo.js.boo" ]
-    }
-  , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ]
-
-  // https://github.com/isaacs/minimatch/issues/5
-  , function () {
-      files = [ 'a/b/.x/c'
-              , 'a/b/.x/c/d'
-              , 'a/b/.x/c/d/e'
-              , 'a/b/.x'
-              , 'a/b/.x/'
-              , 'a/.x/b'
-              , '.x'
-              , '.x/'
-              , '.x/a'
-              , '.x/a/b'
-              , 'a/.x/b/.x/c'
-              , '.x/.x' ]
-  }
-  , ["**/.x/**", [ '.x/'
-                 , '.x/a'
-                 , '.x/a/b'
-                 , 'a/.x/b'
-                 , 'a/b/.x/'
-                 , 'a/b/.x/c'
-                 , 'a/b/.x/c/d'
-                 , 'a/b/.x/c/d/e' ] ]
-
-  ]
-
-var regexps =
-  [ '/^(?:(?=.)a[^/]*?)$/',
-    '/^(?:(?=.)X[^/]*?)$/',
-    '/^(?:(?=.)X[^/]*?)$/',
-    '/^(?:\\*)$/',
-    '/^(?:(?=.)\\*[^/]*?)$/',
-    '/^(?:\\*\\*)$/',
-    '/^(?:(?=.)b[^/]*?\\/)$/',
-    '/^(?:(?=.)c[^/]*?)$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/',
-    '/^(?:\\.\\.\\/(?!\\.)(?=.)[^/]*?\\/)$/',
-    '/^(?:s\\/(?=.)\\.\\.[^/]*?\\/)$/',
-    '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/1\\/)$/',
-    '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/\u0001\\/)$/',
-    '/^(?:(?!\\.)(?=.)[a-c]b[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[a-y][^/]*?[^c])$/',
-    '/^(?:(?=.)a[^/]*?[^c])$/',
-    '/^(?:(?=.)a[X-]b)$/',
-    '/^(?:(?!\\.)(?=.)[^a-c][^/]*?)$/',
-    '/^(?:a\\*b\\/(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?=.)a\\*[^/]\\/(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\\\\\![^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\![^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\.\\*)$/',
-    '/^(?:(?=.)a[b]c)$/',
-    '/^(?:(?=.)a[b]c)$/',
-    '/^(?:(?=.)a[^/]c)$/',
-    '/^(?:a\\*c)$/',
-    'false',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\/(?=.)man[^/]*?\\/(?=.)bash\\.[^/]*?)$/',
-    '/^(?:man\\/man1\\/bash\\.1)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?=.)a[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k[^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[-abc])$/',
-    '/^(?:(?!\\.)(?=.)[abc-])$/',
-    '/^(?:\\\\)$/',
-    '/^(?:(?!\\.)(?=.)[\\\\])$/',
-    '/^(?:(?!\\.)(?=.)[\\[])$/',
-    '/^(?:\\[)$/',
-    '/^(?:(?=.)\\[(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[\\]])$/',
-    '/^(?:(?!\\.)(?=.)[\\]-])$/',
-    '/^(?:(?!\\.)(?=.)[a-z])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:\\[\\])$/',
-    '/^(?:\\[abc)$/',
-    '/^(?:(?=.)XYZ)$/i',
-    '/^(?:(?=.)ab[^/]*?)$/i',
-    '/^(?:(?!\\.)(?=.)[ia][^/][ck])$/i',
-    '/^(?:\\/(?!\\.)(?=.)[^/]*?|(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:\\/(?!\\.)(?=.)[^/]|(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/',
-    '/^(?:a\\/(?!(?:^|\\/)\\.{1,2}(?:$|\\/))(?=.)[^/]*?\\/b)$/',
-    '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/',
-    '/^(?:a\\/(?!\\.)(?=.)[^/]*?\\/b)$/',
-    '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/',
-    '/^(?:(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\/b\\))$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:(?=.)\\[(?=.)\\!a[^/]*?)$/',
-    '/^(?:(?=.)\\[(?=.)#a[^/]*?)$/',
-    '/^(?:(?=.)\\+\\(a\\|[^/]*?\\|c\\\\\\\\\\|d\\\\\\\\\\|e\\\\\\\\\\\\\\\\\\|f\\\\\\\\\\\\\\\\\\|g)$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:a|(?!\\.)(?=.)[^/]*?\\(b\\|c|d\\))$/',
-    '/^(?:a|(?!\\.)(?=.)(?:b|c)*|(?!\\.)(?=.)(?:b|d)*)$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b|c)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\|b\\|c\\)|(?!\\.)(?=.)[^/]*?\\(a\\|c\\))$/',
-    '/^(?:(?=.)a[^/]b)$/',
-    '/^(?:(?=.)#[^/]*?)$/',
-    '/^(?!^(?:(?=.)a[^/]*?)$).*$/',
-    '/^(?:(?=.)\\!a[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?)$/',
-    '/^(?!^(?:(?=.)\\!a[^/]*?)$).*$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\.(?:(?!js)[^/]*?))$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?\\/\\.x\\/(?:(?!(?:\\/|^)\\.).)*?)$/' ]
-var re = 0;
-
-tap.test("basic tests", function (t) {
-  var start = Date.now()
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  patterns.forEach(function (c) {
-    if (typeof c === "function") return c()
-    if (typeof c === "string") return t.comment(c)
-
-    var pattern = c[0]
-      , expect = c[1].sort(alpha)
-      , options = c[2] || {}
-      , f = c[3] || files
-      , tapOpts = c[4] || {}
-
-    // options.debug = true
-    var m = new mm.Minimatch(pattern, options)
-    var r = m.makeRe()
-    var expectRe = regexps[re++]
-    tapOpts.re = String(r) || JSON.stringify(r)
-    tapOpts.files = JSON.stringify(f)
-    tapOpts.pattern = pattern
-    tapOpts.set = m.set
-    tapOpts.negated = m.negate
-
-    var actual = mm.match(f, pattern, options)
-    actual.sort(alpha)
-
-    t.equivalent( actual, expect
-                , JSON.stringify(pattern) + " " + JSON.stringify(expect)
-                , tapOpts )
-
-    t.equal(tapOpts.re, expectRe, tapOpts)
-  })
-
-  t.comment("time=" + (Date.now() - start) + "ms")
-  t.end()
-})
-
-tap.test("global leak test", function (t) {
-  var globalAfter = Object.keys(global)
-  t.equivalent(globalAfter, globalBefore, "no new globals, please")
-  t.end()
-})
-
-function alpha (a, b) {
-  return a > b ? 1 : -1
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/brace-expand.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/brace-expand.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/brace-expand.js
deleted file mode 100644
index 7ee278a..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/brace-expand.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var tap = require("tap")
-  , minimatch = require("../")
-
-tap.test("brace expansion", function (t) {
-  // [ pattern, [expanded] ]
-  ; [ [ "a{b,c{d,e},{f,g}h}x{y,z}"
-      , [ "abxy"
-        , "abxz"
-        , "acdxy"
-        , "acdxz"
-        , "acexy"
-        , "acexz"
-        , "afhxy"
-        , "afhxz"
-        , "aghxy"
-        , "aghxz" ] ]
-    , [ "a{1..5}b"
-      , [ "a1b"
-        , "a2b"
-        , "a3b"
-        , "a4b"
-        , "a5b" ] ]
-    , [ "a{b}c", ["a{b}c"] ]
-  ].forEach(function (tc) {
-    var p = tc[0]
-      , expect = tc[1]
-    t.equivalent(minimatch.braceExpand(p), expect, p)
-  })
-  console.error("ending")
-  t.end()
-})
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/caching.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/caching.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/caching.js
deleted file mode 100644
index 0fec4b0..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/caching.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var Minimatch = require("../minimatch.js").Minimatch
-var tap = require("tap")
-tap.test("cache test", function (t) {
-  var mm1 = new Minimatch("a?b")
-  var mm2 = new Minimatch("a?b")
-  t.equal(mm1, mm2, "should get the same object")
-  // the lru should drop it after 100 entries
-  for (var i = 0; i < 100; i ++) {
-    new Minimatch("a"+i)
-  }
-  mm2 = new Minimatch("a?b")
-  t.notEqual(mm1, mm2, "cache should have dropped")
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/defaults.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/defaults.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/defaults.js
deleted file mode 100644
index 25f1f60..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/test/defaults.js
+++ /dev/null
@@ -1,274 +0,0 @@
-// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test
-//
-// TODO: Some of these tests do very bad things with backslashes, and will
-// most likely fail badly on windows.  They should probably be skipped.
-
-var tap = require("tap")
-  , globalBefore = Object.keys(global)
-  , mm = require("../")
-  , files = [ "a", "b", "c", "d", "abc"
-            , "abd", "abe", "bb", "bcd"
-            , "ca", "cb", "dd", "de"
-            , "bdir/", "bdir/cfile"]
-  , next = files.concat([ "a-b", "aXb"
-                        , ".x", ".y" ])
-
-tap.test("basic tests", function (t) {
-  var start = Date.now()
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  ; [ "http://www.bashcookbook.com/bashinfo" +
-      "/source/bash-1.14.7/tests/glob-test"
-    , ["a*", ["a", "abc", "abd", "abe"]]
-    , ["X*", ["X*"], {nonull: true}]
-
-    // allow null glob expansion
-    , ["X*", []]
-
-    // isaacs: Slightly different than bash/sh/ksh
-    // \\* is not un-escaped to literal "*" in a failed match,
-    // but it does make it get treated as a literal star
-    , ["\\*", ["\\*"], {nonull: true}]
-    , ["\\**", ["\\**"], {nonull: true}]
-    , ["\\*\\*", ["\\*\\*"], {nonull: true}]
-
-    , ["b*/", ["bdir/"]]
-    , ["c*", ["c", "ca", "cb"]]
-    , ["**", files]
-
-    , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}]
-    , ["s/\\..*//", ["s/\\..*//"], {nonull: true}]
-
-    , "legendary larry crashes bashes"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"
-      , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}]
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"
-      , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}]
-
-    , "character classes"
-    , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]]
-    , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd",
-       "bdir/", "ca", "cb", "dd", "de"]]
-    , ["a*[^c]", ["abd", "abe"]]
-    , function () { files.push("a-b", "aXb") }
-    , ["a[X-]b", ["a-b", "aXb"]]
-    , function () { files.push(".x", ".y") }
-    , ["[^a-c]*", ["d", "dd", "de"]]
-    , function () { files.push("a*b/", "a*b/ooo") }
-    , ["a\\*b/*", ["a*b/ooo"]]
-    , ["a\\*?/*", ["a*b/ooo"]]
-    , ["*\\\\!*", [], {null: true}, ["echo !7"]]
-    , ["*\\!*", ["echo !7"], null, ["echo !7"]]
-    , ["*.\\*", ["r.*"], null, ["r.*"]]
-    , ["a[b]c", ["abc"]]
-    , ["a[\\b]c", ["abc"]]
-    , ["a?c", ["abc"]]
-    , ["a\\*c", [], {null: true}, ["abc"]]
-    , ["", [""], { null: true }, [""]]
-
-    , "http://www.opensource.apple.com/source/bash/bash-23/" +
-      "bash/tests/glob-test"
-    , function () { files.push("man/", "man/man1/", "man/man1/bash.1") }
-    , ["*/man*/bash.*", ["man/man1/bash.1"]]
-    , ["man/man1/bash.1", ["man/man1/bash.1"]]
-    , ["a***c", ["abc"], null, ["abc"]]
-    , ["a*****?c", ["abc"], null, ["abc"]]
-    , ["?*****??", ["abc"], null, ["abc"]]
-    , ["*****??", ["abc"], null, ["abc"]]
-    , ["?*****?c", ["abc"], null, ["abc"]]
-    , ["?***?****c", ["abc"], null, ["abc"]]
-    , ["?***?****?", ["abc"], null, ["abc"]]
-    , ["?***?****", ["abc"], null, ["abc"]]
-    , ["*******c", ["abc"], null, ["abc"]]
-    , ["*******?", ["abc"], null, ["abc"]]
-    , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["[-abc]", ["-"], null, ["-"]]
-    , ["[abc-]", ["-"], null, ["-"]]
-    , ["\\", ["\\"], null, ["\\"]]
-    , ["[\\\\]", ["\\"], null, ["\\"]]
-    , ["[[]", ["["], null, ["["]]
-    , ["[", ["["], null, ["["]]
-    , ["[*", ["[abc"], null, ["[abc"]]
-    , "a right bracket shall lose its special meaning and\n" +
-      "represent itself in a bracket expression if it occurs\n" +
-      "first in the list.  -- POSIX.2 2.8.3.2"
-    , ["[]]", ["]"], null, ["]"]]
-    , ["[]-]", ["]"], null, ["]"]]
-    , ["[a-\z]", ["p"], null, ["p"]]
-    , ["??**********?****?", [], { null: true }, ["abc"]]
-    , ["??**********?****c", [], { null: true }, ["abc"]]
-    , ["?************c****?****", [], { null: true }, ["abc"]]
-    , ["*c*?**", [], { null: true }, ["abc"]]
-    , ["a*****c*?**", [], { null: true }, ["abc"]]
-    , ["a********???*******", [], { null: true }, ["abc"]]
-    , ["[]", [], { null: true }, ["a"]]
-    , ["[abc", [], { null: true }, ["["]]
-
-    , "nocase tests"
-    , ["XYZ", ["xYz"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-    , ["ab*", ["ABC"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-    , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-
-    // [ pattern, [matches], MM opts, files, TAP opts]
-    , "onestar/twostar"
-    , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]]
-    , ["{/?,*}", ["/a", "bb"], {null: true}
-      , ["/a", "/b/b", "/a/b/c", "bb"]]
-
-    , "dots should not match unless requested"
-    , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]]
-
-    // .. and . can only match patterns starting with .,
-    // even when options.dot is set.
-    , function () {
-        files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"]
-      }
-    , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}]
-    , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}]
-    , ["a/*/b", ["a/c/b"], {dot:false}]
-    , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}]
-
-
-    // this also tests that changing the options needs
-    // to change the cache key, even if the pattern is
-    // the same!
-    , ["**", ["a/b","a/.d",".a/.d"], { dot: true }
-      , [ ".a/.d", "a/.d", "a/b"]]
-
-    , "paren sets cannot contain slashes"
-    , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]]
-
-    // brace sets trump all else.
-    //
-    // invalid glob pattern.  fails on bash4 and bsdglob.
-    // however, in this implementation, it's easier just
-    // to do the intuitive thing, and let brace-expansion
-    // actually come before parsing any extglob patterns,
-    // like the documentation seems to say.
-    //
-    // XXX: if anyone complains about this, either fix it
-    // or tell them to grow up and stop complaining.
-    //
-    // bash/bsdglob says this:
-    // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]]
-    // but we do this instead:
-    , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]]
-
-    // test partial parsing in the presence of comment/negation chars
-    , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]]
-    , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]]
-
-    // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped.
-    , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g"
-      , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"]
-      , {}
-      , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]]
-
-
-    // crazy nested {,,} and *(||) tests.
-    , function () {
-        files = [ "a", "b", "c", "d"
-                , "ab", "ac", "ad"
-                , "bc", "cb"
-                , "bc,d", "c,db", "c,d"
-                , "d)", "(b|c", "*(b|c"
-                , "b|c", "b|cc", "cb|c"
-                , "x(a|b|c)", "x(a|c)"
-                , "(a|b|c)", "(a|c)"]
-      }
-    , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]]
-    , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]]
-    // a
-    // *(b|c)
-    // *(b|d)
-    , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]]
-    , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]]
-
-
-    // test various flag settings.
-    , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"]
-      , { noext: true } ]
-    , ["a?b", ["x/y/acb", "acb/"], {matchBase: true}
-      , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ]
-    , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]]
-
-
-    // begin channelling Boole and deMorgan...
-    , "negation tests"
-    , function () {
-        files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"]
-      }
-
-    // anything that is NOT a* matches.
-    , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]]
-
-    // anything that IS !a* matches.
-    , ["!a*", ["!ab", "!abc"], {nonegate: true}]
-
-    // anything that IS a* matches
-    , ["!!a*", ["a!b"]]
-
-    // anything that is NOT !a* matches
-    , ["!\\!a*", ["a!b", "d", "e", "\\!a"]]
-
-    // negation nestled within a pattern
-    , function () {
-        files = [ "foo.js"
-                , "foo.bar"
-                // can't match this one without negative lookbehind.
-                , "foo.js.js"
-                , "blar.js"
-                , "foo."
-                , "boo.js.boo" ]
-      }
-    , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ]
-
-    ].forEach(function (c) {
-      if (typeof c === "function") return c()
-      if (typeof c === "string") return t.comment(c)
-
-      var pattern = c[0]
-        , expect = c[1].sort(alpha)
-        , options = c[2] || {}
-        , f = c[3] || files
-        , tapOpts = c[4] || {}
-
-      // options.debug = true
-      var Class = mm.defaults(options).Minimatch
-      var m = new Class(pattern, {})
-      var r = m.makeRe()
-      tapOpts.re = String(r) || JSON.stringify(r)
-      tapOpts.files = JSON.stringify(f)
-      tapOpts.pattern = pattern
-      tapOpts.set = m.set
-      tapOpts.negated = m.negate
-
-      var actual = mm.match(f, pattern, options)
-      actual.sort(alpha)
-
-      t.equivalent( actual, expect
-                  , JSON.stringify(pattern) + " " + JSON.stringify(expect)
-                  , tapOpts )
-    })
-
-  t.comment("time=" + (Date.now() - start) + "ms")
-  t.end()
-})
-
-tap.test("global leak test", function (t) {
-  var globalAfter = Object.keys(global)
-  t.equivalent(globalAfter, globalBefore, "no new globals, please")
-  t.end()
-})
-
-function alpha (a, b) {
-  return a > b ? 1 : -1
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/package.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/package.json
deleted file mode 100644
index e1c309c..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
-  "name": "gaze",
-  "description": "A globbing fs.watch wrapper built from the best parts of other fine watch libs.",
-  "version": "0.3.4",
-  "homepage": "https://github.com/shama/gaze",
-  "author": {
-    "name": "Kyle Robinson Young",
-    "email": "kyle@dontkry.com"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/shama/gaze.git"
-  },
-  "bugs": {
-    "url": "https://github.com/shama/gaze/issues"
-  },
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "https://github.com/shama/gaze/blob/master/LICENSE-MIT"
-    }
-  ],
-  "main": "lib/gaze",
-  "engines": {
-    "node": ">= 0.6.0"
-  },
-  "scripts": {
-    "test": "grunt nodeunit -v"
-  },
-  "dependencies": {
-    "minimatch": "~0.2.9",
-    "fileset": "~0.1.5"
-  },
-  "devDependencies": {
-    "grunt": "~0.4.0rc7",
-    "grunt-contrib-nodeunit": "~0.1.2rc6",
-    "grunt-contrib-jshint": "~0.1.1rc6",
-    "grunt-benchmark": "~0.1.1"
-  },
-  "keywords": [
-    "watch",
-    "glob"
-  ],
-  "contributors": [
-    {
-      "name": "Kyle Robinson Young",
-      "url": "http://dontkry.com"
-    },
-    {
-      "name": "Sam Day",
-      "url": "http://sam.is-super-awesome.com"
-    },
-    {
-      "name": "Roarke Gaskill",
-      "url": "http://starkinvestments.com"
-    },
-    {
-      "name": "Lance Pollard",
-      "url": "http://lancepollard.com/"
-    },
-    {
-      "name": "Daniel Fagnan",
-      "url": "http://hydrocodedesign.com/"
-    }
-  ],
-  "readme": "# gaze [![Build Status](https://secure.travis-ci.org/shama/gaze.png?branch=master)](http://travis-ci.org/shama/gaze)\n\nA globbing fs.watch wrapper built from the best parts of other fine watch libs.\n\nCompatible with NodeJS v0.8/0.6, Windows, OSX and Linux.\n\n## Usage\nInstall the module with: `npm install gaze` or place into your `package.json`\nand run `npm install`.\n\n```javascript\nvar gaze = require('gaze');\n\n// Watch all .js files/dirs in process.cwd()\ngaze('**/*.js', function(err, watcher) {\n  // Files have all started watching\n  // watcher === this\n\n  // Get all watched files\n  console.log(this.watched());\n\n  // On file changed\n  this.on('changed', function(filepath) {\n    console.log(filepath + ' was changed');\n  });\n\n  // On file added\n  this.on('added', function(filepath) {\n    console.log(filepath + ' was added');\n  });\n\n  // On file deleted\n  this.on('deleted', function(filepath) {\n    console.log(filepath + ' was deleted');\n  });
 \n\n  // On changed/added/deleted\n  this.on('all', function(event, filepath) {\n    console.log(filepath + ' was ' + event);\n  });\n\n  // Get watched files with relative paths\n  console.log(this.relative());\n});\n\n// Also accepts an array of patterns\ngaze(['stylesheets/*.css', 'images/**/*.png'], function() {\n  // Add more patterns later to be watched\n  this.add(['js/*.js']);\n});\n```\n\n### Alternate Interface\n\n```javascript\nvar Gaze = require('gaze').Gaze;\n\nvar gaze = new Gaze('**/*');\n\n// Files have all started watching\ngaze.on('ready', function(watcher) { });\n\n// A file has been added/changed/deleted has occurred\ngaze.on('all', function(event, filepath) { });\n```\n\n### Errors\n\n```javascript\ngaze('**/*', function() {\n  this.on('error', function(err) {\n    // Handle error here\n  });\n});\n```\n\n### Minimatch / Glob\n\nSee [isaacs's minimatch](https://github.com/isaacs/minimatch) for more\ninformation on glob patterns.\n\n## Documentation\n\n### gaze(p
 atterns, [options], callback)\n\n* `patterns` {String|Array} File patterns to be matched\n* `options` {Object}\n* `callback` {Function}\n  * `err` {Error | null}\n  * `watcher` {Object} Instance of the Gaze watcher\n\n### Class: gaze.Gaze\n\nCreate a Gaze object by instanting the `gaze.Gaze` class.\n\n```javascript\nvar Gaze = require('gaze').Gaze;\nvar gaze = new Gaze(pattern, options, callback);\n```\n\n#### Properties\n\n* `options` The options object passed in.\n  * `interval` {integer} Interval to pass to fs.watchFile\n  * `debounceDelay` {integer} Delay for events called in succession for the same\n    file/event\n\n#### Events\n\n* `ready(watcher)` When files have been globbed and watching has begun.\n* `all(event, filepath)` When an `added`, `changed` or `deleted` event occurs.\n* `added(filepath)` When a file has been added to a watch directory.\n* `changed(filepath)` When a file has been changed.\n* `deleted(filepath)` When a file has been deleted.\n* `renamed(newPath, old
 Path)` When a file has been renamed.\n* `end()` When the watcher is closed and watches have been removed.\n* `error(err)` When an error occurs.\n\n#### Methods\n\n* `emit(event, [...])` Wrapper for the EventEmitter.emit.\n  `added`|`changed`|`deleted` events will also trigger the `all` event.\n* `close()` Unwatch all files and reset the watch instance.\n* `add(patterns, callback)` Adds file(s) patterns to be watched.\n* `remove(filepath)` removes a file or directory from being watched. Does not\n  recurse directories.\n* `watched()` Returns the currently watched files.\n* `relative([dir, unixify])` Returns the currently watched files with relative paths.\n  * `dir` {string} Only return relative files for this directory.\n  * `unixify` {boolean} Return paths with `/` instead of `\\\\` if on Windows.\n\n## FAQs\n\n### Why Another `fs.watch` Wrapper?\nI liked parts of other `fs.watch` wrappers but none had all the features I\nneeded. This lib combines the features I needed from other f
 ine watch libs:\nSpeedy data behavior from\n[paulmillr's chokidar](https://github.com/paulmillr/chokidar), API interface\nfrom [mikeal's watch](https://github.com/mikeal/watch) and file globbing using\n[isaacs's glob](https://github.com/isaacs/node-glob) which is also used by\n[cowboy's Grunt](https://github.com/gruntjs/grunt).\n\n### How do I fix the error `EMFILE: Too many opened files.`?\nThis is because of your system's max opened file limit. For OSX the default is\nvery low (256). Increase your limit temporarily with `ulimit -n 10480`, the\nnumber being the new max limit.\n\n## Contributing\nIn lieu of a formal styleguide, take care to maintain the existing coding style.\nAdd unit tests for any new or changed functionality. Lint and test your code\nusing [grunt](http://gruntjs.com/).\n\n## Release History\n* 0.3.4 - Code clean up. Fix path must be strings errors (@groner). Fix incorrect added events (@groner).\n* 0.3.3 - Fix for multiple patterns with negate.\n* 0.3.2 - Emit `e
 nd` before removeAllListeners.\n* 0.3.1 - Fix added events within subfolder patterns.\n* 0.3.0 - Handle safewrite events, `forceWatchMethod` option removed, bug fixes and watch optimizations (@rgaskill).\n* 0.2.2 - Fix issue where subsequent add calls dont get watched (@samcday). removeAllListeners on close.\n* 0.2.1 - Fix issue with invalid `added` events in current working dir.\n* 0.2.0 - Support and mark folders with `path.sep`. Add `forceWatchMethod` option. Support `renamed` events.\n* 0.1.6 - Recognize the `cwd` option properly\n* 0.1.5 - Catch too many open file errors\n* 0.1.4 - Really fix the race condition with 2 watches\n* 0.1.3 - Fix race condition with 2 watches\n* 0.1.2 - Read triggering changed event fix\n* 0.1.1 - Minor fixes\n* 0.1.0 - Initial release\n\n## License\nCopyright (c) 2013 Kyle Robinson Young\nLicensed under the MIT license.\n",
-  "readmeFilename": "README.md",
-  "_id": "gaze@0.3.4",
-  "_from": "gaze@~0.3.2"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/add_test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/add_test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/add_test.js
deleted file mode 100644
index 6949ac9..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/add_test.js
+++ /dev/null
@@ -1,50 +0,0 @@
-'use strict';
-
-var Gaze = require('../lib/gaze.js').Gaze;
-var path = require('path');
-var fs = require('fs');
-
-exports.add = {
-  setUp: function(done) {
-    process.chdir(path.resolve(__dirname, 'fixtures'));
-    done();
-  },
-  addToWatched: function(test) {
-    test.expect(1);
-    var files = [
-      'Project (LO)/',
-      'Project (LO)/one.js',
-      'nested/',
-      'nested/one.js',
-      'nested/three.js',
-      'nested/sub/',
-      'nested/sub/two.js',
-      'one.js'
-    ];
-    var expected = {
-      'Project (LO)/': ['one.js'],
-      '.': ['Project (LO)/', 'nested/', 'one.js'],
-      'nested/': ['one.js', 'three.js', 'sub/'],
-      'nested/sub/': ['two.js']
-    };
-    var gaze = new Gaze('addnothingtowatch');
-    gaze._addToWatched(files);
-    test.deepEqual(gaze.relative(null, true), expected);
-    test.done();
-  },
-  addLater: function(test) {
-    test.expect(3);
-    new Gaze('sub/one.js', function(err, watcher) {
-      test.deepEqual(watcher.relative('sub'), ['one.js']);
-      watcher.add('sub/*.js', function() {
-        test.deepEqual(watcher.relative('sub'), ['one.js', 'two.js']);
-        watcher.on('changed', function(filepath) {
-          test.equal('two.js', path.basename(filepath));
-          watcher.close();
-          test.done();
-        });
-        fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'two.js'), 'var two = true;');
-      });
-    });
-  }
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/api_test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/api_test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/api_test.js
deleted file mode 100644
index 42d258e..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/api_test.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-var gaze = require('../lib/gaze.js');
-var path = require('path');
-
-exports.api = {
-  setUp: function(done) {
-    process.chdir(path.resolve(__dirname, 'fixtures'));
-    done();
-  },
-  newGaze: function(test) {
-    test.expect(2);
-    new gaze.Gaze('**/*', {}, function() {
-      var result = this.relative(null, true);
-      test.deepEqual(result['.'], ['Project (LO)/', 'nested/', 'one.js', 'sub/']);
-      test.deepEqual(result['sub/'], ['one.js', 'two.js']);
-      this.close();
-      test.done();
-    });
-  },
-  func: function(test) {
-    test.expect(1);
-    var g = gaze('**/*', function(err, watcher) {
-      test.deepEqual(watcher.relative('sub', true), ['one.js', 'two.js']);
-      g.close();
-      test.done();
-    });
-  },
-  ready: function(test) {
-    test.expect(1);
-    var g = new gaze.Gaze('**/*');
-    g.on('ready', function(watcher) {
-      test.deepEqual(watcher.relative('sub', true), ['one.js', 'two.js']);
-      this.close();
-      test.done();
-    });
-  }
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/Project (LO)/one.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/Project (LO)/one.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/Project (LO)/one.js
deleted file mode 100644
index fefeeea..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/Project (LO)/one.js	
+++ /dev/null
@@ -1 +0,0 @@
-var one = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/one.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/one.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/one.js
deleted file mode 100644
index fefeeea..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/one.js
+++ /dev/null
@@ -1 +0,0 @@
-var one = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/sub/two.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/sub/two.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/sub/two.js
deleted file mode 100644
index 24ad8a3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/sub/two.js
+++ /dev/null
@@ -1 +0,0 @@
-var two = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/sub2/two.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/sub2/two.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/sub2/two.js
deleted file mode 100644
index 24ad8a3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/sub2/two.js
+++ /dev/null
@@ -1 +0,0 @@
-var two = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/three.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/three.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/three.js
deleted file mode 100644
index 3392956..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/nested/three.js
+++ /dev/null
@@ -1 +0,0 @@
-var three = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/one.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/one.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/one.js
deleted file mode 100644
index 517f09f..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/one.js
+++ /dev/null
@@ -1 +0,0 @@
-var test = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/sub/one.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/sub/one.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/sub/one.js
deleted file mode 100644
index fefeeea..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/sub/one.js
+++ /dev/null
@@ -1 +0,0 @@
-var one = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/sub/two.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/sub/two.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/sub/two.js
deleted file mode 100644
index 24ad8a3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/fixtures/sub/two.js
+++ /dev/null
@@ -1 +0,0 @@
-var two = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/matching_test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/matching_test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/matching_test.js
deleted file mode 100644
index 9e01cd2..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/matching_test.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-var gaze = require('../lib/gaze.js');
-var path = require('path');
-
-exports.matching = {
-  setUp: function(done) {
-    process.chdir(path.resolve(__dirname, 'fixtures'));
-    done();
-  },
-  globAll: function(test) {
-    test.expect(2);
-    gaze('**/*', function() {
-      var result = this.relative(null, true);
-      test.deepEqual(result['.'], ['Project (LO)/', 'nested/', 'one.js', 'sub/']);
-      test.deepEqual(result['sub/'], ['one.js', 'two.js']);
-      this.close();
-      test.done();
-    });
-  },
-  relativeDir: function(test) {
-    test.expect(1);
-    gaze('**/*', function() {
-      test.deepEqual(this.relative('sub', true), ['one.js', 'two.js']);
-      this.close();
-      test.done();
-    });
-  },
-  globArray: function(test) {
-    test.expect(2);
-    gaze(['*.js', 'sub/*.js'], function() {
-      var result = this.relative(null, true);
-      test.deepEqual(result['.'], ['one.js']);
-      test.deepEqual(result['sub/'], ['one.js', 'two.js']);
-      this.close();
-      test.done();
-    });
-  },
-  globArrayDot: function(test) {
-    test.expect(1);
-    gaze(['./sub/*.js'], function() {
-      var result = this.relative(null, true);
-      test.deepEqual(result['sub/'], ['one.js', 'two.js']);
-      this.close();
-      test.done();
-    });
-  },
-  oddName: function(test) {
-    test.expect(1);
-    gaze(['Project (LO)/*.js'], function() {
-      var result = this.relative(null, true);
-      test.deepEqual(result['Project (LO)/'], ['one.js']);
-      this.close();
-      test.done();
-    });
-  }
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/patterns_test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/patterns_test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/patterns_test.js
deleted file mode 100644
index 46b94e4..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/patterns_test.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-var gaze = require('../lib/gaze.js');
-var path = require('path');
-var fs = require('fs');
-
-// Clean up helper to call in setUp and tearDown
-function cleanUp(done) {
-  [
-    'added.js',
-    'nested/added.js',
-  ].forEach(function(d) {
-    var p = path.resolve(__dirname, 'fixtures', d);
-    if (fs.existsSync(p)) { fs.unlinkSync(p); }
-  });
-  done();
-}
-
-exports.patterns = {
-  setUp: function(done) {
-    process.chdir(path.resolve(__dirname, 'fixtures'));
-    cleanUp(done);
-  },
-  tearDown: cleanUp,
-  negate: function(test) {
-    test.expect(1);
-    gaze(['**/*.js', '!nested/**/*.js'], function(err, watcher) {
-      watcher.on('added', function(filepath) {
-        var expected = path.relative(process.cwd(), filepath);
-        test.equal(path.join('added.js'), expected);
-        watcher.close();
-      });
-      // dont add
-      fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'nested', 'added.js'), 'var added = true;');
-      setTimeout(function() {
-        // should add
-        fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'added.js'), 'var added = true;');
-      }, 1000);
-      watcher.on('end', test.done);
-    });
-  }
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/relative_test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/relative_test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/relative_test.js
deleted file mode 100644
index 52e5a57..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/relative_test.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var Gaze = require('../lib/gaze.js').Gaze;
-var path = require('path');
-
-exports.relative = {
-  setUp: function(done) {
-    process.chdir(path.resolve(__dirname, 'fixtures'));
-    done();
-  },
-  relative: function(test) {
-    test.expect(1);
-    var files = [
-      'Project (LO)/',
-      'Project (LO)/one.js',
-      'nested/',
-      'nested/one.js',
-      'nested/three.js',
-      'nested/sub/',
-      'nested/sub/two.js',
-      'one.js'
-    ];
-    var gaze = new Gaze('addnothingtowatch');
-    gaze._addToWatched(files);
-    test.deepEqual(gaze.relative('.', true), ['Project (LO)/', 'nested/', 'one.js']);
-    test.done();
-  }
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/rename_test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/rename_test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/rename_test.js
deleted file mode 100644
index 028b344..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/rename_test.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-var gaze = require('../lib/gaze.js');
-var path = require('path');
-var fs = require('fs');
-
-// Node v0.6 compat
-fs.existsSync = fs.existsSync || path.existsSync;
-
-// Clean up helper to call in setUp and tearDown
-function cleanUp(done) {
-  [
-    'sub/rename.js',
-    'sub/renamed.js'
-  ].forEach(function(d) {
-    var p = path.resolve(__dirname, 'fixtures', d);
-    if (fs.existsSync(p)) { fs.unlinkSync(p); }
-  });
-  done();
-}
-
-exports.watch = {
-  setUp: function(done) {
-    process.chdir(path.resolve(__dirname, 'fixtures'));
-    cleanUp(done);
-  },
-  tearDown: cleanUp,
-  rename: function(test) {
-    test.expect(2);
-    var oldPath = path.join(__dirname, 'fixtures', 'sub', 'rename.js');
-    var newPath = path.join(__dirname, 'fixtures', 'sub', 'renamed.js');
-    fs.writeFileSync(oldPath, 'var rename = true;');
-    gaze('**/*', function(err, watcher) {
-      watcher.on('renamed', function(newFile, oldFile) {
-        test.equal(newFile, newPath);
-        test.equal(oldFile, oldPath);
-        watcher.close();
-        test.done();
-      });
-      fs.renameSync(oldPath, newPath);
-    });
-  }
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/safewrite_test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/safewrite_test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/safewrite_test.js
deleted file mode 100644
index 9200f11..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/safewrite_test.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-
-var gaze = require('../lib/gaze.js');
-var path = require('path');
-var fs = require('fs');
-
-// Node v0.6 compat
-fs.existsSync = fs.existsSync || path.existsSync;
-
-// Clean up helper to call in setUp and tearDown
-function cleanUp(done) {
-  [
-    'safewrite.js'
-  ].forEach(function(d) {
-    var p = path.resolve(__dirname, 'fixtures', d);
-    if (fs.existsSync(p)) { fs.unlinkSync(p); }
-  });
-  done();
-}
-
-exports.safewrite = {
-  setUp: function(done) {
-    process.chdir(path.resolve(__dirname, 'fixtures'));
-    cleanUp(done);
-  },
-  tearDown: cleanUp,
-  safewrite: function(test) {
-    test.expect(4);
-
-    var times = 0;
-    var file = path.resolve(__dirname, 'fixtures', 'safewrite.js');
-    var backup = path.resolve(__dirname, 'fixtures', 'safewrite.ext~');
-    fs.writeFileSync(file, 'var safe = true;');
-
-    function simSafewrite() {
-      fs.writeFileSync(backup, fs.readFileSync(file));
-      fs.unlinkSync(file);
-      fs.renameSync(backup, file);
-      times++;
-    }
-
-    gaze('**/*', function() {
-      this.on('all', function(action, filepath) {
-        test.equal(action, 'changed');
-        test.equal(path.basename(filepath), 'safewrite.js');
-
-        if (times < 2) {
-          setTimeout(simSafewrite, 1000);
-        } else {
-          this.close();
-          test.done();
-        }
-      });
-
-      setTimeout(function() {
-        simSafewrite();
-      }, 1000);
-
-    });
-  }
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/watch_test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/watch_test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/watch_test.js
deleted file mode 100644
index 9d58521..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/test/watch_test.js
+++ /dev/null
@@ -1,207 +0,0 @@
-'use strict';
-
-var gaze = require('../lib/gaze.js');
-var grunt = require('grunt');
-var path = require('path');
-var fs = require('fs');
-
-// Node v0.6 compat
-fs.existsSync = fs.existsSync || path.existsSync;
-
-// Clean up helper to call in setUp and tearDown
-function cleanUp(done) {
-  [
-    'sub/tmp.js',
-    'sub/tmp',
-    'sub/renamed.js',
-    'added.js',
-    'nested/added.js',
-    'nested/.tmp',
-    'nested/sub/added.js'
-  ].forEach(function(d) {
-    var p = path.resolve(__dirname, 'fixtures', d);
-    if (fs.existsSync(p)) { fs.unlinkSync(p); }
-  });
-  done();
-}
-
-exports.watch = {
-  setUp: function(done) {
-    process.chdir(path.resolve(__dirname, 'fixtures'));
-    cleanUp(done);
-  },
-  tearDown: cleanUp,
-  remove: function(test) {
-    test.expect(2);
-    gaze('**/*', function() {
-      this.remove(path.resolve(__dirname, 'fixtures', 'sub', 'two.js'));
-      this.remove(path.resolve(__dirname, 'fixtures'));
-      var result = this.relative(null, true);
-      test.deepEqual(result['sub/'], ['one.js']);
-      test.notDeepEqual(result['.'], ['one.js']);
-      this.close();
-      test.done();
-    });
-  },
-  changed: function(test) {
-    test.expect(1);
-    gaze('**/*', function(err, watcher) {
-      watcher.on('changed', function(filepath) {
-        var expected = path.relative(process.cwd(), filepath);
-        test.equal(path.join('sub', 'one.js'), expected);
-        watcher.close();
-      });
-      this.on('added', function() { test.ok(false, 'added event should not have emitted.'); });
-      this.on('deleted', function() { test.ok(false, 'deleted event should not have emitted.'); });
-      fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'one.js'), 'var one = true;');
-      watcher.on('end', test.done);
-    });
-  },
-  added: function(test) {
-    test.expect(1);
-    gaze('**/*', function(err, watcher) {
-      watcher.on('added', function(filepath) {
-        var expected = path.relative(process.cwd(), filepath);
-        test.equal(path.join('sub', 'tmp.js'), expected);
-        watcher.close();
-      });
-      this.on('changed', function() { test.ok(false, 'changed event should not have emitted.'); });
-      this.on('deleted', function() { test.ok(false, 'deleted event should not have emitted.'); });
-      fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'tmp.js'), 'var tmp = true;');
-      watcher.on('end', test.done);
-    });
-  },
-  dontAddUnmatchedFiles: function(test) {
-    test.expect(2);
-    gaze('**/*.js', function(err, watcher) {
-      setTimeout(function() {
-        test.ok(true, 'Ended without adding a file.');
-        watcher.close();
-      }, 1000);
-      this.on('added', function(filepath) {
-        test.equal(path.relative(process.cwd(), filepath), path.join('sub', 'tmp.js'));
-      });
-      fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'tmp'), 'Dont add me!');
-      fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'tmp.js'), 'add me!');
-      watcher.on('end', test.done);
-    });
-  },
-  dontAddMatchedDirectoriesThatArentReallyAdded: function(test) {
-    // This is a regression test for a bug I ran into where a matching directory would be reported
-    // added when a non-matching file was created along side it.  This only happens if the
-    // directory name doesn't occur in $PWD.
-    test.expect(1);
-    gaze('**/*', function(err, watcher) {
-      setTimeout(function() {
-        test.ok(true, 'Ended without adding a file.');
-        watcher.close();
-      }, 1000);
-      this.on('added', function(filepath) {
-        test.notEqual(path.relative(process.cwd(), filepath), path.join('nested', 'sub2'));
-      });
-      fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'nested', '.tmp'), 'Wake up!');
-      watcher.on('end', test.done);
-    });
-  },
-  deleted: function(test) {
-    test.expect(1);
-    var tmpfile = path.resolve(__dirname, 'fixtures', 'sub', 'deleted.js');
-    fs.writeFileSync(tmpfile, 'var tmp = true;');
-    gaze('**/*', function(err, watcher) {
-      watcher.on('deleted', function(filepath) {
-        test.equal(path.join('sub', 'deleted.js'), path.relative(process.cwd(), filepath));
-        watcher.close();
-      });
-      this.on('changed', function() { test.ok(false, 'changed event should not have emitted.'); });
-      this.on('added', function() { test.ok(false, 'added event should not have emitted.'); });
-      fs.unlinkSync(tmpfile);
-      watcher.on('end', test.done);
-    });
-  },
-  dontEmitTwice: function(test) {
-    test.expect(2);
-    gaze('**/*', function(err, watcher) {
-      watcher.on('all', function(status, filepath) {
-        var expected = path.relative(process.cwd(), filepath);
-        test.equal(path.join('sub', 'one.js'), expected);
-        test.equal(status, 'changed');
-        fs.readFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'one.js'));
-        setTimeout(function() {
-          fs.readFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'one.js'));
-        }, 1000);
-        // Give some time to accidentally emit before we close
-        setTimeout(function() { watcher.close(); }, 5000);
-      });
-      setTimeout(function() {
-        fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'one.js'), 'var one = true;');
-      }, 1000);
-      watcher.on('end', test.done);
-    });
-  },
-  emitTwice: function(test) {
-    test.expect(2);
-    var times = 0;
-    gaze('**/*', function(err, watcher) {
-      watcher.on('all', function(status, filepath) {
-        test.equal(status, 'changed');
-        times++;
-        setTimeout(function() {
-          if (times < 2) {
-            fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'one.js'), 'var one = true;');
-          } else {
-            watcher.close();
-          }
-        }, 1000);
-      });
-      setTimeout(function() {
-        fs.writeFileSync(path.resolve(__dirname, 'fixtures', 'sub', 'one.js'), 'var one = true;');
-      }, 1000);
-      watcher.on('end', test.done);
-    });
-  },
-  nonExistent: function(test) {
-    test.expect(1);
-    gaze('non/existent/**/*', function(err, watcher) {
-      test.ok(true);
-      test.done();
-    });
-  },
-  differentCWD: function(test) {
-    test.expect(1);
-    var cwd = path.resolve(__dirname, 'fixtures', 'sub');
-    gaze('two.js', {
-      cwd: cwd
-    }, function(err, watcher) {
-      watcher.on('changed', function(filepath) {
-        test.deepEqual(this.relative(), {'.':['two.js']});
-        watcher.close();
-      });
-      fs.writeFileSync(path.resolve(cwd, 'two.js'), 'var two = true;');
-      watcher.on('end', test.done);
-    });
-  },
-  addedEmitInSubFolders: function(test) {
-    test.expect(4);
-    var adds = [
-      { pattern: '**/*', file: path.resolve(__dirname, 'fixtures', 'nested', 'sub', 'added.js') },
-      { pattern: '**/*', file: path.resolve(__dirname, 'fixtures', 'added.js') },
-      { pattern: 'nested/**/*', file: path.resolve(__dirname, 'fixtures', 'nested', 'added.js') },
-      { pattern: 'nested/sub/*.js', file: path.resolve(__dirname, 'fixtures', 'nested', 'sub', 'added.js') },
-    ];
-    grunt.util.async.forEachSeries(adds, function(add, next) {
-      new gaze.Gaze(add.pattern, function(err, watcher) {
-        watcher.on('added', function(filepath) {
-          test.equal('added.js', path.basename(filepath));
-          fs.unlinkSync(filepath);
-          watcher.close();
-          next();
-        });
-        watcher.on('changed', function() { test.ok(false, 'changed event should not have emitted.'); });
-        watcher.on('deleted', function() { test.ok(false, 'deleted event should not have emitted.'); });
-        fs.writeFileSync(add.file, 'var added = true;');
-      });
-    }, function() {
-      test.done();
-    });
-  },
-};

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/.npmignore b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/.npmignore
deleted file mode 100644
index c9b568f..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.pyc
-*.swp

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/LICENSE
deleted file mode 100644
index fcc702f..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2010 Larry Myers
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/README.markdown
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/README.markdown b/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/README.markdown
deleted file mode 100644
index 0c1f285..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/jasmine-reporters/README.markdown
+++ /dev/null
@@ -1,52 +0,0 @@
-# Jasmine Reporters
-
-Jasmine Reporters is a collection of javascript jasmine.Reporter classes that can be used with
-the [JasmineBDD testing framework](http://pivotal.github.com/jasmine/).
-
-Right now the project is focused on two new reporters:
-
-* ConsoleReporter - Report test results to the browser console.
-* JUnitXmlReporter - Report test results to a file (using Rhino or PyPhantomJS) in JUnit XML Report format.
-
-## Usage
-
-Examples are included in the test directory that show how to use the reporters,
-as well a basic runner scripts for Rhino + envjs, and a basic runner for 
-[PhantomJS](https://github.com/ariya/phantomjs) (using PyPhantomJS and the
-saveToFile plugin). Either of these methods could be used in a Continuous
-Integration project for running headless tests and generating JUnit XML output.
-
-### Rhino + EnvJS
-
-Everything needed to run the tests in Rhino + EnvJS is included in this
-repository inside the `ext` directory, specifically Rhino 1.7r2 and envjs 1.2
-for Rhino.
-
-### PhantomJS, PyPhantomJS
-
-PhantomJS is included as a submodule inside the `ext` directory. The included
-example runner makes use of PyPhantomJS to execute the headless tests and
-save XML output to the filesystem.
-
-While PhantomJS and PyPhantomJS both run on MacOS / Linux / Windows, there are
-specific dependencies for each platform. Specifics on installing these are not
-included here, but is left as an exercise for the reader. The [PhantomJS](https://github.com/ariya/phantomjs)
-project contains links to various documentation, including installation notes.
-
-Here is how I got it working in MacOSX 10.6 (YMMV):
-
-* ensure you are using Python 2.6+
-* install Xcode (this gives you make, et al)
-* install qt (this gives you qmake, et al)
-  * this may be easiest via [homebrew](https://github.com/mxcl/homebrew)
-  * `brew install qt`
-* install the python sip module
-  * `pip install sip # this will fail to fully install sip, keep going`
-  * `cd build/sip`
-  * `python configure.py`
-  * `make && sudo make install`
-* install the python pyqt module
-  * `pip install pyqt # this will fail to fully install pyqt, keep going`
-  * `cd build/pyqt`
-  * `python configure.py`
-  * `make && sudo make install`


[51/53] [abbrv] [partial] webworks commit: CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
CB-6440 create - use shelljs rather than custom copy function


Project: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/commit/3016473f
Tree: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/tree/3016473f
Diff: http://git-wip-us.apache.org/repos/asf/cordova-blackberry/diff/3016473f

Branch: refs/heads/master
Commit: 3016473ff10dd7f02674c714460a3728a2900db7
Parents: 6363264
Author: Bryan Higgins <bh...@blackberry.com>
Authored: Sat Apr 12 10:00:49 2014 -0400
Committer: Bryan Higgins <bh...@blackberry.com>
Committed: Sat Apr 12 21:03:39 2014 -0400

----------------------------------------------------------------------
 blackberry10/bin/lib/create.js                  |     44 +-
 blackberry10/node_modules/.bin/jake             |      1 -
 blackberry10/node_modules/.bin/jasmine-node     |      1 -
 blackberry10/node_modules/.bin/plugman          |      1 -
 blackberry10/node_modules/async/package.json    |      6 +-
 .../node_modules/elementtree/package.json       |      2 +-
 blackberry10/node_modules/exit/package.json     |      6 +-
 blackberry10/node_modules/jake/Jakefile         |     43 -
 blackberry10/node_modules/jake/Makefile         |     44 -
 blackberry10/node_modules/jake/README.md        |    946 -
 blackberry10/node_modules/jake/bin/cli.js       |     23 -
 blackberry10/node_modules/jake/lib/api.js       |    241 -
 blackberry10/node_modules/jake/lib/file_list.js |    287 -
 blackberry10/node_modules/jake/lib/jake.js      |    280 -
 blackberry10/node_modules/jake/lib/loader.js    |     94 -
 .../node_modules/jake/lib/npm_publish_task.js   |    193 -
 .../node_modules/jake/lib/package_task.js       |    365 -
 blackberry10/node_modules/jake/lib/parseargs.js |    134 -
 blackberry10/node_modules/jake/lib/program.js   |    236 -
 .../jake/lib/task/directory_task.js             |     29 -
 .../node_modules/jake/lib/task/file_task.js     |    134 -
 .../node_modules/jake/lib/task/index.js         |      9 -
 blackberry10/node_modules/jake/lib/task/task.js |    241 -
 blackberry10/node_modules/jake/lib/test_task.js |    216 -
 .../node_modules/jake/lib/utils/index.js        |    242 -
 .../node_modules/jake/lib/utils/logger.js       |     24 -
 .../jake/node_modules/minimatch/LICENSE         |     23 -
 .../jake/node_modules/minimatch/README.md       |    218 -
 .../jake/node_modules/minimatch/minimatch.js    |   1079 -
 .../minimatch/node_modules/lru-cache/.npmignore |      1 -
 .../minimatch/node_modules/lru-cache/AUTHORS    |      8 -
 .../minimatch/node_modules/lru-cache/LICENSE    |     23 -
 .../minimatch/node_modules/lru-cache/README.md  |     97 -
 .../node_modules/lru-cache/lib/lru-cache.js     |    257 -
 .../node_modules/lru-cache/package.json         |     62 -
 .../minimatch/node_modules/lru-cache/s.js       |     25 -
 .../node_modules/lru-cache/test/basic.js        |    329 -
 .../node_modules/lru-cache/test/foreach.js      |     52 -
 .../node_modules/lru-cache/test/memory-leak.js  |     50 -
 .../minimatch/node_modules/sigmund/LICENSE      |     27 -
 .../minimatch/node_modules/sigmund/README.md    |     53 -
 .../minimatch/node_modules/sigmund/bench.js     |    283 -
 .../minimatch/node_modules/sigmund/package.json |     41 -
 .../minimatch/node_modules/sigmund/sigmund.js   |     39 -
 .../node_modules/sigmund/test/basic.js          |     24 -
 .../jake/node_modules/minimatch/package.json    |     39 -
 .../jake/node_modules/minimatch/test/basic.js   |    399 -
 .../node_modules/minimatch/test/brace-expand.js |     33 -
 .../jake/node_modules/minimatch/test/caching.js |     14 -
 .../node_modules/minimatch/test/defaults.js     |    274 -
 .../jake/node_modules/utilities/Jakefile        |     37 -
 .../jake/node_modules/utilities/README.md       |      6 -
 .../jake/node_modules/utilities/lib/array.js    |     93 -
 .../jake/node_modules/utilities/lib/async.js    |    291 -
 .../jake/node_modules/utilities/lib/core.js     |    106 -
 .../jake/node_modules/utilities/lib/date.js     |    903 -
 .../node_modules/utilities/lib/event_buffer.js  |    109 -
 .../jake/node_modules/utilities/lib/file.js     |    520 -
 .../jake/node_modules/utilities/lib/i18n.js     |     60 -
 .../jake/node_modules/utilities/lib/index.js    |     59 -
 .../node_modules/utilities/lib/inflection.js    |    222 -
 .../jake/node_modules/utilities/lib/log.js      |     67 -
 .../jake/node_modules/utilities/lib/network.js  |     72 -
 .../jake/node_modules/utilities/lib/object.js   |    108 -
 .../jake/node_modules/utilities/lib/request.js  |    143 -
 .../utilities/lib/sorted_collection.js          |    558 -
 .../jake/node_modules/utilities/lib/string.js   |    791 -
 .../jake/node_modules/utilities/lib/uri.js      |    177 -
 .../jake/node_modules/utilities/lib/xml.js      |    282 -
 .../jake/node_modules/utilities/package.json    |     34 -
 .../jake/node_modules/utilities/test/array.js   |     71 -
 .../jake/node_modules/utilities/test/core.js    |     75 -
 .../jake/node_modules/utilities/test/date.js    |     75 -
 .../node_modules/utilities/test/event_buffer.js |     45 -
 .../jake/node_modules/utilities/test/file.js    |    218 -
 .../jake/node_modules/utilities/test/i18n.js    |     60 -
 .../node_modules/utilities/test/inflection.js   |    388 -
 .../jake/node_modules/utilities/test/network.js |     41 -
 .../jake/node_modules/utilities/test/object.js  |     76 -
 .../utilities/test/sorted_collection.js         |    115 -
 .../jake/node_modules/utilities/test/string.js  |    411 -
 .../jake/node_modules/utilities/test/uri.js     |     99 -
 .../jake/node_modules/utilities/test/xml.js     |    122 -
 blackberry10/node_modules/jake/package.json     |     40 -
 blackberry10/node_modules/jake/test/Jakefile    |    214 -
 blackberry10/node_modules/jake/test/exec.js     |    113 -
 .../node_modules/jake/test/file_task.js         |    123 -
 blackberry10/node_modules/jake/test/foo.html    |      0
 blackberry10/node_modules/jake/test/foo.txt     |      0
 blackberry10/node_modules/jake/test/helpers.js  |     59 -
 .../node_modules/jake/test/namespace.js         |     27 -
 .../node_modules/jake/test/parseargs.js         |    150 -
 .../node_modules/jake/test/task_base.js         |    137 -
 .../node_modules/jasmine-node/.npmignore        |     13 -
 .../node_modules/jasmine-node/.travis.yml       |      6 -
 blackberry10/node_modules/jasmine-node/LICENSE  |     22 -
 .../node_modules/jasmine-node/README.md         |    161 -
 .../node_modules/jasmine-node/bin/jasmine-node  |      6 -
 .../lib/jasmine-node/async-callback.js          |     61 -
 .../jasmine-node/lib/jasmine-node/autotest.js   |     85 -
 .../jasmine-node/lib/jasmine-node/cli.js        |    250 -
 .../jasmine-node/lib/jasmine-node/cs.js         |    160 -
 .../jasmine-node/lib/jasmine-node/index.js      |    174 -
 .../lib/jasmine-node/jasmine-1.3.1.js           |   2600 -
 .../jasmine-node/lib/jasmine-node/reporter.js   |    276 -
 .../lib/jasmine-node/requirejs-runner.js        |     87 -
 .../lib/jasmine-node/requirejs-spec-loader.js   |     48 -
 .../jasmine-node/requirejs-wrapper-template.js  |     78 -
 .../lib/jasmine-node/spec-collection.js         |     44 -
 .../jasmine-node/node_modules/.bin/cake         |      1 -
 .../jasmine-node/node_modules/.bin/coffee       |      1 -
 .../jasmine-node/node_modules/.bin/r.js         |      1 -
 .../node_modules/coffee-script/.npmignore       |     11 -
 .../node_modules/coffee-script/CNAME            |      1 -
 .../node_modules/coffee-script/CONTRIBUTING.md  |      9 -
 .../node_modules/coffee-script/LICENSE          |     22 -
 .../node_modules/coffee-script/README           |     51 -
 .../node_modules/coffee-script/Rakefile         |     79 -
 .../node_modules/coffee-script/bin/cake         |      7 -
 .../node_modules/coffee-script/bin/coffee       |      7 -
 .../coffee-script/lib/coffee-script/browser.js  |    118 -
 .../coffee-script/lib/coffee-script/cake.js     |    114 -
 .../lib/coffee-script/coffee-script.js          |    358 -
 .../coffee-script/lib/coffee-script/command.js  |    526 -
 .../coffee-script/lib/coffee-script/grammar.js  |    625 -
 .../coffee-script/lib/coffee-script/helpers.js  |    223 -
 .../coffee-script/lib/coffee-script/index.js    |     11 -
 .../coffee-script/lib/coffee-script/lexer.js    |    889 -
 .../coffee-script/lib/coffee-script/nodes.js    |   3048 -
 .../coffee-script/lib/coffee-script/optparse.js |    139 -
 .../coffee-script/lib/coffee-script/parser.js   |    610 -
 .../coffee-script/lib/coffee-script/repl.js     |    159 -
 .../coffee-script/lib/coffee-script/rewriter.js |    485 -
 .../coffee-script/lib/coffee-script/scope.js    |    146 -
 .../lib/coffee-script/sourcemap.js              |    161 -
 .../node_modules/coffee-script/package.json     |     50 -
 .../node_modules/gaze/.editorconfig             |     10 -
 .../jasmine-node/node_modules/gaze/.jshintrc    |     14 -
 .../jasmine-node/node_modules/gaze/.npmignore   |      1 -
 .../jasmine-node/node_modules/gaze/.travis.yml  |      6 -
 .../jasmine-node/node_modules/gaze/AUTHORS      |      5 -
 .../jasmine-node/node_modules/gaze/Gruntfile.js |     32 -
 .../jasmine-node/node_modules/gaze/LICENSE-MIT  |     22 -
 .../jasmine-node/node_modules/gaze/README.md    |    172 -
 .../node_modules/gaze/benchmarks/gaze100s.js    |     46 -
 .../jasmine-node/node_modules/gaze/lib/gaze.js  |    466 -
 .../gaze/node_modules/fileset/.npmignore        |      1 -
 .../gaze/node_modules/fileset/.travis.yml       |      5 -
 .../gaze/node_modules/fileset/LICENSE-MIT       |     22 -
 .../gaze/node_modules/fileset/README.md         |     87 -
 .../gaze/node_modules/fileset/lib/fileset.js    |     64 -
 .../fileset/node_modules/glob/.npmignore        |      2 -
 .../fileset/node_modules/glob/.travis.yml       |      3 -
 .../fileset/node_modules/glob/LICENSE           |     27 -
 .../fileset/node_modules/glob/README.md         |    250 -
 .../fileset/node_modules/glob/examples/g.js     |      9 -
 .../node_modules/glob/examples/usr-local.js     |      9 -
 .../fileset/node_modules/glob/glob.js           |    675 -
 .../glob/node_modules/graceful-fs/.npmignore    |      1 -
 .../glob/node_modules/graceful-fs/LICENSE       |     27 -
 .../glob/node_modules/graceful-fs/README.md     |     33 -
 .../node_modules/graceful-fs/graceful-fs.js     |    152 -
 .../glob/node_modules/graceful-fs/package.json  |     52 -
 .../glob/node_modules/graceful-fs/polyfills.js  |    228 -
 .../glob/node_modules/graceful-fs/test/open.js  |     39 -
 .../glob/node_modules/inherits/LICENSE          |     14 -
 .../glob/node_modules/inherits/README.md        |     42 -
 .../glob/node_modules/inherits/inherits.js      |      1 -
 .../node_modules/inherits/inherits_browser.js   |     23 -
 .../glob/node_modules/inherits/package.json     |     43 -
 .../glob/node_modules/inherits/test.js          |     25 -
 .../fileset/node_modules/glob/package.json      |     43 -
 .../fileset/node_modules/glob/test/00-setup.js  |    176 -
 .../node_modules/glob/test/bash-comparison.js   |     63 -
 .../node_modules/glob/test/bash-results.json    |    350 -
 .../fileset/node_modules/glob/test/cwd-test.js  |     55 -
 .../node_modules/glob/test/globstar-match.js    |     19 -
 .../fileset/node_modules/glob/test/mark.js      |     74 -
 .../node_modules/glob/test/nocase-nomagic.js    |    113 -
 .../node_modules/glob/test/pause-resume.js      |     73 -
 .../node_modules/glob/test/root-nomount.js      |     39 -
 .../fileset/node_modules/glob/test/root.js      |     46 -
 .../fileset/node_modules/glob/test/stat.js      |     32 -
 .../node_modules/glob/test/zz-cleanup.js        |     11 -
 .../gaze/node_modules/fileset/package.json      |     34 -
 .../fileset/tests/fixtures/an (odd) filename.js |      1 -
 .../gaze/node_modules/fileset/tests/helper.js   |     61 -
 .../gaze/node_modules/fileset/tests/test.js     |    133 -
 .../gaze/node_modules/minimatch/LICENSE         |     23 -
 .../gaze/node_modules/minimatch/README.md       |    218 -
 .../gaze/node_modules/minimatch/minimatch.js    |   1079 -
 .../minimatch/node_modules/lru-cache/.npmignore |      1 -
 .../minimatch/node_modules/lru-cache/AUTHORS    |      8 -
 .../minimatch/node_modules/lru-cache/LICENSE    |     23 -
 .../minimatch/node_modules/lru-cache/README.md  |     97 -
 .../node_modules/lru-cache/lib/lru-cache.js     |    257 -
 .../node_modules/lru-cache/package.json         |     62 -
 .../minimatch/node_modules/lru-cache/s.js       |     25 -
 .../node_modules/lru-cache/test/basic.js        |    329 -
 .../node_modules/lru-cache/test/foreach.js      |     52 -
 .../node_modules/lru-cache/test/memory-leak.js  |     50 -
 .../minimatch/node_modules/sigmund/LICENSE      |     27 -
 .../minimatch/node_modules/sigmund/README.md    |     53 -
 .../minimatch/node_modules/sigmund/bench.js     |    283 -
 .../minimatch/node_modules/sigmund/package.json |     41 -
 .../minimatch/node_modules/sigmund/sigmund.js   |     39 -
 .../node_modules/sigmund/test/basic.js          |     24 -
 .../gaze/node_modules/minimatch/package.json    |     39 -
 .../gaze/node_modules/minimatch/test/basic.js   |    399 -
 .../node_modules/minimatch/test/brace-expand.js |     33 -
 .../gaze/node_modules/minimatch/test/caching.js |     14 -
 .../node_modules/minimatch/test/defaults.js     |    274 -
 .../jasmine-node/node_modules/gaze/package.json |     70 -
 .../node_modules/gaze/test/add_test.js          |     50 -
 .../node_modules/gaze/test/api_test.js          |     38 -
 .../gaze/test/fixtures/Project (LO)/one.js      |      1 -
 .../gaze/test/fixtures/nested/one.js            |      1 -
 .../gaze/test/fixtures/nested/sub/two.js        |      1 -
 .../gaze/test/fixtures/nested/sub2/two.js       |      1 -
 .../gaze/test/fixtures/nested/three.js          |      1 -
 .../node_modules/gaze/test/fixtures/one.js      |      1 -
 .../node_modules/gaze/test/fixtures/sub/one.js  |      1 -
 .../node_modules/gaze/test/fixtures/sub/two.js  |      1 -
 .../node_modules/gaze/test/matching_test.js     |     57 -
 .../node_modules/gaze/test/patterns_test.js     |     42 -
 .../node_modules/gaze/test/relative_test.js     |     28 -
 .../node_modules/gaze/test/rename_test.js       |     43 -
 .../node_modules/gaze/test/safewrite_test.js    |     61 -
 .../node_modules/gaze/test/watch_test.js        |    207 -
 .../node_modules/jasmine-reporters/.npmignore   |      2 -
 .../node_modules/jasmine-reporters/LICENSE      |     21 -
 .../jasmine-reporters/README.markdown           |     52 -
 .../jasmine-reporters/ext/env.rhino.1.2.js      |  13989 -
 .../jasmine-reporters/ext/jasmine-html.js       |    182 -
 .../jasmine-reporters/ext/jasmine.css           |    166 -
 .../jasmine-reporters/ext/jasmine.js            |   2421 -
 .../jasmine-reporters/ext/jline.jar             |    Bin 46424 -> 0 bytes
 .../node_modules/jasmine-reporters/ext/js.jar   |    Bin 871260 -> 0 bytes
 .../node_modules/jasmine-reporters/package.json |     24 -
 .../src/jasmine.console_reporter.js             |    142 -
 .../src/jasmine.junit_reporter.js               |    200 -
 .../src/jasmine.teamcity_reporter.js            |    139 -
 .../jasmine-reporters/src/load_reporters.js     |      3 -
 .../test/JUnitXmlReporterSpec.js                |    214 -
 .../test/console_reporter.html                  |     36 -
 .../jasmine-reporters/test/envjs.bootstrap.js   |     14 -
 .../jasmine-reporters/test/envjs.runner.sh      |      7 -
 .../test/junit_xml_reporter.html                |     23 -
 .../test/phantomjs-testrunner.js                |    183 -
 .../jasmine-reporters/test/phantomjs.runner.sh  |     36 -
 .../test/teamcity_reporter.html                 |     36 -
 .../jasmine-node/node_modules/mkdirp/.npmignore |      2 -
 .../node_modules/mkdirp/.travis.yml             |      5 -
 .../jasmine-node/node_modules/mkdirp/LICENSE    |     21 -
 .../node_modules/mkdirp/examples/pow.js         |      6 -
 .../jasmine-node/node_modules/mkdirp/index.js   |     82 -
 .../node_modules/mkdirp/package.json            |     33 -
 .../node_modules/mkdirp/readme.markdown         |     63 -
 .../node_modules/mkdirp/test/chmod.js           |     38 -
 .../node_modules/mkdirp/test/clobber.js         |     37 -
 .../node_modules/mkdirp/test/mkdirp.js          |     28 -
 .../node_modules/mkdirp/test/perm.js            |     32 -
 .../node_modules/mkdirp/test/perm_sync.js       |     39 -
 .../node_modules/mkdirp/test/race.js            |     41 -
 .../node_modules/mkdirp/test/rel.js             |     32 -
 .../node_modules/mkdirp/test/return.js          |     25 -
 .../node_modules/mkdirp/test/return_sync.js     |     24 -
 .../node_modules/mkdirp/test/root.js            |     18 -
 .../node_modules/mkdirp/test/sync.js            |     32 -
 .../node_modules/mkdirp/test/umask.js           |     28 -
 .../node_modules/mkdirp/test/umask_sync.js      |     32 -
 .../node_modules/requirejs/README.md            |      9 -
 .../node_modules/requirejs/bin/r.js             |  25757 --
 .../node_modules/requirejs/package.json         |     43 -
 .../node_modules/requirejs/require.js           |   2053 -
 .../node_modules/underscore/.npmignore          |      6 -
 .../node_modules/underscore/.travis.yml         |      5 -
 .../jasmine-node/node_modules/underscore/CNAME  |      1 -
 .../node_modules/underscore/CONTRIBUTING.md     |      9 -
 .../node_modules/underscore/LICENSE             |     23 -
 .../node_modules/underscore/README.md           |     22 -
 .../node_modules/underscore/favicon.ico         |    Bin 1406 -> 0 bytes
 .../node_modules/underscore/index.js            |      1 -
 .../node_modules/underscore/package.json        |     40 -
 .../node_modules/underscore/underscore-min.map  |      1 -
 .../node_modules/underscore/underscore.js       |   1246 -
 .../node_modules/walkdir/.jshintignore          |      3 -
 .../node_modules/walkdir/.npmignore             |      2 -
 .../node_modules/walkdir/.travis.yml            |      5 -
 .../jasmine-node/node_modules/walkdir/license   |     10 -
 .../node_modules/walkdir/package.json           |     45 -
 .../jasmine-node/node_modules/walkdir/readme.md |    160 -
 .../jasmine-node/node_modules/walkdir/test.sh   |     19 -
 .../node_modules/walkdir/test/async.js          |     62 -
 .../walkdir/test/comparison/find.js             |     33 -
 .../walkdir/test/comparison/find.py             |     26 -
 .../walkdir/test/comparison/finditsynctest.js   |     15 -
 .../walkdir/test/comparison/findittest.js       |     14 -
 .../walkdir/test/comparison/fstream.js          |     24 -
 .../test/comparison/install_test_deps.sh        |      1 -
 .../node_modules/walkdir/test/comparison/lsr.js |     18 -
 .../walkdir/test/comparison/package.json        |     10 -
 .../node_modules/walkdir/test/dir/foo/a/b/c/w   |      0
 .../node_modules/walkdir/test/dir/foo/a/b/z     |      0
 .../node_modules/walkdir/test/dir/foo/a/y       |      0
 .../node_modules/walkdir/test/dir/foo/x         |      0
 .../walkdir/test/dir/symlinks/dir1/file1        |      0
 .../walkdir/test/dir/symlinks/dir2/file2        |      0
 .../node_modules/walkdir/test/dir/symlinks/file |      0
 .../node_modules/walkdir/test/endearly.js       |     19 -
 .../node_modules/walkdir/test/max_depth.js      |     27 -
 .../node_modules/walkdir/test/no_recurse.js     |     25 -
 .../node_modules/walkdir/test/nofailemptydir.js |     34 -
 .../node_modules/walkdir/test/pauseresume.js    |     36 -
 .../node_modules/walkdir/test/symlink.js        |     37 -
 .../node_modules/walkdir/test/sync.js           |     50 -
 .../node_modules/walkdir/walkdir.js             |    233 -
 .../node_modules/jasmine-node/package.json      |     56 -
 .../node_modules/jasmine-node/scripts/specs     |     37 -
 .../spec-requirejs-coffee/RequireCsSpec.coffee  |      5 -
 .../spec-requirejs-coffee/RequireJsSpec.coffee  |      5 -
 .../spec-requirejs-coffee/requirecs.sut.coffee  |      3 -
 .../spec-requirejs-coffee/requirejs-setup.js    |     13 -
 .../spec-requirejs/requirejs.spec.js            |     19 -
 .../spec-requirejs/requirejs.sut.js             |      8 -
 .../jasmine-node/spec/AsyncSpec.coffee          |     11 -
 .../jasmine-node/spec/CoffeeSpec.coffee         |      4 -
 .../jasmine-node/spec/GrammarHelper.coffee      |     22 -
 .../jasmine-node/spec/HelperSpec.coffee         |      6 -
 .../jasmine-node/spec/SampleSpecs.js            |     25 -
 .../node_modules/jasmine-node/spec/TestSpec.js  |     82 -
 .../node_modules/jasmine-node/spec/TimerSpec.js |     34 -
 .../jasmine-node/spec/async-callback_spec.js    |    174 -
 .../jasmine-node/spec/helper_spec.js            |      7 -
 .../spec/litcoffee/Litcoffee.spec.litcoffee     |      9 -
 .../jasmine-node/spec/nested.js/NestedSpec.js   |      5 -
 .../jasmine-node/spec/nested/NestedSpec.js      |      5 -
 .../spec/nested/uber-nested/UberNestedSpec.js   |     11 -
 .../jasmine-node/spec/reporter_spec.js          |    476 -
 .../jasmine-node/spec/sample_helper.js          |     15 -
 blackberry10/node_modules/jasmine-node/specs.sh |     37 -
 blackberry10/node_modules/net-ping/.hgignore    |      2 -
 blackberry10/node_modules/net-ping/.hgtags      |     18 -
 blackberry10/node_modules/net-ping/README.md    |    473 -
 blackberry10/node_modules/net-ping/index.js     |    526 -
 .../net-ping/node_modules/raw-socket/.npmignore |      5 -
 .../net-ping/node_modules/raw-socket/README.md  |    651 -
 .../node_modules/raw-socket/binding.gyp         |     15 -
 .../net-ping/node_modules/raw-socket/index.js   |    216 -
 .../node_modules/raw-socket/package.json        |     52 -
 .../net-ping/node_modules/raw-socket/src/raw.cc |    771 -
 .../net-ping/node_modules/raw-socket/src/raw.h  |    100 -
 blackberry10/node_modules/net-ping/package.json |     48 -
 blackberry10/node_modules/plugman/.npmignore    |      2 -
 .../node_modules/plugman/.reviewboardrc         |      8 -
 blackberry10/node_modules/plugman/LICENSE       |     14 -
 blackberry10/node_modules/plugman/README.md     |    163 -
 blackberry10/node_modules/plugman/doc/help.txt  |     35 -
 blackberry10/node_modules/plugman/main.js       |     95 -
 .../node_modules/plugman/node_modules/.bin/nopt |      1 -
 .../plugman/node_modules/.bin/semver            |      1 -
 .../node_modules/bplist-parser/.npmignore       |      8 -
 .../node_modules/bplist-parser/README.md        |     47 -
 .../node_modules/bplist-parser/bplistParser.js  |    309 -
 .../node_modules/bplist-parser/package.json     |     33 -
 .../bplist-parser/test/airplay.bplist           |    Bin 341 -> 0 bytes
 .../bplist-parser/test/iTunes-small.bplist      |    Bin 24433 -> 0 bytes
 .../bplist-parser/test/parseTest.js             |    120 -
 .../bplist-parser/test/sample1.bplist           |    Bin 605 -> 0 bytes
 .../bplist-parser/test/sample2.bplist           |    Bin 384 -> 0 bytes
 .../node_modules/bplist-parser/test/uid.bplist  |    Bin 365 -> 0 bytes
 .../bplist-parser/test/utf16.bplist             |    Bin 1273 -> 0 bytes
 .../plugman/node_modules/dep-graph/.npmignore   |      1 -
 .../plugman/node_modules/dep-graph/Cakefile     |     51 -
 .../plugman/node_modules/dep-graph/README.mdown |     40 -
 .../node_modules/dep-graph/docs/dep-graph.html  |     44 -
 .../node_modules/dep-graph/docs/docco.css       |    186 -
 .../node_modules/dep-graph/lib/dep-graph.js     |    115 -
 .../node_modules/underscore/.npmignore          |      3 -
 .../dep-graph/node_modules/underscore/LICENSE   |     22 -
 .../dep-graph/node_modules/underscore/README    |     19 -
 .../node_modules/underscore/index.html          |   1726 -
 .../dep-graph/node_modules/underscore/index.js  |      1 -
 .../node_modules/underscore/package.json        |     31 -
 .../node_modules/underscore/underscore-min.js   |     30 -
 .../node_modules/underscore/underscore.js       |    958 -
 .../plugman/node_modules/dep-graph/package.json |     30 -
 .../node_modules/dep-graph/src/dep-graph.coffee |     59 -
 .../node_modules/dep-graph/test/test.coffee     |     50 -
 .../plugman/node_modules/glob/.npmignore        |      2 -
 .../plugman/node_modules/glob/.travis.yml       |      3 -
 .../plugman/node_modules/glob/LICENSE           |     27 -
 .../plugman/node_modules/glob/README.md         |    250 -
 .../plugman/node_modules/glob/examples/g.js     |      9 -
 .../node_modules/glob/examples/usr-local.js     |      9 -
 .../plugman/node_modules/glob/glob.js           |    675 -
 .../glob/node_modules/inherits/LICENSE          |     14 -
 .../glob/node_modules/inherits/README.md        |     42 -
 .../glob/node_modules/inherits/inherits.js      |      1 -
 .../node_modules/inherits/inherits_browser.js   |     23 -
 .../glob/node_modules/inherits/package.json     |     39 -
 .../glob/node_modules/inherits/test.js          |     25 -
 .../glob/node_modules/minimatch/LICENSE         |     23 -
 .../glob/node_modules/minimatch/README.md       |    218 -
 .../glob/node_modules/minimatch/minimatch.js    |   1079 -
 .../minimatch/node_modules/lru-cache/.npmignore |      1 -
 .../minimatch/node_modules/lru-cache/AUTHORS    |      8 -
 .../minimatch/node_modules/lru-cache/LICENSE    |     23 -
 .../minimatch/node_modules/lru-cache/README.md  |     97 -
 .../node_modules/lru-cache/lib/lru-cache.js     |    257 -
 .../node_modules/lru-cache/package.json         |     62 -
 .../minimatch/node_modules/lru-cache/s.js       |     25 -
 .../node_modules/lru-cache/test/basic.js        |    329 -
 .../node_modules/lru-cache/test/foreach.js      |     52 -
 .../node_modules/lru-cache/test/memory-leak.js  |     50 -
 .../minimatch/node_modules/sigmund/LICENSE      |     27 -
 .../minimatch/node_modules/sigmund/README.md    |     53 -
 .../minimatch/node_modules/sigmund/bench.js     |    283 -
 .../minimatch/node_modules/sigmund/package.json |     41 -
 .../minimatch/node_modules/sigmund/sigmund.js   |     39 -
 .../node_modules/sigmund/test/basic.js          |     24 -
 .../glob/node_modules/minimatch/package.json    |     39 -
 .../glob/node_modules/minimatch/test/basic.js   |    399 -
 .../node_modules/minimatch/test/brace-expand.js |     33 -
 .../glob/node_modules/minimatch/test/caching.js |     14 -
 .../node_modules/minimatch/test/defaults.js     |    274 -
 .../plugman/node_modules/glob/package.json      |     38 -
 .../plugman/node_modules/glob/test/00-setup.js  |    176 -
 .../node_modules/glob/test/bash-comparison.js   |     63 -
 .../node_modules/glob/test/bash-results.json    |    349 -
 .../plugman/node_modules/glob/test/cwd-test.js  |     55 -
 .../node_modules/glob/test/globstar-match.js    |     19 -
 .../plugman/node_modules/glob/test/mark.js      |     74 -
 .../node_modules/glob/test/nocase-nomagic.js    |    113 -
 .../node_modules/glob/test/pause-resume.js      |     73 -
 .../node_modules/glob/test/root-nomount.js      |     39 -
 .../plugman/node_modules/glob/test/root.js      |     46 -
 .../plugman/node_modules/glob/test/stat.js      |     32 -
 .../node_modules/glob/test/zz-cleanup.js        |     11 -
 .../plugman/node_modules/ncallbacks/README.md   |     17 -
 .../node_modules/ncallbacks/ncallbacks.js       |     16 -
 .../node_modules/ncallbacks/package.json        |     23 -
 .../plugman/node_modules/nopt/.npmignore        |      0
 .../plugman/node_modules/nopt/LICENSE           |     23 -
 .../plugman/node_modules/nopt/README.md         |    208 -
 .../plugman/node_modules/nopt/bin/nopt.js       |     44 -
 .../node_modules/nopt/examples/my-program.js    |     30 -
 .../plugman/node_modules/nopt/lib/nopt.js       |    552 -
 .../nopt/node_modules/abbrev/LICENSE            |     23 -
 .../nopt/node_modules/abbrev/README.md          |     23 -
 .../nopt/node_modules/abbrev/lib/abbrev.js      |    111 -
 .../nopt/node_modules/abbrev/package.json       |     28 -
 .../plugman/node_modules/nopt/package.json      |     35 -
 .../plugman/node_modules/osenv/LICENSE          |     25 -
 .../plugman/node_modules/osenv/README.md        |     63 -
 .../plugman/node_modules/osenv/osenv.js         |     80 -
 .../plugman/node_modules/osenv/package.json     |     42 -
 .../plugman/node_modules/osenv/test/unix.js     |     76 -
 .../plugman/node_modules/osenv/test/windows.js  |     82 -
 .../plugman/node_modules/plist/.npmignore       |      2 -
 .../plugman/node_modules/plist/LICENSE          |     22 -
 .../plugman/node_modules/plist/README.md        |     62 -
 .../plugman/node_modules/plist/lib/plist.js     |    301 -
 .../plist/node_modules/xmlbuilder/.npmignore    |      8 -
 .../plist/node_modules/xmlbuilder/README.md     |     73 -
 .../node_modules/xmlbuilder/lib/XMLBuilder.js   |    119 -
 .../node_modules/xmlbuilder/lib/XMLFragment.js  |    422 -
 .../plist/node_modules/xmlbuilder/lib/index.js  |     15 -
 .../plist/node_modules/xmlbuilder/package.json  |     41 -
 .../plist/node_modules/xmldom/.npmignore        |      2 -
 .../plist/node_modules/xmldom/.project          |     11 -
 .../plist/node_modules/xmldom/.travis.yml       |     18 -
 .../plist/node_modules/xmldom/__package__.js    |      4 -
 .../plist/node_modules/xmldom/changelog         |     14 -
 .../plist/node_modules/xmldom/component.json    |     10 -
 .../plist/node_modules/xmldom/dom-parser.js     |    253 -
 .../plist/node_modules/xmldom/dom.js            |   1138 -
 .../plist/node_modules/xmldom/package.json      |     73 -
 .../plist/node_modules/xmldom/readme.md         |    213 -
 .../plist/node_modules/xmldom/sax.js            |    564 -
 .../plist/node_modules/xmldom/t/cover           |     18 -
 .../node_modules/xmldom/t/dom/require.t.js      |      5 -
 .../plist/node_modules/xmldom/t/test            |     17 -
 .../node_modules/xmldom/test/3rd-cases/index.js |      1 -
 .../node_modules/xmldom/test/3rd-cases/mock.js  |      1 -
 .../node_modules/xmldom/test/3rd-cases/o3xml.js |     21 -
 .../xmldom/test/big-file-performance.js         |    152 -
 .../plist/node_modules/xmldom/test/dom/attr.js  |     64 -
 .../plist/node_modules/xmldom/test/dom/clone.js |     22 -
 .../node_modules/xmldom/test/dom/element.js     |    139 -
 .../node_modules/xmldom/test/dom/fragment.js    |     15 -
 .../plist/node_modules/xmldom/test/dom/index.js |      5 -
 .../node_modules/xmldom/test/dom/level3.js      |      8 -
 .../node_modules/xmldom/test/dom/serializer.js  |     14 -
 .../plist/node_modules/xmldom/test/error.js     |     71 -
 .../node_modules/xmldom/test/html/normalize.js  |     89 -
 .../plist/node_modules/xmldom/test/index.js     |     63 -
 .../plist/node_modules/xmldom/test/locator.js   |     50 -
 .../plist/node_modules/xmldom/test/namespace.js |     32 -
 .../plist/node_modules/xmldom/test/node.js      |    102 -
 .../node_modules/xmldom/test/parse-element.js   |     31 -
 .../plist/node_modules/xmldom/test/simple.js    |     11 -
 .../plist/node_modules/xmldom/test/test.js      |     24 -
 .../plist/node_modules/xmldom/test/test.xml     |  19719 -
 .../plugman/node_modules/plist/package.json     |     58 -
 .../node_modules/plist/tests/Cordova.plist      |     87 -
 .../node_modules/plist/tests/Xcode-Info.plist   |     49 -
 .../plist/tests/Xcode-PhoneGap.plist            |     55 -
 .../node_modules/plist/tests/airplay.xml        |     38 -
 .../node_modules/plist/tests/iTunes-BIG.xml     | 299484 ----------------
 .../node_modules/plist/tests/iTunes-small.xml   |   1704 -
 .../node_modules/plist/tests/sample1.plist      |     35 -
 .../node_modules/plist/tests/sample2.plist      |     45 -
 .../node_modules/plist/tests/test-base64.js     |     28 -
 .../node_modules/plist/tests/test-big-xml.js    |     28 -
 .../node_modules/plist/tests/test-build.js      |    171 -
 .../node_modules/plist/tests/test-parseFile.js  |     52 -
 .../plist/tests/test-parseString.js             |     45 -
 .../node_modules/plist/tests/utf8data.xml       |     10 -
 .../plugman/node_modules/semver/.npmignore      |      1 -
 .../plugman/node_modules/semver/LICENSE         |     27 -
 .../plugman/node_modules/semver/Makefile        |     24 -
 .../plugman/node_modules/semver/README.md       |    111 -
 .../plugman/node_modules/semver/bin/semver      |    119 -
 .../plugman/node_modules/semver/foot.js         |      6 -
 .../plugman/node_modules/semver/head.js         |      2 -
 .../plugman/node_modules/semver/package.json    |     31 -
 .../plugman/node_modules/semver/r.js            |      4 -
 .../node_modules/semver/semver.browser.js       |    851 -
 .../node_modules/semver/semver.browser.js.gz    |    Bin 6077 -> 0 bytes
 .../plugman/node_modules/semver/semver.js       |    855 -
 .../plugman/node_modules/semver/semver.min.js   |      1 -
 .../node_modules/semver/semver.min.js.gz        |    Bin 2850 -> 0 bytes
 .../plugman/node_modules/semver/test/amd.js     |     15 -
 .../plugman/node_modules/semver/test/index.js   |    533 -
 .../node_modules/semver/test/no-module.js       |     19 -
 .../plugman/node_modules/underscore/.npmignore  |      4 -
 .../plugman/node_modules/underscore/.travis.yml |      5 -
 .../plugman/node_modules/underscore/CNAME       |      1 -
 .../node_modules/underscore/CONTRIBUTING.md     |      9 -
 .../plugman/node_modules/underscore/LICENSE     |     22 -
 .../plugman/node_modules/underscore/README.md   |     19 -
 .../plugman/node_modules/underscore/favicon.ico |    Bin 1406 -> 0 bytes
 .../plugman/node_modules/underscore/index.html  |   2467 -
 .../plugman/node_modules/underscore/index.js    |      1 -
 .../node_modules/underscore/package.json        |     35 -
 .../node_modules/underscore/underscore-min.js   |      1 -
 .../node_modules/underscore/underscore.js       |   1226 -
 .../plugman/node_modules/xcode/.npmignore       |      3 -
 .../plugman/node_modules/xcode/AUTHORS          |      6 -
 .../plugman/node_modules/xcode/LICENSE          |     14 -
 .../plugman/node_modules/xcode/Makefile         |      5 -
 .../plugman/node_modules/xcode/README.md        |     42 -
 .../plugman/node_modules/xcode/index.js         |      1 -
 .../plugman/node_modules/xcode/lib/parseJob.js  |     16 -
 .../node_modules/xcode/lib/parser/pbxproj.js    |   2680 -
 .../node_modules/xcode/lib/parser/pbxproj.pegjs |    259 -
 .../plugman/node_modules/xcode/lib/pbxFile.js   |     94 -
 .../node_modules/xcode/lib/pbxProject.js        |    646 -
 .../plugman/node_modules/xcode/lib/pbxWriter.js |    282 -
 .../node_modules/xcode/node_modules/.bin/pegjs  |      1 -
 .../xcode/node_modules/node-uuid/.npmignore     |      2 -
 .../xcode/node_modules/node-uuid/LICENSE.md     |      3 -
 .../xcode/node_modules/node-uuid/README.md      |    199 -
 .../node_modules/node-uuid/benchmark/README.md  |     53 -
 .../node_modules/node-uuid/benchmark/bench.gnu  |    174 -
 .../node_modules/node-uuid/benchmark/bench.sh   |     34 -
 .../node-uuid/benchmark/benchmark-native.c      |     34 -
 .../node-uuid/benchmark/benchmark.js            |     84 -
 .../xcode/node_modules/node-uuid/package.json   |     34 -
 .../node_modules/node-uuid/test/compare_v1.js   |     63 -
 .../xcode/node_modules/node-uuid/test/test.html |     17 -
 .../xcode/node_modules/node-uuid/test/test.js   |    240 -
 .../xcode/node_modules/node-uuid/uuid.js        |    249 -
 .../xcode/node_modules/pegjs/CHANGELOG          |    146 -
 .../xcode/node_modules/pegjs/LICENSE            |     22 -
 .../xcode/node_modules/pegjs/README.md          |    226 -
 .../xcode/node_modules/pegjs/VERSION            |      1 -
 .../xcode/node_modules/pegjs/bin/pegjs          |    142 -
 .../pegjs/examples/arithmetics.pegjs            |     22 -
 .../xcode/node_modules/pegjs/examples/css.pegjs |    554 -
 .../pegjs/examples/javascript.pegjs             |   1530 -
 .../node_modules/pegjs/examples/json.pegjs      |    120 -
 .../xcode/node_modules/pegjs/lib/peg.js         |   5141 -
 .../xcode/node_modules/pegjs/package.json       |     33 -
 .../plugman/node_modules/xcode/package.json     |     59 -
 .../xcode/test/LibrarySearchPaths.js            |     48 -
 .../node_modules/xcode/test/addFramework.js     |    145 -
 .../node_modules/xcode/test/addHeaderFile.js    |     98 -
 .../node_modules/xcode/test/addResourceFile.js  |    251 -
 .../node_modules/xcode/test/addSourceFile.js    |    157 -
 .../node_modules/xcode/test/addStaticLibrary.js |    251 -
 .../xcode/test/fixtures/buildFiles.json         |      1 -
 .../xcode/test/fixtures/full-project.json       |      1 -
 .../xcode/test/parser/build-config.js           |     30 -
 .../node_modules/xcode/test/parser/comments.js  |     12 -
 .../xcode/test/parser/file-references.js        |     12 -
 .../node_modules/xcode/test/parser/hash.js      |     35 -
 .../xcode/test/parser/header-search.js          |     16 -
 .../test/parser/projects/build-config.pbxproj   |    112 -
 .../test/parser/projects/build-files.pbxproj    |     41 -
 .../xcode/test/parser/projects/comments.pbxproj |     30 -
 .../xcode/test/parser/projects/fail.pbxproj     |     18 -
 .../parser/projects/file-references.pbxproj     |     45 -
 .../xcode/test/parser/projects/full.pbxproj     |    534 -
 .../xcode/test/parser/projects/hash.pbxproj     |      9 -
 .../test/parser/projects/header-search.pbxproj  |     47 -
 .../test/parser/projects/nested-object.pbxproj  |     39 -
 .../parser/projects/section-entries.pbxproj     |     28 -
 .../xcode/test/parser/projects/section.pbxproj  |     17 -
 .../test/parser/projects/two-sections.pbxproj   |     29 -
 .../test/parser/projects/with_array.pbxproj     |     18 -
 .../xcode/test/parser/section-entries.js        |     25 -
 .../node_modules/xcode/test/parser/section.js   |     28 -
 .../xcode/test/parser/two-sections.js           |     18 -
 .../xcode/test/parser/with_array.js             |     39 -
 .../plugman/node_modules/xcode/test/pbxFile.js  |    203 -
 .../node_modules/xcode/test/pbxProject.js       |    185 -
 .../node_modules/xcode/test/pbxWriter.js        |     75 -
 .../node_modules/xcode/test/removeFramework.js  |    103 -
 .../node_modules/xcode/test/removeHeaderFile.js |    105 -
 .../xcode/test/removeResourceFile.js            |    184 -
 .../node_modules/xcode/test/removeSourceFile.js |    131 -
 blackberry10/node_modules/plugman/package.json  |     84 -
 .../node_modules/plugman/plugin_spec.md         |    397 -
 blackberry10/node_modules/plugman/plugman.js    |     35 -
 .../node_modules/plugman/spec/fetch.spec.js     |     63 -
 .../node_modules/plugman/spec/install.spec.js   |    129 -
 .../plugman/spec/platforms/android.spec.js      |    121 -
 .../plugman/spec/platforms/blackberry10.spec.js |    148 -
 .../plugman/spec/platforms/common.spec.js       |    134 -
 .../plugman/spec/platforms/ios.spec.js          |    366 -
 .../plugman/spec/platforms/wp7.spec.js          |    128 -
 .../plugman/spec/platforms/wp8.spec.js          |    128 -
 .../node_modules/plugman/spec/plugins/.gitkeep  |      0
 .../plugman/spec/plugins/AndroidJS/plugin.xml   |     34 -
 .../spec/plugins/AndroidJS/www/android.js       |      1 -
 .../spec/plugins/ChildBrowser/plugin.xml        |    142 -
 .../ChildBrowser/src/android/ChildBrowser.java  |     19 -
 .../src/ios/ChildBrowser.bundle/arrow_left.png  |    Bin 2946 -> 0 bytes
 .../ios/ChildBrowser.bundle/arrow_left@2x.png   |    Bin 2946 -> 0 bytes
 .../src/ios/ChildBrowser.bundle/arrow_right.png |    Bin 2946 -> 0 bytes
 .../ios/ChildBrowser.bundle/arrow_right@2x.png  |    Bin 2946 -> 0 bytes
 .../src/ios/ChildBrowser.bundle/but_refresh.png |    Bin 3369 -> 0 bytes
 .../ios/ChildBrowser.bundle/but_refresh@2x.png  |    Bin 3369 -> 0 bytes
 .../src/ios/ChildBrowser.bundle/compass.png     |    Bin 3035 -> 0 bytes
 .../src/ios/ChildBrowser.bundle/compass@2x.png  |    Bin 3035 -> 0 bytes
 .../ChildBrowser/src/ios/ChildBrowserCommand.h  |     49 -
 .../ChildBrowser/src/ios/ChildBrowserCommand.m  |     86 -
 .../src/ios/ChildBrowserViewController.h        |     73 -
 .../src/ios/ChildBrowserViewController.m        |    239 -
 .../src/ios/ChildBrowserViewController.xib      |    875 -
 .../ChildBrowser/src/ios/TargetDirTest.h        |     20 -
 .../ChildBrowser/src/ios/TargetDirTest.m        |      1 -
 .../src/ios/preserveDirs/PreserveDirsTest.h     |     20 -
 .../src/ios/preserveDirs/PreserveDirsTest.m     |      1 -
 .../plugins/ChildBrowser/www/childbrowser.js    |     19 -
 .../ChildBrowser/www/childbrowser/image.jpg     |      1 -
 .../ChildBrowser/www/childbrowser_file.html     |      1 -
 .../spec/plugins/ConfigTestPlugin/plugin.xml    |     37 -
 .../plugman/spec/plugins/DummyPlugin/plugin.xml |    126 -
 .../DummyPlugin/src/android/DummyPlugin.java    |     19 -
 .../DummyPlugin/src/blackberry10/index.js       |     19 -
 .../DummyPlugin/src/ios/DummyPlugin.bundle      |      0
 .../DummyPlugin/src/ios/DummyPluginCommand.h    |      0
 .../DummyPlugin/src/ios/DummyPluginCommand.m    |      0
 .../DummyPlugin/src/ios/SourceWithFramework.m   |      0
 .../plugins/DummyPlugin/src/ios/TargetDirTest.h |      0
 .../plugins/DummyPlugin/src/ios/TargetDirTest.m |      0
 .../DummyPlugin/src/ios/libsqlite3.dylib        |      0
 .../plugins/DummyPlugin/src/wp7/DummyPlugin.cs  |     19 -
 .../plugins/DummyPlugin/src/wp8/DummyPlugin.cs  |     19 -
 .../spec/plugins/DummyPlugin/www/dummyplugin.js |     19 -
 .../DummyPlugin/www/dummyplugin/image.jpg       |      1 -
 .../spec/plugins/EnginePlugin/plugin.xml        |     30 -
 .../spec/plugins/FaultyPlugin/plugin.xml        |    119 -
 .../FaultyPlugin/src/android/FaultyPlugin.java  |     19 -
 .../FaultyPlugin/src/blackberry10/client.js     |      0
 .../plugins/FaultyPlugin/src/ios/FaultyPlugin.h |     49 -
 .../plugins/FaultyPlugin/src/ios/FaultyPlugin.m |     86 -
 .../FaultyPlugin/src/wp7/FaultyPlugin.cs        |     19 -
 .../FaultyPlugin/src/wp8/FaultyPlugin.cs        |     19 -
 .../spec/plugins/PluginsPlistOnly/plugin.xml    |     31 -
 .../spec/plugins/VariablePlugin/plugin.xml      |     47 -
 .../spec/plugins/WebNotifications/plugin.xml    |     47 -
 .../WebNotifications/src/ios/AppDelegate.m.diff |     18 -
 .../WebNotifications/src/ios/WebNotifications.h |     35 -
 .../WebNotifications/src/ios/WebNotifications.m |    124 -
 .../WebNotifications/www/webnotifications.js    |    123 -
 .../spec/plugins/WeblessPlugin/plugin.xml       |     83 -
 .../src/android/WeblessPlugin.java              |     19 -
 .../src/ios/WeblessPlugin.bundle/arrow_left.png |    Bin 2946 -> 0 bytes
 .../ios/WeblessPlugin.bundle/arrow_left@2x.png  |    Bin 2946 -> 0 bytes
 .../ios/WeblessPlugin.bundle/arrow_right.png    |    Bin 2946 -> 0 bytes
 .../ios/WeblessPlugin.bundle/arrow_right@2x.png |    Bin 2946 -> 0 bytes
 .../ios/WeblessPlugin.bundle/but_refresh.png    |    Bin 3369 -> 0 bytes
 .../ios/WeblessPlugin.bundle/but_refresh@2x.png |    Bin 3369 -> 0 bytes
 .../src/ios/WeblessPlugin.bundle/compass.png    |    Bin 3035 -> 0 bytes
 .../src/ios/WeblessPlugin.bundle/compass@2x.png |    Bin 3035 -> 0 bytes
 .../src/ios/WeblessPluginCommand.h              |     49 -
 .../src/ios/WeblessPluginCommand.m              |     86 -
 .../src/ios/WeblessPluginViewController.h       |     73 -
 .../src/ios/WeblessPluginViewController.m       |    239 -
 .../src/ios/WeblessPluginViewController.xib     |    875 -
 .../spec/plugins/cordova.echo/.npmignore        |      1 -
 .../spec/plugins/cordova.echo/plugin.xml        |     24 -
 .../cordova.echo/src/blackberry10/index.js      |     85 -
 .../src/blackberry10/native/device/echoJnext.so |    Bin 1291818 -> 0 bytes
 .../blackberry10/native/public/json/autolink.h  |     19 -
 .../blackberry10/native/public/json/config.h    |     43 -
 .../blackberry10/native/public/json/features.h  |     42 -
 .../blackberry10/native/public/json/forwards.h  |     39 -
 .../src/blackberry10/native/public/json/json.h  |     10 -
 .../blackberry10/native/public/json/reader.h    |    196 -
 .../src/blackberry10/native/public/json/value.h |   1069 -
 .../blackberry10/native/public/json/writer.h    |    174 -
 .../native/public/json_batchallocator.h         |    125 -
 .../native/public/json_internalarray.inl        |    448 -
 .../native/public/json_internalmap.inl          |    607 -
 .../blackberry10/native/public/json_reader.cpp  |    894 -
 .../blackberry10/native/public/json_value.cpp   |   1726 -
 .../native/public/json_valueiterator.inl        |    292 -
 .../blackberry10/native/public/json_writer.cpp  |    829 -
 .../src/blackberry10/native/public/plugin.cpp   |    320 -
 .../src/blackberry10/native/public/plugin.h     |     70 -
 .../blackberry10/native/public/tokenizer.cpp    |    222 -
 .../src/blackberry10/native/public/tokenizer.h  |     55 -
 .../blackberry10/native/simulator/echoJnext.so  |    Bin 231778 -> 0 bytes
 .../src/blackberry10/native/src/echo.cpp        |    121 -
 .../src/blackberry10/native/src/echo.hpp        |     45 -
 .../spec/plugins/cordova.echo/www/client.js     |     53 -
 .../spec/plugins/dependencies/A/plugin.xml      |     60 -
 .../plugins/dependencies/A/src/android/A.java   |      0
 .../dependencies/A/src/ios/APluginCommand.h     |      0
 .../dependencies/A/src/ios/APluginCommand.m     |      0
 .../spec/plugins/dependencies/A/www/plugin-a.js |      0
 .../spec/plugins/dependencies/B/plugin.xml      |     60 -
 .../plugins/dependencies/B/src/android/B.java   |      0
 .../dependencies/B/src/ios/BPluginCommand.h     |      0
 .../dependencies/B/src/ios/BPluginCommand.m     |      0
 .../spec/plugins/dependencies/B/www/plugin-b.js |      0
 .../spec/plugins/dependencies/C/plugin.xml      |     57 -
 .../plugins/dependencies/C/src/android/C.java   |      0
 .../dependencies/C/src/ios/CPluginCommand.h     |      0
 .../dependencies/C/src/ios/CPluginCommand.m     |      0
 .../spec/plugins/dependencies/C/www/plugin-c.js |      0
 .../spec/plugins/dependencies/D/plugin.xml      |     57 -
 .../plugins/dependencies/D/src/android/D.java   |      0
 .../dependencies/D/src/ios/DPluginCommand.h     |      0
 .../dependencies/D/src/ios/DPluginCommand.m     |      0
 .../spec/plugins/dependencies/D/www/plugin-d.js |      0
 .../spec/plugins/dependencies/E/plugin.xml      |     57 -
 .../plugins/dependencies/E/src/android/E.java   |      0
 .../dependencies/E/src/ios/EPluginCommand.h     |      0
 .../dependencies/E/src/ios/EPluginCommand.m     |      0
 .../spec/plugins/dependencies/E/www/plugin-e.js |      0
 .../plugman/spec/plugins/dependencies/README.md |      5 -
 .../spec/plugins/multiple-children/plugin.xml   |    108 -
 .../plugins/shared-deps-multi-child/plugin.xml  |     34 -
 .../node_modules/plugman/spec/prepare.spec.js   |     84 -
 .../node_modules/plugman/spec/projects/.gitkeep |      0
 .../projects/android_one/AndroidManifest.xml    |     71 -
 .../projects/android_one/assets/www/.gitkeep    |      0
 .../projects/android_one/assets/www/cordova.js  |   6848 -
 .../projects/android_one/cordova/appinfo.jar    |    Bin 1574 -> 0 bytes
 .../spec/projects/android_one/cordova/build     |     23 -
 .../spec/projects/android_one/cordova/clean     |     23 -
 .../projects/android_one/cordova/lib/cordova    |    386 -
 .../android_one/cordova/lib/install-device      |     23 -
 .../android_one/cordova/lib/install-emulator    |     23 -
 .../android_one/cordova/lib/list-devices        |     23 -
 .../cordova/lib/list-emulator-images            |     23 -
 .../cordova/lib/list-started-emulators          |     23 -
 .../android_one/cordova/lib/start-emulator      |     23 -
 .../spec/projects/android_one/cordova/log       |     23 -
 .../spec/projects/android_one/cordova/run       |     23 -
 .../spec/projects/android_one/cordova/version   |     32 -
 .../projects/android_one/res/xml/plugins.xml    |     38 -
 .../spec/projects/android_one/src/.gitkeep      |      0
 .../projects/android_two/AndroidManifest.xml    |     69 -
 .../projects/android_two/assets/www/.gitkeep    |      0
 .../projects/android_two/res/xml/config.xml     |     54 -
 .../spec/projects/android_two/src/.gitkeep      |      0
 .../android_two_no_perms/AndroidManifest.xml    |     49 -
 .../android_two_no_perms/assets/www/.gitkeep    |      0
 .../android_two_no_perms/res/xml/config.xml     |     54 -
 .../projects/android_two_no_perms/src/.gitkeep  |      0
 .../spec/projects/blackberry10/www/config.xml   |     97 -
 .../CordovaLib.xcodeproj/project.pbxproj        |    636 -
 .../SampleApp.xcodeproj/project.orig.pbxproj    |    498 -
 .../SampleApp.xcodeproj/project.pbxproj         |    498 -
 .../SampleApp/SampleApp-Info.plist              |     78 -
 .../ios-config-xml/SampleApp/config.xml         |     59 -
 .../spec/projects/ios-config-xml/www/.gitkeep   |      0
 .../CordovaLib.xcodeproj/project.pbxproj        |    636 -
 .../SampleApp.xcodeproj/project.orig.pbxproj    |    498 -
 .../SampleApp.xcodeproj/project.pbxproj         |    498 -
 .../projects/ios-plist/SampleApp/PhoneGap.plist |     53 -
 .../ios-plist/SampleApp/SampleApp-Info.plist    |     80 -
 .../spec/projects/ios-plist/www/.gitkeep        |      0
 .../multiple-children/AndroidManifest.xml       |     69 -
 .../multiple-children/res/xml/plugins.xml       |     38 -
 .../spec/projects/wp7/CordovaAppProj.csproj     |    100 -
 .../projects/wp7/Properties/WMAppManifest.xml   |     28 -
 .../plugman/spec/projects/wp8/An_App.csproj     |    201 -
 .../projects/wp8/Properties/WMAppManifest.xml   |     39 -
 .../plugman/spec/projects/www-only/.gitkeep     |      0
 .../node_modules/plugman/spec/uninstall.spec.js |    237 -
 .../plugman/spec/util/action-stack.spec.js      |     53 -
 .../plugman/spec/util/config-changes.spec.js    |    437 -
 .../plugman/spec/util/csproj.spec.js            |    104 -
 .../plugman/spec/util/dependencies.spec.js      |     41 -
 .../plugman/spec/util/plugins.spec.js           |     71 -
 .../plugman/spec/util/xml-helpers.spec.js       |    128 -
 blackberry10/node_modules/plugman/src/events.js |      3 -
 blackberry10/node_modules/plugman/src/fetch.js  |     77 -
 blackberry10/node_modules/plugman/src/help.js   |      7 -
 .../node_modules/plugman/src/install.js         |    316 -
 .../node_modules/plugman/src/platforms.js       |      7 -
 .../plugman/src/platforms/android.js            |     47 -
 .../plugman/src/platforms/blackberry10.js       |     68 -
 .../plugman/src/platforms/common.js             |     85 -
 .../node_modules/plugman/src/platforms/ios.js   |    179 -
 .../node_modules/plugman/src/platforms/wp7.js   |     56 -
 .../node_modules/plugman/src/platforms/wp8.js   |     56 -
 .../node_modules/plugman/src/prepare.js         |    180 -
 .../node_modules/plugman/src/uninstall.js       |    178 -
 .../plugman/src/util/action-stack.js            |     87 -
 .../plugman/src/util/config-changes.js          |    363 -
 .../node_modules/plugman/src/util/csproj.js     |    109 -
 .../plugman/src/util/dependencies.js            |     33 -
 .../node_modules/plugman/src/util/fs.js         |     34 -
 .../node_modules/plugman/src/util/metadata.js   |     19 -
 .../plugman/src/util/plist-helpers.js           |     88 -
 .../node_modules/plugman/src/util/plugins.js    |     82 -
 .../plugman/src/util/search-and-replace.js      |     37 -
 .../plugman/src/util/xml-helpers.js             |    164 -
 .../node_modules/portchecker/.npmignore         |     16 -
 blackberry10/node_modules/portchecker/README    |     34 -
 blackberry10/node_modules/portchecker/index.js  |      3 -
 .../node_modules/portchecker/lib/portchecker.js |    104 -
 .../node_modules/portchecker/package.json       |     28 -
 .../node_modules/revalidator/lib/revalidator.js |     19 +-
 .../node_modules/revalidator/package.json       |      6 +-
 .../revalidator/test/validator-test.js          |      5 +
 .../utile/node_modules/async/.gitmodules        |      9 -
 .../utile/node_modules/async/.npmignore         |      4 -
 .../utile/node_modules/async/LICENSE            |     19 -
 .../utile/node_modules/async/Makefile           |     25 -
 .../utile/node_modules/async/README.md          |   1021 -
 .../utile/node_modules/async/index.js           |      3 -
 .../utile/node_modules/async/lib/async.js       |    692 -
 .../utile/node_modules/async/package.json       |     31 -
 .../utile/node_modules/deep-equal/LICENSE       |     18 +
 .../node_modules/deep-equal/README.markdown     |      4 +-
 .../utile/node_modules/deep-equal/index.js      |     36 +-
 .../node_modules/deep-equal/lib/is_arguments.js |     20 +
 .../utile/node_modules/deep-equal/lib/keys.js   |      9 +
 .../utile/node_modules/deep-equal/package.json  |     13 +-
 .../utile/node_modules/deep-equal/test/cmp.js   |     52 +
 .../utile/node_modules/ncp/.travis.yml          |      1 +
 .../utile/node_modules/ncp/README.md            |      6 +
 .../utile/node_modules/ncp/lib/ncp.js           |     28 +-
 .../utile/node_modules/ncp/package.json         |      8 +-
 .../utile/node_modules/ncp/test/ncp-test.js     |     12 +
 .../utile/node_modules/rimraf/README.md         |     16 +-
 .../rimraf/node_modules/graceful-fs/.npmignore  |      1 -
 .../rimraf/node_modules/graceful-fs/LICENSE     |     27 -
 .../rimraf/node_modules/graceful-fs/README.md   |     26 -
 .../node_modules/graceful-fs/graceful-fs.js     |    159 -
 .../node_modules/graceful-fs/package.json       |     48 -
 .../node_modules/graceful-fs/polyfills.js       |    228 -
 .../node_modules/graceful-fs/test/open.js       |     39 -
 .../utile/node_modules/rimraf/package.json      |     12 +-
 .../utile/node_modules/rimraf/rimraf.js         |     18 +-
 .../prompt/node_modules/utile/package.json      |     10 +-
 .../winston/node_modules/cycle/README.md        |      6 +-
 .../winston/node_modules/cycle/cycle.js         |     50 +-
 .../winston/node_modules/cycle/package.json     |      6 +-
 .../node_modules/stack-trace/lib/stack-trace.js |      2 +-
 .../node_modules/stack-trace/package.json       |      4 +-
 .../node_modules/shelljs/.documentup.json       |      2 +-
 blackberry10/node_modules/shelljs/.jshintrc     |      7 +
 blackberry10/node_modules/shelljs/.npmignore    |      3 +-
 blackberry10/node_modules/shelljs/.travis.yml   |      6 +-
 blackberry10/node_modules/shelljs/README.md     |     91 +-
 blackberry10/node_modules/shelljs/jshint.json   |      4 -
 blackberry10/node_modules/shelljs/make.js       |     19 +-
 .../shelljs/node_modules/.bin/jshint            |      1 -
 .../shelljs/node_modules/jshint/.npmignore      |      8 -
 .../shelljs/node_modules/jshint/.travis.yml     |      3 -
 .../shelljs/node_modules/jshint/CONTRIBUTING.md |    102 -
 .../shelljs/node_modules/jshint/LICENSE         |     20 -
 .../shelljs/node_modules/jshint/README.md       |     92 -
 .../shelljs/node_modules/jshint/bin/jshint      |      3 -
 .../node_modules/jshint/examples/.jshintignore  |      2 -
 .../node_modules/jshint/examples/.jshintrc      |     84 -
 .../node_modules/jshint/examples/reporter.js    |     21 -
 .../shelljs/node_modules/jshint/jshint.json     |     14 -
 .../shelljs/node_modules/jshint/make.js         |    129 -
 .../jshint/node_modules/.bin/esparse            |      1 -
 .../jshint/node_modules/.bin/esvalidate         |      1 -
 .../jshint/node_modules/cli/README.md           |    196 -
 .../node_modules/jshint/node_modules/cli/cli.js |   1133 -
 .../jshint/node_modules/cli/examples/cat.js     |     17 -
 .../jshint/node_modules/cli/examples/command.js |     16 -
 .../jshint/node_modules/cli/examples/echo.js    |     54 -
 .../jshint/node_modules/cli/examples/glob.js    |      6 -
 .../node_modules/cli/examples/long_desc.js      |     20 -
 .../node_modules/cli/examples/progress.js       |     11 -
 .../jshint/node_modules/cli/examples/sort.js    |     18 -
 .../jshint/node_modules/cli/examples/spinner.js |      9 -
 .../node_modules/cli/examples/static.coffee     |     27 -
 .../jshint/node_modules/cli/examples/static.js  |     25 -
 .../jshint/node_modules/cli/index.js            |      1 -
 .../cli/node_modules/glob/.npmignore            |      2 -
 .../cli/node_modules/glob/.travis.yml           |      3 -
 .../node_modules/cli/node_modules/glob/LICENSE  |     27 -
 .../cli/node_modules/glob/README.md             |    250 -
 .../cli/node_modules/glob/examples/g.js         |      9 -
 .../cli/node_modules/glob/examples/usr-local.js |      9 -
 .../node_modules/cli/node_modules/glob/glob.js  |    675 -
 .../glob/node_modules/inherits/LICENSE          |     14 -
 .../glob/node_modules/inherits/README.md        |     42 -
 .../glob/node_modules/inherits/inherits.js      |      1 -
 .../node_modules/inherits/inherits_browser.js   |     23 -
 .../glob/node_modules/inherits/package.json     |     39 -
 .../glob/node_modules/inherits/test.js          |     25 -
 .../cli/node_modules/glob/package.json          |     38 -
 .../cli/node_modules/glob/test/00-setup.js      |    176 -
 .../node_modules/glob/test/bash-comparison.js   |     63 -
 .../node_modules/glob/test/bash-results.json    |    349 -
 .../cli/node_modules/glob/test/cwd-test.js      |     55 -
 .../node_modules/glob/test/globstar-match.js    |     19 -
 .../cli/node_modules/glob/test/mark.js          |     74 -
 .../node_modules/glob/test/nocase-nomagic.js    |    113 -
 .../cli/node_modules/glob/test/pause-resume.js  |     73 -
 .../cli/node_modules/glob/test/root-nomount.js  |     39 -
 .../cli/node_modules/glob/test/root.js          |     46 -
 .../cli/node_modules/glob/test/stat.js          |     32 -
 .../cli/node_modules/glob/test/zz-cleanup.js    |     11 -
 .../jshint/node_modules/cli/package.json        |     53 -
 .../jshint/node_modules/esprima/.npmignore      |      8 -
 .../jshint/node_modules/esprima/CONTRIBUTING.md |     20 -
 .../jshint/node_modules/esprima/ChangeLog       |     26 -
 .../jshint/node_modules/esprima/LICENSE.BSD     |     19 -
 .../jshint/node_modules/esprima/README.md       |     24 -
 .../jshint/node_modules/esprima/bin/esparse.js  |    117 -
 .../node_modules/esprima/bin/esvalidate.js      |    199 -
 .../jshint/node_modules/esprima/component.json  |     17 -
 .../jshint/node_modules/esprima/doc/index.html  |    481 -
 .../jshint/node_modules/esprima/esprima.js      |   3739 -
 .../esprima/examples/detectnestedternary.js     |    106 -
 .../esprima/examples/findbooleantrap.js         |    173 -
 .../node_modules/esprima/examples/tokendist.js  |     33 -
 .../jshint/node_modules/esprima/index.html      |    137 -
 .../jshint/node_modules/esprima/package.json    |     59 -
 .../node_modules/esprima/test/benchmarks.html   |    129 -
 .../node_modules/esprima/test/benchmarks.js     |    343 -
 .../node_modules/esprima/test/compare.html      |    139 -
 .../jshint/node_modules/esprima/test/compare.js |    334 -
 .../node_modules/esprima/test/compat.html       |    116 -
 .../jshint/node_modules/esprima/test/compat.js  |    241 -
 .../node_modules/esprima/test/coverage.html     |    111 -
 .../node_modules/esprima/test/esprima.js.html   |  11752 -
 .../jshint/node_modules/esprima/test/index.html |    115 -
 .../node_modules/esprima/test/module.html       |    112 -
 .../jshint/node_modules/esprima/test/module.js  |    131 -
 .../node_modules/esprima/test/parselibs.js      |     67 -
 .../jshint/node_modules/esprima/test/reflect.js |    422 -
 .../jshint/node_modules/esprima/test/run.js     |     67 -
 .../jshint/node_modules/esprima/test/runner.js  |    437 -
 .../jshint/node_modules/esprima/test/test.js    |  22462 --
 .../jshint/node_modules/minimatch/LICENSE       |     23 -
 .../jshint/node_modules/minimatch/README.md     |    218 -
 .../jshint/node_modules/minimatch/minimatch.js  |   1079 -
 .../minimatch/node_modules/lru-cache/.npmignore |      1 -
 .../minimatch/node_modules/lru-cache/AUTHORS    |      8 -
 .../minimatch/node_modules/lru-cache/LICENSE    |     23 -
 .../minimatch/node_modules/lru-cache/README.md  |     97 -
 .../node_modules/lru-cache/lib/lru-cache.js     |    257 -
 .../node_modules/lru-cache/package.json         |     62 -
 .../minimatch/node_modules/lru-cache/s.js       |     25 -
 .../node_modules/lru-cache/test/basic.js        |    329 -
 .../node_modules/lru-cache/test/foreach.js      |     52 -
 .../node_modules/lru-cache/test/memory-leak.js  |     50 -
 .../minimatch/node_modules/sigmund/LICENSE      |     27 -
 .../minimatch/node_modules/sigmund/README.md    |     53 -
 .../minimatch/node_modules/sigmund/bench.js     |    283 -
 .../minimatch/node_modules/sigmund/package.json |     41 -
 .../minimatch/node_modules/sigmund/sigmund.js   |     39 -
 .../node_modules/sigmund/test/basic.js          |     24 -
 .../jshint/node_modules/minimatch/package.json  |     39 -
 .../jshint/node_modules/minimatch/test/basic.js |    399 -
 .../node_modules/minimatch/test/brace-expand.js |     33 -
 .../node_modules/minimatch/test/caching.js      |     14 -
 .../node_modules/minimatch/test/defaults.js     |    274 -
 .../jshint/node_modules/peakle/.npmignore       |      1 -
 .../jshint/node_modules/peakle/LICENSE          |     19 -
 .../jshint/node_modules/peakle/README           |     40 -
 .../jshint/node_modules/peakle/grunt.js         |     28 -
 .../jshint/node_modules/peakle/package.json     |     17 -
 .../jshint/node_modules/peakle/peakle.js        |     59 -
 .../jshint/node_modules/peakle/test.js          |     49 -
 .../jshint/node_modules/underscore/.npmignore   |      4 -
 .../jshint/node_modules/underscore/.travis.yml  |      5 -
 .../jshint/node_modules/underscore/CNAME        |      1 -
 .../node_modules/underscore/CONTRIBUTING.md     |      9 -
 .../jshint/node_modules/underscore/LICENSE      |     22 -
 .../jshint/node_modules/underscore/README.md    |     19 -
 .../jshint/node_modules/underscore/favicon.ico  |    Bin 1406 -> 0 bytes
 .../jshint/node_modules/underscore/index.html   |   2467 -
 .../jshint/node_modules/underscore/index.js     |      1 -
 .../jshint/node_modules/underscore/package.json |     35 -
 .../node_modules/underscore/underscore-min.js   |      1 -
 .../node_modules/underscore/underscore.js       |   1226 -
 .../shelljs/node_modules/jshint/package.json    |     40 -
 .../shelljs/node_modules/jshint/res/jshint.ai   |   4372 -
 .../shelljs/node_modules/jshint/src/cli/cli.js  |    398 -
 .../node_modules/jshint/src/next/constants.js   |     43 -
 .../node_modules/jshint/src/next/jshint.js      |    194 -
 .../node_modules/jshint/src/next/reason.js      |    302 -
 .../node_modules/jshint/src/next/regexp.js      |    125 -
 .../node_modules/jshint/src/next/utils.js       |    359 -
 .../node_modules/jshint/src/platforms/rhino.js  |     86 -
 .../jshint/src/reporters/checkstyle.js          |    107 -
 .../jshint/src/reporters/default.js             |     34 -
 .../jshint/src/reporters/jslint_xml.js          |     56 -
 .../jshint/src/reporters/non_error.js           |     45 -
 .../node_modules/jshint/src/shared/messages.js  |    206 -
 .../node_modules/jshint/src/shared/vars.js      |    395 -
 .../node_modules/jshint/src/stable/jshint.js    |   3692 -
 .../node_modules/jshint/src/stable/lex.js       |   1650 -
 .../node_modules/jshint/src/stable/reg.js       |     34 -
 .../node_modules/jshint/src/stable/state.js     |     22 -
 .../node_modules/jshint/src/stable/style.js     |    171 -
 .../shelljs/node_modules/jshint/tests/cli.js    |    439 -
 .../tests/next/fixtures/parser/comments.js      |     13 -
 .../tests/next/fixtures/parser/simple_file.js   |      9 -
 .../tests/next/fixtures/parser/tokens.json      |    398 -
 .../tests/next/fixtures/reason/arguments.js     |     28 -
 .../jshint/tests/next/fixtures/reason/asi.js    |     46 -
 .../tests/next/fixtures/reason/bitwise.js       |     21 -
 .../tests/next/fixtures/reason/comparison.js    |     51 -
 .../tests/next/fixtures/reason/debugger.js      |      7 -
 .../tests/next/fixtures/reason/esprima.js       |      5 -
 .../tests/next/fixtures/reason/expr_in_test.js  |     11 -
 .../jshint/tests/next/fixtures/reason/fifty.js  |     58 -
 .../tests/next/fixtures/reason/iterator.js      |     26 -
 .../jshint/tests/next/fixtures/reason/native.js |     24 -
 .../jshint/tests/next/fixtures/reason/proto.js  |     38 -
 .../jshint/tests/next/fixtures/reason/shadow.js |     19 -
 .../tests/next/fixtures/reason/trailing.js      |     10 -
 .../jshint/tests/next/fixtures/reason/undef.js  |     42 -
 .../jshint/tests/next/fixtures/regexp/dashes.js |     10 -
 .../tests/next/fixtures/utils/simple_file.js    |      9 -
 .../jshint/tests/next/lib/helpers.js            |    121 -
 .../jshint/tests/next/unit/parser.js            |     84 -
 .../jshint/tests/next/unit/reason.js            |    130 -
 .../jshint/tests/next/unit/regexp.js            |     39 -
 .../jshint/tests/next/unit/utils.js             |    128 -
 .../jshint/tests/stable/helpers/coveraje.js     |     82 -
 .../jshint/tests/stable/helpers/fixture.js      |      7 -
 .../jshint/tests/stable/helpers/testhelper.js   |    148 -
 .../tests/stable/regression/libs/backbone.js    |   1158 -
 .../tests/stable/regression/libs/codemirror3.js |   4561 -
 .../tests/stable/regression/libs/jquery-1.7.js  |   9304 -
 .../tests/stable/regression/libs/json2.js       |    487 -
 .../tests/stable/regression/libs/lodash.js      |   4454 -
 .../stable/regression/libs/prototype-17.js      |   6082 -
 .../jshint/tests/stable/regression/npm.js       |      8 -
 .../tests/stable/regression/thirdparty.js       |    245 -
 .../jshint/tests/stable/unit/core.js            |    623 -
 .../jshint/tests/stable/unit/envs.js            |    653 -
 .../jshint/tests/stable/unit/fixtures/asi.js    |     28 -
 .../jshint/tests/stable/unit/fixtures/blocks.js |     31 -
 .../jshint/tests/stable/unit/fixtures/boss.js   |     33 -
 .../tests/stable/unit/fixtures/browser.js       |     18 -
 .../tests/stable/unit/fixtures/camelcase.js     |     17 -
 .../stable/unit/fixtures/caseExpressions.js     |     11 -
 .../jshint/tests/stable/unit/fixtures/comma.js  |     50 -
 .../jshint/tests/stable/unit/fixtures/const.js  |     72 -
 .../jshint/tests/stable/unit/fixtures/curly.js  |      8 -
 .../jshint/tests/stable/unit/fixtures/curly2.js |     11 -
 .../tests/stable/unit/fixtures/emptystmt.js     |     23 -
 .../jshint/tests/stable/unit/fixtures/eqeqeq.js |     10 -
 .../tests/stable/unit/fixtures/es5.funcexpr.js  |     15 -
 .../jshint/tests/stable/unit/fixtures/es5.js    |     78 -
 .../tests/stable/unit/fixtures/es5Reserved.js   |      8 -
 .../tests/stable/unit/fixtures/exported.js      |     18 -
 .../jshint/tests/stable/unit/fixtures/forin.js  |     15 -
 .../unit/fixtures/functionScopedOptions.js      |      8 -
 .../jshint/tests/stable/unit/fixtures/gh-226.js |     21 -
 .../jshint/tests/stable/unit/fixtures/gh-334.js |     15 -
 .../jshint/tests/stable/unit/fixtures/gh247.js  |     23 -
 .../jshint/tests/stable/unit/fixtures/gh431.js  |     15 -
 .../jshint/tests/stable/unit/fixtures/gh56.js   |      4 -
 .../jshint/tests/stable/unit/fixtures/gh618.js  |      7 -
 .../jshint/tests/stable/unit/fixtures/gh668.js  |      6 -
 .../jshint/tests/stable/unit/fixtures/gh878.js  |      4 -
 .../tests/stable/unit/fixtures/gruntComment.js  |     20 -
 .../tests/stable/unit/fixtures/identifiers.js   |      7 -
 .../tests/stable/unit/fixtures/ignored.js       |      4 -
 .../jshint/tests/stable/unit/fixtures/immed.js  |     31 -
 .../jshint/tests/stable/unit/fixtures/indent.js |     12 -
 .../tests/stable/unit/fixtures/insideEval.js    |     17 -
 .../stable/unit/fixtures/jslintInverted.js      |      4 -
 .../tests/stable/unit/fixtures/jslintOptions.js |      9 -
 .../tests/stable/unit/fixtures/jslintRenamed.js |      5 -
 .../tests/stable/unit/fixtures/lastsemic.js     |      6 -
 .../tests/stable/unit/fixtures/latedef.js       |     21 -
 .../tests/stable/unit/fixtures/latedefundef.js  |     46 -
 .../tests/stable/unit/fixtures/laxbreak.js      |     19 -
 .../tests/stable/unit/fixtures/laxcomma.js      |     17 -
 .../tests/stable/unit/fixtures/loopfunc.js      |     11 -
 .../max-cyclomatic-complexity-per-function.js   |     74 -
 .../max-nested-block-depth-per-function.js      |     18 -
 .../fixtures/max-parameters-per-function.js     |      5 -
 .../fixtures/max-statements-per-function.js     |     19 -
 .../jshint/tests/stable/unit/fixtures/maxlen.js |      3 -
 .../tests/stable/unit/fixtures/missingspaces.js |      8 -
 .../unit/fixtures/nestedFunctions-locations.js  |      1 -
 .../stable/unit/fixtures/nestedFunctions.js     |     35 -
 .../jshint/tests/stable/unit/fixtures/newcap.js |     13 -
 .../jshint/tests/stable/unit/fixtures/noarg.js  |      7 -
 .../jshint/tests/stable/unit/fixtures/onevar.js |     11 -
 .../tests/stable/unit/fixtures/protoiterator.js |     37 -
 .../jshint/tests/stable/unit/fixtures/quotes.js |      3 -
 .../tests/stable/unit/fixtures/quotes2.js       |      3 -
 .../tests/stable/unit/fixtures/quotes3.js       |     36 -
 .../jshint/tests/stable/unit/fixtures/redef.js  |     11 -
 .../tests/stable/unit/fixtures/regex_array.js   |      6 -
 .../tests/stable/unit/fixtures/reserved.js      |     15 -
 .../jshint/tests/stable/unit/fixtures/return.js |     40 -
 .../jshint/tests/stable/unit/fixtures/scope.js  |     43 -
 .../tests/stable/unit/fixtures/scripturl.js     |     11 -
 .../tests/stable/unit/fixtures/smarttabs.js     |     14 -
 .../stable/unit/fixtures/strict_incorrect.js    |     59 -
 .../tests/stable/unit/fixtures/strict_newcap.js |     21 -
 .../tests/stable/unit/fixtures/strict_this.js   |     17 -
 .../tests/stable/unit/fixtures/strict_this2.js  |     18 -
 .../stable/unit/fixtures/strict_violations.js   |      9 -
 .../tests/stable/unit/fixtures/strings.js       |     25 -
 .../tests/stable/unit/fixtures/supernew.js      |     11 -
 .../stable/unit/fixtures/switchDefaultFirst.js  |     16 -
 .../stable/unit/fixtures/switchFallThrough.js   |     40 -
 .../tests/stable/unit/fixtures/trycatch.js      |     24 -
 .../jshint/tests/stable/unit/fixtures/undef.js  |     24 -
 .../tests/stable/unit/fixtures/undef_func.js    |      8 -
 .../tests/stable/unit/fixtures/undefstrict.js   |      6 -
 .../jshint/tests/stable/unit/fixtures/unused.js |     26 -
 .../tests/stable/unit/fixtures/unusedglobals.js |      4 -
 .../jshint/tests/stable/unit/fixtures/white.js  |     66 -
 .../jshint/tests/stable/unit/fixtures/with.js   |     16 -
 .../jshint/tests/stable/unit/options.js         |   1472 -
 .../jshint/tests/stable/unit/parser.js          |    522 -
 blackberry10/node_modules/shelljs/package.json  |     16 +-
 .../node_modules/shelljs/scripts/docs.js        |     15 -
 .../shelljs/scripts/generate-docs.js            |     21 +
 .../node_modules/shelljs/scripts/run-tests.js   |      2 +-
 blackberry10/node_modules/shelljs/shell.js      |   1879 +-
 blackberry10/node_modules/shelljs/src/cat.js    |     43 +
 blackberry10/node_modules/shelljs/src/cd.js     |     19 +
 blackberry10/node_modules/shelljs/src/chmod.js  |    208 +
 blackberry10/node_modules/shelljs/src/common.js |    189 +
 blackberry10/node_modules/shelljs/src/cp.js     |    200 +
 blackberry10/node_modules/shelljs/src/dirs.js   |    191 +
 blackberry10/node_modules/shelljs/src/echo.js   |     20 +
 blackberry10/node_modules/shelljs/src/error.js  |     10 +
 blackberry10/node_modules/shelljs/src/exec.js   |    181 +
 blackberry10/node_modules/shelljs/src/find.js   |     51 +
 blackberry10/node_modules/shelljs/src/grep.js   |     52 +
 blackberry10/node_modules/shelljs/src/ls.js     |    126 +
 blackberry10/node_modules/shelljs/src/mkdir.js  |     68 +
 blackberry10/node_modules/shelljs/src/mv.js     |     80 +
 blackberry10/node_modules/shelljs/src/popd.js   |      1 +
 blackberry10/node_modules/shelljs/src/pushd.js  |      1 +
 blackberry10/node_modules/shelljs/src/pwd.js    |     11 +
 blackberry10/node_modules/shelljs/src/rm.js     |    145 +
 blackberry10/node_modules/shelljs/src/sed.js    |     43 +
 .../node_modules/shelljs/src/tempdir.js         |     56 +
 blackberry10/node_modules/shelljs/src/test.js   |     85 +
 blackberry10/node_modules/shelljs/src/to.js     |     29 +
 blackberry10/node_modules/shelljs/src/toEnd.js  |     29 +
 blackberry10/node_modules/shelljs/src/which.js  |     79 +
 .../node_modules/shelljs/test/.npmignore        |      2 -
 blackberry10/node_modules/shelljs/test/cat.js   |     57 -
 blackberry10/node_modules/shelljs/test/cd.js    |     64 -
 blackberry10/node_modules/shelljs/test/chmod.js |     81 -
 .../node_modules/shelljs/test/config.js         |     50 -
 blackberry10/node_modules/shelljs/test/cp.js    |    143 -
 blackberry10/node_modules/shelljs/test/dirs.js  |     37 -
 blackberry10/node_modules/shelljs/test/echo.js  |     50 -
 blackberry10/node_modules/shelljs/test/env.js   |     19 -
 blackberry10/node_modules/shelljs/test/exec.js  |    109 -
 blackberry10/node_modules/shelljs/test/find.js  |     56 -
 blackberry10/node_modules/shelljs/test/grep.js  |     59 -
 blackberry10/node_modules/shelljs/test/ls.js    |    202 -
 blackberry10/node_modules/shelljs/test/make.js  |     20 -
 blackberry10/node_modules/shelljs/test/mkdir.js |     79 -
 blackberry10/node_modules/shelljs/test/mv.js    |    130 -
 blackberry10/node_modules/shelljs/test/popd.js  |    118 -
 blackberry10/node_modules/shelljs/test/pushd.js |    228 -
 blackberry10/node_modules/shelljs/test/pwd.js   |     28 -
 .../node_modules/shelljs/test/resources/a.txt   |     11 -
 .../test/resources/chmod/a/b/c/.npmignore       |      0
 .../test/resources/chmod/b/a/b/.npmignore       |      0
 .../test/resources/chmod/c/a/b/.npmignore       |      0
 .../shelljs/test/resources/chmod/file1          |      2 -
 .../node_modules/shelljs/test/resources/cp/a    |      1 -
 .../node_modules/shelljs/test/resources/cp/b    |      1 -
 .../shelljs/test/resources/cp/dir_a/z           |      1 -
 .../test/resources/cp/dir_b/dir_b_a/dir_b_a_a/z |      1 -
 .../test/resources/external/node_script.js      |      2 -
 .../node_modules/shelljs/test/resources/file1   |      1 -
 .../shelljs/test/resources/file1.js             |      1 -
 .../shelljs/test/resources/file1.txt            |      1 -
 .../node_modules/shelljs/test/resources/file2   |      1 -
 .../shelljs/test/resources/file2.js             |      1 -
 .../shelljs/test/resources/file2.txt            |      1 -
 .../shelljs/test/resources/find/.hidden         |      1 -
 .../node_modules/shelljs/test/resources/find/a  |      1 -
 .../node_modules/shelljs/test/resources/find/b  |      1 -
 .../shelljs/test/resources/find/dir1/a_dir1     |      1 -
 .../test/resources/find/dir1/dir11/a_dir11      |      1 -
 .../shelljs/test/resources/find/dir2/a_dir1     |      1 -
 .../shelljs/test/resources/issue44/main.js      |      1 -
 .../shelljs/test/resources/ls/.hidden_dir/nada  |      1 -
 .../shelljs/test/resources/ls/.hidden_file      |      1 -
 .../test/resources/ls/a_dir/.hidden_dir/nada    |      1 -
 .../shelljs/test/resources/ls/a_dir/b_dir/z     |      1 -
 .../shelljs/test/resources/ls/a_dir/nada        |      1 -
 .../shelljs/test/resources/ls/file1             |      1 -
 .../shelljs/test/resources/ls/file1.js          |      1 -
 .../shelljs/test/resources/ls/file2             |      1 -
 .../shelljs/test/resources/ls/file2.js          |      1 -
 .../filename(with)[chars$]^that.must+be-escaped |      1 -
 .../shelljs/test/resources/pushd/a/dummy        |      1 -
 .../shelljs/test/resources/pushd/b/c/dummy      |      1 -
 blackberry10/node_modules/shelljs/test/rm.js    |    183 -
 blackberry10/node_modules/shelljs/test/sed.js   |     58 -
 .../node_modules/shelljs/test/tempdir.js        |     27 -
 blackberry10/node_modules/shelljs/test/test.js  |     91 -
 blackberry10/node_modules/shelljs/test/to.js    |     39 -
 blackberry10/node_modules/shelljs/test/which.js |     38 -
 blackberry10/node_modules/wrench/package.json   |      6 +-
 .../xml2js/node_modules/sax/lib/sax.js          |    110 +-
 .../xml2js/node_modules/sax/package.json        |      4 +-
 .../node_modules/sax/test/attribute-no-space.js |     75 +
 .../xml2js/node_modules/sax/test/emoji.js       |     12 +
 .../node_modules/sax/test/end_empty_stream.js   |      5 +
 .../xml2js/node_modules/sax/test/flush.js       |     13 +
 .../xml2js/node_modules/sax/test/utf8-split.js  |     32 +
 .../node_modules/sax/test/xmlns-as-tag-name.js  |     15 +
 blackberry10/package.json                       |      2 +-
 1255 files changed, 2647 insertions(+), 582026 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/bin/lib/create.js
----------------------------------------------------------------------
diff --git a/blackberry10/bin/lib/create.js b/blackberry10/bin/lib/create.js
index 8ec5145..d4623b1 100644
--- a/blackberry10/bin/lib/create.js
+++ b/blackberry10/bin/lib/create.js
@@ -28,23 +28,23 @@ var build,
     ERROR_VALUE = 2,
     path = require("path"),
     exit = require('exit'),
+    shell = require('shelljs'),
     fs = require("fs")
     os = require("os"),
     wrench = require("wrench"),
-    utils = require(path.join(__dirname, 'lib/utils')),
     version = getVersion(),
     project_path = validateProjectPath(),
     app_id = process.argv[3],
     app_name = process.argv[4] || 'WebWorks Application',
     TARGETS = ["device", "simulator"],
-    TEMPLATE_PROJECT_DIR = path.join(__dirname, "templates", "project"),
-    ROOT_PROJECT_DIR = path.join(__dirname, ".."),
-    MODULES_PROJECT_DIR = path.join(__dirname, "..", "node_modules"),
-    BOOTSTRAP_PROJECT_DIR = path.join(__dirname, "..", "framework", "bootstrap"),
-    FRAMEWORK_LIB_PROJECT_DIR = path.join(__dirname, "..", "framework", "lib"),
-    BIN_DIR = path.join(__dirname),
-    BUILD_DIR = path.join(__dirname, "build"),
-    CORDOVA_JS_SRC = path.join(__dirname, "..", "javascript", "cordova.blackberry10.js"),
+    TEMPLATE_PROJECT_DIR = path.join(__dirname, "..", "templates", "project"),
+    ROOT_PROJECT_DIR = path.join(__dirname, "..", ".."),
+    MODULES_PROJECT_DIR = path.join(__dirname, "..", "..", "node_modules"),
+    BOOTSTRAP_PROJECT_DIR = path.join(__dirname, "..", "..", "framework", "bootstrap"),
+    FRAMEWORK_LIB_PROJECT_DIR = path.join(__dirname, "..", "..", "framework", "lib"),
+    BIN_DIR = path.join(__dirname, ".."),
+    BUILD_DIR = path.join(__dirname, "..", "build"),
+    CORDOVA_JS_SRC = path.join(__dirname, "..", "..", "javascript", "cordova.blackberry10.js"),
     update_dir = path.join(project_path, "lib", "cordova." + version),
     native_dir = path.join(project_path, "native"),
     template_dir = process.argv[5] || TEMPLATE_PROJECT_DIR,
@@ -52,7 +52,7 @@ var build,
     js_basename = "cordova.js";
 
 function getVersion() {
-    var version = fs.readFileSync(path.join(__dirname,  "..", "VERSION"));
+    var version = fs.readFileSync(path.join(__dirname,  "..", "..", "VERSION"));
     if (version) {
         return version.toString().replace( /([^\x00-\xFF]|\s)*$/g, '' );
     }
@@ -99,7 +99,7 @@ function clean() {
 
 function copyJavascript() {
     wrench.mkdirSyncRecursive(path.join(BUILD_DIR, js_path), 0777);
-    utils.copyFile(CORDOVA_JS_SRC, path.join(BUILD_DIR, js_path));
+    shell.cp(CORDOVA_JS_SRC, path.join(BUILD_DIR, js_path));
 
     //rename copied cordova.blackberry10.js file
     fs.renameSync(path.join(BUILD_DIR, js_path, "cordova.blackberry10.js"), path.join(BUILD_DIR, js_path, js_basename));
@@ -122,28 +122,28 @@ function copyFilesToProject() {
     }
 
     // copy repo level target tool to project
-    utils.copyFile(path.join(BIN_DIR, "target"), path.join(project_path, "cordova"));
-    utils.copyFile(path.join(BIN_DIR, "target.bat"), path.join(project_path, "cordova"));
-    utils.copyFile(path.join(BIN_DIR, "lib", "target.js"), path.join(project_path, "cordova", "lib"));
-    utils.copyFile(path.join(BIN_DIR, "lib", "utils.js"), path.join(project_path, "cordova", "lib"));
+    shell.cp(path.join(BIN_DIR, "target"), path.join(project_path, "cordova"));
+    shell.cp(path.join(BIN_DIR, "target.bat"), path.join(project_path, "cordova"));
+    shell.cp(path.join(BIN_DIR, "lib", "target.js"), path.join(project_path, "cordova", "lib"));
+    shell.cp(path.join(BIN_DIR, "lib", "utils.js"), path.join(project_path, "cordova", "lib"));
 
     // copy repo level init script to project
-    utils.copyFile(path.join(BIN_DIR, "whereis.cmd"), path.join(project_path, "cordova"));
-    utils.copyFile(path.join(BIN_DIR, "init.bat"), path.join(project_path, "cordova"));
-    utils.copyFile(path.join(BIN_DIR, "init"), path.join(project_path, "cordova"));
+    shell.cp(path.join(BIN_DIR, "whereis.cmd"), path.join(project_path, "cordova"));
+    shell.cp(path.join(BIN_DIR, "init.bat"), path.join(project_path, "cordova"));
+    shell.cp(path.join(BIN_DIR, "init"), path.join(project_path, "cordova"));
 
     //copy VERSION file [used to identify corresponding ~/.cordova/lib directory for dependencies]
-    utils.copyFile(path.join(ROOT_PROJECT_DIR, "VERSION"), path.join(project_path));
+    shell.cp(path.join(ROOT_PROJECT_DIR, "VERSION"), path.join(project_path));
 
     // copy repo level check_reqs script to project
-    utils.copyFile(path.join(BIN_DIR, "check_reqs.bat"), path.join(project_path, "cordova"));
-    utils.copyFile(path.join(BIN_DIR, "check_reqs"), path.join(project_path, "cordova"));
+    shell.cp(path.join(BIN_DIR, "check_reqs.bat"), path.join(project_path, "cordova"));
+    shell.cp(path.join(BIN_DIR, "check_reqs"), path.join(project_path, "cordova"));
 
     // change file permission for cordova scripts because ant copy doesn't preserve file permissions
     wrench.chmodSyncRecursive(path.join(project_path,"cordova"), 0700);
 
     //copy cordova-*version*.js to www
-    utils.copyFile(path.join(BUILD_DIR, js_path, js_basename), path.join(project_path, "www"));
+    shell.cp(path.join(BUILD_DIR, js_path, js_basename), path.join(project_path, "www"));
 
     //copy node modules to cordova build directory
     wrench.mkdirSyncRecursive(nodeModulesDest, 0777);

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/.bin/jake
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/.bin/jake b/blackberry10/node_modules/.bin/jake
deleted file mode 120000
index 3626745..0000000
--- a/blackberry10/node_modules/.bin/jake
+++ /dev/null
@@ -1 +0,0 @@
-../jake/bin/cli.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/.bin/jasmine-node
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/.bin/jasmine-node b/blackberry10/node_modules/.bin/jasmine-node
deleted file mode 120000
index a1c6532..0000000
--- a/blackberry10/node_modules/.bin/jasmine-node
+++ /dev/null
@@ -1 +0,0 @@
-../jasmine-node/bin/jasmine-node
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/.bin/plugman
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/.bin/plugman b/blackberry10/node_modules/.bin/plugman
deleted file mode 120000
index 58f3da5..0000000
--- a/blackberry10/node_modules/.bin/plugman
+++ /dev/null
@@ -1 +0,0 @@
-../plugman/main.js
\ No newline at end of file


[41/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/lexer.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/lexer.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/lexer.js
deleted file mode 100644
index b4db45f..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/lexer.js
+++ /dev/null
@@ -1,889 +0,0 @@
-// Generated by CoffeeScript 1.6.3
-(function() {
-  var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, WHITESPACE, compact, count, invertLiterate, key, last, locationDataToString, repeat, starts, throwSyntaxError, _ref, _ref1,
-    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
-  _ref = require('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES;
-
-  _ref1 = require('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last, repeat = _ref1.repeat, invertLiterate = _ref1.invertLiterate, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError;
-
-  exports.Lexer = Lexer = (function() {
-    function Lexer() {}
-
-    Lexer.prototype.tokenize = function(code, opts) {
-      var consumed, i, tag, _ref2;
-      if (opts == null) {
-        opts = {};
-      }
-      this.literate = opts.literate;
-      this.indent = 0;
-      this.indebt = 0;
-      this.outdebt = 0;
-      this.indents = [];
-      this.ends = [];
-      this.tokens = [];
-      this.chunkLine = opts.line || 0;
-      this.chunkColumn = opts.column || 0;
-      code = this.clean(code);
-      i = 0;
-      while (this.chunk = code.slice(i)) {
-        consumed = this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken();
-        _ref2 = this.getLineAndColumnFromChunk(consumed), this.chunkLine = _ref2[0], this.chunkColumn = _ref2[1];
-        i += consumed;
-      }
-      this.closeIndentation();
-      if (tag = this.ends.pop()) {
-        this.error("missing " + tag);
-      }
-      if (opts.rewrite === false) {
-        return this.tokens;
-      }
-      return (new Rewriter).rewrite(this.tokens);
-    };
-
-    Lexer.prototype.clean = function(code) {
-      if (code.charCodeAt(0) === BOM) {
-        code = code.slice(1);
-      }
-      code = code.replace(/\r/g, '').replace(TRAILING_SPACES, '');
-      if (WHITESPACE.test(code)) {
-        code = "\n" + code;
-        this.chunkLine--;
-      }
-      if (this.literate) {
-        code = invertLiterate(code);
-      }
-      return code;
-    };
-
-    Lexer.prototype.identifierToken = function() {
-      var colon, colonOffset, forcedIdentifier, id, idLength, input, match, poppedToken, prev, tag, tagToken, _ref2, _ref3, _ref4;
-      if (!(match = IDENTIFIER.exec(this.chunk))) {
-        return 0;
-      }
-      input = match[0], id = match[1], colon = match[2];
-      idLength = id.length;
-      poppedToken = void 0;
-      if (id === 'own' && this.tag() === 'FOR') {
-        this.token('OWN', id);
-        return id.length;
-      }
-      forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::' || _ref2 === '?::') || !prev.spaced && prev[0] === '@');
-      tag = 'IDENTIFIER';
-      if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) {
-        tag = id.toUpperCase();
-        if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) {
-          tag = 'LEADING_WHEN';
-        } else if (tag === 'FOR') {
-          this.seenFor = true;
-        } else if (tag === 'UNLESS') {
-          tag = 'IF';
-        } else if (__indexOf.call(UNARY, tag) >= 0) {
-          tag = 'UNARY';
-        } else if (__indexOf.call(RELATION, tag) >= 0) {
-          if (tag !== 'INSTANCEOF' && this.seenFor) {
-            tag = 'FOR' + tag;
-            this.seenFor = false;
-          } else {
-            tag = 'RELATION';
-            if (this.value() === '!') {
-              poppedToken = this.tokens.pop();
-              id = '!' + id;
-            }
-          }
-        }
-      }
-      if (__indexOf.call(JS_FORBIDDEN, id) >= 0) {
-        if (forcedIdentifier) {
-          tag = 'IDENTIFIER';
-          id = new String(id);
-          id.reserved = true;
-        } else if (__indexOf.call(RESERVED, id) >= 0) {
-          this.error("reserved word \"" + id + "\"");
-        }
-      }
-      if (!forcedIdentifier) {
-        if (__indexOf.call(COFFEE_ALIASES, id) >= 0) {
-          id = COFFEE_ALIAS_MAP[id];
-        }
-        tag = (function() {
-          switch (id) {
-            case '!':
-              return 'UNARY';
-            case '==':
-            case '!=':
-              return 'COMPARE';
-            case '&&':
-            case '||':
-              return 'LOGIC';
-            case 'true':
-            case 'false':
-              return 'BOOL';
-            case 'break':
-            case 'continue':
-              return 'STATEMENT';
-            default:
-              return tag;
-          }
-        })();
-      }
-      tagToken = this.token(tag, id, 0, idLength);
-      if (poppedToken) {
-        _ref4 = [poppedToken[2].first_line, poppedToken[2].first_column], tagToken[2].first_line = _ref4[0], tagToken[2].first_column = _ref4[1];
-      }
-      if (colon) {
-        colonOffset = input.lastIndexOf(':');
-        this.token(':', ':', colonOffset, colon.length);
-      }
-      return input.length;
-    };
-
-    Lexer.prototype.numberToken = function() {
-      var binaryLiteral, lexedLength, match, number, octalLiteral;
-      if (!(match = NUMBER.exec(this.chunk))) {
-        return 0;
-      }
-      number = match[0];
-      if (/^0[BOX]/.test(number)) {
-        this.error("radix prefix '" + number + "' must be lowercase");
-      } else if (/E/.test(number) && !/^0x/.test(number)) {
-        this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'");
-      } else if (/^0\d*[89]/.test(number)) {
-        this.error("decimal literal '" + number + "' must not be prefixed with '0'");
-      } else if (/^0\d+/.test(number)) {
-        this.error("octal literal '" + number + "' must be prefixed with '0o'");
-      }
-      lexedLength = number.length;
-      if (octalLiteral = /^0o([0-7]+)/.exec(number)) {
-        number = '0x' + parseInt(octalLiteral[1], 8).toString(16);
-      }
-      if (binaryLiteral = /^0b([01]+)/.exec(number)) {
-        number = '0x' + parseInt(binaryLiteral[1], 2).toString(16);
-      }
-      this.token('NUMBER', number, 0, lexedLength);
-      return lexedLength;
-    };
-
-    Lexer.prototype.stringToken = function() {
-      var match, octalEsc, string;
-      switch (this.chunk.charAt(0)) {
-        case "'":
-          if (!(match = SIMPLESTR.exec(this.chunk))) {
-            return 0;
-          }
-          string = match[0];
-          this.token('STRING', string.replace(MULTILINER, '\\\n'), 0, string.length);
-          break;
-        case '"':
-          if (!(string = this.balancedString(this.chunk, '"'))) {
-            return 0;
-          }
-          if (0 < string.indexOf('#{', 1)) {
-            this.interpolateString(string.slice(1, -1), {
-              strOffset: 1,
-              lexedLength: string.length
-            });
-          } else {
-            this.token('STRING', this.escapeLines(string, 0, string.length));
-          }
-          break;
-        default:
-          return 0;
-      }
-      if (octalEsc = /^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(string)) {
-        this.error("octal escape sequences " + string + " are not allowed");
-      }
-      return string.length;
-    };
-
-    Lexer.prototype.heredocToken = function() {
-      var doc, heredoc, match, quote;
-      if (!(match = HEREDOC.exec(this.chunk))) {
-        return 0;
-      }
-      heredoc = match[0];
-      quote = heredoc.charAt(0);
-      doc = this.sanitizeHeredoc(match[2], {
-        quote: quote,
-        indent: null
-      });
-      if (quote === '"' && 0 <= doc.indexOf('#{')) {
-        this.interpolateString(doc, {
-          heredoc: true,
-          strOffset: 3,
-          lexedLength: heredoc.length
-        });
-      } else {
-        this.token('STRING', this.makeString(doc, quote, true), 0, heredoc.length);
-      }
-      return heredoc.length;
-    };
-
-    Lexer.prototype.commentToken = function() {
-      var comment, here, match;
-      if (!(match = this.chunk.match(COMMENT))) {
-        return 0;
-      }
-      comment = match[0], here = match[1];
-      if (here) {
-        this.token('HERECOMMENT', this.sanitizeHeredoc(here, {
-          herecomment: true,
-          indent: repeat(' ', this.indent)
-        }), 0, comment.length);
-      }
-      return comment.length;
-    };
-
-    Lexer.prototype.jsToken = function() {
-      var match, script;
-      if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) {
-        return 0;
-      }
-      this.token('JS', (script = match[0]).slice(1, -1), 0, script.length);
-      return script.length;
-    };
-
-    Lexer.prototype.regexToken = function() {
-      var flags, length, match, prev, regex, _ref2, _ref3;
-      if (this.chunk.charAt(0) !== '/') {
-        return 0;
-      }
-      if (match = HEREGEX.exec(this.chunk)) {
-        length = this.heregexToken(match);
-        return length;
-      }
-      prev = last(this.tokens);
-      if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) {
-        return 0;
-      }
-      if (!(match = REGEX.exec(this.chunk))) {
-        return 0;
-      }
-      _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2];
-      if (regex.slice(0, 2) === '/*') {
-        this.error('regular expressions cannot begin with `*`');
-      }
-      if (regex === '//') {
-        regex = '/(?:)/';
-      }
-      this.token('REGEX', "" + regex + flags, 0, match.length);
-      return match.length;
-    };
-
-    Lexer.prototype.heregexToken = function(match) {
-      var body, flags, flagsOffset, heregex, plusToken, prev, re, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4;
-      heregex = match[0], body = match[1], flags = match[2];
-      if (0 > body.indexOf('#{')) {
-        re = body.replace(HEREGEX_OMIT, '').replace(/\//g, '\\/');
-        if (re.match(/^\*/)) {
-          this.error('regular expressions cannot begin with `*`');
-        }
-        this.token('REGEX', "/" + (re || '(?:)') + "/" + flags, 0, heregex.length);
-        return heregex.length;
-      }
-      this.token('IDENTIFIER', 'RegExp', 0, 0);
-      this.token('CALL_START', '(', 0, 0);
-      tokens = [];
-      _ref2 = this.interpolateString(body, {
-        regex: true
-      });
-      for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
-        token = _ref2[_i];
-        tag = token[0], value = token[1];
-        if (tag === 'TOKENS') {
-          tokens.push.apply(tokens, value);
-        } else if (tag === 'NEOSTRING') {
-          if (!(value = value.replace(HEREGEX_OMIT, ''))) {
-            continue;
-          }
-          value = value.replace(/\\/g, '\\\\');
-          token[0] = 'STRING';
-          token[1] = this.makeString(value, '"', true);
-          tokens.push(token);
-        } else {
-          this.error("Unexpected " + tag);
-        }
-        prev = last(this.tokens);
-        plusToken = ['+', '+'];
-        plusToken[2] = prev[2];
-        tokens.push(plusToken);
-      }
-      tokens.pop();
-      if (((_ref3 = tokens[0]) != null ? _ref3[0] : void 0) !== 'STRING') {
-        this.token('STRING', '""', 0, 0);
-        this.token('+', '+', 0, 0);
-      }
-      (_ref4 = this.tokens).push.apply(_ref4, tokens);
-      if (flags) {
-        flagsOffset = heregex.lastIndexOf(flags);
-        this.token(',', ',', flagsOffset, 0);
-        this.token('STRING', '"' + flags + '"', flagsOffset, flags.length);
-      }
-      this.token(')', ')', heregex.length - 1, 0);
-      return heregex.length;
-    };
-
-    Lexer.prototype.lineToken = function() {
-      var diff, indent, match, noNewlines, size;
-      if (!(match = MULTI_DENT.exec(this.chunk))) {
-        return 0;
-      }
-      indent = match[0];
-      this.seenFor = false;
-      size = indent.length - 1 - indent.lastIndexOf('\n');
-      noNewlines = this.unfinished();
-      if (size - this.indebt === this.indent) {
-        if (noNewlines) {
-          this.suppressNewlines();
-        } else {
-          this.newlineToken(0);
-        }
-        return indent.length;
-      }
-      if (size > this.indent) {
-        if (noNewlines) {
-          this.indebt = size - this.indent;
-          this.suppressNewlines();
-          return indent.length;
-        }
-        diff = size - this.indent + this.outdebt;
-        this.token('INDENT', diff, indent.length - size, size);
-        this.indents.push(diff);
-        this.ends.push('OUTDENT');
-        this.outdebt = this.indebt = 0;
-      } else {
-        this.indebt = 0;
-        this.outdentToken(this.indent - size, noNewlines, indent.length);
-      }
-      this.indent = size;
-      return indent.length;
-    };
-
-    Lexer.prototype.outdentToken = function(moveOut, noNewlines, outdentLength) {
-      var dent, len;
-      while (moveOut > 0) {
-        len = this.indents.length - 1;
-        if (this.indents[len] === void 0) {
-          moveOut = 0;
-        } else if (this.indents[len] === this.outdebt) {
-          moveOut -= this.outdebt;
-          this.outdebt = 0;
-        } else if (this.indents[len] < this.outdebt) {
-          this.outdebt -= this.indents[len];
-          moveOut -= this.indents[len];
-        } else {
-          dent = this.indents.pop() + this.outdebt;
-          moveOut -= dent;
-          this.outdebt = 0;
-          this.pair('OUTDENT');
-          this.token('OUTDENT', dent, 0, outdentLength);
-        }
-      }
-      if (dent) {
-        this.outdebt -= moveOut;
-      }
-      while (this.value() === ';') {
-        this.tokens.pop();
-      }
-      if (!(this.tag() === 'TERMINATOR' || noNewlines)) {
-        this.token('TERMINATOR', '\n', outdentLength, 0);
-      }
-      return this;
-    };
-
-    Lexer.prototype.whitespaceToken = function() {
-      var match, nline, prev;
-      if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) {
-        return 0;
-      }
-      prev = last(this.tokens);
-      if (prev) {
-        prev[match ? 'spaced' : 'newLine'] = true;
-      }
-      if (match) {
-        return match[0].length;
-      } else {
-        return 0;
-      }
-    };
-
-    Lexer.prototype.newlineToken = function(offset) {
-      while (this.value() === ';') {
-        this.tokens.pop();
-      }
-      if (this.tag() !== 'TERMINATOR') {
-        this.token('TERMINATOR', '\n', offset, 0);
-      }
-      return this;
-    };
-
-    Lexer.prototype.suppressNewlines = function() {
-      if (this.value() === '\\') {
-        this.tokens.pop();
-      }
-      return this;
-    };
-
-    Lexer.prototype.literalToken = function() {
-      var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5;
-      if (match = OPERATOR.exec(this.chunk)) {
-        value = match[0];
-        if (CODE.test(value)) {
-          this.tagParameters();
-        }
-      } else {
-        value = this.chunk.charAt(0);
-      }
-      tag = value;
-      prev = last(this.tokens);
-      if (value === '=' && prev) {
-        if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) {
-          this.error("reserved word \"" + (this.value()) + "\" can't be assigned");
-        }
-        if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') {
-          prev[0] = 'COMPOUND_ASSIGN';
-          prev[1] += '=';
-          return value.length;
-        }
-      }
-      if (value === ';') {
-        this.seenFor = false;
-        tag = 'TERMINATOR';
-      } else if (__indexOf.call(MATH, value) >= 0) {
-        tag = 'MATH';
-      } else if (__indexOf.call(COMPARE, value) >= 0) {
-        tag = 'COMPARE';
-      } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) {
-        tag = 'COMPOUND_ASSIGN';
-      } else if (__indexOf.call(UNARY, value) >= 0) {
-        tag = 'UNARY';
-      } else if (__indexOf.call(SHIFT, value) >= 0) {
-        tag = 'SHIFT';
-      } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) {
-        tag = 'LOGIC';
-      } else if (prev && !prev.spaced) {
-        if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) {
-          if (prev[0] === '?') {
-            prev[0] = 'FUNC_EXIST';
-          }
-          tag = 'CALL_START';
-        } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) {
-          tag = 'INDEX_START';
-          switch (prev[0]) {
-            case '?':
-              prev[0] = 'INDEX_SOAK';
-          }
-        }
-      }
-      switch (value) {
-        case '(':
-        case '{':
-        case '[':
-          this.ends.push(INVERSES[value]);
-          break;
-        case ')':
-        case '}':
-        case ']':
-          this.pair(value);
-      }
-      this.token(tag, value);
-      return value.length;
-    };
-
-    Lexer.prototype.sanitizeHeredoc = function(doc, options) {
-      var attempt, herecomment, indent, match, _ref2;
-      indent = options.indent, herecomment = options.herecomment;
-      if (herecomment) {
-        if (HEREDOC_ILLEGAL.test(doc)) {
-          this.error("block comment cannot contain \"*/\", starting");
-        }
-        if (doc.indexOf('\n') < 0) {
-          return doc;
-        }
-      } else {
-        while (match = HEREDOC_INDENT.exec(doc)) {
-          attempt = match[1];
-          if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) {
-            indent = attempt;
-          }
-        }
-      }
-      if (indent) {
-        doc = doc.replace(RegExp("\\n" + indent, "g"), '\n');
-      }
-      if (!herecomment) {
-        doc = doc.replace(/^\n/, '');
-      }
-      return doc;
-    };
-
-    Lexer.prototype.tagParameters = function() {
-      var i, stack, tok, tokens;
-      if (this.tag() !== ')') {
-        return this;
-      }
-      stack = [];
-      tokens = this.tokens;
-      i = tokens.length;
-      tokens[--i][0] = 'PARAM_END';
-      while (tok = tokens[--i]) {
-        switch (tok[0]) {
-          case ')':
-            stack.push(tok);
-            break;
-          case '(':
-          case 'CALL_START':
-            if (stack.length) {
-              stack.pop();
-            } else if (tok[0] === '(') {
-              tok[0] = 'PARAM_START';
-              return this;
-            } else {
-              return this;
-            }
-        }
-      }
-      return this;
-    };
-
-    Lexer.prototype.closeIndentation = function() {
-      return this.outdentToken(this.indent);
-    };
-
-    Lexer.prototype.balancedString = function(str, end) {
-      var continueCount, i, letter, match, prev, stack, _i, _ref2;
-      continueCount = 0;
-      stack = [end];
-      for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) {
-        if (continueCount) {
-          --continueCount;
-          continue;
-        }
-        switch (letter = str.charAt(i)) {
-          case '\\':
-            ++continueCount;
-            continue;
-          case end:
-            stack.pop();
-            if (!stack.length) {
-              return str.slice(0, +i + 1 || 9e9);
-            }
-            end = stack[stack.length - 1];
-            continue;
-        }
-        if (end === '}' && (letter === '"' || letter === "'")) {
-          stack.push(end = letter);
-        } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) {
-          continueCount += match[0].length - 1;
-        } else if (end === '}' && letter === '{') {
-          stack.push(end = '}');
-        } else if (end === '"' && prev === '#' && letter === '{') {
-          stack.push(end = '}');
-        }
-        prev = letter;
-      }
-      return this.error("missing " + (stack.pop()) + ", starting");
-    };
-
-    Lexer.prototype.interpolateString = function(str, options) {
-      var column, expr, heredoc, i, inner, interpolated, len, letter, lexedLength, line, locationToken, nested, offsetInChunk, pi, plusToken, popped, regex, rparen, strOffset, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4;
-      if (options == null) {
-        options = {};
-      }
-      heredoc = options.heredoc, regex = options.regex, offsetInChunk = options.offsetInChunk, strOffset = options.strOffset, lexedLength = options.lexedLength;
-      offsetInChunk = offsetInChunk || 0;
-      strOffset = strOffset || 0;
-      lexedLength = lexedLength || str.length;
-      if (heredoc && str.length > 0 && str[0] === '\n') {
-        str = str.slice(1);
-        strOffset++;
-      }
-      tokens = [];
-      pi = 0;
-      i = -1;
-      while (letter = str.charAt(i += 1)) {
-        if (letter === '\\') {
-          i += 1;
-          continue;
-        }
-        if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) {
-          continue;
-        }
-        if (pi < i) {
-          tokens.push(this.makeToken('NEOSTRING', str.slice(pi, i), strOffset + pi));
-        }
-        inner = expr.slice(1, -1);
-        if (inner.length) {
-          _ref2 = this.getLineAndColumnFromChunk(strOffset + i + 1), line = _ref2[0], column = _ref2[1];
-          nested = new Lexer().tokenize(inner, {
-            line: line,
-            column: column,
-            rewrite: false
-          });
-          popped = nested.pop();
-          if (((_ref3 = nested[0]) != null ? _ref3[0] : void 0) === 'TERMINATOR') {
-            popped = nested.shift();
-          }
-          if (len = nested.length) {
-            if (len > 1) {
-              nested.unshift(this.makeToken('(', '(', strOffset + i + 1, 0));
-              nested.push(this.makeToken(')', ')', strOffset + i + 1 + inner.length, 0));
-            }
-            tokens.push(['TOKENS', nested]);
-          }
-        }
-        i += expr.length;
-        pi = i + 1;
-      }
-      if ((i > pi && pi < str.length)) {
-        tokens.push(this.makeToken('NEOSTRING', str.slice(pi), strOffset + pi));
-      }
-      if (regex) {
-        return tokens;
-      }
-      if (!tokens.length) {
-        return this.token('STRING', '""', offsetInChunk, lexedLength);
-      }
-      if (tokens[0][0] !== 'NEOSTRING') {
-        tokens.unshift(this.makeToken('NEOSTRING', '', offsetInChunk));
-      }
-      if (interpolated = tokens.length > 1) {
-        this.token('(', '(', offsetInChunk, 0);
-      }
-      for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) {
-        token = tokens[i];
-        tag = token[0], value = token[1];
-        if (i) {
-          if (i) {
-            plusToken = this.token('+', '+');
-          }
-          locationToken = tag === 'TOKENS' ? value[0] : token;
-          plusToken[2] = {
-            first_line: locationToken[2].first_line,
-            first_column: locationToken[2].first_column,
-            last_line: locationToken[2].first_line,
-            last_column: locationToken[2].first_column
-          };
-        }
-        if (tag === 'TOKENS') {
-          (_ref4 = this.tokens).push.apply(_ref4, value);
-        } else if (tag === 'NEOSTRING') {
-          token[0] = 'STRING';
-          token[1] = this.makeString(value, '"', heredoc);
-          this.tokens.push(token);
-        } else {
-          this.error("Unexpected " + tag);
-        }
-      }
-      if (interpolated) {
-        rparen = this.makeToken(')', ')', offsetInChunk + lexedLength, 0);
-        rparen.stringEnd = true;
-        this.tokens.push(rparen);
-      }
-      return tokens;
-    };
-
-    Lexer.prototype.pair = function(tag) {
-      var size, wanted;
-      if (tag !== (wanted = last(this.ends))) {
-        if ('OUTDENT' !== wanted) {
-          this.error("unmatched " + tag);
-        }
-        this.indent -= size = last(this.indents);
-        this.outdentToken(size, true);
-        return this.pair(tag);
-      }
-      return this.ends.pop();
-    };
-
-    Lexer.prototype.getLineAndColumnFromChunk = function(offset) {
-      var column, lineCount, lines, string;
-      if (offset === 0) {
-        return [this.chunkLine, this.chunkColumn];
-      }
-      if (offset >= this.chunk.length) {
-        string = this.chunk;
-      } else {
-        string = this.chunk.slice(0, +(offset - 1) + 1 || 9e9);
-      }
-      lineCount = count(string, '\n');
-      column = this.chunkColumn;
-      if (lineCount > 0) {
-        lines = string.split('\n');
-        column = last(lines).length;
-      } else {
-        column += string.length;
-      }
-      return [this.chunkLine + lineCount, column];
-    };
-
-    Lexer.prototype.makeToken = function(tag, value, offsetInChunk, length) {
-      var lastCharacter, locationData, token, _ref2, _ref3;
-      if (offsetInChunk == null) {
-        offsetInChunk = 0;
-      }
-      if (length == null) {
-        length = value.length;
-      }
-      locationData = {};
-      _ref2 = this.getLineAndColumnFromChunk(offsetInChunk), locationData.first_line = _ref2[0], locationData.first_column = _ref2[1];
-      lastCharacter = Math.max(0, length - 1);
-      _ref3 = this.getLineAndColumnFromChunk(offsetInChunk + lastCharacter), locationData.last_line = _ref3[0], locationData.last_column = _ref3[1];
-      token = [tag, value, locationData];
-      return token;
-    };
-
-    Lexer.prototype.token = function(tag, value, offsetInChunk, length) {
-      var token;
-      token = this.makeToken(tag, value, offsetInChunk, length);
-      this.tokens.push(token);
-      return token;
-    };
-
-    Lexer.prototype.tag = function(index, tag) {
-      var tok;
-      return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]);
-    };
-
-    Lexer.prototype.value = function(index, val) {
-      var tok;
-      return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]);
-    };
-
-    Lexer.prototype.unfinished = function() {
-      var _ref2;
-      return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === '?::' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS');
-    };
-
-    Lexer.prototype.escapeLines = function(str, heredoc) {
-      return str.replace(MULTILINER, heredoc ? '\\n' : '');
-    };
-
-    Lexer.prototype.makeString = function(body, quote, heredoc) {
-      if (!body) {
-        return quote + quote;
-      }
-      body = body.replace(/\\([\s\S])/g, function(match, contents) {
-        if (contents === '\n' || contents === quote) {
-          return contents;
-        } else {
-          return match;
-        }
-      });
-      body = body.replace(RegExp("" + quote, "g"), '\\$&');
-      return quote + this.escapeLines(body, heredoc) + quote;
-    };
-
-    Lexer.prototype.error = function(message) {
-      return throwSyntaxError(message, {
-        first_line: this.chunkLine,
-        first_column: this.chunkColumn
-      });
-    };
-
-    return Lexer;
-
-  })();
-
-  JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super'];
-
-  COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when'];
-
-  COFFEE_ALIAS_MAP = {
-    and: '&&',
-    or: '||',
-    is: '==',
-    isnt: '!=',
-    not: '!',
-    yes: 'true',
-    no: 'false',
-    on: 'true',
-    off: 'false'
-  };
-
-  COFFEE_ALIASES = (function() {
-    var _results;
-    _results = [];
-    for (key in COFFEE_ALIAS_MAP) {
-      _results.push(key);
-    }
-    return _results;
-  })();
-
-  COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES);
-
-  RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield'];
-
-  STRICT_PROSCRIBED = ['arguments', 'eval'];
-
-  JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED);
-
-  exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED);
-
-  exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED;
-
-  BOM = 65279;
-
-  IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/;
-
-  NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;
-
-  HEREDOC = /^("""|''')([\s\S]*?)(?:\n[^\n\S]*)?\1/;
-
-  OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?(\.|::)|\.{2,3})/;
-
-  WHITESPACE = /^[^\n\S]+/;
-
-  COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)$)|^(?:\s*#(?!##[^#]).*)+/;
-
-  CODE = /^[-=]>/;
-
-  MULTI_DENT = /^(?:\n[^\n\S]*)+/;
-
-  SIMPLESTR = /^'[^\\']*(?:\\.[^\\']*)*'/;
-
-  JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/;
-
-  REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/;
-
-  HEREGEX = /^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/;
-
-  HEREGEX_OMIT = /\s+(?:#.*)?/g;
-
-  MULTILINER = /\n/g;
-
-  HEREDOC_INDENT = /\n+([^\n\S]*)/g;
-
-  HEREDOC_ILLEGAL = /\*\//;
-
-  LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/;
-
-  TRAILING_SPACES = /\s+$/;
-
-  COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|='];
-
-  UNARY = ['!', '~', 'NEW', 'TYPEOF', 'DELETE', 'DO'];
-
-  LOGIC = ['&&', '||', '&', '|', '^'];
-
-  SHIFT = ['<<', '>>', '>>>'];
-
-  COMPARE = ['==', '!=', '<', '>', '<=', '>='];
-
-  MATH = ['*', '/', '%'];
-
-  RELATION = ['IN', 'OF', 'INSTANCEOF'];
-
-  BOOL = ['TRUE', 'FALSE'];
-
-  NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', 'NULL', 'UNDEFINED', '++', '--'];
-
-  NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING', ']');
-
-  CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER'];
-
-  INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL', 'NULL', 'UNDEFINED');
-
-  LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR'];
-
-}).call(this);


[14/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/package.json b/blackberry10/node_modules/plugman/node_modules/plist/package.json
deleted file mode 100644
index ea095c9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
-  "name": "plist",
-  "description": "Mac OS X Plist parser/builder for NodeJS. Convert a Plist file or string into a native JS object and native JS object into a Plist file.",
-  "version": "0.4.3",
-  "author": {
-    "name": "Nathan Rajlich",
-    "email": "nathan@tootallnate.net"
-  },
-  "contributors": [
-    {
-      "name": "Hans Huebner",
-      "email": "hans.huebner@gmail.com"
-    },
-    {
-      "name": "Pierre Metrailler"
-    },
-    {
-      "name": "Mike Reinstein",
-      "email": "reinstein.mike@gmail.com"
-    },
-    {
-      "name": "Vladimir Tsvang"
-    },
-    {
-      "name": "Mathieu D'Amours"
-    }
-  ],
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/TooTallNate/node-plist.git"
-  },
-  "keywords": [
-    "apple",
-    "mac",
-    "plist",
-    "parser",
-    "xml"
-  ],
-  "main": "./lib/plist",
-  "dependencies": {
-    "xmlbuilder": "0.4.x",
-    "xmldom": "0.1.x"
-  },
-  "devDependencies": {},
-  "scripts": {
-    "test": "nodeunit tests"
-  },
-  "engines": {
-    "node": ">= 0.1.100"
-  },
-  "readme": "# node-plist\n\nProvides facilities for reading and writing Mac OS X Plist (property list) files. These are often used in programming OS X and iOS applications, as well as the iTunes\nconfiguration XML file.\n\nPlist files represent stored programming \"object\"s. They are very similar\nto JSON. A valid Plist file is representable as a native JavaScript Object and vice-versa.\n\n## Tests\n`npm test`\n\n## Usage\nParsing a plist from filename\n``` javascript\nvar plist = require('plist');\n\nvar obj = plist.parseFileSync('myPlist.plist');\nconsole.log(JSON.stringify(obj));\n```\n\nParsing a plist from string payload\n``` javascript\nvar plist = require('plist');\n\nvar obj = plist.parseStringSync('<plist><string>Hello World!</string></plist>');\nconsole.log(obj);  // Hello World!\n```\n\nGiven an existing JavaScript Object, you can turn it into an XML document that complies with the plist DTD\n\n``` javascript\nvar plist = require('plist');\n\nconsole.log(plist.build({'f
 oo' : 'bar'}).toString());\n```\n\n\n\n### Deprecated methods\nThese functions work, but may be removed in a future release. version 0.4.x added Sync versions of these functions.\n\nParsing a plist from filename\n``` javascript\nvar plist = require('plist');\n\nplist.parseFile('myPlist.plist', function(err, obj) {\n  if (err) throw err;\n\n  console.log(JSON.stringify(obj));\n});\n```\n\nParsing a plist from string payload\n``` javascript\nvar plist = require('plist');\n\nplist.parseString('<plist><string>Hello World!</string></plist>', function(err, obj) {\n  if (err) throw err;\n\n  console.log(obj[0]);  // Hello World!\n});\n```\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/TooTallNate/node-plist/issues"
-  },
-  "_id": "plist@0.4.3",
-  "_from": "plist@0.4.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/Cordova.plist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/Cordova.plist b/blackberry10/node_modules/plugman/node_modules/plist/tests/Cordova.plist
deleted file mode 100644
index 362b754..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/Cordova.plist
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-# http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
--->
-<plist version="1.0">
-<dict>
-	<key>UIWebViewBounce</key>
-	<true/>
-	<key>TopActivityIndicator</key>
-	<string>gray</string>
-	<key>EnableLocation</key>
-	<false/>
-	<key>EnableViewportScale</key>
-	<false/>
-	<key>AutoHideSplashScreen</key>
-	<true/>
-	<key>ShowSplashScreenSpinner</key>
-	<true/>
-	<key>MediaPlaybackRequiresUserAction</key>
-	<false/>
-	<key>AllowInlineMediaPlayback</key>
-	<false/>
-	<key>OpenAllWhitelistURLsInWebView</key>
-	<false/>
-	<key>BackupWebStorage</key>
-	<true/>
-	<key>ExternalHosts</key>
-	<array>
-      <string>*</string>
-	</array>
-	<key>Plugins</key>
-	<dict>
-		<key>Device</key>
-		<string>CDVDevice</string>
-		<key>Logger</key>
-		<string>CDVLogger</string>
-		<key>Compass</key>
-		<string>CDVLocation</string>
-		<key>Accelerometer</key>
-		<string>CDVAccelerometer</string>
-		<key>Camera</key>
-		<string>CDVCamera</string>
-		<key>NetworkStatus</key>
-		<string>CDVConnection</string>
-		<key>Contacts</key>
-		<string>CDVContacts</string>
-		<key>Debug Console</key>
-		<string>CDVDebugConsole</string>
-		<key>Echo</key>
-		<string>CDVEcho</string>
-		<key>File</key>
-		<string>CDVFile</string>
-		<key>FileTransfer</key>
-		<string>CDVFileTransfer</string>
-		<key>Geolocation</key>
-		<string>CDVLocation</string>
-		<key>Notification</key>
-		<string>CDVNotification</string>
-		<key>Media</key>
-		<string>CDVSound</string>
-		<key>Capture</key>
-		<string>CDVCapture</string>
-		<key>SplashScreen</key>
-		<string>CDVSplashScreen</string>
-		<key>Battery</key>
-		<string>CDVBattery</string>
-	</dict>
-</dict>
-</plist>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/Xcode-Info.plist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/Xcode-Info.plist b/blackberry10/node_modules/plugman/node_modules/plist/tests/Xcode-Info.plist
deleted file mode 100644
index 4c4f934..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/Xcode-Info.plist
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleDisplayName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFiles</key>
-	<array/>
-	<key>CFBundleIdentifier</key>
-	<string>com.joshfire.ads</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>1.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>LSRequiresIPhoneOS</key>
-	<true/>
-	<key>UIRequiredDeviceCapabilities</key>
-	<array>
-		<string>armv7</string>
-	</array>
-	<key>UISupportedInterfaceOrientations</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-	<key>UISupportedInterfaceOrientations~ipad</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationPortraitUpsideDown</string>
-		<string>UIInterfaceOrientationLandscapeLeft</string>
-		<string>UIInterfaceOrientationLandscapeRight</string>
-	</array>
-	<key>CFBundleAllowMixedLocalizations</key>
-	<true/>
-</dict>
-</plist>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/Xcode-PhoneGap.plist
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/Xcode-PhoneGap.plist b/blackberry10/node_modules/plugman/node_modules/plist/tests/Xcode-PhoneGap.plist
deleted file mode 100644
index 35c426d..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/Xcode-PhoneGap.plist
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>TopActivityIndicator</key>
-	<string>gray</string>
-	<key>EnableLocation</key>
-	<false/>
-	<key>EnableViewportScale</key>
-	<false/>
-	<key>AutoHideSplashScreen</key>
-	<true/>
-	<key>ShowSplashScreenSpinner</key>
-	<true/>
-	<key>MediaPlaybackRequiresUserAction</key>
-	<false/>
-	<key>AllowInlineMediaPlayback</key>
-	<false/>
-	<key>OpenAllWhitelistURLsInWebView</key>
-	<false/>
-	<key>ExternalHosts</key>
-	<array>
-		<string>*</string>
-	</array>
-	<key>Plugins</key>
-	<dict>
-		<key>com.phonegap.accelerometer</key>
-		<string>PGAccelerometer</string>
-		<key>com.phonegap.camera</key>
-		<string>PGCamera</string>
-		<key>com.phonegap.connection</key>
-		<string>PGConnection</string>
-		<key>com.phonegap.contacts</key>
-		<string>PGContacts</string>
-		<key>com.phonegap.debugconsole</key>
-		<string>PGDebugConsole</string>
-		<key>com.phonegap.file</key>
-		<string>PGFile</string>
-		<key>com.phonegap.filetransfer</key>
-		<string>PGFileTransfer</string>
-		<key>com.phonegap.geolocation</key>
-		<string>PGLocation</string>
-		<key>com.phonegap.notification</key>
-		<string>PGNotification</string>
-		<key>com.phonegap.media</key>
-		<string>PGSound</string>
-		<key>com.phonegap.mediacapture</key>
-		<string>PGCapture</string>
-		<key>com.phonegap.splashscreen</key>
-		<string>PGSplashScreen</string>
-		<key>com.joshfire.sas</key>
-		<string>PGSmartAdServer</string>
-	</dict>
-</dict>
-</plist>

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/tests/airplay.xml
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/tests/airplay.xml b/blackberry10/node_modules/plugman/node_modules/plist/tests/airplay.xml
deleted file mode 100644
index 0fe6411..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/tests/airplay.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-  <key>duration</key>
-  <real>5555.0495000000001</real>
-  <key>loadedTimeRanges</key>
-  <array>
-    <dict>
-      <key>duration</key>
-      <real>5555.0495000000001</real>
-      <key>start</key>
-      <real>0.0</real>
-    </dict>
-  </array>
-  <key>playbackBufferEmpty</key>
-  <true/>
-  <key>playbackBufferFull</key>
-  <false/>
-  <key>playbackLikelyToKeepUp</key>
-  <true/>
-  <key>position</key>
-  <real>4.6269989039999997</real>
-  <key>rate</key>
-  <real>1</real>
-  <key>readyToPlay</key>
-  <true/>
-  <key>seekableTimeRanges</key>
-  <array>
-    <dict>
-      <key>duration</key>
-      <real>5555.0495000000001</real>
-      <key>start</key>
-      <real>0.0</real>
-    </dict>
-  </array>
-</dict>
-</plist>


[35/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/bash-results.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/bash-results.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/bash-results.json
deleted file mode 100644
index a9bc347..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/bash-results.json
+++ /dev/null
@@ -1,350 +0,0 @@
-{
-  "test/a/*/+(c|g)/./d": [
-    "test/a/b/c/./d"
-  ],
-  "test/a/**/[cg]/../[cg]": [
-    "test/a/abcdef/g/../g",
-    "test/a/abcfed/g/../g",
-    "test/a/b/c/../c",
-    "test/a/c/../c",
-    "test/a/c/d/c/../c",
-    "test/a/symlink/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/../c"
-  ],
-  "test/a/{b,c,d,e,f}/**/g": [],
-  "test/a/b/**": [
-    "test/a/b",
-    "test/a/b/c",
-    "test/a/b/c/d"
-  ],
-  "test/**/g": [
-    "test/a/abcdef/g",
-    "test/a/abcfed/g"
-  ],
-  "test/a/abc{fed,def}/g/h": [
-    "test/a/abcdef/g/h",
-    "test/a/abcfed/g/h"
-  ],
-  "test/a/abc{fed/g,def}/**/": [
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcfed/g"
-  ],
-  "test/a/abc{fed/g,def}/**///**/": [
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcfed/g"
-  ],
-  "test/**/a/**/": [
-    "test/a",
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcfed",
-    "test/a/abcfed/g",
-    "test/a/b",
-    "test/a/b/c",
-    "test/a/bc",
-    "test/a/bc/e",
-    "test/a/c",
-    "test/a/c/d",
-    "test/a/c/d/c",
-    "test/a/cb",
-    "test/a/cb/e",
-    "test/a/symlink",
-    "test/a/symlink/a",
-    "test/a/symlink/a/b",
-    "test/a/symlink/a/b/c",
-    "test/a/symlink/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b"
-  ],
-  "test/+(a|b|c)/a{/,bc*}/**": [
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcdef/g/h",
-    "test/a/abcfed",
-    "test/a/abcfed/g",
-    "test/a/abcfed/g/h"
-  ],
-  "test/*/*/*/f": [
-    "test/a/bc/e/f",
-    "test/a/cb/e/f"
-  ],
-  "test/**/f": [
-    "test/a/bc/e/f",
-    "test/a/cb/e/f"
-  ],
-  "test/a/symlink/a/b/c/a/b/c/a/b/c//a/b/c////a/b/c/**/b/c/**": [
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b",
-    "test/a/symlink/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c/a/b/c"
-  ],
-  "{./*/*,/tmp/glob-test/*}": [
-    "./examples/g.js",
-    "./examples/usr-local.js",
-    "./node_modules/graceful-fs",
-    "./node_modules/inherits",
-    "./node_modules/minimatch",
-    "./node_modules/mkdirp",
-    "./node_modules/rimraf",
-    "./node_modules/tap",
-    "./test/00-setup.js",
-    "./test/a",
-    "./test/bash-comparison.js",
-    "./test/bash-results.json",
-    "./test/cwd-test.js",
-    "./test/globstar-match.js",
-    "./test/mark.js",
-    "./test/nocase-nomagic.js",
-    "./test/pause-resume.js",
-    "./test/root-nomount.js",
-    "./test/root.js",
-    "./test/stat.js",
-    "./test/zz-cleanup.js",
-    "/tmp/glob-test/asdf",
-    "/tmp/glob-test/bar",
-    "/tmp/glob-test/baz",
-    "/tmp/glob-test/foo",
-    "/tmp/glob-test/quux",
-    "/tmp/glob-test/qwer",
-    "/tmp/glob-test/rewq"
-  ],
-  "{/tmp/glob-test/*,*}": [
-    "/tmp/glob-test/asdf",
-    "/tmp/glob-test/bar",
-    "/tmp/glob-test/baz",
-    "/tmp/glob-test/foo",
-    "/tmp/glob-test/quux",
-    "/tmp/glob-test/qwer",
-    "/tmp/glob-test/rewq",
-    "examples",
-    "glob.js",
-    "LICENSE",
-    "node_modules",
-    "package.json",
-    "README.md",
-    "test"
-  ],
-  "test/a/!(symlink)/**": [
-    "test/a/abcdef",
-    "test/a/abcdef/g",
-    "test/a/abcdef/g/h",
-    "test/a/abcfed",
-    "test/a/abcfed/g",
-    "test/a/abcfed/g/h",
-    "test/a/b",
-    "test/a/b/c",
-    "test/a/b/c/d",
-    "test/a/bc",
-    "test/a/bc/e",
-    "test/a/bc/e/f",
-    "test/a/c",
-    "test/a/c/d",
-    "test/a/c/d/c",
-    "test/a/c/d/c/b",
-    "test/a/cb",
-    "test/a/cb/e",
-    "test/a/cb/e/f"
-  ]
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/cwd-test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/cwd-test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/cwd-test.js
deleted file mode 100644
index 352c27e..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/cwd-test.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var tap = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-tap.test("changing cwd and searching for **/d", function (t) {
-  var glob = require('../')
-  var path = require('path')
-  t.test('.', function (t) {
-    glob('**/d', function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'a/b/c/d', 'a/c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('a', function (t) {
-    glob('**/d', {cwd:path.resolve('a')}, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'b/c/d', 'c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('a/b', function (t) {
-    glob('**/d', {cwd:path.resolve('a/b')}, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('a/b/', function (t) {
-    glob('**/d', {cwd:path.resolve('a/b/')}, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('.', function (t) {
-    glob('**/d', {cwd: process.cwd()}, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ 'a/b/c/d', 'a/c/d' ])
-      t.end()
-    })
-  })
-
-  t.test('cd -', function (t) {
-    process.chdir(origCwd)
-    t.end()
-  })
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/globstar-match.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/globstar-match.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/globstar-match.js
deleted file mode 100644
index 9b234fa..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/globstar-match.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var Glob = require("../glob.js").Glob
-var test = require('tap').test
-
-test('globstar should not have dupe matches', function(t) {
-  var pattern = 'a/**/[gh]'
-  var g = new Glob(pattern, { cwd: __dirname })
-  var matches = []
-  g.on('match', function(m) {
-    console.error('match %j', m)
-    matches.push(m)
-  })
-  g.on('end', function(set) {
-    console.error('set', set)
-    matches = matches.sort()
-    set = set.sort()
-    t.same(matches, set, 'should have same set of matches')
-    t.end()
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/mark.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/mark.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/mark.js
deleted file mode 100644
index ed68a33..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/mark.js
+++ /dev/null
@@ -1,74 +0,0 @@
-var test = require("tap").test
-var glob = require('../')
-process.chdir(__dirname)
-
-test("mark, no / on pattern", function (t) {
-  glob("a/*", {mark: true}, function (er, results) {
-    if (er)
-      throw er
-    var expect = [ 'a/abcdef/',
-                   'a/abcfed/',
-                   'a/b/',
-                   'a/bc/',
-                   'a/c/',
-                   'a/cb/' ]
-
-    if (process.platform !== "win32")
-      expect.push('a/symlink/')
-
-    t.same(results, expect)
-    t.end()
-  })
-})
-
-test("mark=false, no / on pattern", function (t) {
-  glob("a/*", function (er, results) {
-    if (er)
-      throw er
-    var expect = [ 'a/abcdef',
-                   'a/abcfed',
-                   'a/b',
-                   'a/bc',
-                   'a/c',
-                   'a/cb' ]
-
-    if (process.platform !== "win32")
-      expect.push('a/symlink')
-    t.same(results, expect)
-    t.end()
-  })
-})
-
-test("mark=true, / on pattern", function (t) {
-  glob("a/*/", {mark: true}, function (er, results) {
-    if (er)
-      throw er
-    var expect = [ 'a/abcdef/',
-                    'a/abcfed/',
-                    'a/b/',
-                    'a/bc/',
-                    'a/c/',
-                    'a/cb/' ]
-    if (process.platform !== "win32")
-      expect.push('a/symlink/')
-    t.same(results, expect)
-    t.end()
-  })
-})
-
-test("mark=false, / on pattern", function (t) {
-  glob("a/*/", function (er, results) {
-    if (er)
-      throw er
-    var expect = [ 'a/abcdef/',
-                   'a/abcfed/',
-                   'a/b/',
-                   'a/bc/',
-                   'a/c/',
-                   'a/cb/' ]
-    if (process.platform !== "win32")
-      expect.push('a/symlink/')
-    t.same(results, expect)
-    t.end()
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/nocase-nomagic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/nocase-nomagic.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/nocase-nomagic.js
deleted file mode 100644
index d862970..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/nocase-nomagic.js
+++ /dev/null
@@ -1,113 +0,0 @@
-var fs = require('graceful-fs');
-var test = require('tap').test;
-var glob = require('../');
-
-test('mock fs', function(t) {
-  var stat = fs.stat
-  var statSync = fs.statSync
-  var readdir = fs.readdir
-  var readdirSync = fs.readdirSync
-
-  function fakeStat(path) {
-    var ret
-    switch (path.toLowerCase()) {
-      case '/tmp': case '/tmp/':
-        ret = { isDirectory: function() { return true } }
-        break
-      case '/tmp/a':
-        ret = { isDirectory: function() { return false } }
-        break
-    }
-    return ret
-  }
-
-  fs.stat = function(path, cb) {
-    var f = fakeStat(path);
-    if (f) {
-      process.nextTick(function() {
-        cb(null, f)
-      })
-    } else {
-      stat.call(fs, path, cb)
-    }
-  }
-
-  fs.statSync = function(path) {
-    return fakeStat(path) || statSync.call(fs, path)
-  }
-
-  function fakeReaddir(path) {
-    var ret
-    switch (path.toLowerCase()) {
-      case '/tmp': case '/tmp/':
-        ret = [ 'a', 'A' ]
-        break
-      case '/':
-        ret = ['tmp', 'tMp', 'tMP', 'TMP']
-    }
-    return ret
-  }
-
-  fs.readdir = function(path, cb) {
-    var f = fakeReaddir(path)
-    if (f)
-      process.nextTick(function() {
-        cb(null, f)
-      })
-    else
-      readdir.call(fs, path, cb)
-  }
-
-  fs.readdirSync = function(path) {
-    return fakeReaddir(path) || readdirSync.call(fs, path)
-  }
-
-  t.pass('mocked')
-  t.end()
-})
-
-test('nocase, nomagic', function(t) {
-  var n = 2
-  var want = [ '/TMP/A',
-               '/TMP/a',
-               '/tMP/A',
-               '/tMP/a',
-               '/tMp/A',
-               '/tMp/a',
-               '/tmp/A',
-               '/tmp/a' ]
-  glob('/tmp/a', { nocase: true }, function(er, res) {
-    if (er)
-      throw er
-    t.same(res.sort(), want)
-    if (--n === 0) t.end()
-  })
-  glob('/tmp/A', { nocase: true }, function(er, res) {
-    if (er)
-      throw er
-    t.same(res.sort(), want)
-    if (--n === 0) t.end()
-  })
-})
-
-test('nocase, with some magic', function(t) {
-  t.plan(2)
-  var want = [ '/TMP/A',
-               '/TMP/a',
-               '/tMP/A',
-               '/tMP/a',
-               '/tMp/A',
-               '/tMp/a',
-               '/tmp/A',
-               '/tmp/a' ]
-  glob('/tmp/*', { nocase: true }, function(er, res) {
-    if (er)
-      throw er
-    t.same(res.sort(), want)
-  })
-  glob('/tmp/*', { nocase: true }, function(er, res) {
-    if (er)
-      throw er
-    t.same(res.sort(), want)
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/pause-resume.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/pause-resume.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/pause-resume.js
deleted file mode 100644
index e1ffbab..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/pause-resume.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// show that no match events happen while paused.
-var tap = require("tap")
-, child_process = require("child_process")
-// just some gnarly pattern with lots of matches
-, pattern = "test/a/!(symlink)/**"
-, bashResults = require("./bash-results.json")
-, patterns = Object.keys(bashResults)
-, glob = require("../")
-, Glob = glob.Glob
-, path = require("path")
-
-// run from the root of the project
-// this is usually where you're at anyway, but be sure.
-process.chdir(path.resolve(__dirname, ".."))
-
-function alphasort (a, b) {
-  a = a.toLowerCase()
-  b = b.toLowerCase()
-  return a > b ? 1 : a < b ? -1 : 0
-}
-
-function cleanResults (m) {
-  // normalize discrepancies in ordering, duplication,
-  // and ending slashes.
-  return m.map(function (m) {
-    return m.replace(/\/+/g, "/").replace(/\/$/, "")
-  }).sort(alphasort).reduce(function (set, f) {
-    if (f !== set[set.length - 1]) set.push(f)
-    return set
-  }, []).sort(alphasort).map(function (f) {
-    // de-windows
-    return (process.platform !== 'win32') ? f
-           : f.replace(/^[a-zA-Z]:\\\\/, '/').replace(/\\/g, '/')
-  })
-}
-
-var globResults = []
-tap.test("use a Glob object, and pause/resume it", function (t) {
-  var g = new Glob(pattern)
-  , paused = false
-  , res = []
-  , expect = bashResults[pattern]
-
-  g.on("pause", function () {
-    console.error("pause")
-  })
-
-  g.on("resume", function () {
-    console.error("resume")
-  })
-
-  g.on("match", function (m) {
-    t.notOk(g.paused, "must not be paused")
-    globResults.push(m)
-    g.pause()
-    t.ok(g.paused, "must be paused")
-    setTimeout(g.resume.bind(g), 10)
-  })
-
-  g.on("end", function (matches) {
-    t.pass("reached glob end")
-    globResults = cleanResults(globResults)
-    matches = cleanResults(matches)
-    t.deepEqual(matches, globResults,
-      "end event matches should be the same as match events")
-
-    t.deepEqual(matches, expect,
-      "glob matches should be the same as bash results")
-
-    t.end()
-  })
-})
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/root-nomount.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/root-nomount.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/root-nomount.js
deleted file mode 100644
index 3ac5979..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/root-nomount.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var tap = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-tap.test("changing root and searching for /b*/**", function (t) {
-  var glob = require('../')
-  var path = require('path')
-  t.test('.', function (t) {
-    glob('/b*/**', { globDebug: true, root: '.', nomount: true }, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [])
-      t.end()
-    })
-  })
-
-  t.test('a', function (t) {
-    glob('/b*/**', { globDebug: true, root: path.resolve('a'), nomount: true }, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ])
-      t.end()
-    })
-  })
-
-  t.test('root=a, cwd=a/b', function (t) {
-    glob('/b*/**', { globDebug: true, root: 'a', cwd: path.resolve('a/b'), nomount: true }, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ])
-      t.end()
-    })
-  })
-
-  t.test('cd -', function (t) {
-    process.chdir(origCwd)
-    t.end()
-  })
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/root.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/root.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/root.js
deleted file mode 100644
index 95c23f9..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/root.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var t = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-var glob = require('../')
-var path = require('path')
-
-t.test('.', function (t) {
-  glob('/b*/**', { globDebug: true, root: '.' }, function (er, matches) {
-    t.ifError(er)
-    t.like(matches, [])
-    t.end()
-  })
-})
-
-
-t.test('a', function (t) {
-  console.error("root=" + path.resolve('a'))
-  glob('/b*/**', { globDebug: true, root: path.resolve('a') }, function (er, matches) {
-    t.ifError(er)
-    var wanted = [
-        '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f'
-      ].map(function (m) {
-        return path.join(path.resolve('a'), m).replace(/\\/g, '/')
-      })
-
-    t.like(matches, wanted)
-    t.end()
-  })
-})
-
-t.test('root=a, cwd=a/b', function (t) {
-  glob('/b*/**', { globDebug: true, root: 'a', cwd: path.resolve('a/b') }, function (er, matches) {
-    t.ifError(er)
-    t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ].map(function (m) {
-      return path.join(path.resolve('a'), m).replace(/\\/g, '/')
-    }))
-    t.end()
-  })
-})
-
-t.test('cd -', function (t) {
-  process.chdir(origCwd)
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/stat.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/stat.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/stat.js
deleted file mode 100644
index 6291711..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/stat.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var glob = require('../')
-var test = require('tap').test
-var path = require('path')
-
-test('stat all the things', function(t) {
-  var g = new glob.Glob('a/*abc*/**', { stat: true, cwd: __dirname })
-  var matches = []
-  g.on('match', function(m) {
-    matches.push(m)
-  })
-  var stats = []
-  g.on('stat', function(m) {
-    stats.push(m)
-  })
-  g.on('end', function(eof) {
-    stats = stats.sort()
-    matches = matches.sort()
-    eof = eof.sort()
-    t.same(stats, matches)
-    t.same(eof, matches)
-    var cache = Object.keys(this.statCache)
-    t.same(cache.map(function (f) {
-      return path.relative(__dirname, f)
-    }).sort(), matches)
-
-    cache.forEach(function(c) {
-      t.equal(typeof this.statCache[c], 'object')
-    }, this)
-
-    t.end()
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/zz-cleanup.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/zz-cleanup.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/zz-cleanup.js
deleted file mode 100644
index e085f0f..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/node_modules/glob/test/zz-cleanup.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// remove the fixtures
-var tap = require("tap")
-, rimraf = require("rimraf")
-, path = require("path")
-
-tap.test("cleanup fixtures", function (t) {
-  rimraf(path.resolve(__dirname, "a"), function (er) {
-    t.ifError(er, "removed")
-    t.end()
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/package.json b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/package.json
deleted file mode 100644
index 31092ef..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "author": {
-    "name": "mklabs"
-  },
-  "name": "fileset",
-  "description": "Wrapper around miniglob / minimatch combo to allow multiple patterns matching and include-exclude ability",
-  "version": "0.1.5",
-  "homepage": "https://github.com/mklabs/node-fileset",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/mklabs/node-fileset.git"
-  },
-  "main": "./lib/fileset",
-  "scripts": {
-    "test": "node tests/test.js"
-  },
-  "dependencies": {
-    "minimatch": "0.x",
-    "glob": "3.x"
-  },
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "https://github.com/mklabs/node-fileset/blob/master/LICENSE-MIT"
-    }
-  ],
-  "readme": "# node-fileset\n\nExposes a basic wrapper on top of\n[Glob](https://github.com/isaacs/node-glob) /\n[minimatch](https://github.com/isaacs/minimatch) combo both written by\n@isaacs. Glob now uses JavaScript instead of C++ bindings which makes it\nusable in Node.js 0.6.x and Windows platforms.\n\n[![Build Status](https://secure.travis-ci.org/mklabs/node-fileset.png)](http://travis-ci.org/mklabs/node-fileset)\n\nAdds multiples patterns matching and exlude ability. This is\nbasically just a sugar API syntax where you can specify a list of includes\nand optional exclude patterns. It works by setting up the necessary\nminiglob \"fileset\" and filtering out the results using minimatch.\n\n## Install\n\n    npm install fileset\n\n## Usage\n\nCan be used with callback or emitter style.\n\n* **include**: list of glob patterns `foo/**/*.js *.md src/lib/**/*`\n* **exclude**: *optional* list of glob patterns to filter include\n  results `foo/**/*.js *.md`\n* **callback**: *optional*
  function that gets called with an error if\n  something wrong happend, otherwise null with an array of results\n\nThe callback is optional since the fileset method return an instance of\nEventEmitter which emit different events you might use:\n\n* *match*: Every time a match is found, miniglob emits this event with\n  the pattern.\n* *include*: Emitted each time an include match is found.\n* *exclude*: Emitted each time an exclude match is found and filtered\n  out from the fileset.\n* *end*:  Emitted when the matching is finished with all the matches\n  found, optionally filtered by the exclude patterns.\n\n#### Callback\n\n```js\nvar fileset = require('fileset');\n\nfileset('**/*.js', '**.min.js', function(err, files) {\n  if (err) return console.error(err);\n\n  console.log('Files: ', files.length);\n  console.log(files);\n});\n```\n\n#### Event emitter\n\n```js\nvar fileset = require('fileset');\n\nfileset('**.coffee README.md *.json Cakefile **.js', 'node_modules/**')\n  .on(
 'match', console.log.bind(console, 'error'))\n  .on('include', console.log.bind(console, 'includes'))\n  .on('exclude', console.log.bind(console, 'excludes'))\n  .on('end', console.log.bind(console, 'end'));\n```\n\n`fileset` returns an instance of EventEmitter, with an `includes` property\nwhich is the array of Fileset objects (inheriting from\n`miniglob.Miniglob`) that were used during the mathing process, should\nyou want to use them individually.\n\nCheck out the\n[tests](https://github.com/mklabs/node-fileset/tree/master/tests) for\nmore examples.\n\n## Tests\n\nRun `npm test`\n\n## Why\n\nMainly for a build tool with cake files, to provide me an easy way to get\na list of files by either using glob or path patterns, optionally\nallowing exclude patterns to filter out the results.\n\nAll the magic is happening in\n[Glob](https://github.com/isaacs/node-glob) and\n[minimatch](https://github.com/isaacs/minimatch). Check them out!\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/mklabs/node-fileset/issues"
-  },
-  "_id": "fileset@0.1.5",
-  "_from": "fileset@~0.1.5"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/fixtures/an (odd) filename.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/fixtures/an (odd) filename.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/fixtures/an (odd) filename.js
deleted file mode 100644
index fbf9f2b..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/fixtures/an (odd) filename.js	
+++ /dev/null
@@ -1 +0,0 @@
-var odd = true;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/helper.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/helper.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/helper.js
deleted file mode 100644
index d76735e..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/helper.js
+++ /dev/null
@@ -1,61 +0,0 @@
-
-var EventEmitter = require('events').EventEmitter,
-  assert = require('assert'),
-  tests = {};
-
-module.exports = test;
-test.run = run;
-
-// ## Test helpers
-
-function test(msg, handler) {
-  tests[msg] = handler;
-}
-
-function run() {
-  var specs = Object.keys(tests),
-    specsRemaining = specs.length;
-
-  specs.forEach(function(spec) {
-    var handler = tests[spec];
-
-    // grab the set of asserts for this spec
-    var shoulds = handler(),
-      keys = Object.keys(shoulds),
-      remaining = keys.length;
-
-    keys.forEach(function(should) {
-      var em = new EventEmitter(),
-        to = setTimeout(function() {
-          assert.fail('never ended');
-        }, 5000);
-
-      em
-        .on('error', function assertFail(err) { assert.fail(err) })
-        .on('end', function assertOk() {
-          clearTimeout(to);
-          shoulds[should].status = true;
-
-          // till we get to 0
-          if(!(--remaining)) {
-            console.log([
-              '',
-              '» ' + spec,
-              keys.map(function(k) { return '   » ' + k; }).join('\n'),
-              '',
-              '   Total: ' + keys.length,
-              '   Failed: ' + keys.map(function(item) { return shoulds[should].status; }).filter(function(status) { return !status; }).length,
-              ''
-            ].join('\n'));
-
-            if(!(--specsRemaining)) {
-              console.log('All done');
-            }
-
-          }
-        });
-
-      shoulds[should](em);
-    });
-  });
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/test.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/test.js b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/test.js
deleted file mode 100644
index cb0ceb1..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/fileset/tests/test.js
+++ /dev/null
@@ -1,133 +0,0 @@
-
-var EventEmitter = require('events').EventEmitter,
-  fileset = require('../'),
-  assert = require('assert'),
-  test = require('./helper');
-
-// Given a **.coffee pattern
-test('Given a **.md pattern', function() {
-
-  return {
-    'should return the list of matching file in this repo': function(em) {
-      fileset('*.md', function(err, results) {
-        if(err) return em.emit('error', err);
-        assert.ok(Array.isArray(results), 'should be an array');
-        assert.ok(results.length, 'should return at least one element');
-        assert.equal(results.length, 1, 'actually, should return only one');
-        em.emit('end');
-      });
-    }
-  }
-});
-
-test('Say we want the **.js files, but not those in node_modules', function() {
-
-  return {
-    'Should recursively walk the dir and return the matching list': function(em) {
-      fileset('**/*.js', 'node_modules/**', function(err, results) {
-        if(err) return em.emit('error', err);
-        assert.ok(Array.isArray(results), 'should be an array');
-        assert.equal(results.length, 4);
-        em.emit('end');
-      });
-    },
-
-    'Should support multiple paths at once': function(em) {
-      fileset('**/*.js *.md', 'node_modules/**', function(err, results) {
-        if(err) return em.emit('error', err);
-        assert.ok(Array.isArray(results), 'should be an array');
-        assert.equal(results.length, 5);
-
-        assert.deepEqual(results, [
-          'README.md',
-          'lib/fileset.js',
-          'tests/fixtures/an (odd) filename.js',
-          'tests/helper.js',
-          'tests/test.js'
-        ]);
-
-        em.emit('end');
-      });
-    },
-
-    'Should support multiple paths for excludes as well': function(em) {
-      fileset('**/*.js *.md', 'node_modules/** **.md tests/*.js', function(err, results) {
-        if(err) return em.emit('error', err);
-        assert.ok(Array.isArray(results), 'should be an array');
-        assert.equal(results.length, 2);
-
-        assert.deepEqual(results, [
-          'lib/fileset.js',
-          'tests/fixtures/an (odd) filename.js',
-        ]);
-
-        em.emit('end');
-      });
-    }
-  }
-});
-
-
-test('Testing out emmited events', function() {
-
-  // todos: the tests for match, include, exclude events, but seems like it's ok
-  return {
-    'Should recursively walk the dir and return the matching list': function(em) {
-      fileset('**/*.js', 'node_modules/**')
-        .on('error', em.emit.bind(em, 'error'))
-        .on('end', function(results) {
-          assert.ok(Array.isArray(results), 'should be an array');
-          assert.equal(results.length, 4);
-          em.emit('end');
-        });
-    },
-
-    'Should support multiple paths at once': function(em) {
-      fileset('**/*.js *.md', 'node_modules/**')
-        .on('error', em.emit.bind(em, 'error'))
-        .on('end', function(results) {
-          assert.ok(Array.isArray(results), 'should be an array');
-          assert.equal(results.length, 5);
-
-          assert.deepEqual(results, [
-            'README.md',
-            'lib/fileset.js',
-            'tests/fixtures/an (odd) filename.js',
-            'tests/helper.js',
-            'tests/test.js'
-          ]);
-
-          em.emit('end');
-        });
-    }
-  }
-});
-
-
-test('Testing patterns passed as arrays', function() {
-
-  return {
-    'Should match files passed as an array with odd filenames': function(em) {
-      fileset(['lib/*.js', 'tests/fixtures/an (odd) filename.js'], ['node_modules/**'])
-        .on('error', em.emit.bind(em, 'error'))
-        .on('end', function(results) {
-          assert.ok(Array.isArray(results), 'should be an array');
-          assert.equal(results.length, 2);
-
-          assert.deepEqual(results, [
-            'lib/fileset.js',
-            'tests/fixtures/an (odd) filename.js',
-          ]);
-
-          em.emit('end');
-        });
-    }
-  }
-
-});
-
-
-
-test.run();
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/LICENSE b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/LICENSE
deleted file mode 100644
index 05a4010..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/README.md b/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/README.md
deleted file mode 100644
index 6fd07d2..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/gaze/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,218 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-Eventually, it will replace the C binding in node-glob.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-### Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated.  Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally.  This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything.  Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set.  This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.  **Note that this is different from the way that `**` is
-handled by ruby's `Dir` class.**
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes.  For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`.  This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern.  Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity.  Since those two are valid, matching proceeds.
-
-
-## Minimatch Class
-
-Create a minimatch object by instanting the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
-  Each row in the
-  array corresponds to a brace-expanded pattern.  Each item in the row
-  corresponds to a single path-part.  For example, the pattern
-  `{a,b/c}/d` would expand to a set of patterns like:
-
-        [ [ a, d ]
-        , [ b, c, d ] ]
-
-    If a portion of the pattern doesn't have any "magic" in it
-    (that is, it's something like `"foo"` rather than `fo*o?`), then it
-    will be left as a string rather than converted to a regular
-    expression.
-
-* `regexp` Created by the `makeRe` method.  A single regular expression
-  expressing the entire pattern.  This is useful in cases where you wish
-  to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
-  Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
-  false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
-  filename, and match it against a single row in the `regExpSet`.  This
-  method is mainly for internal use, but is exposed so that it can be
-  used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-## Functions
-
-The top-level exported function has a `cache` property, which is an LRU
-cache set to store 100 items.  So, calling these methods repeatedly
-with the same pattern and options will use the same Minimatch object,
-saving the cost of parsing it multiple times.
-
-### minimatch(path, pattern, options)
-
-Main export.  Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`.  Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob.  If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself.  When set, an empty list is returned if there are
-no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes.  For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)


[38/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/parser.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/parser.js b/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/parser.js
deleted file mode 100755
index 9f23cc4..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/coffee-script/lib/coffee-script/parser.js
+++ /dev/null
@@ -1,610 +0,0 @@
-/* parser generated by jison 0.4.2 */
-var parser = (function(){
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"Root":3,"Body":4,"Block":5,"TERMINATOR":6,"Line":7,"Expression":8,"Statement":9,"Return":10,"Comment":11,"STATEMENT":12,"Value":13,"Invocation":14,"Code":15,"Operation":16,"Assign":17,"If":18,"Try":19,"While":20,"For":21,"Switch":22,"Class":23,"Throw":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"UNDEFINED":36,"NULL":37,"BOOL":38,"Assignable":39,"=":40,"AssignObj":41,"ObjAssignable":42,":":43,"ThisProperty":44,"RETURN":45,"HERECOMMENT":46,"PARAM_START":47,"ParamList":48,"PARAM_END":49,"FuncGlyph":50,"->":51,"=>":52,"OptComma":53,",":54,"Param":55,"ParamVar":56,"...":57,"Array":58,"Object":59,"Splat":60,"SimpleAssignable":61,"Accessor":62,"Parenthetical":63,"Range":64,"This":65,".":66,"?.":67,"::":68,"?::":69,"Index":70,"INDEX_START":71,"IndexValue":72,"INDEX_END":73,"INDEX_SOAK":74,"Slice":75,"{":76,"AssignList":77,"}":78,"CLASS":79,"EXTENDS":80,"OptFuncExist"
 :81,"Arguments":82,"SUPER":83,"FUNC_EXIST":84,"CALL_START":85,"CALL_END":86,"ArgList":87,"THIS":88,"@":89,"[":90,"]":91,"RangeDots":92,"..":93,"Arg":94,"SimpleArgs":95,"TRY":96,"Catch":97,"FINALLY":98,"CATCH":99,"THROW":100,"(":101,")":102,"WhileSource":103,"WHILE":104,"WHEN":105,"UNTIL":106,"Loop":107,"LOOP":108,"ForBody":109,"FOR":110,"ForStart":111,"ForSource":112,"ForVariables":113,"OWN":114,"ForValue":115,"FORIN":116,"FOROF":117,"BY":118,"SWITCH":119,"Whens":120,"ELSE":121,"When":122,"LEADING_WHEN":123,"IfBlock":124,"IF":125,"POST_IF":126,"UNARY":127,"-":128,"+":129,"--":130,"++":131,"?":132,"MATH":133,"SHIFT":134,"COMPARE":135,"LOGIC":136,"RELATION":137,"COMPOUND_ASSIGN":138,"$accept":0,"$end":1},
-terminals_: {2:"error",6:"TERMINATOR",12:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",69:"?::",71:"INDEX_START",73:"INDEX_END",74:"INDEX_SOAK",76:"{",78:"}",79:"CLASS",80:"EXTENDS",83:"SUPER",84:"FUNC_EXIST",85:"CALL_START",86:"CALL_END",88:"THIS",89:"@",90:"[",91:"]",93:"..",96:"TRY",98:"FINALLY",99:"CATCH",100:"THROW",101:"(",102:")",104:"WHILE",105:"WHEN",106:"UNTIL",108:"LOOP",110:"FOR",114:"OWN",116:"FORIN",117:"FOROF",118:"BY",119:"SWITCH",121:"ELSE",123:"LEADING_WHEN",125:"IF",126:"POST_IF",127:"UNARY",128:"-",129:"+",130:"--",131:"++",132:"?",133:"MATH",134:"SHIFT",135:"COMPARE",136:"LOGIC",137:"RELATION",138:"COMPOUND_ASSIGN"},
-productions_: [0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[17,3],[17,4],[17,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[10,2],[10,1],[11,1],[15,5],[15,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[13,1],[13,1],[13,1],[13,1],[13,1],[62,2],[62,2],[62,2],[62,2],[62,1],[62,1],[70,3],[70,2],[72,1],[72,1],[59,4],[77,0],[77,1],[77,3],[77,4],[77,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[14,2],[81,0],[81,1],[82,2],[82,4],[65,1],[65,1],[44,2],[58,2],[58,4],[92,1],[92,1],[64,5],[75,3],[75,2],[75,2],[75,1],[87,1],[87,3],[87,4],[87,4],[87,6],[94,1],[94,1],[95,1],[95,3],[19,2],[19,3],[19,4],[19,5],[97,3],[97,3],[97,2],[24,2],[63,3],[63,5],[103,2],[10
 3,4],[103,2],[103,4],[20,2],[20,2],[20,2],[20,1],[107,2],[107,2],[21,2],[21,2],[21,2],[109,2],[109,2],[111,2],[111,3],[115,1],[115,1],[115,1],[115,1],[113,1],[113,3],[112,2],[112,2],[112,4],[112,4],[112,4],[112,6],[112,6],[22,5],[22,7],[22,4],[22,6],[120,1],[120,2],[122,3],[122,4],[124,3],[124,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,4],[16,3]],
-performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1:return this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Block);
-break;
-case 2:return this.$ = $$[$0];
-break;
-case 3:return this.$ = $$[$0-1];
-break;
-case 4:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(yy.Block.wrap([$$[$0]]));
-break;
-case 5:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].push($$[$0]));
-break;
-case 6:this.$ = $$[$0-1];
-break;
-case 7:this.$ = $$[$0];
-break;
-case 8:this.$ = $$[$0];
-break;
-case 9:this.$ = $$[$0];
-break;
-case 10:this.$ = $$[$0];
-break;
-case 11:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 12:this.$ = $$[$0];
-break;
-case 13:this.$ = $$[$0];
-break;
-case 14:this.$ = $$[$0];
-break;
-case 15:this.$ = $$[$0];
-break;
-case 16:this.$ = $$[$0];
-break;
-case 17:this.$ = $$[$0];
-break;
-case 18:this.$ = $$[$0];
-break;
-case 19:this.$ = $$[$0];
-break;
-case 20:this.$ = $$[$0];
-break;
-case 21:this.$ = $$[$0];
-break;
-case 22:this.$ = $$[$0];
-break;
-case 23:this.$ = $$[$0];
-break;
-case 24:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block);
-break;
-case 25:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]);
-break;
-case 26:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 27:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 28:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 29:this.$ = $$[$0];
-break;
-case 30:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 31:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 32:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 33:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Undefined);
-break;
-case 34:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Null);
-break;
-case 35:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Bool($$[$0]));
-break;
-case 36:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0]));
-break;
-case 37:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0]));
-break;
-case 38:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1]));
-break;
-case 39:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 40:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], 'object'));
-break;
-case 41:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], 'object'));
-break;
-case 42:this.$ = $$[$0];
-break;
-case 43:this.$ = $$[$0];
-break;
-case 44:this.$ = $$[$0];
-break;
-case 45:this.$ = $$[$0];
-break;
-case 46:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Return($$[$0]));
-break;
-case 47:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Return);
-break;
-case 48:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Comment($$[$0]));
-break;
-case 49:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Code($$[$0-3], $$[$0], $$[$0-1]));
-break;
-case 50:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Code([], $$[$0], $$[$0-1]));
-break;
-case 51:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('func');
-break;
-case 52:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('boundfunc');
-break;
-case 53:this.$ = $$[$0];
-break;
-case 54:this.$ = $$[$0];
-break;
-case 55:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]);
-break;
-case 56:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 57:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 58:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 59:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 60:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Param($$[$0]));
-break;
-case 61:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Param($$[$0-1], null, true));
-break;
-case 62:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0]));
-break;
-case 63:this.$ = $$[$0];
-break;
-case 64:this.$ = $$[$0];
-break;
-case 65:this.$ = $$[$0];
-break;
-case 66:this.$ = $$[$0];
-break;
-case 67:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Splat($$[$0-1]));
-break;
-case 68:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 69:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].add($$[$0]));
-break;
-case 70:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value($$[$0-1], [].concat($$[$0])));
-break;
-case 71:this.$ = $$[$0];
-break;
-case 72:this.$ = $$[$0];
-break;
-case 73:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 74:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 75:this.$ = $$[$0];
-break;
-case 76:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 77:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 78:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 79:this.$ = $$[$0];
-break;
-case 80:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0]));
-break;
-case 81:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak'));
-break;
-case 82:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]);
-break;
-case 83:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]);
-break;
-case 84:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.Literal('prototype')));
-break;
-case 85:this.$ = $$[$0];
-break;
-case 86:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]);
-break;
-case 87:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], {
-          soak: true
-        }));
-break;
-case 88:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Index($$[$0]));
-break;
-case 89:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Slice($$[$0]));
-break;
-case 90:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Obj($$[$0-2], $$[$0-3].generated));
-break;
-case 91:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]);
-break;
-case 92:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 93:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 94:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 95:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 96:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Class);
-break;
-case 97:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class(null, null, $$[$0]));
-break;
-case 98:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class(null, $$[$0]));
-break;
-case 99:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class(null, $$[$0-1], $$[$0]));
-break;
-case 100:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class($$[$0]));
-break;
-case 101:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class($$[$0-1], null, $$[$0]));
-break;
-case 102:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class($$[$0-2], $$[$0]));
-break;
-case 103:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Class($$[$0-3], $$[$0-1], $$[$0]));
-break;
-case 104:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 105:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 106:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))]));
-break;
-case 107:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Call('super', $$[$0]));
-break;
-case 108:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false);
-break;
-case 109:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true);
-break;
-case 110:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]);
-break;
-case 111:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]);
-break;
-case 112:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this')));
-break;
-case 113:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this')));
-break;
-case 114:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('this')), [yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))], 'this'));
-break;
-case 115:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([]));
-break;
-case 116:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2]));
-break;
-case 117:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive');
-break;
-case 118:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive');
-break;
-case 119:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2]));
-break;
-case 120:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 121:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0]));
-break;
-case 122:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1]));
-break;
-case 123:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0]));
-break;
-case 124:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 125:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 126:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 127:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]);
-break;
-case 128:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 129:this.$ = $$[$0];
-break;
-case 130:this.$ = $$[$0];
-break;
-case 131:this.$ = $$[$0];
-break;
-case 132:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0]));
-break;
-case 133:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0]));
-break;
-case 134:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]));
-break;
-case 135:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0]));
-break;
-case 136:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0]));
-break;
-case 137:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]);
-break;
-case 138:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]);
-break;
-case 139:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]);
-break;
-case 140:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0]));
-break;
-case 141:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1]));
-break;
-case 142:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2]));
-break;
-case 143:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0]));
-break;
-case 144:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], {
-          guard: $$[$0]
-        }));
-break;
-case 145:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], {
-          invert: true
-        }));
-break;
-case 146:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], {
-          invert: true,
-          guard: $$[$0]
-        }));
-break;
-case 147:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0]));
-break;
-case 148:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]]))));
-break;
-case 149:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]]))));
-break;
-case 150:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]);
-break;
-case 151:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody($$[$0]));
-break;
-case 152:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody(yy.addLocationDataFn(_$[$0])(yy.Block.wrap([$$[$0]]))));
-break;
-case 153:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0]));
-break;
-case 154:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0]));
-break;
-case 155:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1]));
-break;
-case 156:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
-          source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0]))
-        });
-break;
-case 157:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () {
-        $$[$0].own = $$[$0-1].own;
-        $$[$0].name = $$[$0-1][0];
-        $$[$0].index = $$[$0-1][1];
-        return $$[$0];
-      }()));
-break;
-case 158:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]);
-break;
-case 159:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () {
-        $$[$0].own = true;
-        return $$[$0];
-      }()));
-break;
-case 160:this.$ = $$[$0];
-break;
-case 161:this.$ = $$[$0];
-break;
-case 162:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 163:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 164:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 165:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]);
-break;
-case 166:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
-          source: $$[$0]
-        });
-break;
-case 167:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
-          source: $$[$0],
-          object: true
-        });
-break;
-case 168:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
-          source: $$[$0-2],
-          guard: $$[$0]
-        });
-break;
-case 169:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
-          source: $$[$0-2],
-          guard: $$[$0],
-          object: true
-        });
-break;
-case 170:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
-          source: $$[$0-2],
-          step: $$[$0]
-        });
-break;
-case 171:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({
-          source: $$[$0-4],
-          guard: $$[$0-2],
-          step: $$[$0]
-        });
-break;
-case 172:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({
-          source: $$[$0-4],
-          step: $$[$0-2],
-          guard: $$[$0]
-        });
-break;
-case 173:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1]));
-break;
-case 174:this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1]));
-break;
-case 175:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1]));
-break;
-case 176:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1]));
-break;
-case 177:this.$ = $$[$0];
-break;
-case 178:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0]));
-break;
-case 179:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]);
-break;
-case 180:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]);
-break;
-case 181:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], {
-          type: $$[$0-2]
-        }));
-break;
-case 182:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])($$[$0-4].addElse(new yy.If($$[$0-1], $$[$0], {
-          type: $$[$0-2]
-        })));
-break;
-case 183:this.$ = $$[$0];
-break;
-case 184:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0]));
-break;
-case 185:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), {
-          type: $$[$0-1],
-          statement: true
-        }));
-break;
-case 186:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), {
-          type: $$[$0-1],
-          statement: true
-        }));
-break;
-case 187:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0]));
-break;
-case 188:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0]));
-break;
-case 189:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0]));
-break;
-case 190:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0]));
-break;
-case 191:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0]));
-break;
-case 192:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true));
-break;
-case 193:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true));
-break;
-case 194:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1]));
-break;
-case 195:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0]));
-break;
-case 196:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0]));
-break;
-case 197:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 198:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 199:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 200:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 201:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () {
-        if ($$[$0-1].charAt(0) === '!') {
-          return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert();
-        } else {
-          return new yy.Op($$[$0-1], $$[$0-2], $$[$0]);
-        }
-      }()));
-break;
-case 202:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 203:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3]));
-break;
-case 204:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2]));
-break;
-case 205:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0]));
-break;
-}
-},
-table: [{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[3]},{1:[2,2],6:[1,74]},{6:[1,75]},{1:[2,4],6:[2,4],26:[2,4],102:[2,4]},{4:77,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[1,76],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25
 ,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,7],6:[2,7],26:[2,7],102:[2,7],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,8],6:[2,8],26:[2,8],102:[2,8],103:90,104:[1,65],106:[1,66],109:91,110:[1,68],111:69,126:[1,89]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:93,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],73:[2,12],74:[1,101],78:[2,12],81:92,84:[1,94],85:[2,108],86:[2,12],91:[2,12],93:[2,12],102:[2,12],104:[2,12],105:[2,12],106:[2,12],110:[2,12],118:[2,12],126:[2,12],128:[2,12],129:[2,12],132:[2,12],133:[2,12],134:[2,12],135:[2,12],136:[2,12],137:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13
 ],57:[2,13],62:103,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],73:[2,13],74:[1,101],78:[2,13],81:102,84:[1,94],85:[2,108],86:[2,13],91:[2,13],93:[2,13],102:[2,13],104:[2,13],105:[2,13],106:[2,13],110:[2,13],118:[2,13],126:[2,13],128:[2,13],129:[2,13],132:[2,13],133:[2,13],134:[2,13],135:[2,13],136:[2,13],137:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],73:[2,14],78:[2,14],86:[2,14],91:[2,14],93:[2,14],102:[2,14],104:[2,14],105:[2,14],106:[2,14],110:[2,14],118:[2,14],126:[2,14],128:[2,14],129:[2,14],132:[2,14],133:[2,14],134:[2,14],135:[2,14],136:[2,14],137:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],73:[2,15],78:[2,15],86:[2,15],91:[2,15],93:[2,15],102:[2,15],104:[2,15],105:[2,15],106:[2,15],110:[2,15],118:[2,15],126:[2,15],128:[2,15],129:[2,15],132:[2,15],133:[2,15],134:[2,15],135:[2,15],136:[2,15],137:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],73:[2,16],78:[2,16],86:[2,1
 6],91:[2,16],93:[2,16],102:[2,16],104:[2,16],105:[2,16],106:[2,16],110:[2,16],118:[2,16],126:[2,16],128:[2,16],129:[2,16],132:[2,16],133:[2,16],134:[2,16],135:[2,16],136:[2,16],137:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],73:[2,17],78:[2,17],86:[2,17],91:[2,17],93:[2,17],102:[2,17],104:[2,17],105:[2,17],106:[2,17],110:[2,17],118:[2,17],126:[2,17],128:[2,17],129:[2,17],132:[2,17],133:[2,17],134:[2,17],135:[2,17],136:[2,17],137:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],73:[2,18],78:[2,18],86:[2,18],91:[2,18],93:[2,18],102:[2,18],104:[2,18],105:[2,18],106:[2,18],110:[2,18],118:[2,18],126:[2,18],128:[2,18],129:[2,18],132:[2,18],133:[2,18],134:[2,18],135:[2,18],136:[2,18],137:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],73:[2,19],78:[2,19],86:[2,19],91:[2,19],93:[2,19],102:[2,19],104:[2,19],105:[2,19],106:[2,19],110:[2,19],118:[2,19],126:[2,19],128:[2,19],129:[2,19],132:[2,19],133:[2,19
 ],134:[2,19],135:[2,19],136:[2,19],137:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],73:[2,20],78:[2,20],86:[2,20],91:[2,20],93:[2,20],102:[2,20],104:[2,20],105:[2,20],106:[2,20],110:[2,20],118:[2,20],126:[2,20],128:[2,20],129:[2,20],132:[2,20],133:[2,20],134:[2,20],135:[2,20],136:[2,20],137:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],73:[2,21],78:[2,21],86:[2,21],91:[2,21],93:[2,21],102:[2,21],104:[2,21],105:[2,21],106:[2,21],110:[2,21],118:[2,21],126:[2,21],128:[2,21],129:[2,21],132:[2,21],133:[2,21],134:[2,21],135:[2,21],136:[2,21],137:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],73:[2,22],78:[2,22],86:[2,22],91:[2,22],93:[2,22],102:[2,22],104:[2,22],105:[2,22],106:[2,22],110:[2,22],118:[2,22],126:[2,22],128:[2,22],129:[2,22],132:[2,22],133:[2,22],134:[2,22],135:[2,22],136:[2,22],137:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],73:[2,23],78:[2,23],86:[2,
 23],91:[2,23],93:[2,23],102:[2,23],104:[2,23],105:[2,23],106:[2,23],110:[2,23],118:[2,23],126:[2,23],128:[2,23],129:[2,23],132:[2,23],133:[2,23],134:[2,23],135:[2,23],136:[2,23],137:[2,23]},{1:[2,9],6:[2,9],26:[2,9],102:[2,9],104:[2,9],106:[2,9],110:[2,9],126:[2,9]},{1:[2,10],6:[2,10],26:[2,10],102:[2,10],104:[2,10],106:[2,10],110:[2,10],126:[2,10]},{1:[2,11],6:[2,11],26:[2,11],102:[2,11],104:[2,11],106:[2,11],110:[2,11],126:[2,11]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,104],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],73:[2,75],74:[2,75],78:[2,75],84:[2,75],85:[2,75],86:[2,75],91:[2,75],93:[2,75],102:[2,75],104:[2,75],105:[2,75],106:[2,75],110:[2,75],118:[2,75],126:[2,75],128:[2,75],129:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75],136:[2,75],137:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],69:[2,76],71:[2,76],73:[2,76],74:[2,76],78:[2,76],84:[2,76],85:[2,76],86:[2,76],91:[2
 ,76],93:[2,76],102:[2,76],104:[2,76],105:[2,76],106:[2,76],110:[2,76],118:[2,76],126:[2,76],128:[2,76],129:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76],136:[2,76],137:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],69:[2,77],71:[2,77],73:[2,77],74:[2,77],78:[2,77],84:[2,77],85:[2,77],86:[2,77],91:[2,77],93:[2,77],102:[2,77],104:[2,77],105:[2,77],106:[2,77],110:[2,77],118:[2,77],126:[2,77],128:[2,77],129:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77],136:[2,77],137:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],69:[2,78],71:[2,78],73:[2,78],74:[2,78],78:[2,78],84:[2,78],85:[2,78],86:[2,78],91:[2,78],93:[2,78],102:[2,78],104:[2,78],105:[2,78],106:[2,78],110:[2,78],118:[2,78],126:[2,78],128:[2,78],129:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78],136:[2,78],137:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,7
 9],68:[2,79],69:[2,79],71:[2,79],73:[2,79],74:[2,79],78:[2,79],84:[2,79],85:[2,79],86:[2,79],91:[2,79],93:[2,79],102:[2,79],104:[2,79],105:[2,79],106:[2,79],110:[2,79],118:[2,79],126:[2,79],128:[2,79],129:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79],136:[2,79],137:[2,79]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],69:[2,106],71:[2,106],73:[2,106],74:[2,106],78:[2,106],82:105,84:[2,106],85:[1,106],86:[2,106],91:[2,106],93:[2,106],102:[2,106],104:[2,106],105:[2,106],106:[2,106],110:[2,106],118:[2,106],126:[2,106],128:[2,106],129:[2,106],132:[2,106],133:[2,106],134:[2,106],135:[2,106],136:[2,106],137:[2,106]},{6:[2,55],25:[2,55],27:110,28:[1,73],44:111,48:107,49:[2,55],54:[2,55],55:108,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{5:116,25:[1,5]},{8:117,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50]
 ,34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:119,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:120,9:118,10:20,11:21,12
 :[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{13:122,14:123,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,58:47,59:48,61:121,63:25,64:26,65:27,76:[1,70],83:[1,28],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{13:122,14:123,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,58:47,59:48,61:125,63:25,64:26,65:27,76:[1,70],83:[1,28],88:[1,58],89:[1,59],90:[1,57],
 101:[1,56]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,72],74:[2,72],78:[2,72],80:[1,129],84:[2,72],85:[2,72],86:[2,72],91:[2,72],93:[2,72],102:[2,72],104:[2,72],105:[2,72],106:[2,72],110:[2,72],118:[2,72],126:[2,72],128:[2,72],129:[2,72],130:[1,126],131:[1,127],132:[2,72],133:[2,72],134:[2,72],135:[2,72],136:[2,72],137:[2,72],138:[1,128]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],73:[2,183],78:[2,183],86:[2,183],91:[2,183],93:[2,183],102:[2,183],104:[2,183],105:[2,183],106:[2,183],110:[2,183],118:[2,183],121:[1,130],126:[2,183],128:[2,183],129:[2,183],132:[2,183],133:[2,183],134:[2,183],135:[2,183],136:[2,183],137:[2,183]},{5:131,25:[1,5]},{5:132,25:[1,5]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],73:[2,150],78:[2,150],86:[2,150],91:[2,150],93:[2,150],102:[2,150],104:[2,150],105:[2,150],106:[2,150],110:[2,150],118:[2,150],12
 6:[2,150],128:[2,150],129:[2,150],132:[2,150],133:[2,150],134:[2,150],135:[2,150],136:[2,150],137:[2,150]},{5:133,25:[1,5]},{8:134,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,135],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,96],5:136,6:[2,96],13:122,14:123,25:[1,5],26:[2,96],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,49:[2,96],54:[2,96],57:[2,96],58:47,59:48,61:138,63:25,64:26,65:27,73:[2,96],76:[1,70],78:[2,96],80:[1,137],83:[1,28]
 ,86:[2,96],88:[1,58],89:[1,59],90:[1,57],91:[2,96],93:[2,96],101:[1,56],102:[2,96],104:[2,96],105:[2,96],106:[2,96],110:[2,96],118:[2,96],126:[2,96],128:[2,96],129:[2,96],132:[2,96],133:[2,96],134:[2,96],135:[2,96],136:[2,96],137:[2,96]},{8:139,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,47],6:[2,47],8:140,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,47],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34
 :[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],102:[2,47],103:39,104:[2,47],106:[2,47],107:40,108:[1,67],109:41,110:[2,47],111:69,119:[1,42],124:37,125:[1,64],126:[2,47],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],54:[2,48],78:[2,48],102:[2,48],104:[2,48],106:[2,48],110:[2,48],126:[2,48]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],69:[2,73],71:[2,73],73:[2,73],74:[2,73],78:[2,73],84:[2,73],85:[2,73],86:[2,73],91:[2,73],93:[2,73],102:[2,73],104:[2,73],105:[2,73],106:[2,73],110:[2,73],118:[2,73],126:[2,73],128:[2,73],129:[2,73],132:[2,73],133:[2,73],134:[2,73],135:[2,73],136:[2,73],137:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2
 ,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],73:[2,74],74:[2,74],78:[2,74],84:[2,74],85:[2,74],86:[2,74],91:[2,74],93:[2,74],102:[2,74],104:[2,74],105:[2,74],106:[2,74],110:[2,74],118:[2,74],126:[2,74],128:[2,74],129:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74],136:[2,74],137:[2,74]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],69:[2,29],71:[2,29],73:[2,29],74:[2,29],78:[2,29],84:[2,29],85:[2,29],86:[2,29],91:[2,29],93:[2,29],102:[2,29],104:[2,29],105:[2,29],106:[2,29],110:[2,29],118:[2,29],126:[2,29],128:[2,29],129:[2,29],132:[2,29],133:[2,29],134:[2,29],135:[2,29],136:[2,29],137:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],69:[2,30],71:[2,30],73:[2,30],74:[2,30],78:[2,30],84:[2,30],85:[2,30],86:[2,30],91:[2,30],93:[2,30],102:[2,30],104:[2,30],105:[2,30],106:[2,30],110:[2,30],118:[2,30],126:[2,30],128:[2,30],129:[2,30],132:[2,30],133:[2,30],134:[2,30],135:[2,30]
 ,136:[2,30],137:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],69:[2,31],71:[2,31],73:[2,31],74:[2,31],78:[2,31],84:[2,31],85:[2,31],86:[2,31],91:[2,31],93:[2,31],102:[2,31],104:[2,31],105:[2,31],106:[2,31],110:[2,31],118:[2,31],126:[2,31],128:[2,31],129:[2,31],132:[2,31],133:[2,31],134:[2,31],135:[2,31],136:[2,31],137:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],69:[2,32],71:[2,32],73:[2,32],74:[2,32],78:[2,32],84:[2,32],85:[2,32],86:[2,32],91:[2,32],93:[2,32],102:[2,32],104:[2,32],105:[2,32],106:[2,32],110:[2,32],118:[2,32],126:[2,32],128:[2,32],129:[2,32],132:[2,32],133:[2,32],134:[2,32],135:[2,32],136:[2,32],137:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],69:[2,33],71:[2,33],73:[2,33],74:[2,33],78:[2,33],84:[2,33],85:[2,33],86:[2,33],91:[2,33],93:[2,33],102:[2,33],104:[2,33],105:[2,33],106:[2,33],
 110:[2,33],118:[2,33],126:[2,33],128:[2,33],129:[2,33],132:[2,33],133:[2,33],134:[2,33],135:[2,33],136:[2,33],137:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],69:[2,34],71:[2,34],73:[2,34],74:[2,34],78:[2,34],84:[2,34],85:[2,34],86:[2,34],91:[2,34],93:[2,34],102:[2,34],104:[2,34],105:[2,34],106:[2,34],110:[2,34],118:[2,34],126:[2,34],128:[2,34],129:[2,34],132:[2,34],133:[2,34],134:[2,34],135:[2,34],136:[2,34],137:[2,34]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],66:[2,35],67:[2,35],68:[2,35],69:[2,35],71:[2,35],73:[2,35],74:[2,35],78:[2,35],84:[2,35],85:[2,35],86:[2,35],91:[2,35],93:[2,35],102:[2,35],104:[2,35],105:[2,35],106:[2,35],110:[2,35],118:[2,35],126:[2,35],128:[2,35],129:[2,35],132:[2,35],133:[2,35],134:[2,35],135:[2,35],136:[2,35],137:[2,35]},{4:141,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,142],27:62,28:[1,73],29:49,3
 0:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:143,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:145,88:[1,58],89:[1,59],90:[1,57],91:[1,144],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1
 ,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],69:[2,112],71:[2,112],73:[2,112],74:[2,112],78:[2,112],84:[2,112],85:[2,112],86:[2,112],91:[2,112],93:[2,112],102:[2,112],104:[2,112],105:[2,112],106:[2,112],110:[2,112],118:[2,112],126:[2,112],128:[2,112],129:[2,112],132:[2,112],133:[2,112],134:[2,112],135:[2,112],136:[2,112],137:[2,112]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],27:149,28:[1,73],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],69:[2,113],71:[2,113],73:[2,113],74:[2,113],78:[2,113],84:[2,113],85:[2,113],86:[2,113],91:[2,113],93:[2,113],102:[2,113],104:[2,113],105:[2,113],106:[2,113],110:[2,113],118:[2,113],126:[2,113],128:[2,113],129:[2,113],132:[2,113],133:[2,113],134:[2,113],135:[2,113],136:[2,113],137:[2,113]},{25:[2,51]},{25:[2,52]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,6
 8],69:[2,68],71:[2,68],73:[2,68],74:[2,68],78:[2,68],80:[2,68],84:[2,68],85:[2,68],86:[2,68],91:[2,68],93:[2,68],102:[2,68],104:[2,68],105:[2,68],106:[2,68],110:[2,68],118:[2,68],126:[2,68],128:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68],138:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,71],74:[2,71],78:[2,71],80:[2,71],84:[2,71],85:[2,71],86:[2,71],91:[2,71],93:[2,71],102:[2,71],104:[2,71],105:[2,71],106:[2,71],110:[2,71],118:[2,71],126:[2,71],128:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71],138:[2,71]},{8:150,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,
 60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:151,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:152,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1
 ,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{5:153,8:154,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[
 1,34],131:[1,35]},{27:159,28:[1,73],44:160,58:161,59:162,64:155,76:[1,70],89:[1,114],90:[1,57],113:156,114:[1,157],115:158},{112:163,116:[1,164],117:[1,165]},{6:[2,91],11:169,25:[2,91],27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:167,42:168,44:172,46:[1,46],54:[2,91],77:166,78:[2,91],89:[1,114]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],69:[2,27],71:[2,27],73:[2,27],74:[2,27],78:[2,27],84:[2,27],85:[2,27],86:[2,27],91:[2,27],93:[2,27],102:[2,27],104:[2,27],105:[2,27],106:[2,27],110:[2,27],118:[2,27],126:[2,27],128:[2,27],129:[2,27],132:[2,27],133:[2,27],134:[2,27],135:[2,27],136:[2,27],137:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],43:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],69:[2,28],71:[2,28],73:[2,28],74:[2,28],78:[2,28],84:[2,28],85:[2,28],86:[2,28],91:[2,28],93:[2,28],102:[2,28],104:[2,28],105:[2,28],106:[2,28],110:[2,28],118:[2,28],126:[2,28],128:[2,28],129:[2,28],132:[2,28],133:
 [2,28],134:[2,28],135:[2,28],136:[2,28],137:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],40:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],69:[2,26],71:[2,26],73:[2,26],74:[2,26],78:[2,26],80:[2,26],84:[2,26],85:[2,26],86:[2,26],91:[2,26],93:[2,26],102:[2,26],104:[2,26],105:[2,26],106:[2,26],110:[2,26],116:[2,26],117:[2,26],118:[2,26],126:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26],136:[2,26],137:[2,26],138:[2,26]},{1:[2,6],6:[2,6],7:173,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,6],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],102:[2,6],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],10
 9:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],73:[2,24],78:[2,24],86:[2,24],91:[2,24],93:[2,24],98:[2,24],99:[2,24],102:[2,24],104:[2,24],105:[2,24],106:[2,24],110:[2,24],118:[2,24],121:[2,24],123:[2,24],126:[2,24],128:[2,24],129:[2,24],132:[2,24],133:[2,24],134:[2,24],135:[2,24],136:[2,24],137:[2,24]},{6:[1,74],26:[1,174]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],73:[2,194],78:[2,194],86:[2,194],91:[2,194],93:[2,194],102:[2,194],104:[2,194],105:[2,194],106:[2,194],110:[2,194],118:[2,194],126:[2,194],128:[2,194],129:[2,194],132:[2,194],133:[2,194],134:[2,194],135:[2,194],136:[2,194],137:[2,194]},{8:175,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23
 ,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:176,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:177,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21
 :16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:178,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:
 [1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:179,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:180,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96
 :[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:181,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:182,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46]
 ,47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],73:[2,149],78:[2,149],86:[2,149],91:[2,149],93:[2,149],102:[2,149],104:[2,149],105:[2,149],106:[2,149],110:[2,149],118:[2,149],126:[2,149],128:[2,149],129:[2,149],132:[2,149],133:[2,149],134:[2,149],135:[2,149],136:[2,149],137:[2,149]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],73:[2,154],78:[2,154],86:[2,154],91:[2,154],93:[2,154],102:[2,154],104:[2,154],105:[2,154],106:[2,154],110:[2,154],118:[2,154],126:[2,154],128:[2,154],129:[2,154],132:[2,154],133:[2,154],134:[2,154],135:[2,154],136:[2,154],137:[2,154]},{8:183,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,
 16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],73:[2,148],78:[2,148],86:[2,148],91:[2,148],93:[2,148],102:[2,148],104:[2,148],105:[2,148],106:[2,148],110:[2,148],118:[2,148],126:[2,148],128:[2,148],129:[2,148],132:[2,148],133:[2,148],134:[2,148],135:[2,148],136:[2,148],137:[2,148]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],73:[2,153],78:[2,153],86:[2,153],91:[2,153],93:[2,153],102:[2,153],104:[2,153],105:[2,153],106
 :[2,153],110:[2,153],118:[2,153],126:[2,153],128:[2,153],129:[2,153],132:[2,153],133:[2,153],134:[2,153],135:[2,153],136:[2,153],137:[2,153]},{82:184,85:[1,106]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],69:[2,69],71:[2,69],73:[2,69],74:[2,69],78:[2,69],80:[2,69],84:[2,69],85:[2,69],86:[2,69],91:[2,69],93:[2,69],102:[2,69],104:[2,69],105:[2,69],106:[2,69],110:[2,69],118:[2,69],126:[2,69],128:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69],138:[2,69]},{85:[2,109]},{27:185,28:[1,73]},{27:186,28:[1,73]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],27:187,28:[1,73],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],69:[2,84],71:[2,84],73:[2,84],74:[2,84],78:[2,84],80:[2,84],84:[2,84],85:[2,84],86:[2,84],91:[2,84],93:[2,84],102:[2,84],104:[2,84],105:[2,84],106:[2,84],110:[2,84],118:[2,84],126:[2,84],128:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84
 ],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84],138:[2,84]},{27:188,28:[1,73]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],69:[2,85],71:[2,85],73:[2,85],74:[2,85],78:[2,85],80:[2,85],84:[2,85],85:[2,85],86:[2,85],91:[2,85],93:[2,85],102:[2,85],104:[2,85],105:[2,85],106:[2,85],110:[2,85],118:[2,85],126:[2,85],128:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85],138:[2,85]},{8:190,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],57:[1,194],58:47,59:48,61:36,63:25,64:26,65:27,72:189,75:191,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],92:192,93:[1,193],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108
 :[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{70:195,71:[1,100],74:[1,101]},{82:196,85:[1,106]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],69:[2,70],71:[2,70],73:[2,70],74:[2,70],78:[2,70],80:[2,70],84:[2,70],85:[2,70],86:[2,70],91:[2,70],93:[2,70],102:[2,70],104:[2,70],105:[2,70],106:[2,70],110:[2,70],118:[2,70],126:[2,70],128:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70],138:[2,70]},{6:[1,198],8:197,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,199],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],10
 0:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],49:[2,107],54:[2,107],57:[2,107],66:[2,107],67:[2,107],68:[2,107],69:[2,107],71:[2,107],73:[2,107],74:[2,107],78:[2,107],84:[2,107],85:[2,107],86:[2,107],91:[2,107],93:[2,107],102:[2,107],104:[2,107],105:[2,107],106:[2,107],110:[2,107],118:[2,107],126:[2,107],128:[2,107],129:[2,107],132:[2,107],133:[2,107],134:[2,107],135:[2,107],136:[2,107],137:[2,107]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],86:[1,200],87:201,88:[1,58],89:[1,59],90:[1,57],94:146,
 96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,53],25:[2,53],49:[1,203],53:205,54:[1,204]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{6:[2,60],25:[2,60],26:[2,60],40:[1,207],49:[2,60],54:[2,60],57:[1,206]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:149,28:[1,73]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65
 :27,76:[1,70],79:[1,43],83:[1,28],87:145,88:[1,58],89:[1,59],90:[1,57],91:[1,144],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,50],6:[2,50],25:[2,50],26:[2,50],49:[2,50],54:[2,50],57:[2,50],73:[2,50],78:[2,50],86:[2,50],91:[2,50],93:[2,50],102:[2,50],104:[2,50],105:[2,50],106:[2,50],110:[2,50],118:[2,50],126:[2,50],128:[2,50],129:[2,50],132:[2,50],133:[2,50],134:[2,50],135:[2,50],136:[2,50],137:[2,50]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],73:[2,187],78:[2,187],86:[2,187],91:[2,187],93:[2,187],102:[2,187],103:87,104:[2,187],105:[2,187],106:[2,187],109:88,110:[2,187],111:69,118:[2,187],126:[2,187],128:[2,187],129:[2,187],132:[1,78],133:[2,187],134:[2,187],135:[2,187],136:[2,187],137:[2,187]},{103:90,104:[1,65],106:[1,66],109:91,110:[1,68],111:69,126:[1,89]},{1:[2,188],6:[2,188],25:[2,188],26:
 [2,188],49:[2,188],54:[2,188],57:[2,188],73:[2,188],78:[2,188],86:[2,188],91:[2,188],93:[2,188],102:[2,188],103:87,104:[2,188],105:[2,188],106:[2,188],109:88,110:[2,188],111:69,118:[2,188],126:[2,188],128:[2,188],129:[2,188],132:[1,78],133:[2,188],134:[2,188],135:[2,188],136:[2,188],137:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],73:[2,189],78:[2,189],86:[2,189],91:[2,189],93:[2,189],102:[2,189],103:87,104:[2,189],105:[2,189],106:[2,189],109:88,110:[2,189],111:69,118:[2,189],126:[2,189],128:[2,189],129:[2,189],132:[1,78],133:[2,189],134:[2,189],135:[2,189],136:[2,189],137:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,190],74:[2,72],78:[2,190],84:[2,72],85:[2,72],86:[2,190],91:[2,190],93:[2,190],102:[2,190],104:[2,190],105:[2,190],106:[2,190],110:[2,190],118:[2,190],126:[2,190],128:[2,190],129:[2,190],132:[2,190],133:[2,190],134:[2,190],135:[2,190],1
 36:[2,190],137:[2,190]},{62:93,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],74:[1,101],81:92,84:[1,94],85:[2,108]},{62:103,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],74:[1,101],81:102,84:[1,94],85:[2,108]},{66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],74:[2,75],84:[2,75],85:[2,75]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,191],74:[2,72],78:[2,191],84:[2,72],85:[2,72],86:[2,191],91:[2,191],93:[2,191],102:[2,191],104:[2,191],105:[2,191],106:[2,191],110:[2,191],118:[2,191],126:[2,191],128:[2,191],129:[2,191],132:[2,191],133:[2,191],134:[2,191],135:[2,191],136:[2,191],137:[2,191]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],73:[2,192],78:[2,192],86:[2,192],91:[2,192],93:[2,192],102:[2,192],104:[2,192],105:[2,192],106:[2,192],110:[2,192],118:[2,192],126:[2,192],128:[2,192],129:[2,192],132:[2,192],133:[2,192],134:[2,192],135:[2,192],136:
 [2,192],137:[2,192]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],73:[2,193],78:[2,193],86:[2,193],91:[2,193],93:[2,193],102:[2,193],104:[2,193],105:[2,193],106:[2,193],110:[2,193],118:[2,193],126:[2,193],128:[2,193],129:[2,193],132:[2,193],133:[2,193],134:[2,193],135:[2,193],136:[2,193],137:[2,193]},{6:[1,210],8:208,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,209],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:211,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20
 :15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{5:212,25:[1,5],125:[1,213]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],49:[2,133],54:[2,133],57:[2,133],73:[2,133],78:[2,133],86:[2,133],91:[2,133],93:[2,133],97:214,98:[1,215],99:[1,216],102:[2,133],104:[2,133],105:[2,133],106:[2,133],110:[2,133],118:[2,133],126:[2,133],128:[2,133],129:[2,133],132:[2,133],133:[2,133],134:[2,133],135:[2,133],136:[2,133],137:[2,133]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],73:[2,147],78:[2,147],86:[2,147],91:[2,147],93:[2,147],102:[2,
 147],104:[2,147],105:[2,147],106:[2,147],110:[2,147],118:[2,147],126:[2,147],128:[2,147],129:[2,147],132:[2,147],133:[2,147],134:[2,147],135:[2,147],136:[2,147],137:[2,147]},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],49:[2,155],54:[2,155],57:[2,155],73:[2,155],78:[2,155],86:[2,155],91:[2,155],93:[2,155],102:[2,155],104:[2,155],105:[2,155],106:[2,155],110:[2,155],118:[2,155],126:[2,155],128:[2,155],129:[2,155],132:[2,155],133:[2,155],134:[2,155],135:[2,155],136:[2,155],137:[2,155]},{25:[1,217],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{120:218,122:219,123:[1,220]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],49:[2,97],54:[2,97],57:[2,97],73:[2,97],78:[2,97],86:[2,97],91:[2,97],93:[2,97],102:[2,97],104:[2,97],105:[2,97],106:[2,97],110:[2,97],118:[2,97],126:[2,97],128:[2,97],129:[2,97],132:[2,97],133:[2,97],134:[2,97],135:[2,97],136:[2,97],137:[2,97]},{8:221,9:118,10:20,11:21,12:[1
 ,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,100],5:222,6:[2,100],25:[1,5],26:[2,100],49:[2,100],54:[2,100],57:[2,100],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,100],74:[2,72],78:[2,100],80:[1,223],84:[2,72],85:[2,72],86:[2,100],91:[2,100],93:[2,100],102:[2,100],104:[2,100],105:[2,100],106:[2,100],110:[2,100],118:[2,100],126:[2,100],128:[2,100],129:[2,100],132:[2,100],133:[2,100],134:[2,100],135:[2,100],136:[2,100],137:[2,100]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],
 54:[2,140],57:[2,140],73:[2,140],78:[2,140],86:[2,140],91:[2,140],93:[2,140],102:[2,140],103:87,104:[2,140],105:[2,140],106:[2,140],109:88,110:[2,140],111:69,118:[2,140],126:[2,140],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,46],6:[2,46],26:[2,46],102:[2,46],103:87,104:[2,46],106:[2,46],109:88,110:[2,46],111:69,126:[2,46],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,74],102:[1,224]},{4:225,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:
 [1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,129],25:[2,129],54:[2,129],57:[1,227],91:[2,129],92:226,93:[1,193],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],69:[2,115],71:[2,115],73:[2,115],74:[2,115],78:[2,115],84:[2,115],85:[2,115],86:[2,115],91:[2,115],93:[2,115],102:[2,115],104:[2,115],105:[2,115],106:[2,115],110:[2,115],116:[2,115],117:[2,115],118:[2,115],126:[2,115],128:[2,115],129:[2,115],132:[2,115],133:[2,115],134:[2,115],135:[2,115],136:[2,115],137:[2,115]},{6:[2,53],25:[2,53],53:228,54:[1,229],91:[2,53]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],86:[2,124],91:[2,124]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72
 ],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:230,88:[1,58],89:[1,59],90:[1,57],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,130],25:[2,130],26:[2,130],54:[2,130],86:[2,130],91:[2,130]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],43:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],69:[2,114],71:[2,114],73:[2,114],74:[2,114],78:[2,114],80:[2,114],84:[2,114],85:[2,114],86:[2,114],91:[2,114],93:[2,114],102:[2,114],104:[2,114],105:[2,114],106:[2,114],110:[2,114],116:[2,114],117:[2,114],118:[2,114],126:[2,114],128:[2,114],129:[2,114],130:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114],137:[2,114],138:[2,1
 14]},{5:231,25:[1,5],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],73:[2,143],78:[2,143],86:[2,143],91:[2,143],93:[2,143],102:[2,143],103:87,104:[1,65],105:[1,232],106:[1,66],109:88,110:[1,68],111:69,118:[2,143],126:[2,143],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],73:[2,145],78:[2,145],86:[2,145],91:[2,145],93:[2,145],102:[2,145],103:87,104:[1,65],105:[1,233],106:[1,66],109:88,110:[1,68],111:69,118:[2,145],126:[2,145],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],73:[2,151],78:[2,151],86:[2,151],91:[2,151],93:[2,151],102:[2,151],104:[2,151],105:[2,151],106:[2,151]
 ,110:[2,151],118:[2,151],126:[2,151],128:[2,151],129:[2,151],132:[2,151],133:[2,151],134:[2,151],135:[2,151],136:[2,151],137:[2,151]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],73:[2,152],78:[2,152],86:[2,152],91:[2,152],93:[2,152],102:[2,152],103:87,104:[1,65],105:[2,152],106:[1,66],109:88,110:[1,68],111:69,118:[2,152],126:[2,152],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],49:[2,156],54:[2,156],57:[2,156],73:[2,156],78:[2,156],86:[2,156],91:[2,156],93:[2,156],102:[2,156],104:[2,156],105:[2,156],106:[2,156],110:[2,156],118:[2,156],126:[2,156],128:[2,156],129:[2,156],132:[2,156],133:[2,156],134:[2,156],135:[2,156],136:[2,156],137:[2,156]},{116:[2,158],117:[2,158]},{27:159,28:[1,73],44:160,58:161,59:162,76:[1,70],89:[1,114],90:[1,115],113:234,115:158},{54:[1,235],116:[2,164],117:[2,164]},{54:[2,160],116:[2,160],117:[2,160]},{54:[2,161],116:[2,161],117:[2,161]},{54:
 [2,162],116:[2,162],117:[2,162]},{54:[2,163],116:[2,163],117:[2,163]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],49:[2,157],54:[2,157],57:[2,157],73:[2,157],78:[2,157],86:[2,157],91:[2,157],93:[2,157],102:[2,157],104:[2,157],105:[2,157],106:[2,157],110:[2,157],118:[2,157],126:[2,157],128:[2,157],129:[2,157],132:[2,157],133:[2,157],134:[2,157],135:[2,157],136:[2,157],137:[2,157]},{8:236,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:237,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:1
 0,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,53],25:[2,53],53:238,54:[1,239],78:[2,53]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],78:[2,92]},{6:[2,39],25:[2,39],26:[2,39],43:[1,240],54:[2,39],78:[2,39]},{6:[2,42],25:[2,42],26:[2,42],54:[2,42],78:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],78:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],78:[2,44]},{6:[2,45],25:[2,45],26:[2,45],43:[2,45],54:[2,45],78:[2,45]},{1:[2,5],6:[2,5],26:[2,5],102:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],49:[2,25
 ],54:[2,25],57:[2,25],73:[2,25],78:[2,25],86:[2,25],91:[2,25],93:[2,25],98:[2,25],99:[2,25],102:[2,25],104:[2,25],105:[2,25],106:[2,25],110:[2,25],118:[2,25],121:[2,25],123:[2,25],126:[2,25],128:[2,25],129:[2,25],132:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25],137:[2,25]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],73:[2,195],78:[2,195],86:[2,195],91:[2,195],93:[2,195],102:[2,195],103:87,104:[2,195],105:[2,195],106:[2,195],109:88,110:[2,195],111:69,118:[2,195],126:[2,195],128:[2,195],129:[2,195],132:[1,78],133:[1,81],134:[2,195],135:[2,195],136:[2,195],137:[2,195]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],73:[2,196],78:[2,196],86:[2,196],91:[2,196],93:[2,196],102:[2,196],103:87,104:[2,196],105:[2,196],106:[2,196],109:88,110:[2,196],111:69,118:[2,196],126:[2,196],128:[2,196],129:[2,196],132:[1,78],133:[1,81],134:[2,196],135:[2,196],136:[2,196],137:[2,196]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],5
 4:[2,197],57:[2,197],73:[2,197],78:[2,197],86:[2,197],91:[2,197],93:[2,197],102:[2,197],103:87,104:[2,197],105:[2,197],106:[2,197],109:88,110:[2,197],111:69,118:[2,197],126:[2,197],128:[2,197],129:[2,197],132:[1,78],133:[2,197],134:[2,197],135:[2,197],136:[2,197],137:[2,197]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],73:[2,198],78:[2,198],86:[2,198],91:[2,198],93:[2,198],102:[2,198],103:87,104:[2,198],105:[2,198],106:[2,198],109:88,110:[2,198],111:69,118:[2,198],126:[2,198],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[2,198],135:[2,198],136:[2,198],137:[2,198]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],73:[2,199],78:[2,199],86:[2,199],91:[2,199],93:[2,199],102:[2,199],103:87,104:[2,199],105:[2,199],106:[2,199],109:88,110:[2,199],111:69,118:[2,199],126:[2,199],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[2,199],136:[2,199],137:[1,85]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200]
 ,57:[2,200],73:[2,200],78:[2,200],86:[2,200],91:[2,200],93:[2,200],102:[2,200],103:87,104:[2,200],105:[2,200],106:[2,200],109:88,110:[2,200],111:69,118:[2,200],126:[2,200],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[2,200],137:[1,85]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],73:[2,201],78:[2,201],86:[2,201],91:[2,201],93:[2,201],102:[2,201],103:87,104:[2,201],105:[2,201],106:[2,201],109:88,110:[2,201],111:69,118:[2,201],126:[2,201],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[2,201],136:[2,201],137:[2,201]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],73:[2,186],78:[2,186],86:[2,186],91:[2,186],93:[2,186],102:[2,186],103:87,104:[1,65],105:[2,186],106:[1,66],109:88,110:[1,68],111:69,118:[2,186],126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],73:[2,185]
 ,78:[2,185],86:[2,185],91:[2,185],93:[2,185],102:[2,185],103:87,104:[1,65],105:[2,185],106:[1,66],109:88,110:[1,68],111:69,118:[2,185],126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],69:[2,104],71:[2,104],73:[2,104],74:[2,104],78:[2,104],84:[2,104],85:[2,104],86:[2,104],91:[2,104],93:[2,104],102:[2,104],104:[2,104],105:[2,104],106:[2,104],110:[2,104],118:[2,104],126:[2,104],128:[2,104],129:[2,104],132:[2,104],133:[2,104],134:[2,104],135:[2,104],136:[2,104],137:[2,104]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],69:[2,80],71:[2,80],73:[2,80],74:[2,80],78:[2,80],80:[2,80],84:[2,80],85:[2,80],86:[2,80],91:[2,80],93:[2,80],102:[2,80],104:[2,80],105:[2,80],106:[2,80],110:[2,80],118:[2,80],126:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],
 134:[2,80],135:[2,80],136:[2,80],137:[2,80],138:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],69:[2,81],71:[2,81],73:[2,81],74:[2,81],78:[2,81],80:[2,81],84:[2,81],85:[2,81],86:[2,81],91:[2,81],93:[2,81],102:[2,81],104:[2,81],105:[2,81],106:[2,81],110:[2,81],118:[2,81],126:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81],138:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],69:[2,82],71:[2,82],73:[2,82],74:[2,82],78:[2,82],80:[2,82],84:[2,82],85:[2,82],86:[2,82],91:[2,82],93:[2,82],102:[2,82],104:[2,82],105:[2,82],106:[2,82],110:[2,82],118:[2,82],126:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82],138:[2,82]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,
 83],69:[2,83],71:[2,83],73:[2,83],74:[2,83],78:[2,83],80:[2,83],84:[2,83],85:[2,83],86:[2,83],91:[2,83],93:[2,83],102:[2,83],104:[2,83],105:[2,83],106:[2,83],110:[2,83],118:[2,83],126:[2,83],128:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83],138:[2,83]},{73:[1,241]},{57:[1,194],73:[2,88],92:242,93:[1,193],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{73:[2,89]},{8:243,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,73:[2,123],76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67
 ],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{12:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],73:[2,117],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117]},{12:[2,118],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],73:[2,118],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118]},{1:[2,87],6:[2,87],25:[2,87],26:[2,87],40:[2,87],49:[2,87],54:[
 2,87],57:[2,87],66:[2,87],67:[2,87],68:[2,87],69:[2,87],71:[2,87],73:[2,87],74:[2,87],78:[2,87],80:[2,87],84:[2,87],85:[2,87],86:[2,87],91:[2,87],93:[2,87],102:[2,87],104:[2,87],105:[2,87],106:[2,87],110:[2,87],118:[2,87],126:[2,87],128:[2,87],129:[2,87],130:[2,87],131:[2,87],132:[2,87],133:[2,87],134:[2,87],135:[2,87],136:[2,87],137:[2,87],138:[2,87]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],69:[2,105],71:[2,105],73:[2,105],74:[2,105],78:[2,105],84:[2,105],85:[2,105],86:[2,105],91:[2,105],93:[2,105],102:[2,105],104:[2,105],105:[2,105],106:[2,105],110:[2,105],118:[2,105],126:[2,105],128:[2,105],129:[2,105],132:[2,105],133:[2,105],134:[2,105],135:[2,105],136:[2,105],137:[2,105]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],73:[2,36],78:[2,36],86:[2,36],91:[2,36],93:[2,36],102:[2,36],103:87,104:[2,36],105:[2,36],106:[2,36],109:88,110:[2,36],111:69,118:[2,36],126:[2,36],128:[1,80],129:[1,79],132
 :[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{8:244,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:245,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],
 90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],69:[2,110],71:[2,110],73:[2,110],74:[2,110],78:[2,110],84:[2,110],85:[2,110],86:[2,110],91:[2,110],93:[2,110],102:[2,110],104:[2,110],105:[2,110],106:[2,110],110:[2,110],118:[2,110],126:[2,110],128:[2,110],129:[2,110],132:[2,110],133:[2,110],134:[2,110],135:[2,110],136:[2,110],137:[2,110]},{6:[2,53],25:[2,53],53:246,54:[1,229],86:[2,53]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],57:[1,247],86:[2,129],91:[2,129],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{50:248,51:[1,60],52:[1,61]},{6:[2,54],25:[2,54],26:[2,54],27:110,28:[1,73],44:111,55:249,56:109,58:112,59:113,76:[1,7
 0],89:[1,114],90:[1,115]},{6:[1,250],25:[1,251]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61]},{8:252,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,202],6:[2,202],25:[2,202],26:[2,202],49:[2,202],54:[2,202],57:[2,202],73:[2,202],78:[2,202],86:[2,202],91:[2,202],93:[2,202],102:[2,202],103:87,104:[2,202],105:[2,202],106:[2,202],109:88,110:[2,202],111:69,118:[2,202],126:[2,202],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{8:253
 ,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:254,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66]
 ,107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,205],6:[2,205],25:[2,205],26:[2,205],49:[2,205],54:[2,205],57:[2,205],73:[2,205],78:[2,205],86:[2,205],91:[2,205],93:[2,205],102:[2,205],103:87,104:[2,205],105:[2,205],106:[2,205],109:88,110:[2,205],111:69,118:[2,205],126:[2,205],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],73:[2,184],78:[2,184],86:[2,184],91:[2,184],93:[2,184],102:[2,184],104:[2,184],105:[2,184],106:[2,184],110:[2,184],118:[2,184],126:[2,184],128:[2,184],129:[2,184],132:[2,184],133:[2,184],134:[2,184],135:[2,184],136:[2,184],137:[2,184]},{8:255,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,
 45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],73:[2,134],78:[2,134],86:[2,134],91:[2,134],93:[2,134],98:[1,256],102:[2,134],104:[2,134],105:[2,134],106:[2,134],110:[2,134],118:[2,134],126:[2,134],128:[2,134],129:[2,134],132:[2,134],133:[2,134],134:[2,134],135:[2,134],136:[2,134],137:[2,134]},{5:257,25:[1,5]},{5:260,25:[1,5],27:258,28:[1,73],59:259,76:[1,70]},{120:261,122:219,123:[1,220]},{26:[1,262],121:[1,263],122:264,123:[1,220]},{26:[2,177],121:[2,177],123:[2,177]},{8:266,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,
 50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],95:265,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,98],5:267,6:[2,98],25:[1,5],26:[2,98],49:[2,98],54:[2,98],57:[2,98],73:[2,98],78:[2,98],86:[2,98],91:[2,98],93:[2,98],102:[2,98],103:87,104:[1,65],105:[2,98],106:[1,66],109:88,110:[1,68],111:69,118:[2,98],126:[2,98],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],49:[2,101],54:[2,101],57:[2,101],73:[2,101],78:[2,101],86:[2,101],91:[2,101],93:[2,101],102:[2,101],104:[2,101],105:[2,101],106:[2,101],110:[2,101],118:[2,101],126:[2,101],128:[2,101],129:[2,101],132:[2,101],133:[2,101],134:[2,10
 1],135:[2,101],136:[2,101],137:[2,101]},{8:268,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],66:[2,141],67:[2,141],68:[2,141],69:[2,141],71:[2,141],73:[2,141],74:[2,141],78:[2,141],84:[2,141],85:[2,141],86:[2,141],91:[2,141],93:[2,141],102:[2,141],104:[2,141],105:[2,141],106:[2,141],110:[2,141],118:[2,141],126:[2,141],128:[2,141],129:[2,141],132:[2,141],133:[2,141],134:[2,141],135:[2,141],136:[2,141],137:
 [2,141]},{6:[1,74],26:[1,269]},{8:270,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],

<TRUNCATED>

[07/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/lib/parser/pbxproj.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/lib/parser/pbxproj.js b/blackberry10/node_modules/plugman/node_modules/xcode/lib/parser/pbxproj.js
deleted file mode 100644
index baaea33..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/lib/parser/pbxproj.js
+++ /dev/null
@@ -1,2680 +0,0 @@
-module.exports = (function(){
-  /* Generated by PEG.js 0.6.2 (http://pegjs.majda.cz/). */
-  
-  var result = {
-    /*
-     * Parses the input with a generated parser. If the parsing is successfull,
-     * returns a value explicitly or implicitly specified by the grammar from
-     * which the parser was generated (see |PEG.buildParser|). If the parsing is
-     * unsuccessful, throws |PEG.parser.SyntaxError| describing the error.
-     */
-    parse: function(input, startRule) {
-      var parseFunctions = {
-        "Alpha": parse_Alpha,
-        "Array": parse_Array,
-        "ArrayBody": parse_ArrayBody,
-        "ArrayEntry": parse_ArrayEntry,
-        "Assignment": parse_Assignment,
-        "AssignmentList": parse_AssignmentList,
-        "Char": parse_Char,
-        "CommentedArrayEntry": parse_CommentedArrayEntry,
-        "CommentedAssignment": parse_CommentedAssignment,
-        "CommentedIdentifier": parse_CommentedIdentifier,
-        "CommentedValue": parse_CommentedValue,
-        "DecimalValue": parse_DecimalValue,
-        "DelimitedSection": parse_DelimitedSection,
-        "DelimitedSectionBegin": parse_DelimitedSectionBegin,
-        "DelimitedSectionEnd": parse_DelimitedSectionEnd,
-        "Digit": parse_Digit,
-        "DoubleQuote": parse_DoubleQuote,
-        "EmptyArray": parse_EmptyArray,
-        "EmptyBody": parse_EmptyBody,
-        "EscapedQuote": parse_EscapedQuote,
-        "Identifier": parse_Identifier,
-        "InlineComment": parse_InlineComment,
-        "InlineCommentClose": parse_InlineCommentClose,
-        "InlineCommentOpen": parse_InlineCommentOpen,
-        "IntegerValue": parse_IntegerValue,
-        "LineTerminator": parse_LineTerminator,
-        "LiteralChar": parse_LiteralChar,
-        "LiteralString": parse_LiteralString,
-        "NewLine": parse_NewLine,
-        "NonLine": parse_NonLine,
-        "NonQuote": parse_NonQuote,
-        "NonTerminator": parse_NonTerminator,
-        "NumberValue": parse_NumberValue,
-        "Object": parse_Object,
-        "OneLineString": parse_OneLineString,
-        "Project": parse_Project,
-        "QuotedBody": parse_QuotedBody,
-        "QuotedString": parse_QuotedString,
-        "SimpleArrayEntry": parse_SimpleArrayEntry,
-        "SimpleAssignment": parse_SimpleAssignment,
-        "SingleLineComment": parse_SingleLineComment,
-        "StringValue": parse_StringValue,
-        "Value": parse_Value,
-        "_": parse__,
-        "whitespace": parse_whitespace
-      };
-      
-      if (startRule !== undefined) {
-        if (parseFunctions[startRule] === undefined) {
-          throw new Error("Invalid rule name: " + quote(startRule) + ".");
-        }
-      } else {
-        startRule = "Project";
-      }
-      
-      var pos = 0;
-      var reportMatchFailures = true;
-      var rightmostMatchFailuresPos = 0;
-      var rightmostMatchFailuresExpected = [];
-      var cache = {};
-      
-      function padLeft(input, padding, length) {
-        var result = input;
-        
-        var padLength = length - input.length;
-        for (var i = 0; i < padLength; i++) {
-          result = padding + result;
-        }
-        
-        return result;
-      }
-      
-      function escape(ch) {
-        var charCode = ch.charCodeAt(0);
-        
-        if (charCode <= 0xFF) {
-          var escapeChar = 'x';
-          var length = 2;
-        } else {
-          var escapeChar = 'u';
-          var length = 4;
-        }
-        
-        return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);
-      }
-      
-      function quote(s) {
-        /*
-         * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a
-         * string literal except for the closing quote character, backslash,
-         * carriage return, line separator, paragraph separator, and line feed.
-         * Any character may appear in the form of an escape sequence.
-         */
-        return '"' + s
-          .replace(/\\/g, '\\\\')            // backslash
-          .replace(/"/g, '\\"')              // closing quote character
-          .replace(/\r/g, '\\r')             // carriage return
-          .replace(/\n/g, '\\n')             // line feed
-          .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
-          + '"';
-      }
-      
-      function matchFailed(failure) {
-        if (pos < rightmostMatchFailuresPos) {
-          return;
-        }
-        
-        if (pos > rightmostMatchFailuresPos) {
-          rightmostMatchFailuresPos = pos;
-          rightmostMatchFailuresExpected = [];
-        }
-        
-        rightmostMatchFailuresExpected.push(failure);
-      }
-      
-      function parse_Project() {
-        var cacheKey = 'Project@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result10 = parse_SingleLineComment();
-        var result3 = result10 !== null ? result10 : '';
-        if (result3 !== null) {
-          var result9 = parse_InlineComment();
-          var result4 = result9 !== null ? result9 : '';
-          if (result4 !== null) {
-            var result5 = parse__();
-            if (result5 !== null) {
-              var result6 = parse_Object();
-              if (result6 !== null) {
-                var result7 = parse_NewLine();
-                if (result7 !== null) {
-                  var result8 = parse__();
-                  if (result8 !== null) {
-                    var result1 = [result3, result4, result5, result6, result7, result8];
-                  } else {
-                    var result1 = null;
-                    pos = savedPos1;
-                  }
-                } else {
-                  var result1 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(headComment, obj) {
-                  var proj = Object.create(null)
-                  proj.project = obj
-          
-                  if (headComment) {
-                      proj.headComment = headComment
-                  }
-          
-                  return proj;
-              })(result1[0], result1[3])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_Object() {
-        var cacheKey = 'Object@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "{") {
-          var result3 = "{";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"{\"");
-          }
-        }
-        if (result3 !== null) {
-          var result7 = parse_AssignmentList();
-          if (result7 !== null) {
-            var result4 = result7;
-          } else {
-            var result6 = parse_EmptyBody();
-            if (result6 !== null) {
-              var result4 = result6;
-            } else {
-              var result4 = null;;
-            };
-          }
-          if (result4 !== null) {
-            if (input.substr(pos, 1) === "}") {
-              var result5 = "}";
-              pos += 1;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"}\"");
-              }
-            }
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(obj) { return obj })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_EmptyBody() {
-        var cacheKey = 'EmptyBody@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var result1 = parse__();
-        var result2 = result1 !== null
-          ? (function() { return Object.create(null) })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_AssignmentList() {
-        var cacheKey = 'AssignmentList@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos2 = pos;
-        var savedPos3 = pos;
-        var result12 = parse__();
-        if (result12 !== null) {
-          var result13 = parse_Assignment();
-          if (result13 !== null) {
-            var result14 = parse__();
-            if (result14 !== null) {
-              var result15 = [];
-              var result17 = parse_AssignmentList();
-              while (result17 !== null) {
-                result15.push(result17);
-                var result17 = parse_AssignmentList();
-              }
-              if (result15 !== null) {
-                var result16 = parse__();
-                if (result16 !== null) {
-                  var result10 = [result12, result13, result14, result15, result16];
-                } else {
-                  var result10 = null;
-                  pos = savedPos3;
-                }
-              } else {
-                var result10 = null;
-                pos = savedPos3;
-              }
-            } else {
-              var result10 = null;
-              pos = savedPos3;
-            }
-          } else {
-            var result10 = null;
-            pos = savedPos3;
-          }
-        } else {
-          var result10 = null;
-          pos = savedPos3;
-        }
-        var result11 = result10 !== null
-          ? (function(head, tail) { 
-                if (tail) return merge(head,tail)
-                else return head
-              })(result10[1], result10[3])
-          : null;
-        if (result11 !== null) {
-          var result9 = result11;
-        } else {
-          var result9 = null;
-          pos = savedPos2;
-        }
-        if (result9 !== null) {
-          var result0 = result9;
-        } else {
-          var savedPos0 = pos;
-          var savedPos1 = pos;
-          var result4 = parse__();
-          if (result4 !== null) {
-            var result5 = parse_DelimitedSection();
-            if (result5 !== null) {
-              var result6 = parse__();
-              if (result6 !== null) {
-                var result7 = [];
-                var result8 = parse_AssignmentList();
-                while (result8 !== null) {
-                  result7.push(result8);
-                  var result8 = parse_AssignmentList();
-                }
-                if (result7 !== null) {
-                  var result2 = [result4, result5, result6, result7];
-                } else {
-                  var result2 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result2 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result2 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result2 = null;
-            pos = savedPos1;
-          }
-          var result3 = result2 !== null
-            ? (function(head, tail) {
-                  if (tail) return merge(head,tail)
-                  else return head
-                })(result2[1], result2[3])
-            : null;
-          if (result3 !== null) {
-            var result1 = result3;
-          } else {
-            var result1 = null;
-            pos = savedPos0;
-          }
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_Assignment() {
-        var cacheKey = 'Assignment@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result2 = parse_SimpleAssignment();
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result1 = parse_CommentedAssignment();
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_SimpleAssignment() {
-        var cacheKey = 'SimpleAssignment@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_Identifier();
-        if (result3 !== null) {
-          var result4 = parse__();
-          if (result4 !== null) {
-            if (input.substr(pos, 1) === "=") {
-              var result5 = "=";
-              pos += 1;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"=\"");
-              }
-            }
-            if (result5 !== null) {
-              var result6 = parse__();
-              if (result6 !== null) {
-                var result7 = parse_Value();
-                if (result7 !== null) {
-                  if (input.substr(pos, 1) === ";") {
-                    var result8 = ";";
-                    pos += 1;
-                  } else {
-                    var result8 = null;
-                    if (reportMatchFailures) {
-                      matchFailed("\";\"");
-                    }
-                  }
-                  if (result8 !== null) {
-                    var result1 = [result3, result4, result5, result6, result7, result8];
-                  } else {
-                    var result1 = null;
-                    pos = savedPos1;
-                  }
-                } else {
-                  var result1 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(id, val) { 
-                var result = Object.create(null);
-                result[id] = val
-                return result
-              })(result1[0], result1[4])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_CommentedAssignment() {
-        var cacheKey = 'CommentedAssignment@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos2 = pos;
-        var savedPos3 = pos;
-        var result13 = parse_CommentedIdentifier();
-        if (result13 !== null) {
-          var result14 = parse__();
-          if (result14 !== null) {
-            if (input.substr(pos, 1) === "=") {
-              var result15 = "=";
-              pos += 1;
-            } else {
-              var result15 = null;
-              if (reportMatchFailures) {
-                matchFailed("\"=\"");
-              }
-            }
-            if (result15 !== null) {
-              var result16 = parse__();
-              if (result16 !== null) {
-                var result17 = parse_Value();
-                if (result17 !== null) {
-                  if (input.substr(pos, 1) === ";") {
-                    var result18 = ";";
-                    pos += 1;
-                  } else {
-                    var result18 = null;
-                    if (reportMatchFailures) {
-                      matchFailed("\";\"");
-                    }
-                  }
-                  if (result18 !== null) {
-                    var result11 = [result13, result14, result15, result16, result17, result18];
-                  } else {
-                    var result11 = null;
-                    pos = savedPos3;
-                  }
-                } else {
-                  var result11 = null;
-                  pos = savedPos3;
-                }
-              } else {
-                var result11 = null;
-                pos = savedPos3;
-              }
-            } else {
-              var result11 = null;
-              pos = savedPos3;
-            }
-          } else {
-            var result11 = null;
-            pos = savedPos3;
-          }
-        } else {
-          var result11 = null;
-          pos = savedPos3;
-        }
-        var result12 = result11 !== null
-          ? (function(commentedId, val) {
-                  var result = Object.create(null),
-                      commentKey = commentedId.id + '_comment';
-          
-                  result[commentedId.id] = val;
-                  result[commentKey] = commentedId[commentKey];
-                  return result;
-          
-              })(result11[0], result11[4])
-          : null;
-        if (result12 !== null) {
-          var result10 = result12;
-        } else {
-          var result10 = null;
-          pos = savedPos2;
-        }
-        if (result10 !== null) {
-          var result0 = result10;
-        } else {
-          var savedPos0 = pos;
-          var savedPos1 = pos;
-          var result4 = parse_Identifier();
-          if (result4 !== null) {
-            var result5 = parse__();
-            if (result5 !== null) {
-              if (input.substr(pos, 1) === "=") {
-                var result6 = "=";
-                pos += 1;
-              } else {
-                var result6 = null;
-                if (reportMatchFailures) {
-                  matchFailed("\"=\"");
-                }
-              }
-              if (result6 !== null) {
-                var result7 = parse__();
-                if (result7 !== null) {
-                  var result8 = parse_CommentedValue();
-                  if (result8 !== null) {
-                    if (input.substr(pos, 1) === ";") {
-                      var result9 = ";";
-                      pos += 1;
-                    } else {
-                      var result9 = null;
-                      if (reportMatchFailures) {
-                        matchFailed("\";\"");
-                      }
-                    }
-                    if (result9 !== null) {
-                      var result2 = [result4, result5, result6, result7, result8, result9];
-                    } else {
-                      var result2 = null;
-                      pos = savedPos1;
-                    }
-                  } else {
-                    var result2 = null;
-                    pos = savedPos1;
-                  }
-                } else {
-                  var result2 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result2 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result2 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result2 = null;
-            pos = savedPos1;
-          }
-          var result3 = result2 !== null
-            ? (function(id, commentedVal) {
-                    var result = Object.create(null);
-                    result[id] = commentedVal.value;
-                    result[id + "_comment"] = commentedVal.comment;
-                    return result;
-                })(result2[0], result2[4])
-            : null;
-          if (result3 !== null) {
-            var result1 = result3;
-          } else {
-            var result1 = null;
-            pos = savedPos0;
-          }
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_CommentedIdentifier() {
-        var cacheKey = 'CommentedIdentifier@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_Identifier();
-        if (result3 !== null) {
-          var result4 = parse__();
-          if (result4 !== null) {
-            var result5 = parse_InlineComment();
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(id, comment) {
-                  var result = Object.create(null);
-                  result.id = id;
-                  result[id + "_comment"] = comment.trim();
-                  return result
-              })(result1[0], result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_CommentedValue() {
-        var cacheKey = 'CommentedValue@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_Value();
-        if (result3 !== null) {
-          var result4 = parse__();
-          if (result4 !== null) {
-            var result5 = parse_InlineComment();
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(literal, comment) {
-                  var result = Object.create(null)
-                  result.comment = comment.trim();
-                  result.value = literal.trim();
-                  return result;
-              })(result1[0], result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_InlineComment() {
-        var cacheKey = 'InlineComment@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_InlineCommentOpen();
-        if (result3 !== null) {
-          if (input.substr(pos).match(/^[^*]/) !== null) {
-            var result6 = input.charAt(pos);
-            pos++;
-          } else {
-            var result6 = null;
-            if (reportMatchFailures) {
-              matchFailed("[^*]");
-            }
-          }
-          if (result6 !== null) {
-            var result4 = [];
-            while (result6 !== null) {
-              result4.push(result6);
-              if (input.substr(pos).match(/^[^*]/) !== null) {
-                var result6 = input.charAt(pos);
-                pos++;
-              } else {
-                var result6 = null;
-                if (reportMatchFailures) {
-                  matchFailed("[^*]");
-                }
-              }
-            }
-          } else {
-            var result4 = null;
-          }
-          if (result4 !== null) {
-            var result5 = parse_InlineCommentClose();
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(body) { return body.join('') })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_InlineCommentOpen() {
-        var cacheKey = 'InlineCommentOpen@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.substr(pos, 2) === "/*") {
-          var result0 = "/*";
-          pos += 2;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"/*\"");
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_InlineCommentClose() {
-        var cacheKey = 'InlineCommentClose@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.substr(pos, 2) === "*/") {
-          var result0 = "*/";
-          pos += 2;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"*/\"");
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_DelimitedSection() {
-        var cacheKey = 'DelimitedSection@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_DelimitedSectionBegin();
-        if (result3 !== null) {
-          var result4 = parse__();
-          if (result4 !== null) {
-            var result9 = parse_AssignmentList();
-            if (result9 !== null) {
-              var result5 = result9;
-            } else {
-              var result8 = parse_EmptyBody();
-              if (result8 !== null) {
-                var result5 = result8;
-              } else {
-                var result5 = null;;
-              };
-            }
-            if (result5 !== null) {
-              var result6 = parse__();
-              if (result6 !== null) {
-                var result7 = parse_DelimitedSectionEnd();
-                if (result7 !== null) {
-                  var result1 = [result3, result4, result5, result6, result7];
-                } else {
-                  var result1 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(begin, fields) {
-                  var section = Object.create(null);
-                  section[begin.name] = fields
-          
-                  return section
-              })(result1[0], result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_DelimitedSectionBegin() {
-        var cacheKey = 'DelimitedSectionBegin@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 9) === "/* Begin ") {
-          var result3 = "/* Begin ";
-          pos += 9;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"/* Begin \"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse_Identifier();
-          if (result4 !== null) {
-            if (input.substr(pos, 11) === " section */") {
-              var result5 = " section */";
-              pos += 11;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("\" section */\"");
-              }
-            }
-            if (result5 !== null) {
-              var result6 = parse_NewLine();
-              if (result6 !== null) {
-                var result1 = [result3, result4, result5, result6];
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(sectionName) { return { name: sectionName } })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_DelimitedSectionEnd() {
-        var cacheKey = 'DelimitedSectionEnd@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 7) === "/* End ") {
-          var result3 = "/* End ";
-          pos += 7;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"/* End \"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse_Identifier();
-          if (result4 !== null) {
-            if (input.substr(pos, 11) === " section */") {
-              var result5 = " section */";
-              pos += 11;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("\" section */\"");
-              }
-            }
-            if (result5 !== null) {
-              var result6 = parse_NewLine();
-              if (result6 !== null) {
-                var result1 = [result3, result4, result5, result6];
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(sectionName) { return { name: sectionName } })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_Array() {
-        var cacheKey = 'Array@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "(") {
-          var result3 = "(";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"(\"");
-          }
-        }
-        if (result3 !== null) {
-          var result7 = parse_ArrayBody();
-          if (result7 !== null) {
-            var result4 = result7;
-          } else {
-            var result6 = parse_EmptyArray();
-            if (result6 !== null) {
-              var result4 = result6;
-            } else {
-              var result4 = null;;
-            };
-          }
-          if (result4 !== null) {
-            if (input.substr(pos, 1) === ")") {
-              var result5 = ")";
-              pos += 1;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("\")\"");
-              }
-            }
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(arr) { return arr })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_EmptyArray() {
-        var cacheKey = 'EmptyArray@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var result1 = parse__();
-        var result2 = result1 !== null
-          ? (function() { return [] })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_ArrayBody() {
-        var cacheKey = 'ArrayBody@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse__();
-        if (result3 !== null) {
-          var result4 = parse_ArrayEntry();
-          if (result4 !== null) {
-            var result5 = parse__();
-            if (result5 !== null) {
-              var result8 = parse_ArrayBody();
-              var result6 = result8 !== null ? result8 : '';
-              if (result6 !== null) {
-                var result7 = parse__();
-                if (result7 !== null) {
-                  var result1 = [result3, result4, result5, result6, result7];
-                } else {
-                  var result1 = null;
-                  pos = savedPos1;
-                }
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(head, tail) {
-                  if (tail) {
-                      tail.unshift(head);
-                      return tail;
-                  } else {
-                      return [head];
-                  }
-              })(result1[1], result1[3])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_ArrayEntry() {
-        var cacheKey = 'ArrayEntry@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result2 = parse_SimpleArrayEntry();
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result1 = parse_CommentedArrayEntry();
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_SimpleArrayEntry() {
-        var cacheKey = 'SimpleArrayEntry@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_Value();
-        if (result3 !== null) {
-          if (input.substr(pos, 1) === ",") {
-            var result4 = ",";
-            pos += 1;
-          } else {
-            var result4 = null;
-            if (reportMatchFailures) {
-              matchFailed("\",\"");
-            }
-          }
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(val) { return val })(result1[0])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_CommentedArrayEntry() {
-        var cacheKey = 'CommentedArrayEntry@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_Value();
-        if (result3 !== null) {
-          var result4 = parse__();
-          if (result4 !== null) {
-            var result5 = parse_InlineComment();
-            if (result5 !== null) {
-              if (input.substr(pos, 1) === ",") {
-                var result6 = ",";
-                pos += 1;
-              } else {
-                var result6 = null;
-                if (reportMatchFailures) {
-                  matchFailed("\",\"");
-                }
-              }
-              if (result6 !== null) {
-                var result1 = [result3, result4, result5, result6];
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(val, comment) {
-                  var result = Object.create(null);
-                  result.value = val.trim();
-                  result.comment = comment.trim();
-                  return result;
-              })(result1[0], result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_Identifier() {
-        var cacheKey = 'Identifier@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        if (input.substr(pos).match(/^[A-Za-z0-9_]/) !== null) {
-          var result5 = input.charAt(pos);
-          pos++;
-        } else {
-          var result5 = null;
-          if (reportMatchFailures) {
-            matchFailed("[A-Za-z0-9_]");
-          }
-        }
-        if (result5 !== null) {
-          var result3 = [];
-          while (result5 !== null) {
-            result3.push(result5);
-            if (input.substr(pos).match(/^[A-Za-z0-9_]/) !== null) {
-              var result5 = input.charAt(pos);
-              pos++;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed("[A-Za-z0-9_]");
-              }
-            }
-          }
-        } else {
-          var result3 = null;
-        }
-        var result4 = result3 !== null
-          ? (function(id) { return id.join('') })(result3)
-          : null;
-        if (result4 !== null) {
-          var result2 = result4;
-        } else {
-          var result2 = null;
-          pos = savedPos0;
-        }
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result1 = parse_QuotedString();
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_Value() {
-        var cacheKey = 'Value@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result4 = parse_Object();
-        if (result4 !== null) {
-          var result0 = result4;
-        } else {
-          var result3 = parse_Array();
-          if (result3 !== null) {
-            var result0 = result3;
-          } else {
-            var result2 = parse_NumberValue();
-            if (result2 !== null) {
-              var result0 = result2;
-            } else {
-              var result1 = parse_StringValue();
-              if (result1 !== null) {
-                var result0 = result1;
-              } else {
-                var result0 = null;;
-              };
-            };
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_NumberValue() {
-        var cacheKey = 'NumberValue@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result2 = parse_DecimalValue();
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result1 = parse_IntegerValue();
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_DecimalValue() {
-        var cacheKey = 'DecimalValue@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_IntegerValue();
-        if (result3 !== null) {
-          if (input.substr(pos, 1) === ".") {
-            var result4 = ".";
-            pos += 1;
-          } else {
-            var result4 = null;
-            if (reportMatchFailures) {
-              matchFailed("\".\"");
-            }
-          }
-          if (result4 !== null) {
-            var result5 = parse_IntegerValue();
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(decimal) { 
-                  // store decimals as strings
-                  // as JS doesn't differentiate bw strings and numbers
-                  return decimal.join('')
-              })(result1)
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_IntegerValue() {
-        var cacheKey = 'IntegerValue@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var savedPos3 = pos;
-        var savedReportMatchFailuresVar1 = reportMatchFailures;
-        reportMatchFailures = false;
-        var result8 = parse_Alpha();
-        reportMatchFailures = savedReportMatchFailuresVar1;
-        if (result8 === null) {
-          var result3 = '';
-        } else {
-          var result3 = null;
-          pos = savedPos3;
-        }
-        if (result3 !== null) {
-          var result7 = parse_Digit();
-          if (result7 !== null) {
-            var result4 = [];
-            while (result7 !== null) {
-              result4.push(result7);
-              var result7 = parse_Digit();
-            }
-          } else {
-            var result4 = null;
-          }
-          if (result4 !== null) {
-            var savedPos2 = pos;
-            var savedReportMatchFailuresVar0 = reportMatchFailures;
-            reportMatchFailures = false;
-            var result6 = parse_NonTerminator();
-            reportMatchFailures = savedReportMatchFailuresVar0;
-            if (result6 === null) {
-              var result5 = '';
-            } else {
-              var result5 = null;
-              pos = savedPos2;
-            }
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(number) { return parseInt(number.join(''), 10) })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_StringValue() {
-        var cacheKey = 'StringValue@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result2 = parse_QuotedString();
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result1 = parse_LiteralString();
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_QuotedString() {
-        var cacheKey = 'QuotedString@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var result3 = parse_DoubleQuote();
-        if (result3 !== null) {
-          var result4 = parse_QuotedBody();
-          if (result4 !== null) {
-            var result5 = parse_DoubleQuote();
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(str) { return '"' + str + '"' })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_QuotedBody() {
-        var cacheKey = 'QuotedBody@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var result3 = parse_NonQuote();
-        if (result3 !== null) {
-          var result1 = [];
-          while (result3 !== null) {
-            result1.push(result3);
-            var result3 = parse_NonQuote();
-          }
-        } else {
-          var result1 = null;
-        }
-        var result2 = result1 !== null
-          ? (function(str) { return str.join('') })(result1)
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_NonQuote() {
-        var cacheKey = 'NonQuote@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result7 = parse_EscapedQuote();
-        if (result7 !== null) {
-          var result0 = result7;
-        } else {
-          var savedPos0 = pos;
-          var savedPos1 = pos;
-          var savedPos2 = pos;
-          var savedReportMatchFailuresVar0 = reportMatchFailures;
-          reportMatchFailures = false;
-          var result6 = parse_DoubleQuote();
-          reportMatchFailures = savedReportMatchFailuresVar0;
-          if (result6 === null) {
-            var result4 = '';
-          } else {
-            var result4 = null;
-            pos = savedPos2;
-          }
-          if (result4 !== null) {
-            if (input.length > pos) {
-              var result5 = input.charAt(pos);
-              pos++;
-            } else {
-              var result5 = null;
-              if (reportMatchFailures) {
-                matchFailed('any character');
-              }
-            }
-            if (result5 !== null) {
-              var result2 = [result4, result5];
-            } else {
-              var result2 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result2 = null;
-            pos = savedPos1;
-          }
-          var result3 = result2 !== null
-            ? (function(char) { return char })(result2[1])
-            : null;
-          if (result3 !== null) {
-            var result1 = result3;
-          } else {
-            var result1 = null;
-            pos = savedPos0;
-          }
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_EscapedQuote() {
-        var cacheKey = 'EscapedQuote@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 1) === "\\") {
-          var result3 = "\\";
-          pos += 1;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"\\\\\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse_DoubleQuote();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function() { return '\\"' })()
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_LiteralString() {
-        var cacheKey = 'LiteralString@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var result3 = parse_LiteralChar();
-        if (result3 !== null) {
-          var result1 = [];
-          while (result3 !== null) {
-            result1.push(result3);
-            var result3 = parse_LiteralChar();
-          }
-        } else {
-          var result1 = null;
-        }
-        var result2 = result1 !== null
-          ? (function(literal) { return literal.join('') })(result1)
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_LiteralChar() {
-        var cacheKey = 'LiteralChar@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var savedPos3 = pos;
-        var savedReportMatchFailuresVar1 = reportMatchFailures;
-        reportMatchFailures = false;
-        var result7 = parse_InlineCommentOpen();
-        reportMatchFailures = savedReportMatchFailuresVar1;
-        if (result7 === null) {
-          var result3 = '';
-        } else {
-          var result3 = null;
-          pos = savedPos3;
-        }
-        if (result3 !== null) {
-          var savedPos2 = pos;
-          var savedReportMatchFailuresVar0 = reportMatchFailures;
-          reportMatchFailures = false;
-          var result6 = parse_LineTerminator();
-          reportMatchFailures = savedReportMatchFailuresVar0;
-          if (result6 === null) {
-            var result4 = '';
-          } else {
-            var result4 = null;
-            pos = savedPos2;
-          }
-          if (result4 !== null) {
-            var result5 = parse_NonTerminator();
-            if (result5 !== null) {
-              var result1 = [result3, result4, result5];
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(char) { return char })(result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_NonTerminator() {
-        var cacheKey = 'NonTerminator@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.substr(pos).match(/^[^;,\n]/) !== null) {
-          var result0 = input.charAt(pos);
-          pos++;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed("[^;,\\n]");
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_SingleLineComment() {
-        var cacheKey = 'SingleLineComment@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        if (input.substr(pos, 2) === "//") {
-          var result3 = "//";
-          pos += 2;
-        } else {
-          var result3 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"//\"");
-          }
-        }
-        if (result3 !== null) {
-          var result4 = parse__();
-          if (result4 !== null) {
-            var result5 = parse_OneLineString();
-            if (result5 !== null) {
-              var result6 = parse_NewLine();
-              if (result6 !== null) {
-                var result1 = [result3, result4, result5, result6];
-              } else {
-                var result1 = null;
-                pos = savedPos1;
-              }
-            } else {
-              var result1 = null;
-              pos = savedPos1;
-            }
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(contents) { return contents })(result1[2])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_OneLineString() {
-        var cacheKey = 'OneLineString@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var result1 = [];
-        var result3 = parse_NonLine();
-        while (result3 !== null) {
-          result1.push(result3);
-          var result3 = parse_NonLine();
-        }
-        var result2 = result1 !== null
-          ? (function(contents) { return contents.join('') })(result1)
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_Digit() {
-        var cacheKey = 'Digit@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.substr(pos).match(/^[0-9]/) !== null) {
-          var result0 = input.charAt(pos);
-          pos++;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed("[0-9]");
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_Alpha() {
-        var cacheKey = 'Alpha@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.substr(pos).match(/^[A-Za-z]/) !== null) {
-          var result0 = input.charAt(pos);
-          pos++;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed("[A-Za-z]");
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_DoubleQuote() {
-        var cacheKey = 'DoubleQuote@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.substr(pos, 1) === "\"") {
-          var result0 = "\"";
-          pos += 1;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed("\"\\\"\"");
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse__() {
-        var cacheKey = '_@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        var savedReportMatchFailures = reportMatchFailures;
-        reportMatchFailures = false;
-        var result0 = [];
-        var result1 = parse_whitespace();
-        while (result1 !== null) {
-          result0.push(result1);
-          var result1 = parse_whitespace();
-        }
-        reportMatchFailures = savedReportMatchFailures;
-        if (reportMatchFailures && result0 === null) {
-          matchFailed("whitespace");
-        }
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_whitespace() {
-        var cacheKey = 'whitespace@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result2 = parse_NewLine();
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          if (input.substr(pos).match(/^[	 ]/) !== null) {
-            var result1 = input.charAt(pos);
-            pos++;
-          } else {
-            var result1 = null;
-            if (reportMatchFailures) {
-              matchFailed("[	 ]");
-            }
-          }
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_NonLine() {
-        var cacheKey = 'NonLine@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var savedPos0 = pos;
-        var savedPos1 = pos;
-        var savedPos2 = pos;
-        var savedReportMatchFailuresVar0 = reportMatchFailures;
-        reportMatchFailures = false;
-        var result5 = parse_NewLine();
-        reportMatchFailures = savedReportMatchFailuresVar0;
-        if (result5 === null) {
-          var result3 = '';
-        } else {
-          var result3 = null;
-          pos = savedPos2;
-        }
-        if (result3 !== null) {
-          var result4 = parse_Char();
-          if (result4 !== null) {
-            var result1 = [result3, result4];
-          } else {
-            var result1 = null;
-            pos = savedPos1;
-          }
-        } else {
-          var result1 = null;
-          pos = savedPos1;
-        }
-        var result2 = result1 !== null
-          ? (function(char) { return char })(result1[1])
-          : null;
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          var result0 = null;
-          pos = savedPos0;
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_LineTerminator() {
-        var cacheKey = 'LineTerminator@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        var result2 = parse_NewLine();
-        if (result2 !== null) {
-          var result0 = result2;
-        } else {
-          if (input.substr(pos, 1) === ";") {
-            var result1 = ";";
-            pos += 1;
-          } else {
-            var result1 = null;
-            if (reportMatchFailures) {
-              matchFailed("\";\"");
-            }
-          }
-          if (result1 !== null) {
-            var result0 = result1;
-          } else {
-            var result0 = null;;
-          };
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_NewLine() {
-        var cacheKey = 'NewLine@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.substr(pos).match(/^[\n\r]/) !== null) {
-          var result0 = input.charAt(pos);
-          pos++;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed("[\\n\\r]");
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function parse_Char() {
-        var cacheKey = 'Char@' + pos;
-        var cachedResult = cache[cacheKey];
-        if (cachedResult) {
-          pos = cachedResult.nextPos;
-          return cachedResult.result;
-        }
-        
-        
-        if (input.length > pos) {
-          var result0 = input.charAt(pos);
-          pos++;
-        } else {
-          var result0 = null;
-          if (reportMatchFailures) {
-            matchFailed('any character');
-          }
-        }
-        
-        
-        
-        cache[cacheKey] = {
-          nextPos: pos,
-          result:  result0
-        };
-        return result0;
-      }
-      
-      function buildErrorMessage() {
-        function buildExpected(failuresExpected) {
-          failuresExpected.sort();
-          
-          var lastFailure = null;
-          var failuresExpectedUnique = [];
-          for (var i = 0; i < failuresExpected.length; i++) {
-            if (failuresExpected[i] !== lastFailure) {
-              failuresExpectedUnique.push(failuresExpected[i]);
-              lastFailure = failuresExpected[i];
-            }
-          }
-          
-          switch (failuresExpectedUnique.length) {
-            case 0:
-              return 'end of input';
-            case 1:
-              return failuresExpectedUnique[0];
-            default:
-              return failuresExpectedUnique.slice(0, failuresExpectedUnique.length - 1).join(', ')
-                + ' or '
-                + failuresExpectedUnique[failuresExpectedUnique.length - 1];
-          }
-        }
-        
-        var expected = buildExpected(rightmostMatchFailuresExpected);
-        var actualPos = Math.max(pos, rightmostMatchFailuresPos);
-        var actual = actualPos < input.length
-          ? quote(input.charAt(actualPos))
-          : 'end of input';
-        
-        return 'Expected ' + expected + ' but ' + actual + ' found.';
-      }
-      
-      function computeErrorPosition() {
-        /*
-         * The first idea was to use |String.split| to break the input up to the
-         * error position along newlines and derive the line and column from
-         * there. However IE's |split| implementation is so broken that it was
-         * enough to prevent it.
-         */
-        
-        var line = 1;
-        var column = 1;
-        var seenCR = false;
-        
-        for (var i = 0; i <  rightmostMatchFailuresPos; i++) {
-          var ch = input.charAt(i);
-          if (ch === '\n') {
-            if (!seenCR) { line++; }
-            column = 1;
-            seenCR = false;
-          } else if (ch === '\r' | ch === '\u2028' || ch === '\u2029') {
-            line++;
-            column = 1;
-            seenCR = true;
-          } else {
-            column++;
-            seenCR = false;
-          }
-        }
-        
-        return { line: line, column: column };
-      }
-      
-      
-      
-        function merge(hash, secondHash) {
-      
-            secondHash = secondHash[0]
-      
-            for(var i in secondHash)
-      
-                hash[i] = secondHash[i]
-      
-    
-      
-            return hash;
-      
-        }
-      
-    
-      
-      var result = parseFunctions[startRule]();
-      
-      /*
-       * The parser is now in one of the following three states:
-       *
-       * 1. The parser successfully parsed the whole input.
-       *
-       *    - |result !== null|
-       *    - |pos === input.length|
-       *    - |rightmostMatchFailuresExpected| may or may not contain something
-       *
-       * 2. The parser successfully parsed only a part of the input.
-       *
-       *    - |result !== null|
-       *    - |pos < input.length|
-       *    - |rightmostMatchFailuresExpected| may or may not contain something
-       *
-       * 3. The parser did not successfully parse any part of the input.
-       *
-       *   - |result === null|
-       *   - |pos === 0|
-       *   - |rightmostMatchFailuresExpected| contains at least one failure
-       *
-       * All code following this comment (including called functions) must
-       * handle these states.
-       */
-      if (result === null || pos !== input.length) {
-        var errorPosition = computeErrorPosition();
-        throw new this.SyntaxError(
-          buildErrorMessage(),
-          errorPosition.line,
-          errorPosition.column
-        );
-      }
-      
-      return result;
-    },
-    
-    /* Returns the parser source code. */
-    toSource: function() { return this._source; }
-  };
-  
-  /* Thrown when a parser encounters a syntax error. */
-  
-  result.SyntaxError = function(message, line, column) {
-    this.name = 'SyntaxError';
-    this.message = message;
-    this.line = line;
-    this.column = column;
-  };
-  
-  result.SyntaxError.prototype = Error.prototype;
-  
-  return result;
-})();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/lib/parser/pbxproj.pegjs
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/lib/parser/pbxproj.pegjs b/blackberry10/node_modules/plugman/node_modules/xcode/lib/parser/pbxproj.pegjs
deleted file mode 100644
index 4a01195..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/lib/parser/pbxproj.pegjs
+++ /dev/null
@@ -1,259 +0,0 @@
-{
-    function merge(hash, secondHash) {
-        secondHash = secondHash[0]
-        for(var i in secondHash)
-            hash[i] = secondHash[i]
-
-        return hash;
-    }
-}
-
-/*
- *  Project: point of entry from pbxproj file
- */
-Project
-  = headComment:SingleLineComment? InlineComment? _ obj:Object NewLine _
-    {
-        var proj = Object.create(null)
-        proj.project = obj
-
-        if (headComment) {
-            proj.headComment = headComment
-        }
-
-        return proj;
-    }
-
-/*
- *  Object: basic hash data structure with Assignments
- */
-Object
-  = "{" obj:(AssignmentList / EmptyBody) "}"
-    { return obj }
-
-EmptyBody
-  = _
-    { return Object.create(null) }
-
-AssignmentList
-  = _ head:Assignment _ tail:AssignmentList* _
-    { 
-      if (tail) return merge(head,tail)
-      else return head
-    }
-    / _ head:DelimitedSection _ tail:AssignmentList*
-    {
-      if (tail) return merge(head,tail)
-      else return head
-    }
-
-/*
- *  Assignments
- *  can be simple "key = value"
- *  or commented "key /* real key * / = value"
- */
-Assignment
-  = SimpleAssignment / CommentedAssignment
-
-SimpleAssignment
-  = id:Identifier _ "=" _ val:Value ";"
-    { 
-      var result = Object.create(null);
-      result[id] = val
-      return result
-    }
-
-CommentedAssignment
-  = commentedId:CommentedIdentifier _ "=" _ val:Value ";"
-    {
-        var result = Object.create(null),
-            commentKey = commentedId.id + '_comment';
-
-        result[commentedId.id] = val;
-        result[commentKey] = commentedId[commentKey];
-        return result;
-
-    }
-    /
-    id:Identifier _ "=" _ commentedVal:CommentedValue ";"
-    {
-        var result = Object.create(null);
-        result[id] = commentedVal.value;
-        result[id + "_comment"] = commentedVal.comment;
-        return result;
-    }
-
-CommentedIdentifier
-  = id:Identifier _ comment:InlineComment
-    {
-        var result = Object.create(null);
-        result.id = id;
-        result[id + "_comment"] = comment.trim();
-        return result
-    }
-
-CommentedValue
-  = literal:Value _ comment:InlineComment
-    {
-        var result = Object.create(null)
-        result.comment = comment.trim();
-        result.value = literal.trim();
-        return result;
-    }
-
-InlineComment
-  = InlineCommentOpen body:[^*]+ InlineCommentClose
-    { return body.join('') }
-
-InlineCommentOpen
-  = "/*"
-
-InlineCommentClose
-  = "*/"
-
-/*
- *  DelimitedSection - ad hoc project structure pbxproj files use
- */
-DelimitedSection
-  = begin:DelimitedSectionBegin _ fields:(AssignmentList / EmptyBody) _ DelimitedSectionEnd
-    {
-        var section = Object.create(null);
-        section[begin.name] = fields
-
-        return section
-    }
-
-DelimitedSectionBegin
-  = "/* Begin " sectionName:Identifier " section */" NewLine
-    { return { name: sectionName } }
-
-DelimitedSectionEnd
-  = "/* End " sectionName:Identifier " section */" NewLine
-    { return { name: sectionName } }
-
-/*
- * Arrays: lists of values, possible wth comments
- */
-Array
-  = "(" arr:(ArrayBody / EmptyArray ) ")" { return arr }
-
-EmptyArray
-  = _ { return [] }
-
-ArrayBody
-  = _ head:ArrayEntry _ tail:ArrayBody? _
-    {
-        if (tail) {
-            tail.unshift(head);
-            return tail;
-        } else {
-            return [head];
-        }
-    }
-
-ArrayEntry
-  = SimpleArrayEntry / CommentedArrayEntry
-
-SimpleArrayEntry
-  = val:Value "," { return val }
-
-CommentedArrayEntry
-  = val:Value _ comment:InlineComment ","
-    {
-        var result = Object.create(null);
-        result.value = val.trim();
-        result.comment = comment.trim();
-        return result;
-    }
-
-/*
- *  Identifiers and Values
- */
-Identifier
-  = id:[A-Za-z0-9_]+ { return id.join('') }
-  / QuotedString
-
-Value
-  = Object / Array / NumberValue / StringValue
-
-NumberValue
-  = DecimalValue / IntegerValue
-
-DecimalValue
-  = decimal:(IntegerValue "." IntegerValue)
-    { 
-        // store decimals as strings
-        // as JS doesn't differentiate bw strings and numbers
-        return decimal.join('')
-    }
-
-IntegerValue
-  = !Alpha number:Digit+ !NonTerminator
-    { return parseInt(number.join(''), 10) }
-
-StringValue
- = QuotedString / LiteralString
-
-QuotedString
- = DoubleQuote str:QuotedBody DoubleQuote { return '"' + str + '"' }
-
-QuotedBody
- = str:NonQuote+ { return str.join('') }
-
-NonQuote
-  = EscapedQuote / !DoubleQuote char:. { return char }
-
-EscapedQuote
-  = "\\" DoubleQuote { return '\\"' }
-
-LiteralString
-  = literal:LiteralChar+ { return literal.join('') }
-
-LiteralChar
-  = !InlineCommentOpen !LineTerminator char:NonTerminator
-    { return char }
-
-NonTerminator
-  = [^;,\n]
-
-/*
- * SingleLineComment - used for the encoding comment
- */
-SingleLineComment
-  = "//" _ contents:OneLineString NewLine
-    { return contents }
-
-OneLineString
-  = contents:NonLine*
-    { return contents.join('') }
-
-/*
- *  Simple character checking rules
- */
-Digit
-  = [0-9]
-
-Alpha
-  = [A-Za-z]
-
-DoubleQuote
-  = '"'
-
-_ "whitespace"
-  = whitespace*
-
-whitespace
-  = NewLine / [\t ]
-
-NonLine
-  = !NewLine char:Char
-    { return char }
-
-LineTerminator
-  = NewLine / ";"
-
-NewLine
-    = [\n\r]
-
-Char
-  = .

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxFile.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxFile.js b/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxFile.js
deleted file mode 100644
index f71d55e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/xcode/lib/pbxFile.js
+++ /dev/null
@@ -1,94 +0,0 @@
-var path = require('path'),
-    M_EXTENSION = /[.]m$/, SOURCE_FILE = 'sourcecode.c.objc',
-    H_EXTENSION = /[.]h$/, HEADER_FILE = 'sourcecode.c.h',
-    BUNDLE_EXTENSION = /[.]bundle$/, BUNDLE = '"wrapper.plug-in"',
-    XIB_EXTENSION = /[.]xib$/, XIB_FILE = 'file.xib',
-    DYLIB_EXTENSION = /[.]dylib$/, DYLIB = '"compiled.mach-o.dylib"',
-    FRAMEWORK_EXTENSION = /[.]framework/, FRAMEWORK = 'wrapper.framework',
-    ARCHIVE_EXTENSION = /[.]a$/, ARCHIVE = 'archive.ar',
-    DEFAULT_SOURCE_TREE = '"<group>"',
-    DEFAULT_FILE_ENCODING = 4;
-
-function detectLastType(path) {
-    if (M_EXTENSION.test(path))
-        return SOURCE_FILE;
-
-    if (H_EXTENSION.test(path))
-        return HEADER_FILE;
-
-    if (BUNDLE_EXTENSION.test(path))
-        return BUNDLE;
-
-    if (XIB_EXTENSION.test(path))
-        return XIB_FILE;
-
-    if (FRAMEWORK_EXTENSION.test(path))
-        return FRAMEWORK;
-
-    if (DYLIB_EXTENSION.test(path))
-        return DYLIB;
-
-    if (ARCHIVE_EXTENSION.test(path))
-        return ARCHIVE;
-
-    // dunno
-    return 'unknown';
-}
-
-function fileEncoding(file) {
-    if (file.lastType != BUNDLE) {
-        return DEFAULT_FILE_ENCODING;
-    }
-}
-
-function defaultSourceTree(file) {
-    if (file.lastType == DYLIB || file.lastType == FRAMEWORK) {
-        return 'SDKROOT';
-    } else {
-        return DEFAULT_SOURCE_TREE;
-    }
-}
-
-function correctPath(file, filepath) {
-    if (file.lastType == FRAMEWORK) {
-        return 'System/Library/Frameworks/' + filepath;
-    } else if (file.lastType == DYLIB) {
-        return 'usr/lib/' + filepath;
-    } else {
-        return filepath;
-    }
-}
-
-function correctGroup(file) {
-    if (file.lastType == SOURCE_FILE) {
-        return 'Sources';
-    } else if (file.lastType == DYLIB || file.lastType == ARCHIVE) {
-        return 'Frameworks';
-    } else {
-        return 'Resources';
-    }
-}
-
-function pbxFile(filepath, opt) {
-    var opt = opt || {};
-
-    this.lastType = opt.lastType || detectLastType(filepath);
-
-    this.path = correctPath(this, filepath);
-    this.basename = path.basename(filepath);
-    this.group = correctGroup(this);
-
-    this.sourceTree = opt.sourceTree || defaultSourceTree(this);
-    this.fileEncoding = opt.fileEncoding || fileEncoding(this);
-
-    if (opt.weak && opt.weak === true) 
-      this.settings = { ATTRIBUTES: ['Weak'] };
-
-    if (opt.compilerFlags) {
-        if (!this.settings)
-          this.settings = {};
-        this.settings.COMPILER_FLAGS = opt.compilerFlags;
-    }
-}
-
-module.exports = pbxFile;


[18/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/mark.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/mark.js b/blackberry10/node_modules/plugman/node_modules/glob/test/mark.js
deleted file mode 100644
index ed68a33..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/mark.js
+++ /dev/null
@@ -1,74 +0,0 @@
-var test = require("tap").test
-var glob = require('../')
-process.chdir(__dirname)
-
-test("mark, no / on pattern", function (t) {
-  glob("a/*", {mark: true}, function (er, results) {
-    if (er)
-      throw er
-    var expect = [ 'a/abcdef/',
-                   'a/abcfed/',
-                   'a/b/',
-                   'a/bc/',
-                   'a/c/',
-                   'a/cb/' ]
-
-    if (process.platform !== "win32")
-      expect.push('a/symlink/')
-
-    t.same(results, expect)
-    t.end()
-  })
-})
-
-test("mark=false, no / on pattern", function (t) {
-  glob("a/*", function (er, results) {
-    if (er)
-      throw er
-    var expect = [ 'a/abcdef',
-                   'a/abcfed',
-                   'a/b',
-                   'a/bc',
-                   'a/c',
-                   'a/cb' ]
-
-    if (process.platform !== "win32")
-      expect.push('a/symlink')
-    t.same(results, expect)
-    t.end()
-  })
-})
-
-test("mark=true, / on pattern", function (t) {
-  glob("a/*/", {mark: true}, function (er, results) {
-    if (er)
-      throw er
-    var expect = [ 'a/abcdef/',
-                    'a/abcfed/',
-                    'a/b/',
-                    'a/bc/',
-                    'a/c/',
-                    'a/cb/' ]
-    if (process.platform !== "win32")
-      expect.push('a/symlink/')
-    t.same(results, expect)
-    t.end()
-  })
-})
-
-test("mark=false, / on pattern", function (t) {
-  glob("a/*/", function (er, results) {
-    if (er)
-      throw er
-    var expect = [ 'a/abcdef/',
-                   'a/abcfed/',
-                   'a/b/',
-                   'a/bc/',
-                   'a/c/',
-                   'a/cb/' ]
-    if (process.platform !== "win32")
-      expect.push('a/symlink/')
-    t.same(results, expect)
-    t.end()
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/nocase-nomagic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/nocase-nomagic.js b/blackberry10/node_modules/plugman/node_modules/glob/test/nocase-nomagic.js
deleted file mode 100644
index 2503f23..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/nocase-nomagic.js
+++ /dev/null
@@ -1,113 +0,0 @@
-var fs = require('fs');
-var test = require('tap').test;
-var glob = require('../');
-
-test('mock fs', function(t) {
-  var stat = fs.stat
-  var statSync = fs.statSync
-  var readdir = fs.readdir
-  var readdirSync = fs.readdirSync
-
-  function fakeStat(path) {
-    var ret
-    switch (path.toLowerCase()) {
-      case '/tmp': case '/tmp/':
-        ret = { isDirectory: function() { return true } }
-        break
-      case '/tmp/a':
-        ret = { isDirectory: function() { return false } }
-        break
-    }
-    return ret
-  }
-
-  fs.stat = function(path, cb) {
-    var f = fakeStat(path);
-    if (f) {
-      process.nextTick(function() {
-        cb(null, f)
-      })
-    } else {
-      stat.call(fs, path, cb)
-    }
-  }
-
-  fs.statSync = function(path) {
-    return fakeStat(path) || statSync.call(fs, path)
-  }
-
-  function fakeReaddir(path) {
-    var ret
-    switch (path.toLowerCase()) {
-      case '/tmp': case '/tmp/':
-        ret = [ 'a', 'A' ]
-        break
-      case '/':
-        ret = ['tmp', 'tMp', 'tMP', 'TMP']
-    }
-    return ret
-  }
-
-  fs.readdir = function(path, cb) {
-    var f = fakeReaddir(path)
-    if (f)
-      process.nextTick(function() {
-        cb(null, f)
-      })
-    else
-      readdir.call(fs, path, cb)
-  }
-
-  fs.readdirSync = function(path) {
-    return fakeReaddir(path) || readdirSync.call(fs, path)
-  }
-
-  t.pass('mocked')
-  t.end()
-})
-
-test('nocase, nomagic', function(t) {
-  var n = 2
-  var want = [ '/TMP/A',
-               '/TMP/a',
-               '/tMP/A',
-               '/tMP/a',
-               '/tMp/A',
-               '/tMp/a',
-               '/tmp/A',
-               '/tmp/a' ]
-  glob('/tmp/a', { nocase: true }, function(er, res) {
-    if (er)
-      throw er
-    t.same(res.sort(), want)
-    if (--n === 0) t.end()
-  })
-  glob('/tmp/A', { nocase: true }, function(er, res) {
-    if (er)
-      throw er
-    t.same(res.sort(), want)
-    if (--n === 0) t.end()
-  })
-})
-
-test('nocase, with some magic', function(t) {
-  t.plan(2)
-  var want = [ '/TMP/A',
-               '/TMP/a',
-               '/tMP/A',
-               '/tMP/a',
-               '/tMp/A',
-               '/tMp/a',
-               '/tmp/A',
-               '/tmp/a' ]
-  glob('/tmp/*', { nocase: true }, function(er, res) {
-    if (er)
-      throw er
-    t.same(res.sort(), want)
-  })
-  glob('/tmp/*', { nocase: true }, function(er, res) {
-    if (er)
-      throw er
-    t.same(res.sort(), want)
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/pause-resume.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/pause-resume.js b/blackberry10/node_modules/plugman/node_modules/glob/test/pause-resume.js
deleted file mode 100644
index e1ffbab..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/pause-resume.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// show that no match events happen while paused.
-var tap = require("tap")
-, child_process = require("child_process")
-// just some gnarly pattern with lots of matches
-, pattern = "test/a/!(symlink)/**"
-, bashResults = require("./bash-results.json")
-, patterns = Object.keys(bashResults)
-, glob = require("../")
-, Glob = glob.Glob
-, path = require("path")
-
-// run from the root of the project
-// this is usually where you're at anyway, but be sure.
-process.chdir(path.resolve(__dirname, ".."))
-
-function alphasort (a, b) {
-  a = a.toLowerCase()
-  b = b.toLowerCase()
-  return a > b ? 1 : a < b ? -1 : 0
-}
-
-function cleanResults (m) {
-  // normalize discrepancies in ordering, duplication,
-  // and ending slashes.
-  return m.map(function (m) {
-    return m.replace(/\/+/g, "/").replace(/\/$/, "")
-  }).sort(alphasort).reduce(function (set, f) {
-    if (f !== set[set.length - 1]) set.push(f)
-    return set
-  }, []).sort(alphasort).map(function (f) {
-    // de-windows
-    return (process.platform !== 'win32') ? f
-           : f.replace(/^[a-zA-Z]:\\\\/, '/').replace(/\\/g, '/')
-  })
-}
-
-var globResults = []
-tap.test("use a Glob object, and pause/resume it", function (t) {
-  var g = new Glob(pattern)
-  , paused = false
-  , res = []
-  , expect = bashResults[pattern]
-
-  g.on("pause", function () {
-    console.error("pause")
-  })
-
-  g.on("resume", function () {
-    console.error("resume")
-  })
-
-  g.on("match", function (m) {
-    t.notOk(g.paused, "must not be paused")
-    globResults.push(m)
-    g.pause()
-    t.ok(g.paused, "must be paused")
-    setTimeout(g.resume.bind(g), 10)
-  })
-
-  g.on("end", function (matches) {
-    t.pass("reached glob end")
-    globResults = cleanResults(globResults)
-    matches = cleanResults(matches)
-    t.deepEqual(matches, globResults,
-      "end event matches should be the same as match events")
-
-    t.deepEqual(matches, expect,
-      "glob matches should be the same as bash results")
-
-    t.end()
-  })
-})
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/root-nomount.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/root-nomount.js b/blackberry10/node_modules/plugman/node_modules/glob/test/root-nomount.js
deleted file mode 100644
index 3ac5979..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/root-nomount.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var tap = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-tap.test("changing root and searching for /b*/**", function (t) {
-  var glob = require('../')
-  var path = require('path')
-  t.test('.', function (t) {
-    glob('/b*/**', { globDebug: true, root: '.', nomount: true }, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [])
-      t.end()
-    })
-  })
-
-  t.test('a', function (t) {
-    glob('/b*/**', { globDebug: true, root: path.resolve('a'), nomount: true }, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ])
-      t.end()
-    })
-  })
-
-  t.test('root=a, cwd=a/b', function (t) {
-    glob('/b*/**', { globDebug: true, root: 'a', cwd: path.resolve('a/b'), nomount: true }, function (er, matches) {
-      t.ifError(er)
-      t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ])
-      t.end()
-    })
-  })
-
-  t.test('cd -', function (t) {
-    process.chdir(origCwd)
-    t.end()
-  })
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/root.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/root.js b/blackberry10/node_modules/plugman/node_modules/glob/test/root.js
deleted file mode 100644
index 95c23f9..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/root.js
+++ /dev/null
@@ -1,46 +0,0 @@
-var t = require("tap")
-
-var origCwd = process.cwd()
-process.chdir(__dirname)
-
-var glob = require('../')
-var path = require('path')
-
-t.test('.', function (t) {
-  glob('/b*/**', { globDebug: true, root: '.' }, function (er, matches) {
-    t.ifError(er)
-    t.like(matches, [])
-    t.end()
-  })
-})
-
-
-t.test('a', function (t) {
-  console.error("root=" + path.resolve('a'))
-  glob('/b*/**', { globDebug: true, root: path.resolve('a') }, function (er, matches) {
-    t.ifError(er)
-    var wanted = [
-        '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f'
-      ].map(function (m) {
-        return path.join(path.resolve('a'), m).replace(/\\/g, '/')
-      })
-
-    t.like(matches, wanted)
-    t.end()
-  })
-})
-
-t.test('root=a, cwd=a/b', function (t) {
-  glob('/b*/**', { globDebug: true, root: 'a', cwd: path.resolve('a/b') }, function (er, matches) {
-    t.ifError(er)
-    t.like(matches, [ '/b', '/b/c', '/b/c/d', '/bc', '/bc/e', '/bc/e/f' ].map(function (m) {
-      return path.join(path.resolve('a'), m).replace(/\\/g, '/')
-    }))
-    t.end()
-  })
-})
-
-t.test('cd -', function (t) {
-  process.chdir(origCwd)
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/stat.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/stat.js b/blackberry10/node_modules/plugman/node_modules/glob/test/stat.js
deleted file mode 100644
index 6291711..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/stat.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var glob = require('../')
-var test = require('tap').test
-var path = require('path')
-
-test('stat all the things', function(t) {
-  var g = new glob.Glob('a/*abc*/**', { stat: true, cwd: __dirname })
-  var matches = []
-  g.on('match', function(m) {
-    matches.push(m)
-  })
-  var stats = []
-  g.on('stat', function(m) {
-    stats.push(m)
-  })
-  g.on('end', function(eof) {
-    stats = stats.sort()
-    matches = matches.sort()
-    eof = eof.sort()
-    t.same(stats, matches)
-    t.same(eof, matches)
-    var cache = Object.keys(this.statCache)
-    t.same(cache.map(function (f) {
-      return path.relative(__dirname, f)
-    }).sort(), matches)
-
-    cache.forEach(function(c) {
-      t.equal(typeof this.statCache[c], 'object')
-    }, this)
-
-    t.end()
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/glob/test/zz-cleanup.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/glob/test/zz-cleanup.js b/blackberry10/node_modules/plugman/node_modules/glob/test/zz-cleanup.js
deleted file mode 100644
index e085f0f..0000000
--- a/blackberry10/node_modules/plugman/node_modules/glob/test/zz-cleanup.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// remove the fixtures
-var tap = require("tap")
-, rimraf = require("rimraf")
-, path = require("path")
-
-tap.test("cleanup fixtures", function (t) {
-  rimraf(path.resolve(__dirname, "a"), function (er) {
-    t.ifError(er, "removed")
-    t.end()
-  })
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/ncallbacks/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/ncallbacks/README.md b/blackberry10/node_modules/plugman/node_modules/ncallbacks/README.md
deleted file mode 100644
index f8284f6..0000000
--- a/blackberry10/node_modules/plugman/node_modules/ncallbacks/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# nCallbacks
-
-> function that executes n times
-
-This is a stupid flow control library. Here's how you can use it.
-
-    var end = nCallbacks(3, function (err, whatever) {
-        console.log('done now');
-    });
-
-    firstAsynchronousThing(end);
-    secondAsynchronousThing(end);
-    thirdAsynchronousThing(end);
-
-## LICENSE
-
-I don't care

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/ncallbacks/ncallbacks.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/ncallbacks/ncallbacks.js b/blackberry10/node_modules/plugman/node_modules/ncallbacks/ncallbacks.js
deleted file mode 100644
index cd13ef4..0000000
--- a/blackberry10/node_modules/plugman/node_modules/ncallbacks/ncallbacks.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- *  stupid-simple "flow control"
- */
-
-module.exports = function nCallbacks(count, callback) {
-    var n = count;
-    return function (err) {
-        if (err) callback(err)
-
-        if (n < 0) callback('called too many times')
-
-        --n
-
-        if (n == 0) callback(null)
-    }
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/ncallbacks/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/ncallbacks/package.json b/blackberry10/node_modules/plugman/node_modules/ncallbacks/package.json
deleted file mode 100644
index 2afdfd6..0000000
--- a/blackberry10/node_modules/plugman/node_modules/ncallbacks/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "author": {
-    "name": "Andrew Lunny",
-    "email": "alunny@gmail.com"
-  },
-  "name": "ncallbacks",
-  "description": "function that expires after n calls",
-  "version": "1.1.0",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/alunny/ncallbacks.git"
-  },
-  "main": "ncallbacks.js",
-  "dependencies": {},
-  "devDependencies": {},
-  "readme": "# nCallbacks\n\n> function that executes n times\n\nThis is a stupid flow control library. Here's how you can use it.\n\n    var end = nCallbacks(3, function (err, whatever) {\n        console.log('done now');\n    });\n\n    firstAsynchronousThing(end);\n    secondAsynchronousThing(end);\n    thirdAsynchronousThing(end);\n\n## LICENSE\n\nI don't care\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/alunny/ncallbacks/issues"
-  },
-  "_id": "ncallbacks@1.1.0",
-  "_from": "ncallbacks@1.1.0"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/.npmignore b/blackberry10/node_modules/plugman/node_modules/nopt/.npmignore
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/LICENSE b/blackberry10/node_modules/plugman/node_modules/nopt/LICENSE
deleted file mode 100644
index 05a4010..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/README.md b/blackberry10/node_modules/plugman/node_modules/nopt/README.md
deleted file mode 100644
index eeddfd4..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/README.md
+++ /dev/null
@@ -1,208 +0,0 @@
-If you want to write an option parser, and have it be good, there are
-two ways to do it.  The Right Way, and the Wrong Way.
-
-The Wrong Way is to sit down and write an option parser.  We've all done
-that.
-
-The Right Way is to write some complex configurable program with so many
-options that you go half-insane just trying to manage them all, and put
-it off with duct-tape solutions until you see exactly to the core of the
-problem, and finally snap and write an awesome option parser.
-
-If you want to write an option parser, don't write an option parser.
-Write a package manager, or a source control system, or a service
-restarter, or an operating system.  You probably won't end up with a
-good one of those, but if you don't give up, and you are relentless and
-diligent enough in your procrastination, you may just end up with a very
-nice option parser.
-
-## USAGE
-
-    // my-program.js
-    var nopt = require("nopt")
-      , Stream = require("stream").Stream
-      , path = require("path")
-      , knownOpts = { "foo" : [String, null]
-                    , "bar" : [Stream, Number]
-                    , "baz" : path
-                    , "bloo" : [ "big", "medium", "small" ]
-                    , "flag" : Boolean
-                    , "pick" : Boolean
-                    , "many" : [String, Array]
-                    }
-      , shortHands = { "foofoo" : ["--foo", "Mr. Foo"]
-                     , "b7" : ["--bar", "7"]
-                     , "m" : ["--bloo", "medium"]
-                     , "p" : ["--pick"]
-                     , "f" : ["--flag"]
-                     }
-                 // everything is optional.
-                 // knownOpts and shorthands default to {}
-                 // arg list defaults to process.argv
-                 // slice defaults to 2
-      , parsed = nopt(knownOpts, shortHands, process.argv, 2)
-    console.log(parsed)
-
-This would give you support for any of the following:
-
-```bash
-$ node my-program.js --foo "blerp" --no-flag
-{ "foo" : "blerp", "flag" : false }
-
-$ node my-program.js ---bar 7 --foo "Mr. Hand" --flag
-{ bar: 7, foo: "Mr. Hand", flag: true }
-
-$ node my-program.js --foo "blerp" -f -----p
-{ foo: "blerp", flag: true, pick: true }
-
-$ node my-program.js -fp --foofoo
-{ foo: "Mr. Foo", flag: true, pick: true }
-
-$ node my-program.js --foofoo -- -fp  # -- stops the flag parsing.
-{ foo: "Mr. Foo", argv: { remain: ["-fp"] } }
-
-$ node my-program.js --blatzk 1000 -fp # unknown opts are ok.
-{ blatzk: 1000, flag: true, pick: true }
-
-$ node my-program.js --blatzk true -fp # but they need a value
-{ blatzk: true, flag: true, pick: true }
-
-$ node my-program.js --no-blatzk -fp # unless they start with "no-"
-{ blatzk: false, flag: true, pick: true }
-
-$ node my-program.js --baz b/a/z # known paths are resolved.
-{ baz: "/Users/isaacs/b/a/z" }
-
-# if Array is one of the types, then it can take many
-# values, and will always be an array.  The other types provided
-# specify what types are allowed in the list.
-
-$ node my-program.js --many 1 --many null --many foo
-{ many: ["1", "null", "foo"] }
-
-$ node my-program.js --many foo
-{ many: ["foo"] }
-```
-
-Read the tests at the bottom of `lib/nopt.js` for more examples of
-what this puppy can do.
-
-## Types
-
-The following types are supported, and defined on `nopt.typeDefs`
-
-* String: A normal string.  No parsing is done.
-* path: A file system path.  Gets resolved against cwd if not absolute.
-* url: A url.  If it doesn't parse, it isn't accepted.
-* Number: Must be numeric.
-* Date: Must parse as a date. If it does, and `Date` is one of the options,
-  then it will return a Date object, not a string.
-* Boolean: Must be either `true` or `false`.  If an option is a boolean,
-  then it does not need a value, and its presence will imply `true` as
-  the value.  To negate boolean flags, do `--no-whatever` or `--whatever
-  false`
-* NaN: Means that the option is strictly not allowed.  Any value will
-  fail.
-* Stream: An object matching the "Stream" class in node.  Valuable
-  for use when validating programmatically.  (npm uses this to let you
-  supply any WriteStream on the `outfd` and `logfd` config options.)
-* Array: If `Array` is specified as one of the types, then the value
-  will be parsed as a list of options.  This means that multiple values
-  can be specified, and that the value will always be an array.
-
-If a type is an array of values not on this list, then those are
-considered valid values.  For instance, in the example above, the
-`--bloo` option can only be one of `"big"`, `"medium"`, or `"small"`,
-and any other value will be rejected.
-
-When parsing unknown fields, `"true"`, `"false"`, and `"null"` will be
-interpreted as their JavaScript equivalents, and numeric values will be
-interpreted as a number.
-
-You can also mix types and values, or multiple types, in a list.  For
-instance `{ blah: [Number, null] }` would allow a value to be set to
-either a Number or null.
-
-To define a new type, add it to `nopt.typeDefs`.  Each item in that
-hash is an object with a `type` member and a `validate` method.  The
-`type` member is an object that matches what goes in the type list.  The
-`validate` method is a function that gets called with `validate(data,
-key, val)`.  Validate methods should assign `data[key]` to the valid
-value of `val` if it can be handled properly, or return boolean
-`false` if it cannot.
-
-You can also call `nopt.clean(data, types, typeDefs)` to clean up a
-config object and remove its invalid properties.
-
-## Error Handling
-
-By default, nopt outputs a warning to standard error when invalid
-options are found.  You can change this behavior by assigning a method
-to `nopt.invalidHandler`.  This method will be called with
-the offending `nopt.invalidHandler(key, val, types)`.
-
-If no `nopt.invalidHandler` is assigned, then it will console.error
-its whining.  If it is assigned to boolean `false` then the warning is
-suppressed.
-
-## Abbreviations
-
-Yes, they are supported.  If you define options like this:
-
-```javascript
-{ "foolhardyelephants" : Boolean
-, "pileofmonkeys" : Boolean }
-```
-
-Then this will work:
-
-```bash
-node program.js --foolhar --pil
-node program.js --no-f --pileofmon
-# etc.
-```
-
-## Shorthands
-
-Shorthands are a hash of shorter option names to a snippet of args that
-they expand to.
-
-If multiple one-character shorthands are all combined, and the
-combination does not unambiguously match any other option or shorthand,
-then they will be broken up into their constituent parts.  For example:
-
-```json
-{ "s" : ["--loglevel", "silent"]
-, "g" : "--global"
-, "f" : "--force"
-, "p" : "--parseable"
-, "l" : "--long"
-}
-```
-
-```bash
-npm ls -sgflp
-# just like doing this:
-npm ls --loglevel silent --global --force --long --parseable
-```
-
-## The Rest of the args
-
-The config object returned by nopt is given a special member called
-`argv`, which is an object with the following fields:
-
-* `remain`: The remaining args after all the parsing has occurred.
-* `original`: The args as they originally appeared.
-* `cooked`: The args after flags and shorthands are expanded.
-
-## Slicing
-
-Node programs are called with more or less the exact argv as it appears
-in C land, after the v8 and node-specific options have been plucked off.
-As such, `argv[0]` is always `node` and `argv[1]` is always the
-JavaScript program being run.
-
-That's usually not very useful to you.  So they're sliced off by
-default.  If you want them, then you can pass in `0` as the last
-argument, or any other number that you'd like to slice off the start of
-the list.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/bin/nopt.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/bin/nopt.js b/blackberry10/node_modules/plugman/node_modules/nopt/bin/nopt.js
deleted file mode 100755
index df90c72..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/bin/nopt.js
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env node
-var nopt = require("../lib/nopt")
-  , types = { num: Number
-            , bool: Boolean
-            , help: Boolean
-            , list: Array
-            , "num-list": [Number, Array]
-            , "str-list": [String, Array]
-            , "bool-list": [Boolean, Array]
-            , str: String }
-  , shorthands = { s: [ "--str", "astring" ]
-                 , b: [ "--bool" ]
-                 , nb: [ "--no-bool" ]
-                 , tft: [ "--bool-list", "--no-bool-list", "--bool-list", "true" ]
-                 , "?": ["--help"]
-                 , h: ["--help"]
-                 , H: ["--help"]
-                 , n: [ "--num", "125" ] }
-  , parsed = nopt( types
-                 , shorthands
-                 , process.argv
-                 , 2 )
-
-console.log("parsed", parsed)
-
-if (parsed.help) {
-  console.log("")
-  console.log("nopt cli tester")
-  console.log("")
-  console.log("types")
-  console.log(Object.keys(types).map(function M (t) {
-    var type = types[t]
-    if (Array.isArray(type)) {
-      return [t, type.map(function (type) { return type.name })]
-    }
-    return [t, type && type.name]
-  }).reduce(function (s, i) {
-    s[i[0]] = i[1]
-    return s
-  }, {}))
-  console.log("")
-  console.log("shorthands")
-  console.log(shorthands)
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/examples/my-program.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/examples/my-program.js b/blackberry10/node_modules/plugman/node_modules/nopt/examples/my-program.js
deleted file mode 100755
index 142447e..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/examples/my-program.js
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/env node
-
-//process.env.DEBUG_NOPT = 1
-
-// my-program.js
-var nopt = require("../lib/nopt")
-  , Stream = require("stream").Stream
-  , path = require("path")
-  , knownOpts = { "foo" : [String, null]
-                , "bar" : [Stream, Number]
-                , "baz" : path
-                , "bloo" : [ "big", "medium", "small" ]
-                , "flag" : Boolean
-                , "pick" : Boolean
-                }
-  , shortHands = { "foofoo" : ["--foo", "Mr. Foo"]
-                 , "b7" : ["--bar", "7"]
-                 , "m" : ["--bloo", "medium"]
-                 , "p" : ["--pick"]
-                 , "f" : ["--flag", "true"]
-                 , "g" : ["--flag"]
-                 , "s" : "--flag"
-                 }
-             // everything is optional.
-             // knownOpts and shorthands default to {}
-             // arg list defaults to process.argv
-             // slice defaults to 2
-  , parsed = nopt(knownOpts, shortHands, process.argv, 2)
-
-console.log("parsed =\n"+ require("util").inspect(parsed))

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/lib/nopt.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/lib/nopt.js b/blackberry10/node_modules/plugman/node_modules/nopt/lib/nopt.js
deleted file mode 100644
index ff802da..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/lib/nopt.js
+++ /dev/null
@@ -1,552 +0,0 @@
-// info about each config option.
-
-var debug = process.env.DEBUG_NOPT || process.env.NOPT_DEBUG
-  ? function () { console.error.apply(console, arguments) }
-  : function () {}
-
-var url = require("url")
-  , path = require("path")
-  , Stream = require("stream").Stream
-  , abbrev = require("abbrev")
-
-module.exports = exports = nopt
-exports.clean = clean
-
-exports.typeDefs =
-  { String  : { type: String,  validate: validateString  }
-  , Boolean : { type: Boolean, validate: validateBoolean }
-  , url     : { type: url,     validate: validateUrl     }
-  , Number  : { type: Number,  validate: validateNumber  }
-  , path    : { type: path,    validate: validatePath    }
-  , Stream  : { type: Stream,  validate: validateStream  }
-  , Date    : { type: Date,    validate: validateDate    }
-  }
-
-function nopt (types, shorthands, args, slice) {
-  args = args || process.argv
-  types = types || {}
-  shorthands = shorthands || {}
-  if (typeof slice !== "number") slice = 2
-
-  debug(types, shorthands, args, slice)
-
-  args = args.slice(slice)
-  var data = {}
-    , key
-    , remain = []
-    , cooked = args
-    , original = args.slice(0)
-
-  parse(args, data, remain, types, shorthands)
-  // now data is full
-  clean(data, types, exports.typeDefs)
-  data.argv = {remain:remain,cooked:cooked,original:original}
-  data.argv.toString = function () {
-    return this.original.map(JSON.stringify).join(" ")
-  }
-  return data
-}
-
-function clean (data, types, typeDefs) {
-  typeDefs = typeDefs || exports.typeDefs
-  var remove = {}
-    , typeDefault = [false, true, null, String, Number]
-
-  Object.keys(data).forEach(function (k) {
-    if (k === "argv") return
-    var val = data[k]
-      , isArray = Array.isArray(val)
-      , type = types[k]
-    if (!isArray) val = [val]
-    if (!type) type = typeDefault
-    if (type === Array) type = typeDefault.concat(Array)
-    if (!Array.isArray(type)) type = [type]
-
-    debug("val=%j", val)
-    debug("types=", type)
-    val = val.map(function (val) {
-      // if it's an unknown value, then parse false/true/null/numbers/dates
-      if (typeof val === "string") {
-        debug("string %j", val)
-        val = val.trim()
-        if ((val === "null" && ~type.indexOf(null))
-            || (val === "true" &&
-               (~type.indexOf(true) || ~type.indexOf(Boolean)))
-            || (val === "false" &&
-               (~type.indexOf(false) || ~type.indexOf(Boolean)))) {
-          val = JSON.parse(val)
-          debug("jsonable %j", val)
-        } else if (~type.indexOf(Number) && !isNaN(val)) {
-          debug("convert to number", val)
-          val = +val
-        } else if (~type.indexOf(Date) && !isNaN(Date.parse(val))) {
-          debug("convert to date", val)
-          val = new Date(val)
-        }
-      }
-
-      if (!types.hasOwnProperty(k)) {
-        return val
-      }
-
-      // allow `--no-blah` to set 'blah' to null if null is allowed
-      if (val === false && ~type.indexOf(null) &&
-          !(~type.indexOf(false) || ~type.indexOf(Boolean))) {
-        val = null
-      }
-
-      var d = {}
-      d[k] = val
-      debug("prevalidated val", d, val, types[k])
-      if (!validate(d, k, val, types[k], typeDefs)) {
-        if (exports.invalidHandler) {
-          exports.invalidHandler(k, val, types[k], data)
-        } else if (exports.invalidHandler !== false) {
-          debug("invalid: "+k+"="+val, types[k])
-        }
-        return remove
-      }
-      debug("validated val", d, val, types[k])
-      return d[k]
-    }).filter(function (val) { return val !== remove })
-
-    if (!val.length) delete data[k]
-    else if (isArray) {
-      debug(isArray, data[k], val)
-      data[k] = val
-    } else data[k] = val[0]
-
-    debug("k=%s val=%j", k, val, data[k])
-  })
-}
-
-function validateString (data, k, val) {
-  data[k] = String(val)
-}
-
-function validatePath (data, k, val) {
-  data[k] = path.resolve(String(val))
-  return true
-}
-
-function validateNumber (data, k, val) {
-  debug("validate Number %j %j %j", k, val, isNaN(val))
-  if (isNaN(val)) return false
-  data[k] = +val
-}
-
-function validateDate (data, k, val) {
-  debug("validate Date %j %j %j", k, val, Date.parse(val))
-  var s = Date.parse(val)
-  if (isNaN(s)) return false
-  data[k] = new Date(val)
-}
-
-function validateBoolean (data, k, val) {
-  if (val instanceof Boolean) val = val.valueOf()
-  else if (typeof val === "string") {
-    if (!isNaN(val)) val = !!(+val)
-    else if (val === "null" || val === "false") val = false
-    else val = true
-  } else val = !!val
-  data[k] = val
-}
-
-function validateUrl (data, k, val) {
-  val = url.parse(String(val))
-  if (!val.host) return false
-  data[k] = val.href
-}
-
-function validateStream (data, k, val) {
-  if (!(val instanceof Stream)) return false
-  data[k] = val
-}
-
-function validate (data, k, val, type, typeDefs) {
-  // arrays are lists of types.
-  if (Array.isArray(type)) {
-    for (var i = 0, l = type.length; i < l; i ++) {
-      if (type[i] === Array) continue
-      if (validate(data, k, val, type[i], typeDefs)) return true
-    }
-    delete data[k]
-    return false
-  }
-
-  // an array of anything?
-  if (type === Array) return true
-
-  // NaN is poisonous.  Means that something is not allowed.
-  if (type !== type) {
-    debug("Poison NaN", k, val, type)
-    delete data[k]
-    return false
-  }
-
-  // explicit list of values
-  if (val === type) {
-    debug("Explicitly allowed %j", val)
-    // if (isArray) (data[k] = data[k] || []).push(val)
-    // else data[k] = val
-    data[k] = val
-    return true
-  }
-
-  // now go through the list of typeDefs, validate against each one.
-  var ok = false
-    , types = Object.keys(typeDefs)
-  for (var i = 0, l = types.length; i < l; i ++) {
-    debug("test type %j %j %j", k, val, types[i])
-    var t = typeDefs[types[i]]
-    if (t && type === t.type) {
-      var d = {}
-      ok = false !== t.validate(d, k, val)
-      val = d[k]
-      if (ok) {
-        // if (isArray) (data[k] = data[k] || []).push(val)
-        // else data[k] = val
-        data[k] = val
-        break
-      }
-    }
-  }
-  debug("OK? %j (%j %j %j)", ok, k, val, types[i])
-
-  if (!ok) delete data[k]
-  return ok
-}
-
-function parse (args, data, remain, types, shorthands) {
-  debug("parse", args, data, remain)
-
-  var key = null
-    , abbrevs = abbrev(Object.keys(types))
-    , shortAbbr = abbrev(Object.keys(shorthands))
-
-  for (var i = 0; i < args.length; i ++) {
-    var arg = args[i]
-    debug("arg", arg)
-
-    if (arg.match(/^-{2,}$/)) {
-      // done with keys.
-      // the rest are args.
-      remain.push.apply(remain, args.slice(i + 1))
-      args[i] = "--"
-      break
-    }
-    if (arg.charAt(0) === "-") {
-      if (arg.indexOf("=") !== -1) {
-        var v = arg.split("=")
-        arg = v.shift()
-        v = v.join("=")
-        args.splice.apply(args, [i, 1].concat([arg, v]))
-      }
-      // see if it's a shorthand
-      // if so, splice and back up to re-parse it.
-      var shRes = resolveShort(arg, shorthands, shortAbbr, abbrevs)
-      debug("arg=%j shRes=%j", arg, shRes)
-      if (shRes) {
-        debug(arg, shRes)
-        args.splice.apply(args, [i, 1].concat(shRes))
-        if (arg !== shRes[0]) {
-          i --
-          continue
-        }
-      }
-      arg = arg.replace(/^-+/, "")
-      var no = false
-      while (arg.toLowerCase().indexOf("no-") === 0) {
-        no = !no
-        arg = arg.substr(3)
-      }
-
-      if (abbrevs[arg]) arg = abbrevs[arg]
-
-      var isArray = types[arg] === Array ||
-        Array.isArray(types[arg]) && types[arg].indexOf(Array) !== -1
-
-      var val
-        , la = args[i + 1]
-
-      var isBool = no ||
-        types[arg] === Boolean ||
-        Array.isArray(types[arg]) && types[arg].indexOf(Boolean) !== -1 ||
-        (la === "false" &&
-         (types[arg] === null ||
-          Array.isArray(types[arg]) && ~types[arg].indexOf(null)))
-
-      if (isBool) {
-        // just set and move along
-        val = !no
-        // however, also support --bool true or --bool false
-        if (la === "true" || la === "false") {
-          val = JSON.parse(la)
-          la = null
-          if (no) val = !val
-          i ++
-        }
-
-        // also support "foo":[Boolean, "bar"] and "--foo bar"
-        if (Array.isArray(types[arg]) && la) {
-          if (~types[arg].indexOf(la)) {
-            // an explicit type
-            val = la
-            i ++
-          } else if ( la === "null" && ~types[arg].indexOf(null) ) {
-            // null allowed
-            val = null
-            i ++
-          } else if ( !la.match(/^-{2,}[^-]/) &&
-                      !isNaN(la) &&
-                      ~types[arg].indexOf(Number) ) {
-            // number
-            val = +la
-            i ++
-          } else if ( !la.match(/^-[^-]/) && ~types[arg].indexOf(String) ) {
-            // string
-            val = la
-            i ++
-          }
-        }
-
-        if (isArray) (data[arg] = data[arg] || []).push(val)
-        else data[arg] = val
-
-        continue
-      }
-
-      if (la && la.match(/^-{2,}$/)) {
-        la = undefined
-        i --
-      }
-
-      val = la === undefined ? true : la
-      if (isArray) (data[arg] = data[arg] || []).push(val)
-      else data[arg] = val
-
-      i ++
-      continue
-    }
-    remain.push(arg)
-  }
-}
-
-function resolveShort (arg, shorthands, shortAbbr, abbrevs) {
-  // handle single-char shorthands glommed together, like
-  // npm ls -glp, but only if there is one dash, and only if
-  // all of the chars are single-char shorthands, and it's
-  // not a match to some other abbrev.
-  arg = arg.replace(/^-+/, '')
-  if (abbrevs[arg] && !shorthands[arg]) {
-    return null
-  }
-  if (shortAbbr[arg]) {
-    arg = shortAbbr[arg]
-  } else {
-    var singles = shorthands.___singles
-    if (!singles) {
-      singles = Object.keys(shorthands).filter(function (s) {
-        return s.length === 1
-      }).reduce(function (l,r) { l[r] = true ; return l }, {})
-      shorthands.___singles = singles
-    }
-    var chrs = arg.split("").filter(function (c) {
-      return singles[c]
-    })
-    if (chrs.join("") === arg) return chrs.map(function (c) {
-      return shorthands[c]
-    }).reduce(function (l, r) {
-      return l.concat(r)
-    }, [])
-  }
-
-  if (shorthands[arg] && !Array.isArray(shorthands[arg])) {
-    shorthands[arg] = shorthands[arg].split(/\s+/)
-  }
-  return shorthands[arg]
-}
-
-if (module === require.main) {
-var assert = require("assert")
-  , util = require("util")
-
-  , shorthands =
-    { s : ["--loglevel", "silent"]
-    , d : ["--loglevel", "info"]
-    , dd : ["--loglevel", "verbose"]
-    , ddd : ["--loglevel", "silly"]
-    , noreg : ["--no-registry"]
-    , reg : ["--registry"]
-    , "no-reg" : ["--no-registry"]
-    , silent : ["--loglevel", "silent"]
-    , verbose : ["--loglevel", "verbose"]
-    , h : ["--usage"]
-    , H : ["--usage"]
-    , "?" : ["--usage"]
-    , help : ["--usage"]
-    , v : ["--version"]
-    , f : ["--force"]
-    , desc : ["--description"]
-    , "no-desc" : ["--no-description"]
-    , "local" : ["--no-global"]
-    , l : ["--long"]
-    , p : ["--parseable"]
-    , porcelain : ["--parseable"]
-    , g : ["--global"]
-    }
-
-  , types =
-    { aoa: Array
-    , nullstream: [null, Stream]
-    , date: Date
-    , str: String
-    , browser : String
-    , cache : path
-    , color : ["always", Boolean]
-    , depth : Number
-    , description : Boolean
-    , dev : Boolean
-    , editor : path
-    , force : Boolean
-    , global : Boolean
-    , globalconfig : path
-    , group : [String, Number]
-    , gzipbin : String
-    , logfd : [Number, Stream]
-    , loglevel : ["silent","win","error","warn","info","verbose","silly"]
-    , long : Boolean
-    , "node-version" : [false, String]
-    , npaturl : url
-    , npat : Boolean
-    , "onload-script" : [false, String]
-    , outfd : [Number, Stream]
-    , parseable : Boolean
-    , pre: Boolean
-    , prefix: path
-    , proxy : url
-    , "rebuild-bundle" : Boolean
-    , registry : url
-    , searchopts : String
-    , searchexclude: [null, String]
-    , shell : path
-    , t: [Array, String]
-    , tag : String
-    , tar : String
-    , tmp : path
-    , "unsafe-perm" : Boolean
-    , usage : Boolean
-    , user : String
-    , username : String
-    , userconfig : path
-    , version : Boolean
-    , viewer: path
-    , _exit : Boolean
-    }
-
-; [["-v", {version:true}, []]
-  ,["---v", {version:true}, []]
-  ,["ls -s --no-reg connect -d",
-    {loglevel:"info",registry:null},["ls","connect"]]
-  ,["ls ---s foo",{loglevel:"silent"},["ls","foo"]]
-  ,["ls --registry blargle", {}, ["ls"]]
-  ,["--no-registry", {registry:null}, []]
-  ,["--no-color true", {color:false}, []]
-  ,["--no-color false", {color:true}, []]
-  ,["--no-color", {color:false}, []]
-  ,["--color false", {color:false}, []]
-  ,["--color --logfd 7", {logfd:7,color:true}, []]
-  ,["--color=true", {color:true}, []]
-  ,["--logfd=10", {logfd:10}, []]
-  ,["--tmp=/tmp -tar=gtar",{tmp:"/tmp",tar:"gtar"},[]]
-  ,["--tmp=tmp -tar=gtar",
-    {tmp:path.resolve(process.cwd(), "tmp"),tar:"gtar"},[]]
-  ,["--logfd x", {}, []]
-  ,["a -true -- -no-false", {true:true},["a","-no-false"]]
-  ,["a -no-false", {false:false},["a"]]
-  ,["a -no-no-true", {true:true}, ["a"]]
-  ,["a -no-no-no-false", {false:false}, ["a"]]
-  ,["---NO-no-No-no-no-no-nO-no-no"+
-    "-No-no-no-no-no-no-no-no-no"+
-    "-no-no-no-no-NO-NO-no-no-no-no-no-no"+
-    "-no-body-can-do-the-boogaloo-like-I-do"
-   ,{"body-can-do-the-boogaloo-like-I-do":false}, []]
-  ,["we are -no-strangers-to-love "+
-    "--you-know the-rules --and so-do-i "+
-    "---im-thinking-of=a-full-commitment "+
-    "--no-you-would-get-this-from-any-other-guy "+
-    "--no-gonna-give-you-up "+
-    "-no-gonna-let-you-down=true "+
-    "--no-no-gonna-run-around false "+
-    "--desert-you=false "+
-    "--make-you-cry false "+
-    "--no-tell-a-lie "+
-    "--no-no-and-hurt-you false"
-   ,{"strangers-to-love":false
-    ,"you-know":"the-rules"
-    ,"and":"so-do-i"
-    ,"you-would-get-this-from-any-other-guy":false
-    ,"gonna-give-you-up":false
-    ,"gonna-let-you-down":false
-    ,"gonna-run-around":false
-    ,"desert-you":false
-    ,"make-you-cry":false
-    ,"tell-a-lie":false
-    ,"and-hurt-you":false
-    },["we", "are"]]
-  ,["-t one -t two -t three"
-   ,{t: ["one", "two", "three"]}
-   ,[]]
-  ,["-t one -t null -t three four five null"
-   ,{t: ["one", "null", "three"]}
-   ,["four", "five", "null"]]
-  ,["-t foo"
-   ,{t:["foo"]}
-   ,[]]
-  ,["--no-t"
-   ,{t:["false"]}
-   ,[]]
-  ,["-no-no-t"
-   ,{t:["true"]}
-   ,[]]
-  ,["-aoa one -aoa null -aoa 100"
-   ,{aoa:["one", null, 100]}
-   ,[]]
-  ,["-str 100"
-   ,{str:"100"}
-   ,[]]
-  ,["--color always"
-   ,{color:"always"}
-   ,[]]
-  ,["--no-nullstream"
-   ,{nullstream:null}
-   ,[]]
-  ,["--nullstream false"
-   ,{nullstream:null}
-   ,[]]
-  ,["--notadate 2011-01-25"
-   ,{notadate: "2011-01-25"}
-   ,[]]
-  ,["--date 2011-01-25"
-   ,{date: new Date("2011-01-25")}
-   ,[]]
-  ].forEach(function (test) {
-    var argv = test[0].split(/\s+/)
-      , opts = test[1]
-      , rem = test[2]
-      , actual = nopt(types, shorthands, argv, 0)
-      , parsed = actual.argv
-    delete actual.argv
-    console.log(util.inspect(actual, false, 2, true), parsed.remain)
-    for (var i in opts) {
-      var e = JSON.stringify(opts[i])
-        , a = JSON.stringify(actual[i] === undefined ? null : actual[i])
-      if (e && typeof e === "object") {
-        assert.deepEqual(e, a)
-      } else {
-        assert.equal(e, a)
-      }
-    }
-    assert.deepEqual(rem, parsed.remain)
-  })
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/LICENSE b/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/LICENSE
deleted file mode 100644
index 05a4010..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/README.md b/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/README.md
deleted file mode 100644
index 99746fe..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# abbrev-js
-
-Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).
-
-Usage:
-
-    var abbrev = require("abbrev");
-    abbrev("foo", "fool", "folding", "flop");
-    
-    // returns:
-    { fl: 'flop'
-    , flo: 'flop'
-    , flop: 'flop'
-    , fol: 'folding'
-    , fold: 'folding'
-    , foldi: 'folding'
-    , foldin: 'folding'
-    , folding: 'folding'
-    , foo: 'foo'
-    , fool: 'fool'
-    }
-
-This is handy for command-line scripts, or other cases where you want to be able to accept shorthands.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/lib/abbrev.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/lib/abbrev.js b/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/lib/abbrev.js
deleted file mode 100644
index bee4132..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/lib/abbrev.js
+++ /dev/null
@@ -1,111 +0,0 @@
-
-module.exports = exports = abbrev.abbrev = abbrev
-
-abbrev.monkeyPatch = monkeyPatch
-
-function monkeyPatch () {
-  Object.defineProperty(Array.prototype, 'abbrev', {
-    value: function () { return abbrev(this) },
-    enumerable: false, configurable: true, writable: true
-  })
-
-  Object.defineProperty(Object.prototype, 'abbrev', {
-    value: function () { return abbrev(Object.keys(this)) },
-    enumerable: false, configurable: true, writable: true
-  })
-}
-
-function abbrev (list) {
-  if (arguments.length !== 1 || !Array.isArray(list)) {
-    list = Array.prototype.slice.call(arguments, 0)
-  }
-  for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
-    args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
-  }
-
-  // sort them lexicographically, so that they're next to their nearest kin
-  args = args.sort(lexSort)
-
-  // walk through each, seeing how much it has in common with the next and previous
-  var abbrevs = {}
-    , prev = ""
-  for (var i = 0, l = args.length ; i < l ; i ++) {
-    var current = args[i]
-      , next = args[i + 1] || ""
-      , nextMatches = true
-      , prevMatches = true
-    if (current === next) continue
-    for (var j = 0, cl = current.length ; j < cl ; j ++) {
-      var curChar = current.charAt(j)
-      nextMatches = nextMatches && curChar === next.charAt(j)
-      prevMatches = prevMatches && curChar === prev.charAt(j)
-      if (!nextMatches && !prevMatches) {
-        j ++
-        break
-      }
-    }
-    prev = current
-    if (j === cl) {
-      abbrevs[current] = current
-      continue
-    }
-    for (var a = current.substr(0, j) ; j <= cl ; j ++) {
-      abbrevs[a] = current
-      a += current.charAt(j)
-    }
-  }
-  return abbrevs
-}
-
-function lexSort (a, b) {
-  return a === b ? 0 : a > b ? 1 : -1
-}
-
-
-// tests
-if (module === require.main) {
-
-var assert = require("assert")
-var util = require("util")
-
-console.log("running tests")
-function test (list, expect) {
-  var actual = abbrev(list)
-  assert.deepEqual(actual, expect,
-    "abbrev("+util.inspect(list)+") === " + util.inspect(expect) + "\n"+
-    "actual: "+util.inspect(actual))
-  actual = abbrev.apply(exports, list)
-  assert.deepEqual(abbrev.apply(exports, list), expect,
-    "abbrev("+list.map(JSON.stringify).join(",")+") === " + util.inspect(expect) + "\n"+
-    "actual: "+util.inspect(actual))
-}
-
-test([ "ruby", "ruby", "rules", "rules", "rules" ],
-{ rub: 'ruby'
-, ruby: 'ruby'
-, rul: 'rules'
-, rule: 'rules'
-, rules: 'rules'
-})
-test(["fool", "foom", "pool", "pope"],
-{ fool: 'fool'
-, foom: 'foom'
-, poo: 'pool'
-, pool: 'pool'
-, pop: 'pope'
-, pope: 'pope'
-})
-test(["a", "ab", "abc", "abcd", "abcde", "acde"],
-{ a: 'a'
-, ab: 'ab'
-, abc: 'abc'
-, abcd: 'abcd'
-, abcde: 'abcde'
-, ac: 'acde'
-, acd: 'acde'
-, acde: 'acde'
-})
-
-console.log("pass")
-
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/package.json b/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/package.json
deleted file mode 100644
index 55ed011..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/node_modules/abbrev/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "name": "abbrev",
-  "version": "1.0.4",
-  "description": "Like ruby's abbrev module, but in js",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me"
-  },
-  "main": "./lib/abbrev.js",
-  "scripts": {
-    "test": "node lib/abbrev.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/isaacs/abbrev-js"
-  },
-  "license": {
-    "type": "MIT",
-    "url": "https://github.com/isaacs/abbrev-js/raw/master/LICENSE"
-  },
-  "readme": "# abbrev-js\n\nJust like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).\n\nUsage:\n\n    var abbrev = require(\"abbrev\");\n    abbrev(\"foo\", \"fool\", \"folding\", \"flop\");\n    \n    // returns:\n    { fl: 'flop'\n    , flo: 'flop'\n    , flop: 'flop'\n    , fol: 'folding'\n    , fold: 'folding'\n    , foldi: 'folding'\n    , foldin: 'folding'\n    , folding: 'folding'\n    , foo: 'foo'\n    , fool: 'fool'\n    }\n\nThis is handy for command-line scripts, or other cases where you want to be able to accept shorthands.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/abbrev-js/issues"
-  },
-  "_id": "abbrev@1.0.4",
-  "_from": "abbrev@1"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/nopt/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/nopt/package.json b/blackberry10/node_modules/plugman/node_modules/nopt/package.json
deleted file mode 100644
index 078f928..0000000
--- a/blackberry10/node_modules/plugman/node_modules/nopt/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "name": "nopt",
-  "version": "1.0.10",
-  "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "main": "lib/nopt.js",
-  "scripts": {
-    "test": "node lib/nopt.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/isaacs/nopt"
-  },
-  "bin": {
-    "nopt": "./bin/nopt.js"
-  },
-  "license": {
-    "type": "MIT",
-    "url": "https://github.com/isaacs/nopt/raw/master/LICENSE"
-  },
-  "dependencies": {
-    "abbrev": "1"
-  },
-  "readme": "If you want to write an option parser, and have it be good, there are\ntwo ways to do it.  The Right Way, and the Wrong Way.\n\nThe Wrong Way is to sit down and write an option parser.  We've all done\nthat.\n\nThe Right Way is to write some complex configurable program with so many\noptions that you go half-insane just trying to manage them all, and put\nit off with duct-tape solutions until you see exactly to the core of the\nproblem, and finally snap and write an awesome option parser.\n\nIf you want to write an option parser, don't write an option parser.\nWrite a package manager, or a source control system, or a service\nrestarter, or an operating system.  You probably won't end up with a\ngood one of those, but if you don't give up, and you are relentless and\ndiligent enough in your procrastination, you may just end up with a very\nnice option parser.\n\n## USAGE\n\n    // my-program.js\n    var nopt = require(\"nopt\")\n      , Stream = require(\"stream\").Strea
 m\n      , path = require(\"path\")\n      , knownOpts = { \"foo\" : [String, null]\n                    , \"bar\" : [Stream, Number]\n                    , \"baz\" : path\n                    , \"bloo\" : [ \"big\", \"medium\", \"small\" ]\n                    , \"flag\" : Boolean\n                    , \"pick\" : Boolean\n                    , \"many\" : [String, Array]\n                    }\n      , shortHands = { \"foofoo\" : [\"--foo\", \"Mr. Foo\"]\n                     , \"b7\" : [\"--bar\", \"7\"]\n                     , \"m\" : [\"--bloo\", \"medium\"]\n                     , \"p\" : [\"--pick\"]\n                     , \"f\" : [\"--flag\"]\n                     }\n                 // everything is optional.\n                 // knownOpts and shorthands default to {}\n                 // arg list defaults to process.argv\n                 // slice defaults to 2\n      , parsed = nopt(knownOpts, shortHands, process.argv, 2)\n    console.log(parsed)\n\nThis would give you su
 pport for any of the following:\n\n```bash\n$ node my-program.js --foo \"blerp\" --no-flag\n{ \"foo\" : \"blerp\", \"flag\" : false }\n\n$ node my-program.js ---bar 7 --foo \"Mr. Hand\" --flag\n{ bar: 7, foo: \"Mr. Hand\", flag: true }\n\n$ node my-program.js --foo \"blerp\" -f -----p\n{ foo: \"blerp\", flag: true, pick: true }\n\n$ node my-program.js -fp --foofoo\n{ foo: \"Mr. Foo\", flag: true, pick: true }\n\n$ node my-program.js --foofoo -- -fp  # -- stops the flag parsing.\n{ foo: \"Mr. Foo\", argv: { remain: [\"-fp\"] } }\n\n$ node my-program.js --blatzk 1000 -fp # unknown opts are ok.\n{ blatzk: 1000, flag: true, pick: true }\n\n$ node my-program.js --blatzk true -fp # but they need a value\n{ blatzk: true, flag: true, pick: true }\n\n$ node my-program.js --no-blatzk -fp # unless they start with \"no-\"\n{ blatzk: false, flag: true, pick: true }\n\n$ node my-program.js --baz b/a/z # known paths are resolved.\n{ baz: \"/Users/isaacs/b/a/z\" }\n\n# if Array is one of the types,
  then it can take many\n# values, and will always be an array.  The other types provided\n# specify what types are allowed in the list.\n\n$ node my-program.js --many 1 --many null --many foo\n{ many: [\"1\", \"null\", \"foo\"] }\n\n$ node my-program.js --many foo\n{ many: [\"foo\"] }\n```\n\nRead the tests at the bottom of `lib/nopt.js` for more examples of\nwhat this puppy can do.\n\n## Types\n\nThe following types are supported, and defined on `nopt.typeDefs`\n\n* String: A normal string.  No parsing is done.\n* path: A file system path.  Gets resolved against cwd if not absolute.\n* url: A url.  If it doesn't parse, it isn't accepted.\n* Number: Must be numeric.\n* Date: Must parse as a date. If it does, and `Date` is one of the options,\n  then it will return a Date object, not a string.\n* Boolean: Must be either `true` or `false`.  If an option is a boolean,\n  then it does not need a value, and its presence will imply `true` as\n  the value.  To negate boolean flags, do `--n
 o-whatever` or `--whatever\n  false`\n* NaN: Means that the option is strictly not allowed.  Any value will\n  fail.\n* Stream: An object matching the \"Stream\" class in node.  Valuable\n  for use when validating programmatically.  (npm uses this to let you\n  supply any WriteStream on the `outfd` and `logfd` config options.)\n* Array: If `Array` is specified as one of the types, then the value\n  will be parsed as a list of options.  This means that multiple values\n  can be specified, and that the value will always be an array.\n\nIf a type is an array of values not on this list, then those are\nconsidered valid values.  For instance, in the example above, the\n`--bloo` option can only be one of `\"big\"`, `\"medium\"`, or `\"small\"`,\nand any other value will be rejected.\n\nWhen parsing unknown fields, `\"true\"`, `\"false\"`, and `\"null\"` will be\ninterpreted as their JavaScript equivalents, and numeric values will be\ninterpreted as a number.\n\nYou can also mix types and 
 values, or multiple types, in a list.  For\ninstance `{ blah: [Number, null] }` would allow a value to be set to\neither a Number or null.\n\nTo define a new type, add it to `nopt.typeDefs`.  Each item in that\nhash is an object with a `type` member and a `validate` method.  The\n`type` member is an object that matches what goes in the type list.  The\n`validate` method is a function that gets called with `validate(data,\nkey, val)`.  Validate methods should assign `data[key]` to the valid\nvalue of `val` if it can be handled properly, or return boolean\n`false` if it cannot.\n\nYou can also call `nopt.clean(data, types, typeDefs)` to clean up a\nconfig object and remove its invalid properties.\n\n## Error Handling\n\nBy default, nopt outputs a warning to standard error when invalid\noptions are found.  You can change this behavior by assigning a method\nto `nopt.invalidHandler`.  This method will be called with\nthe offending `nopt.invalidHandler(key, val, types)`.\n\nIf no `nopt.i
 nvalidHandler` is assigned, then it will console.error\nits whining.  If it is assigned to boolean `false` then the warning is\nsuppressed.\n\n## Abbreviations\n\nYes, they are supported.  If you define options like this:\n\n```javascript\n{ \"foolhardyelephants\" : Boolean\n, \"pileofmonkeys\" : Boolean }\n```\n\nThen this will work:\n\n```bash\nnode program.js --foolhar --pil\nnode program.js --no-f --pileofmon\n# etc.\n```\n\n## Shorthands\n\nShorthands are a hash of shorter option names to a snippet of args that\nthey expand to.\n\nIf multiple one-character shorthands are all combined, and the\ncombination does not unambiguously match any other option or shorthand,\nthen they will be broken up into their constituent parts.  For example:\n\n```json\n{ \"s\" : [\"--loglevel\", \"silent\"]\n, \"g\" : \"--global\"\n, \"f\" : \"--force\"\n, \"p\" : \"--parseable\"\n, \"l\" : \"--long\"\n}\n```\n\n```bash\nnpm ls -sgflp\n# just like doing this:\nnpm ls --loglevel silent --global --for
 ce --long --parseable\n```\n\n## The Rest of the args\n\nThe config object returned by nopt is given a special member called\n`argv`, which is an object with the following fields:\n\n* `remain`: The remaining args after all the parsing has occurred.\n* `original`: The args as they originally appeared.\n* `cooked`: The args after flags and shorthands are expanded.\n\n## Slicing\n\nNode programs are called with more or less the exact argv as it appears\nin C land, after the v8 and node-specific options have been plucked off.\nAs such, `argv[0]` is always `node` and `argv[1]` is always the\nJavaScript program being run.\n\nThat's usually not very useful to you.  So they're sliced off by\ndefault.  If you want them, then you can pass in `0` as the last\nargument, or any other number that you'd like to slice off the start of\nthe list.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/nopt/issues"
-  },
-  "_id": "nopt@1.0.10",
-  "_from": "nopt@1.0.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/osenv/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/osenv/LICENSE b/blackberry10/node_modules/plugman/node_modules/osenv/LICENSE
deleted file mode 100644
index 74489e2..0000000
--- a/blackberry10/node_modules/plugman/node_modules/osenv/LICENSE
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) Isaac Z. Schlueter
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/osenv/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/osenv/README.md b/blackberry10/node_modules/plugman/node_modules/osenv/README.md
deleted file mode 100644
index 08fd900..0000000
--- a/blackberry10/node_modules/plugman/node_modules/osenv/README.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# osenv
-
-Look up environment settings specific to different operating systems.
-
-## Usage
-
-```javascript
-var osenv = require('osenv')
-var path = osenv.path()
-var user = osenv.user()
-// etc.
-
-// Some things are not reliably in the env, and have a fallback command:
-var h = osenv.hostname(function (er, hostname) {
-  h = hostname
-})
-// This will still cause it to be memoized, so calling osenv.hostname()
-// is now an immediate operation.
-
-// You can always send a cb, which will get called in the nextTick
-// if it's been memoized, or wait for the fallback data if it wasn't
-// found in the environment.
-osenv.hostname(function (er, hostname) {
-  if (er) console.error('error looking up hostname')
-  else console.log('this machine calls itself %s', hostname)
-})
-```
-
-## osenv.hostname()
-
-The machine name.  Calls `hostname` if not found.
-
-## osenv.user()
-
-The currently logged-in user.  Calls `whoami` if not found.
-
-## osenv.prompt()
-
-Either PS1 on unix, or PROMPT on Windows.
-
-## osenv.tmpdir()
-
-The place where temporary files should be created.
-
-## osenv.home()
-
-No place like it.
-
-## osenv.path()
-
-An array of the places that the operating system will search for
-executables.
-
-## osenv.editor() 
-
-Return the executable name of the editor program.  This uses the EDITOR
-and VISUAL environment variables, and falls back to `vi` on Unix, or
-`notepad.exe` on Windows.
-
-## osenv.shell()
-
-The SHELL on Unix, which Windows calls the ComSpec.  Defaults to 'bash'
-or 'cmd'.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/osenv/osenv.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/osenv/osenv.js b/blackberry10/node_modules/plugman/node_modules/osenv/osenv.js
deleted file mode 100644
index e3367a7..0000000
--- a/blackberry10/node_modules/plugman/node_modules/osenv/osenv.js
+++ /dev/null
@@ -1,80 +0,0 @@
-var isWindows = process.platform === 'win32'
-var windir = isWindows ? process.env.windir || 'C:\\Windows' : null
-var path = require('path')
-var exec = require('child_process').exec
-
-// looking up envs is a bit costly.
-// Also, sometimes we want to have a fallback
-// Pass in a callback to wait for the fallback on failures
-// After the first lookup, always returns the same thing.
-function memo (key, lookup, fallback) {
-  var fell = false
-  var falling = false
-  exports[key] = function (cb) {
-    var val = lookup()
-    if (!val && !fell && !falling && fallback) {
-      fell = true
-      falling = true
-      exec(fallback, function (er, output, stderr) {
-        falling = false
-        if (er) return // oh well, we tried
-        val = output.trim()
-      })
-    }
-    exports[key] = function (cb) {
-      if (cb) process.nextTick(cb.bind(null, null, val))
-      return val
-    }
-    if (cb && !falling) process.nextTick(cb.bind(null, null, val))
-    return val
-  }
-}
-
-memo('user', function () {
-  return ( isWindows
-         ? process.env.USERDOMAIN + '\\' + process.env.USERNAME
-         : process.env.USER
-         )
-}, 'whoami')
-
-memo('prompt', function () {
-  return isWindows ? process.env.PROMPT : process.env.PS1
-})
-
-memo('hostname', function () {
-  return isWindows ? process.env.COMPUTERNAME : process.env.HOSTNAME
-}, 'hostname')
-
-memo('tmpdir', function () {
-  var t = isWindows ? 'temp' : 'tmp'
-  return process.env.TMPDIR ||
-         process.env.TMP ||
-         process.env.TEMP ||
-         ( exports.home() ? path.resolve(exports.home(), t)
-         : isWindows ? path.resolve(windir, t)
-         : '/tmp'
-         )
-})
-
-memo('home', function () {
-  return ( isWindows ? process.env.USERPROFILE
-         : process.env.HOME
-         )
-})
-
-memo('path', function () {
-  return (process.env.PATH ||
-          process.env.Path ||
-          process.env.path).split(isWindows ? ';' : ':')
-})
-
-memo('editor', function () {
-  return process.env.EDITOR ||
-         process.env.VISUAL ||
-         (isWindows ? 'notepad.exe' : 'vi')
-})
-
-memo('shell', function () {
-  return isWindows ? process.env.ComSpec || 'cmd'
-         : process.env.SHELL || 'bash'
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/osenv/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/osenv/package.json b/blackberry10/node_modules/plugman/node_modules/osenv/package.json
deleted file mode 100644
index cf442b1..0000000
--- a/blackberry10/node_modules/plugman/node_modules/osenv/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "name": "osenv",
-  "version": "0.0.3",
-  "main": "osenv.js",
-  "directories": {
-    "test": "test"
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "tap": "~0.2.5"
-  },
-  "scripts": {
-    "test": "tap test/*.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/osenv"
-  },
-  "keywords": [
-    "environment",
-    "variable",
-    "home",
-    "tmpdir",
-    "path",
-    "prompt",
-    "ps1"
-  ],
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "license": "BSD",
-  "description": "Look up environment settings specific to different operating systems",
-  "readme": "# osenv\n\nLook up environment settings specific to different operating systems.\n\n## Usage\n\n```javascript\nvar osenv = require('osenv')\nvar path = osenv.path()\nvar user = osenv.user()\n// etc.\n\n// Some things are not reliably in the env, and have a fallback command:\nvar h = osenv.hostname(function (er, hostname) {\n  h = hostname\n})\n// This will still cause it to be memoized, so calling osenv.hostname()\n// is now an immediate operation.\n\n// You can always send a cb, which will get called in the nextTick\n// if it's been memoized, or wait for the fallback data if it wasn't\n// found in the environment.\nosenv.hostname(function (er, hostname) {\n  if (er) console.error('error looking up hostname')\n  else console.log('this machine calls itself %s', hostname)\n})\n```\n\n## osenv.hostname()\n\nThe machine name.  Calls `hostname` if not found.\n\n## osenv.user()\n\nThe currently logged-in user.  Calls `whoami` if not found.\n\n## osenv.prompt()\n\nEither PS1 o
 n unix, or PROMPT on Windows.\n\n## osenv.tmpdir()\n\nThe place where temporary files should be created.\n\n## osenv.home()\n\nNo place like it.\n\n## osenv.path()\n\nAn array of the places that the operating system will search for\nexecutables.\n\n## osenv.editor() \n\nReturn the executable name of the editor program.  This uses the EDITOR\nand VISUAL environment variables, and falls back to `vi` on Unix, or\n`notepad.exe` on Windows.\n\n## osenv.shell()\n\nThe SHELL on Unix, which Windows calls the ComSpec.  Defaults to 'bash'\nor 'cmd'.\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/osenv/issues"
-  },
-  "_id": "osenv@0.0.3",
-  "_from": "osenv@0.0.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/osenv/test/unix.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/osenv/test/unix.js b/blackberry10/node_modules/plugman/node_modules/osenv/test/unix.js
deleted file mode 100644
index b72eb0b..0000000
--- a/blackberry10/node_modules/plugman/node_modules/osenv/test/unix.js
+++ /dev/null
@@ -1,76 +0,0 @@
-// only run this test on windows
-// pretending to be another platform is too hacky, since it breaks
-// how the underlying system looks up module paths and runs
-// child processes, and all that stuff is cached.
-if (process.platform === 'win32') {
-  console.log('TAP Version 13\n' +
-              '1..0\n' +
-              '# Skip unix tests, this is not unix\n')
-  return
-}
-var tap = require('tap')
-
-// like unix, but funny
-process.env.USER = 'sirUser'
-process.env.HOME = '/home/sirUser'
-process.env.HOSTNAME = 'my-machine'
-process.env.TMPDIR = '/tmpdir'
-process.env.TMP = '/tmp'
-process.env.TEMP = '/temp'
-process.env.PATH = '/opt/local/bin:/usr/local/bin:/usr/bin/:bin'
-process.env.PS1 = '(o_o) $ '
-process.env.EDITOR = 'edit'
-process.env.VISUAL = 'visualedit'
-process.env.SHELL = 'zsh'
-
-
-tap.test('basic unix sanity test', function (t) {
-  var osenv = require('../osenv.js')
-
-  t.equal(osenv.user(), process.env.USER)
-  t.equal(osenv.home(), process.env.HOME)
-  t.equal(osenv.hostname(), process.env.HOSTNAME)
-  t.same(osenv.path(), process.env.PATH.split(':'))
-  t.equal(osenv.prompt(), process.env.PS1)
-  t.equal(osenv.tmpdir(), process.env.TMPDIR)
-
-  // mildly evil, but it's for a test.
-  process.env.TMPDIR = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.tmpdir(), process.env.TMP)
-
-  process.env.TMP = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.tmpdir(), process.env.TEMP)
-
-  process.env.TEMP = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.tmpdir(), '/home/sirUser/tmp')
-
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  osenv.home = function () { return null }
-  t.equal(osenv.tmpdir(), '/tmp')
-
-  t.equal(osenv.editor(), 'edit')
-  process.env.EDITOR = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.editor(), 'visualedit')
-
-  process.env.VISUAL = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.editor(), 'vi')
-
-  t.equal(osenv.shell(), 'zsh')
-  process.env.SHELL = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.shell(), 'bash')
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/osenv/test/windows.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/osenv/test/windows.js b/blackberry10/node_modules/plugman/node_modules/osenv/test/windows.js
deleted file mode 100644
index dd3fe80..0000000
--- a/blackberry10/node_modules/plugman/node_modules/osenv/test/windows.js
+++ /dev/null
@@ -1,82 +0,0 @@
-// only run this test on windows
-// pretending to be another platform is too hacky, since it breaks
-// how the underlying system looks up module paths and runs
-// child processes, and all that stuff is cached.
-if (process.platform !== 'win32') {
-  console.log('TAP Version 13\n' +
-              '1..0\n' +
-              '# Skip windows tests, this is not windows\n')
-  return
-}
-
-// load this before clubbing the platform name.
-var tap = require('tap')
-
-process.env.windir = 'C:\\windows'
-process.env.USERDOMAIN = 'some-domain'
-process.env.USERNAME = 'sirUser'
-process.env.USERPROFILE = 'C:\\Users\\sirUser'
-process.env.COMPUTERNAME = 'my-machine'
-process.env.TMPDIR = 'C:\\tmpdir'
-process.env.TMP = 'C:\\tmp'
-process.env.TEMP = 'C:\\temp'
-process.env.Path = 'C:\\Program Files\\;C:\\Binary Stuff\\bin'
-process.env.PROMPT = '(o_o) $ '
-process.env.EDITOR = 'edit'
-process.env.VISUAL = 'visualedit'
-process.env.ComSpec = 'some-com'
-
-tap.test('basic windows sanity test', function (t) {
-  var osenv = require('../osenv.js')
-
-  var osenv = require('../osenv.js')
-
-  t.equal(osenv.user(),
-          process.env.USERDOMAIN + '\\' + process.env.USERNAME)
-  t.equal(osenv.home(), process.env.USERPROFILE)
-  t.equal(osenv.hostname(), process.env.COMPUTERNAME)
-  t.same(osenv.path(), process.env.Path.split(';'))
-  t.equal(osenv.prompt(), process.env.PROMPT)
-  t.equal(osenv.tmpdir(), process.env.TMPDIR)
-
-  // mildly evil, but it's for a test.
-  process.env.TMPDIR = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.tmpdir(), process.env.TMP)
-
-  process.env.TMP = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.tmpdir(), process.env.TEMP)
-
-  process.env.TEMP = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.tmpdir(), 'C:\\Users\\sirUser\\temp')
-
-  process.env.TEMP = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  osenv.home = function () { return null }
-  t.equal(osenv.tmpdir(), 'C:\\windows\\temp')
-
-  t.equal(osenv.editor(), 'edit')
-  process.env.EDITOR = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.editor(), 'visualedit')
-
-  process.env.VISUAL = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.editor(), 'notepad.exe')
-
-  t.equal(osenv.shell(), 'some-com')
-  process.env.ComSpec = ''
-  delete require.cache[require.resolve('../osenv.js')]
-  var osenv = require('../osenv.js')
-  t.equal(osenv.shell(), 'cmd')
-
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/.npmignore b/blackberry10/node_modules/plugman/node_modules/plist/.npmignore
deleted file mode 100644
index 9daa824..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/LICENSE b/blackberry10/node_modules/plugman/node_modules/plist/LICENSE
deleted file mode 100644
index eae87d0..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2010-2011- Nathan Rajlich
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/plugman/node_modules/plist/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/plugman/node_modules/plist/README.md b/blackberry10/node_modules/plugman/node_modules/plist/README.md
deleted file mode 100644
index c329174..0000000
--- a/blackberry10/node_modules/plugman/node_modules/plist/README.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# node-plist
-
-Provides facilities for reading and writing Mac OS X Plist (property list) files. These are often used in programming OS X and iOS applications, as well as the iTunes
-configuration XML file.
-
-Plist files represent stored programming "object"s. They are very similar
-to JSON. A valid Plist file is representable as a native JavaScript Object and vice-versa.
-
-## Tests
-`npm test`
-
-## Usage
-Parsing a plist from filename
-``` javascript
-var plist = require('plist');
-
-var obj = plist.parseFileSync('myPlist.plist');
-console.log(JSON.stringify(obj));
-```
-
-Parsing a plist from string payload
-``` javascript
-var plist = require('plist');
-
-var obj = plist.parseStringSync('<plist><string>Hello World!</string></plist>');
-console.log(obj);  // Hello World!
-```
-
-Given an existing JavaScript Object, you can turn it into an XML document that complies with the plist DTD
-
-``` javascript
-var plist = require('plist');
-
-console.log(plist.build({'foo' : 'bar'}).toString());
-```
-
-
-
-### Deprecated methods
-These functions work, but may be removed in a future release. version 0.4.x added Sync versions of these functions.
-
-Parsing a plist from filename
-``` javascript
-var plist = require('plist');
-
-plist.parseFile('myPlist.plist', function(err, obj) {
-  if (err) throw err;
-
-  console.log(JSON.stringify(obj));
-});
-```
-
-Parsing a plist from string payload
-``` javascript
-var plist = require('plist');
-
-plist.parseString('<plist><string>Hello World!</string></plist>', function(err, obj) {
-  if (err) throw err;
-
-  console.log(obj[0]);  // Hello World!
-});
-```


[26/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/async.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/async.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/async.js
deleted file mode 100644
index 74c7533..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/async.js
+++ /dev/null
@@ -1,62 +0,0 @@
-var test = require('tap').test,
-walkdir = require('../walkdir.js');
-
-var expectedPaths = {
-'dir/foo/x':'file',
-'dir/foo/a':'dir',
-'dir/foo/a/y':'file',
-'dir/foo/a/b':'dir',
-'dir/foo/a/b/z':'file',
-'dir/foo/a/b/c':'dir',
-'dir/foo/a/b/c/w':'file'
-};
-
-test('async events',function(t){
-  var paths = [],
-  files = [],
-  dirs = [];
-
-
-  var emitter = walkdir(__dirname+'/dir/foo',function(path){
-    //console.log('path: ',path);
-    paths.push(path.replace(__dirname+'/',''));
-  });
-
-  emitter.on('directory',function(path,stat){
-    dirs.push(path.replace(__dirname+'/',''));
-  });
-
-  emitter.on('file',function(path,stat){
-    //console.log('file: ',path); 
-    files.push(path.replace(__dirname+'/',''));
-  });
-
-  emitter.on('end',function(){
-
-     files.forEach(function(v,k){
-       t.equals(expectedPaths[v],'file','path from file event should be file');  
-     });
-
-     Object.keys(expectedPaths).forEach(function(v,k){
-       if(expectedPaths[v] == 'file') {
-          t.ok(files.indexOf(v) > -1,'should have file in files array');
-       }
-     });
-
-     dirs.forEach(function(v,k){
-       t.equals(expectedPaths[v],'dir','path from dir event should be dir '+v);  
-     });
-
-     Object.keys(expectedPaths).forEach(function(v,k){
-       if(expectedPaths[v] == 'dir') {
-          t.ok(dirs.indexOf(v) > -1,'should have dir in dirs array');
-       }
-     });
-
-     Object.keys(expectedPaths).forEach(function(v,k){
-       t.ok(paths.indexOf(v) !== -1,'should have found all expected paths '+v);
-     });
-
-     t.end();
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/find.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/find.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/find.js
deleted file mode 100644
index 98e852d..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/find.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var spawn = require('child_process').spawn;
-
-var find = spawn('find',[process.argv[2]||'./']);
-
-var fs = require('fs');
-
-var buf = '',count = 0;
-
-handleBuf = function(data){
-
-	buf += data;
-
-	if(buf.length >= 1024) {
-		var lines = buf.split("\n");
-		buf = lines.pop();//last line my not be complete
-		count += lines.length;
-		process.stdout.write(lines.join("\n")+"\n");
-	}
-};
-
-find.stdout.on('data',function(data){
-	//buf += data.toString();
-	handleBuf(data)
-	//process.stdout.write(data.toString());
-});
-
-find.on('end',function(){
-	handleBuf("\n");
-	console.log('found '+count+' files');
-	console.log('ended');
-});
-
-find.stdin.end();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/find.py
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/find.py b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/find.py
deleted file mode 100644
index 526d694..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/find.py
+++ /dev/null
@@ -1,26 +0,0 @@
-import os
-import sys
-
-rootdir = sys.argv[1]
-ino = {}
-buf = []
-for root, subFolders, files in os.walk(rootdir):
-
-    for filename in files:
-        filePath = os.path.join(root, filename)
-        try:
-            stat = os.lstat(filePath)
-	except OSError:
-            pass
-
-        inostr = stat.st_ino
-
-        if inostr not in ino:
-            ino[stat.st_ino] = 1 
-	    buf.append(filePath);
-	    buf.append("\n");
-            if len(buf) >= 1024:
-	        sys.stdout.write(''.join(buf))
-		buf = []
-
-sys.stdout.write(''.join(buf));

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/finditsynctest.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/finditsynctest.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/finditsynctest.js
deleted file mode 100644
index b3af43e..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/finditsynctest.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var findit = require('findit');
-
-var files = findit.findSync(process.argv[2]||'./');
-
-var count = files.length;
-
-console.log(files);
-
-files = files.join("\n");
-
-process.stdout.write(files+"\n");
-
-console.log('found '+count+' files');
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/findittest.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/findittest.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/findittest.js
deleted file mode 100644
index d018bf2..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/findittest.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var findit = require('findit');
-
-var find = findit.find(process.argv[2]||'./');
-
-var count = 0;
-
-find.on('file',function(path,stat){
-	count++;
-	process.stdout.write(path+"\n");
-});
-
-find.on('end',function(){
-	console.log('found '+count+' regular files');
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/fstream.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/fstream.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/fstream.js
deleted file mode 100644
index 1451b4c..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/fstream.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var fstream = require('fstream');
-
-var pipe = fstream.Reader(process.argv[2]||"../");
-
-var count = 0,errorHandler;
-
-pipe.on('entry',function fn(entry){
-  if(entry.type == "Directory"){
-  	entry.on('entry',fn);
-  } else if(entry.type == "File") {
-  	count++;
-  }
-  entry.on('error',errorHandler);
-});
-
-pipe.on('error',(errorHandler = function(error){
-	console.log('error event ',error);
-}));
-
-pipe.on('end',function(){
-	console.log('end! '+count);
-});
-
-//this is pretty slow

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/install_test_deps.sh
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/install_test_deps.sh b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/install_test_deps.sh
deleted file mode 100755
index 5fdd18f..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/install_test_deps.sh
+++ /dev/null
@@ -1 +0,0 @@
-npm install

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/lsr.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/lsr.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/lsr.js
deleted file mode 100644
index 590f9d1..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/lsr.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var lsr = require('ls-r');
-
-lsr(process.argv[2]||'./',{maxDepth:500000,recursive:true},function(err,origPath,args){
-	if(err) {
-		console.log('eww an error! ',err);
-		return;
-	}
-//console.log('hit');
-	var c = 0;
-	args.forEach(function(stat){
-		if(stat.isFile()){
-			console.log(stat.path);
-			c++;
-		}
-	});
-
-	console.log('found '+args.length+" regular files");
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/package.json b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/package.json
deleted file mode 100644
index 1faeff3..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/comparison/package.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name":"recursedir-comparisons",
-  "version": "0.0.0",
-  "author": "Ryan Day <so...@gmail.com>",
-  "devDependencies": {
-    "findit": "*",
-    "ls-r":"*",
-    "fstream":"*"
-  }
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/b/c/w
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/b/c/w b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/b/c/w
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/b/z
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/b/z b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/b/z
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/y
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/y b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/a/y
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/x
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/x b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/foo/x
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/dir1/file1
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/dir1/file1 b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/dir1/file1
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/dir2/file2
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/dir2/file2 b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/dir2/file2
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/file
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/file b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/dir/symlinks/file
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/endearly.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/endearly.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/endearly.js
deleted file mode 100644
index e1346fa..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/endearly.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var test = require('tap').test,
-walk  = require('../walkdir.js');
-
-test('should be able to end walk after first path',function(t){
-
-  var paths = [];
-
-  var em = walk('../',function(path){
-    paths.push(path);
-    this.end();
-  });
-
-  em.on('end',function(){
-    t.equals(paths.length,1,'should have only found one path');
-    t.end();
-  });
-
-});
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/max_depth.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/max_depth.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/max_depth.js
deleted file mode 100644
index ecc9a49..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/max_depth.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var test = require('tap').test,
-walkdir = require('../walkdir.js');
-
-var expectedPaths = {
-'dir/foo/x':'file',
-'dir/foo/a':'dir',
-'dir/foo/a/y':'file',
-'dir/foo/a/b':'dir'
-};
-
-test('no_recurse option',function(t){
-  var paths = [];
-
-  var emitter = walkdir(__dirname+'/dir/foo',{max_depth:2},function(path,stat,depth){
-    paths.push(path.replace(__dirname+'/',''));
-    t.ok(depth < 3,' all paths emitted should have a depth less than 3');
-  });
-
-  emitter.on('end',function(){
-     var expected = Object.keys(expectedPaths);
-     paths.forEach(function(v){ 
-          t.ok(expected.indexOf(v) > -1,'paths should not have any unexpected files');
-     });
-
-     t.end();
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/no_recurse.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/no_recurse.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/no_recurse.js
deleted file mode 100644
index df2e4ed..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/no_recurse.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var test = require('tap').test,
-walkdir = require('../walkdir.js');
-
-var expectedPaths = {
-'dir/foo/x':'file',
-'dir/foo/a':'dir'
-};
-
-test('no_recurse option',function(t){
-  var paths = [];
-
-  var emitter = walkdir(__dirname+'/dir/foo',{no_recurse:true},function(path,stat,depth){
-    paths.push(path.replace(__dirname+'/',''));
-    t.ok(depth === 1,' all paths emitted should have a depth of 1');
-  });
-
-  emitter.on('end',function(){
-     var expected = Object.keys(expectedPaths);
-     paths.forEach(function(v){ 
-          t.ok(expected.indexOf(v) > -1,'all expected files should be in paths');
-     });
-
-     t.end();
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/nofailemptydir.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/nofailemptydir.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/nofailemptydir.js
deleted file mode 100644
index 13ba6e4..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/nofailemptydir.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var test = require('tap').test,
-fs = require('fs'),
-path = require('path'),
-walk  = require('../walkdir.js');
-
-test('should not emit fail events for empty dirs',function(t){
-  fs.mkdir('./empty',function(err,data){
-    if(err) {
-      t.equals(err.code,'EEXIST','if error code on mkdir for fixture it should only be because it exists already');
-    }
-
-    var paths = [];
-    var dirs = [];
-    var emptys = [];
-    var fails = [];
-
-    var em = walk('./');
-
-    em.on('fail',function(path,err){
-      fails.push(path); 
-    });
-
-    em.on('empty',function(path,err){
-      emptys.push(path); 
-    });
-
-    em.on('end',function(){
-      t.equals(fails.length,0,'should not have any fails');
-      t.equals(path.basename(emptys[0]),'empty','should find empty dir');
-      t.end();
-    });
-  });
-});
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/pauseresume.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/pauseresume.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/pauseresume.js
deleted file mode 100644
index e8d5fb1..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/pauseresume.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var test = require('tap').test,
-walk  = require('../walkdir.js');
-
-test('should be able to pause walk',function(t){
-
-  var paths = [];
-  var paused = false;
-  var em = walk('./',function(path){
-    if(!paused){
-      em.pause();
-      paused = 1;
-      setTimeout(function(){
-        t.equals(paths.length,1,'while paused should not emit any more paths');
-        em.resume();
-      },300);
-    } else if(paused == 1){
-      em.pause();
-      paused = 2;
-      setTimeout(function(){
-        t.equals(paths.length,2,'while paused should not emit any more paths');
-        em.resume();
-      },300);
-    }
-
-    paths.push(path);
-
-  });
-
-  em.on('end',function(){
-    console.log('end, and i found ',paths.length,'paths');
-    t.ok(paths.length > 1,'should have more paths before end');
-    t.end();
-  });
-
-});
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/symlink.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/symlink.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/symlink.js
deleted file mode 100644
index 2ccde9a..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/symlink.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var test = require('tap').test,
-walkdir = require('../walkdir.js');
-
-
-test('follow symlinks',function(t){
-
-  var links = [],paths = [],failures = [],errors = [];
-
-  var emitter = walkdir(__dirname+'/dir/symlinks/dir2',{follow_symlinks:true});
-
-  emitter.on('path',function(path,stat){
-    paths.push(path);
-  });
-
-  emitter.on('link',function(path,stat){
-    links.push(path);
-  });
-
-  emitter.on('error',function(path,err){
-    console.log('error!!', arguments);
-    errors.push(arguments);
-  });
-
-  emitter.on('fail',function(path,err){
-    failures.push(path);
-  });
-
-  emitter.on('end',function(){
-
-    t.equal(errors.length,0,'should have no errors');
-    t.equal(failures.length,1,'should have a failure');
-    t.ok(paths.indexOf(__dirname+'/dir/symlinks/dir1/file1') !== -1,'if follow symlinks works i would have found dir1 file1');
-    t.equal(require('path').basename(failures[0]),'does-not-exist','should have fail resolviong does-not-exist which dangling-symlink points to');
-    t.end();
-
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/sync.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/sync.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/sync.js
deleted file mode 100644
index 1243ab5..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/test/sync.js
+++ /dev/null
@@ -1,50 +0,0 @@
-var test = require('tap').test,
-walkdir = require('../walkdir.js');
-
-var expectedPaths = {
-'dir/foo/x':'file',
-'dir/foo/a':'dir',
-'dir/foo/a/y':'file',
-'dir/foo/a/b':'dir',
-'dir/foo/a/b/z':'file',
-'dir/foo/a/b/c':'dir',
-'dir/foo/a/b/c/w':'file'
-};
-
-test('sync',function(t){
-  var paths = [],
-  files = [],
-  dirs = [];
-
-  var pathResult = walkdir.sync(__dirname+'/dir/foo',function(path){
-    //console.log('path: ',path);
-    paths.push(path);
-  });
-
-  t.ok(pathResult instanceof Array,'if return object is not specified should be an array');
-
-  t.equals(Object.keys(expectedPaths).length,paths.length,'should have found the same number of paths as expected');
-
-  Object.keys(expectedPaths).forEach(function(v,k){
-      t.ok(paths.indexOf(__dirname+'/'+v) > -1,v+' should be found');
-  });
-
-  t.equivalent(paths,pathResult,'paths should be equal to pathResult');
-
-  t.end();
-});
-
-test('sync return object',function(t){
-
-  var pathResult = walkdir.sync(__dirname+'/dir/foo',{return_object:true});
-
-  t.ok(!(pathResult instanceof Array),'if return object is not specified should be an array');
-
-  t.equals(Object.keys(expectedPaths).length,Object.keys(pathResult).length,'should find the same number of paths as expected');
-
-  Object.keys(expectedPaths).forEach(function(v,k){
-      t.ok(pathResult[__dirname+'/'+v],'should  find path in result object');
-  });
-
-  t.end();
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/node_modules/walkdir/walkdir.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/walkdir.js b/blackberry10/node_modules/jasmine-node/node_modules/walkdir/walkdir.js
deleted file mode 100644
index 4484a22..0000000
--- a/blackberry10/node_modules/jasmine-node/node_modules/walkdir/walkdir.js
+++ /dev/null
@@ -1,233 +0,0 @@
-var EventEmitter = require('events').EventEmitter,
-fs = require('fs'),
-_path = require('path'),
-sep = _path.sep||'/';// 0.6.x
-
-
-module.exports = walkdir;
-
-walkdir.find = walkdir.walk = walkdir;
-
-walkdir.sync = function(path,options,cb){
-  if(typeof options == 'function') cb = options;
-  options = options || {};
-  options.sync = true;
-  return walkdir(path,options,cb);
-
-};
-
-function walkdir(path,options,cb){
-
-  if(typeof options == 'function') cb = options;
-
-  options = options || {};
-
-  var emitter = new EventEmitter(),
-  allPaths = (options.return_object?{}:[]),
-  resolved = false,
-  inos = {},
-  stop = 0,
-  pause = null,
-  ended = 0, 
-  jobs=0, 
-  job = function(value) {
-    jobs += value;
-    if(value < 1 && !tick) {
-      tick = 1;
-      process.nextTick(function(){
-        tick = 0;
-        if(jobs <= 0 && !ended) {
-          ended = 1;
-          emitter.emit('end');
-        }
-      });
-    }
-  }, tick = 0;
-
-  //mapping is stat functions to event names.	
-  var statIs = [['isFile','file'],['isDirectory','directory'],['isSymbolicLink','link'],['isSocket','socket'],['isFIFO','fifo'],['isBlockDevice','blockdevice'],['isCharacterDevice','characterdevice']];
-
-  var statter = function (path,first,depth) {
-    job(1);
-    var statAction = function fn(err,stat,data) {
-
-      job(-1);
-      if(stop) return;
-
-      // in sync mode i found that node will sometimes return a null stat and no error =(
-      // this is reproduceable in file descriptors that no longer exist from this process
-      // after a readdir on /proc/3321/task/3321/ for example. Where 3321 is this pid
-      // node @ v0.6.10 
-      if(err || !stat) { 
-        emitter.emit('fail',path,err);
-        return;
-      }
-
-
-      //if i have evented this inode already dont again.
-      if(inos[stat.dev+'-'+stat.ino] && stat.ino) return;
-      inos[stat.dev+'-'+stat.ino] = 1;
-
-      if (first && stat.isDirectory()) {
-        emitter.emit('targetdirectory',path,stat,depth);
-        return;
-      }
-
-      emitter.emit('path', path, stat,depth);
-
-      var i,name;
-
-      for(var j=0,k=statIs.length;j<k;j++) {
-        if(stat[statIs[j][0]]()) {
-          emitter.emit(statIs[j][1],path,stat,depth);
-          break;
-        }
-      }
-    };
-    
-    if(options.sync) {
-      var stat,ex;
-      try{
-        stat = fs.lstatSync(path);
-      } catch (e) {
-        ex = e;
-      }
-
-      statAction(ex,stat);
-    } else {
-        fs.lstat(path,statAction);
-    }
-  },readdir = function(path,stat,depth){
-    if(!resolved) {
-      path = _path.resolve(path);
-      resolved = 1;
-    }
-
-    if(options.max_depth && depth >= options.max_depth){
-      emitter.emit('maxdepth',path,stat,depth);
-      return;
-    }
-
-    job(1);
-    var readdirAction = function(err,files) {
-      job(-1);
-      if (err || !files) {
-        //permissions error or invalid files
-        emitter.emit('fail',path,err);
-        return;
-      }
-
-      if(!files.length) {
-        // empty directory event.
-        emitter.emit('empty',path,stat,depth);
-        return;     
-      }
-
-      if(path == sep) path='';
-      for(var i=0,j=files.length;i<j;i++){
-        statter(path+sep+files[i],false,(depth||0)+1);
-      }
-
-    };
-
-    //use same pattern for sync as async api
-    if(options.sync) {
-      var e,files;
-      try {
-          files = fs.readdirSync(path);
-      } catch (e) { }
-
-      readdirAction(e,files);
-    } else {
-      fs.readdir(path,readdirAction);
-    }
-  };
-
-  if (options.follow_symlinks) {
-    var linkAction = function(err,path,depth){
-      job(-1);
-      //TODO should fail event here on error?
-      statter(path,false,depth);
-    };
-
-    emitter.on('link',function(path,stat,depth){
-      job(1);
-      if(options.sync) {
-        var lpath,ex;
-        try {
-          lpath = fs.readlinkSync(path);
-        } catch(e) {
-          ex = e;
-        }
-        linkAction(ex,_path.resolve(_path.dirname(path),lpath),depth);
-
-      } else {
-        fs.readlink(path,function(err,lpath){
-          linkAction(err,_path.resolve(_path.dirname(path),lpath),depth);
-        });
-      }
-    });
-  }
-
-  if (cb) {
-    emitter.on('path',cb);
-  }
-
-  if (options.sync) {
-    if(!options.no_return){
-      emitter.on('path',function(path,stat){
-        if(options.return_object) allPaths[path] = stat;
-        else allPaths.push(path);
-      });
-    }
-  }
-
-  if (!options.no_recurse) {
-    emitter.on('directory',readdir);
-  }
-  //directory that was specified by argument.
-  emitter.once('targetdirectory',readdir);
-  //only a fail on the path specified by argument is fatal 
-  emitter.once('fail',function(_path,err){
-    //if the first dir fails its a real error
-    if(path == _path) {
-      emitter.emit('error',path,err);
-    }
-  });
-
-  statter(path,1);
-  if (options.sync) {
-    return allPaths;
-  } else {
-    //support stopping everything.
-    emitter.end = emitter.stop = function(){stop = 1;};
-    //support pausing everything
-    var emitQ = [];
-    emitter.pause = function(){
-      job(1);
-      pause = true;
-      emitter.emit = function(){
-        emitQ.push(arguments);
-      };
-    };
-    // support getting the show going again
-    emitter.resume = function(){
-      if(!pause) return;
-      pause = false;
-      // not pending
-      job(-1);
-      //replace emit
-      emitter.emit = EventEmitter.prototype.emit;
-      // local ref
-      var q = emitQ;
-      // clear ref to prevent infinite loops
-      emitQ = [];
-      while(q.length) {
-        emitter.emit.apply(emitter,q.shift());
-      }
-    };
-
-    return emitter;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/package.json b/blackberry10/node_modules/jasmine-node/package.json
deleted file mode 100755
index 4573a53..0000000
--- a/blackberry10/node_modules/jasmine-node/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
-  "name": "jasmine-node",
-  "version": "1.7.1",
-  "description": "DOM-less simple JavaScript BDD testing framework for Node",
-  "contributors": [
-    {
-      "name": "Chris Moultrie",
-      "email": "chris@moultrie.org"
-    }
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/mhevery/jasmine-node.git"
-  },
-  "keywords": [
-    "testing",
-    "bdd"
-  ],
-  "author": {
-    "name": "Misko Hevery",
-    "email": "misko@hevery.com"
-  },
-  "maintainers": "Martin Häger <ma...@gmail.com>",
-  "licenses": [
-    "MIT"
-  ],
-  "dependencies": {
-    "coffee-script": ">=1.0.1",
-    "jasmine-reporters": ">=0.2.0",
-    "requirejs": ">=0.27.1",
-    "walkdir": ">= 0.0.1",
-    "underscore": ">= 1.3.1",
-    "gaze": "~0.3.2",
-    "mkdirp": "~0.3.5"
-  },
-  "bin": {
-    "jasmine-node": "bin/jasmine-node"
-  },
-  "preferGlobal": true,
-  "main": "lib/jasmine-node",
-  "scripts": {
-    "test": "node lib/jasmine-node/cli.js spec"
-  },
-  "devDependencies": {},
-  "readme": "jasmine-node\n======\n\n[![Build Status](https://secure.travis-ci.org/spaghetticode/jasmine-node.png)](http://travis-ci.org/spaghetticode/jasmine-node)\n\nThis node.js module makes the wonderful Pivotal Lab's jasmine\n(http://github.com/pivotal/jasmine) spec framework available in\nnode.js.\n\njasmine\n-------\n\nVersion 1.3.1 of Jasmine is currently included with node-jasmine.\n\nwhat's new\n----------\n*  Ability to test specs written in Literate Coffee-Script\n*  Teamcity Reporter reinstated.\n*  Ability to specify multiple files to test via list in command line\n*  Ability to suppress stack trace with <code>--noStack</code>\n*  Async tests now run in the expected context instead of the global one\n*  --config flag that allows you to assign variables to process.env\n*  Terminal Reporters are now available in the Jasmine Object #184\n*  Done is now available in all timeout specs #199\n*  <code>afterEach</code> is available in requirejs #179\n*  Editors that replace in
 stead of changing files should work with autotest #198\n*  Jasmine Mock Clock now works!\n*  Autotest now works!\n*  Using the latest Jasmine!\n*  Verbose mode tabs <code>describe</code> blocks much more accurately!\n*  --coffee now allows specs written in Literate CoffeeScript (.litcoffee)\n\ninstall\n------\n\nTo install the latest official version, use NPM:\n\n    npm install jasmine-node -g\n\nTo install the latest _bleeding edge_ version, clone this repository and check\nout the `beta` branch.\n\nusage\n------\n\nWrite the specifications for your code in \\*.js and \\*.coffee files in the\nspec/ directory (note: your specification files must end with either\n.spec.js, .spec.coffee or .spec.litcoffee; otherwise jasmine-node won't find them!). You can use sub-directories to better organise your specs.\n\nIf you have installed the npm package, you can run it with:\n\n    jasmine-node spec/\n\nIf you aren't using npm, you should add `pwd`/lib to the $NODE_PATH\nenvironment variable
 , then run:\n\n    node lib/jasmine-node/cli.js\n\n\nYou can supply the following arguments:\n\n  * <code>--autotest</code>, provides automatic execution of specs after each change\n  * <code>--coffee</code>, allow execution of .coffee and .litcoffee specs\n  * <code>--color</code>, indicates spec output should uses color to\nindicates passing (green) or failing (red) specs\n  * <code>--noColor</code>, do not use color in the output\n  * <code>-m, --match REGEXP</code>, match only specs comtaining \"REGEXPspec\"\n  * <code>--matchall</code>, relax requirement of \"spec\" in spec file names\n  * <code>--verbose</code>, verbose output as the specs are run\n  * <code>--junitreport</code>, export tests results as junitreport xml format\n  * <code>--output FOLDER</code>, defines the output folder for junitreport files\n  * <code>--teamcity</code>, converts all console output to teamcity custom test runner commands. (Normally auto detected.)\n  * <code>--runWithRequireJs</code>, loads all
  specs using requirejs instead of node's native require method\n  * <code>--requireJsSetup</code>, file run before specs to include and configure RequireJS\n  * <code>--test-dir</code>, the absolute root directory path where tests are located\n  * <code>--nohelpers</code>, does not load helpers\n  * <code>--forceexit</code>, force exit once tests complete\n  * <code>--captureExceptions</code>, listen to global exceptions, report them and exit (interferes with Domains in NodeJs, so do not use if using Domains as well\n  * <code>--config NAME VALUE</code>, set a global variable in process.env\n  * <code>--noStack</code>, suppress the stack trace generated from a test failure\n\nIndividual files to test can be added as bare arguments to the end of the args.\n\nExample:\n\n`jasmine-node --coffee spec/AsyncSpec.coffee spec/CoffeeSpec.coffee spec/SampleSpecs.js`\n\nasync tests\n-----------\n\njasmine-node includes an alternate syntax for writing asynchronous tests. Accepting\na done callb
 ack in the specification will trigger jasmine-node to run the test\nasynchronously waiting until the done() callback is called.\n\n```javascript\n    it(\"should respond with hello world\", function(done) {\n      request(\"http://localhost:3000/hello\", function(error, response, body){\n        expect(body).toEqual(\"hello world\");\n        done();\n      });\n    });\n```\n\nAn asynchronous test will fail after 5000 ms if done() is not called. This timeout\ncan be changed by setting jasmine.DEFAULT_TIMEOUT_INTERVAL or by passing a timeout\ninterval in the specification.\n\n    it(\"should respond with hello world\", function(done) {\n      request(\"http://localhost:3000/hello\", function(error, response, body){\n        done();\n      }, 250);  // timeout after 250 ms\n    });\n\nCheckout spec/SampleSpecs.js to see how to use it.\n\nrequirejs\n---------\n\nThere is a sample project in `/spec-requirejs`. It is comprised of:\n\n1.  `requirejs-setup.js`, this pulls in our wrapper t
 emplate (next)\n1.  `requirejs-wrapper-template`, this builds up requirejs settings\n1.  `requirejs.sut.js`, this is a __SU__bject To __T__est, something required by requirejs\n1.  `requirejs.spec.js`, the actual jasmine spec for testing\n\ndevelopment\n-----------\n\nInstall the dependent packages by running:\n\n    npm install\n\nRun the specs before you send your pull request:\n\n    specs.sh\n\n__Note:__ Some tests are designed to fail in the specs.sh. After each of the\nindividual runs completes, there is a line that lists what the expected\nPass/Assert/Fail count should be. If you add/remove/edit tests, please be sure\nto update this with your PR.\n\n\nchangelog\n---------\n\n*  _1.7.1 - Removed unneeded fs dependency (thanks to\n   [kevinsawicki](https://github.com/kevinsawicki)) Fixed broken fs call in\n   node 0.6 (thanks to [abe33](https://github.com/abe33))_\n*  _1.7.0 - Literate Coffee-Script now testable (thanks to [magicmoose](https://github.com/magicmoose))_\n*  _1.6.
 0 - Teamcity Reporter Reinstated (thanks to [bhcleek](https://github.com/bhcleek))_\n*  _1.5.1 - Missing files and require exceptions will now report instead of failing silently_\n*  _1.5.0 - Now takes multiple files for execution. (thanks to [abe33](https://github.com/abe33))_\n*  _1.4.0 - Optional flag to suppress stack trace on test failure (thanks to [Lastalas](https://github.com/Lastalas))_\n*  _1.3.1 - Fixed context for async tests (thanks to [omryn](https://github.com/omryn))_\n*  _1.3.0 - Added --config flag for changeable testing environments_\n*  _1.2.3 - Fixed #179, #184, #198, #199. Fixes autotest, afterEach in requirejs, terminal reporter is in jasmine object, done function missing in async tests_\n*  _1.2.2 - Revert Exception Capturing to avoid Breaking Domain Tests_\n*  _1.2.1 - Emergency fix for path reference missing_\n*  _1.2.0 - Fixed #149, #152, #171, #181, #195. --autotest now works as expected, jasmine clock now responds to the fake ticking as requested, and re
 moved the path.exists warning_\n*  _1.1.1 - Fixed #173, #169 (Blocks were not indented in verbose properly, added more documentation to address #180_\n*  _1.1.0 - Updated Jasmine to 1.3.1, fixed fs missing, catching uncaught exceptions, other fixes_\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/mhevery/jasmine-node/issues"
-  },
-  "_id": "jasmine-node@1.7.1",
-  "dist": {
-    "shasum": "5df8182da5f9a4612d07089417248d4bc2a01a92"
-  },
-  "_from": "jasmine-node@1.7.1",
-  "_resolved": "https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.7.1.tgz"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/scripts/specs
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/scripts/specs b/blackberry10/node_modules/jasmine-node/scripts/specs
deleted file mode 100755
index 28a45f0..0000000
--- a/blackberry10/node_modules/jasmine-node/scripts/specs
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-entry="node lib/jasmine-node/cli.js "
-
-if [ $# -ne 0 ]; then
-  command=$entry"$1 spec"
-  echo $command
-  $command
-else
-  echo "Running all tests located in the spec directory"
-  command=$entry"spec"
-  echo $command
-  time $command #/nested/uber-nested
-  echo -e "\033[1;35m--- Should have 40 tests and 71 assertions and 1 Failure. ---\033[0m"
-  echo ""
-
-  echo "Running all tests located in the spec directory with coffee option"
-  command=$entry"--coffee spec"
-  echo $command
-  time $command #/nested/uber-nested
-  echo -e "\033[1;35m--- Should have 40 tests and 71 assertions and 1 Failure. ---\033[0m"
-  echo ""
-
-  echo "Running all tests located in the spec directory with requirejs option"
-  #command=$entry"--nohelpers --runWithRequireJs spec-requirejs"
-  command=$entry"--runWithRequireJs spec"
-  echo $command
-  time $command
-  echo -e "\033[1;35m--- Should have 40 tests and 71 assertions and 1 Failure. ---\033[0m"
-
-  echo "Running all tests located in the spec-requirejs directory with requirejs"
-  #command=$entry"--nohelpers --runWithRequireJs spec-requirejs"
-  command=$entry"--runWithRequireJs spec-requirejs"
-  echo $command
-  time $command
-  echo -e "\033[1;35m--- Should have 1 test and 2 assertions and 0 Failures. ---\033[0m"
-fi

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/RequireCsSpec.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/RequireCsSpec.coffee b/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/RequireCsSpec.coffee
deleted file mode 100644
index 4a8f754..0000000
--- a/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/RequireCsSpec.coffee
+++ /dev/null
@@ -1,5 +0,0 @@
-require [ "cs!requirecs.sut" ], (sut) ->
-  describe "RequireJs basic tests with spec and sut in CoffeeScript", ->
-    it "should load coffeescript sut", ->
-      expect(sut.name).toBe "CoffeeScript To Test"
-      expect(sut.method(2)).toBe 4

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/RequireJsSpec.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/RequireJsSpec.coffee b/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/RequireJsSpec.coffee
deleted file mode 100644
index 05bad4a..0000000
--- a/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/RequireJsSpec.coffee
+++ /dev/null
@@ -1,5 +0,0 @@
-require [ "requirecs.sut" ], (sut) ->
-  describe "RequireJs basic tests with spec in CoffeeScript", ->
-    it "should load javascript sut", ->
-      expect(sut.name).toBe "CoffeeScript To Test"
-      expect(sut.method(2)).toBe 4

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/requirecs.sut.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/requirecs.sut.coffee b/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/requirecs.sut.coffee
deleted file mode 100644
index b0a2250..0000000
--- a/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/requirecs.sut.coffee
+++ /dev/null
@@ -1,3 +0,0 @@
-define ->
-    name: 'CoffeeScript To Test'
-    method: (input) -> 2 * input

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/requirejs-setup.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/requirejs-setup.js b/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/requirejs-setup.js
deleted file mode 100644
index 0cd82b8..0000000
--- a/blackberry10/node_modules/jasmine-node/spec-requirejs-coffee/requirejs-setup.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/** Custom RequireJS setup file to test user-specified setup files */
-
-/* We want to minimize behavior changes between this test setup file and the
- * default setup file to avoid breaking tests which rely on any (current or
- * future) default behavior.  So we:
- * - Run the normal setup file
- * - Avoid introducing additional global variables
- * - Avoid maintaining two copies of the setup file
- */
-eval(require('fs').readFileSync(baseUrl + '../lib/jasmine-node/requirejs-wrapper-template.js', 'utf8'));
-
-// This is our indicator that this custom setup script has run
-var setupHasRun = true;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec-requirejs/requirejs.spec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec-requirejs/requirejs.spec.js b/blackberry10/node_modules/jasmine-node/spec-requirejs/requirejs.spec.js
deleted file mode 100644
index 5e7bddb..0000000
--- a/blackberry10/node_modules/jasmine-node/spec-requirejs/requirejs.spec.js
+++ /dev/null
@@ -1,19 +0,0 @@
-require(['requirejs.sut'], function(sut){
-  describe('RequireJs basic tests', function(){
-    beforeEach(function(){
-        expect(true).toBeTruthy();
-    });
-    afterEach(function(){
-        expect(true).toBeTruthy();
-    });
-    
-    it('should load sut', function(){
-      expect(sut.name).toBe('Subject To Test');
-      expect(sut.method(2)).toBe(3);
-    });
-
-    it('should run setup', function(){
-      expect(typeof setupHasRun).toBe('boolean');
-    });
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec-requirejs/requirejs.sut.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec-requirejs/requirejs.sut.js b/blackberry10/node_modules/jasmine-node/spec-requirejs/requirejs.sut.js
deleted file mode 100644
index 1d5095f..0000000
--- a/blackberry10/node_modules/jasmine-node/spec-requirejs/requirejs.sut.js
+++ /dev/null
@@ -1,8 +0,0 @@
-define(function(){
-  return {
-    name: 'Subject To Test',
-    method: function(input){
-      return 1+input;
-    }
-  };
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/AsyncSpec.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/AsyncSpec.coffee b/blackberry10/node_modules/jasmine-node/spec/AsyncSpec.coffee
deleted file mode 100644
index a6e160d..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/AsyncSpec.coffee
+++ /dev/null
@@ -1,11 +0,0 @@
-#=============================================================================
-# Async spec, that will be time outed
-#=============================================================================
-describe 'async', ->
-  it 'should be timed out', ->
-    waitsFor (-> false), 'MIRACLE', 500
-
-  doneFunc = (done) ->
-    setTimeout(done, 10000)
-
-  it "should timeout after 100 ms", doneFunc, 100

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/CoffeeSpec.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/CoffeeSpec.coffee b/blackberry10/node_modules/jasmine-node/spec/CoffeeSpec.coffee
deleted file mode 100755
index 757da61..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/CoffeeSpec.coffee
+++ /dev/null
@@ -1,4 +0,0 @@
-describe 'jasmine-node', ->
-
-  it 'should pass', ->
-    expect(1+2).toEqual(3)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/GrammarHelper.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/GrammarHelper.coffee b/blackberry10/node_modules/jasmine-node/spec/GrammarHelper.coffee
deleted file mode 100644
index 507fd58..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/GrammarHelper.coffee
+++ /dev/null
@@ -1,22 +0,0 @@
-global.testClass = (description, specDefinitions) ->
-    suite = jasmine.getEnv().describe('Class: ' + description, specDefinitions)
-    suite.tags = ['class']
-    suite.isIntermediate = true;
-    suite
-
-global.feature = (description, specDefinitions) ->
-    suite = jasmine.getEnv().describe('Feature: ' + description, specDefinitions)
-    suite.tags = ['feature']
-    suite.isIntermediate = true;
-    suite
-
-global.scenario = (desc, func) ->
-    suite = jasmine.getEnv().describe('Scenario: ' + desc, func)
-    suite.tags = ['scenario']
-    suite.isIntermediate = true;
-    suite
-
-global.should = (description, specDefinitions) ->
-    suite = jasmine.getEnv().it('It should ' + description, specDefinitions)
-    suite.tags = ['should']
-    suite

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/HelperSpec.coffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/HelperSpec.coffee b/blackberry10/node_modules/jasmine-node/spec/HelperSpec.coffee
deleted file mode 100644
index 16498c0..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/HelperSpec.coffee
+++ /dev/null
@@ -1,6 +0,0 @@
-
-testClass 'HelperLoader', ->
-    feature 'Loading order', ->
-        should 'load the helpers before the specs.', ->
-            expect(true).toBeTruthy()
-            # will fail to parse the spec if the helper was not loaded first

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/SampleSpecs.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/SampleSpecs.js b/blackberry10/node_modules/jasmine-node/spec/SampleSpecs.js
deleted file mode 100755
index f9c001b..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/SampleSpecs.js
+++ /dev/null
@@ -1,25 +0,0 @@
-describe('jasmine-node', function(){
-
-  it('should pass', function(){
-    expect(1+2).toEqual(3);
-  });
-
-  it('shows asynchronous test', function(){
-    setTimeout(function(){
-      expect('second').toEqual('second');
-      asyncSpecDone();
-    }, 1);
-    expect('first').toEqual('first');
-    asyncSpecWait();
-  });
-
-  it('shows asynchronous test node-style', function(done){
-    setTimeout(function(){
-      expect('second').toEqual('second');
-      // If you call done() with an argument, it will fail the spec 
-      // so you can use it as a handler for many async node calls
-      done();
-    }, 1);
-    expect('first').toEqual('first');
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/TestSpec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/TestSpec.js b/blackberry10/node_modules/jasmine-node/spec/TestSpec.js
deleted file mode 100755
index 89bb204..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/TestSpec.js
+++ /dev/null
@@ -1,82 +0,0 @@
-
-describe('jasmine-node-flat', function(){
-  it('should pass', function(){
-    expect(1+2).toEqual(3);
-  });
-});
-
-describe('Testing some characters', function()  {
-    var chars = ['&', '\'', '"', '<', '>'];
-    for(var i = 0; i < chars.length; i+=1)  {
-        currentChar = chars[i];
-        it('should reject ' + currentChar, (function(currentChar)  {
-            expect(false).toEqual(false);
-        })(currentChar));
-    }
-});
-
-describe('Testing waitsfor functionality', function() {
-    it("Runs and then waitsFor", function() {
-        runs(function() {
-            1+1;
-        });
-        waitsFor(function() {
-            return true === false;
-        }, "the impossible", 1000);
-        runs(function() {
-            expect(true).toBeTruthy();
-        });
-    });
-});
-
-describe('root', function () {
-
-  describe('nested', function () {
-
-    xit('nested statement', function () {
-      expect(1).toBeTruthy();
-    });
-
-  });
-
-  it('root statement', function () {
-    expect(1).toBeTruthy();
-  });
-
-});
-
-describe("Top level describe block", function() {
-  it("first it block in top level describe", function() {
-    expect(true).toEqual(true);
-  });
-  describe("Second level describe block", function() {
-    it("first it block in second level describe", function() {
-      expect(true).toBe(true);
-    });
-  });
-  it("second it block in top level describe", function() {
-    expect(true).toEqual(true);
-  });
-});
-
-describe('async', function () {
-
-    var request = function (str, func) {
-        func('1', '2', 'hello world');
-    };
-
-    it("should respond with hello world", function(done) {
-        request("http://localhost:3000/hello", function(error, response, body){
-            expect(body).toEqual("hello world");
-            done();
-        });
-    });
-
-    it("should respond with hello world", function(done) {
-        request("http://localhost:3000/hello", function(error, response, body){
-            expect(body).toEqual("hello world");
-            done();
-        });
-    }, 250); // timeout after 250 ms
-
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/TimerSpec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/TimerSpec.js b/blackberry10/node_modules/jasmine-node/spec/TimerSpec.js
deleted file mode 100644
index 00d584c..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/TimerSpec.js
+++ /dev/null
@@ -1,34 +0,0 @@
-describe("Manually ticking the Jasmine Mock Clock", function() {
-  var timerCallback;
-
-  beforeEach(function() {
-    timerCallback = jasmine.createSpy('timerCallback');
-    jasmine.Clock.useMock();
-  });
-
-  it("causes a timeout to be called synchronously", function() {
-    setTimeout(timerCallback, 100);
-
-    expect(timerCallback).not.toHaveBeenCalled();
-
-    jasmine.Clock.tick(101);
-
-    expect(timerCallback).toHaveBeenCalled();
-  });
-
-  it("causes an interval to be called synchronously", function() {
-    setInterval(timerCallback, 100);
-
-    expect(timerCallback).not.toHaveBeenCalled();
-
-    jasmine.Clock.tick(102);
-    expect(timerCallback).toHaveBeenCalled();
-    expect(timerCallback.callCount).toEqual(1);
-
-    jasmine.Clock.tick(50);
-    expect(timerCallback.callCount).toEqual(1);
-
-    jasmine.Clock.tick(50);
-    expect(timerCallback.callCount).toEqual(2);
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/async-callback_spec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/async-callback_spec.js b/blackberry10/node_modules/jasmine-node/spec/async-callback_spec.js
deleted file mode 100644
index 79bd754..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/async-callback_spec.js
+++ /dev/null
@@ -1,174 +0,0 @@
-describe('async-callback', function() {
-  var env;
-  beforeEach(function() {
-    env = new jasmine.Env();
-  });
-
-  describe('it', function() {
-
-    it("should time out if callback is not called", function() {
-      env.describe("it", function() {
-        env.it("doesn't wait", function(done) {
-          expect(1+2).toEqual(3);
-        });
-      });
-
-      env.currentRunner().execute();
-
-      waitsFor(function() {
-        return env.currentRunner().results().totalCount > 0;
-      }, 6000);
-
-      runs(function() {
-        expect(env.currentRunner().results().failedCount).toEqual(1);
-        expect(firstResult(env.currentRunner()).message).toMatch(/timeout/);;
-      });
-    });
-
-    it("should accept timeout for individual spec", function() {
-      env.describe("it", function() {
-        env.it("doesn't wait", function(done) {
-          expect(1+2).toEqual(3);
-        }, 250);
-      });
-
-      env.currentRunner().execute();
-
-      waitsFor(function() {
-        return env.currentRunner().results().totalCount > 0;
-      }, 500);
-
-      runs(function() {
-        expect(env.currentRunner().results().failedCount).toEqual(1);
-        expect(firstResult(env.currentRunner()).message).toMatch(/timeout/);;
-      });
-    });
-
-    it("should fail if callback is passed error", function() {
-       env.describe("it", function() {
-        env.it("doesn't wait", function(done) {
-          process.nextTick(function() {
-            done("Failed asynchronously");
-          });
-        });
-      });
-
-      env.currentRunner().execute();
-
-      waitsFor(function() {
-        return env.currentRunner().results().totalCount > 0;
-      });
-
-      runs(function() {
-        expect(env.currentRunner().results().failedCount).toEqual(1);
-        expect(firstResult(env.currentRunner()).message).toEqual("Failed asynchronously");
-      });
-    });
-
-
-    it("should finish after callback is called", function() {
-      env.describe("it", function() {
-        env.it("waits", function(done) {
-          process.nextTick(function() {
-            env.currentSpec.expect(1+2).toEqual(3);
-            done();
-          });
-        });
-      });
-
-      env.currentRunner().execute();
-
-      waitsFor(function() {
-        return env.currentRunner().results().totalCount > 0;
-      }, 2000);
-
-      runs(function() {
-        expect(env.currentRunner().results().passedCount).toEqual(1);
-      });
-    });
-
-      it('should run in the context of the current spec', function(){
-          var actualContext;
-          var jasmineSpecContext;
-          env.describe("it", function() {
-              env.it("register context", function(done) {
-                  actualContext = this;
-                  jasmineSpecContext = env.currentSpec;
-                  env.expect(this).toBe(jasmineSpecContext);
-                  done();
-              });
-          });
-
-          env.currentRunner().execute();
-
-          waitsFor(function() {
-              return env.currentRunner().results().totalCount > 0;
-          }, 'tested jasmine env runner to run the test', 100);
-
-          runs(function() {
-              expect(actualContext).not.toBe(global);
-              expect(actualContext).toBe(jasmineSpecContext);
-          });
-      });
-
-  });
-
-  describe("beforeEach", function() {
-    it("should wait for callback", function() {
-      env.describe("beforeEach", function() {
-        var waited = false;
-        env.beforeEach(function(done) {
-          process.nextTick(function() {
-            waited = true;
-            done();
-          });
-        });
-        env.it("waited", function() {
-          env.currentSpec.expect(waited).toBeTruthy();
-        });
-      });
-
-      env.currentRunner().execute();
-
-      waitsFor(function() {
-        return env.currentRunner().results().totalCount > 0;
-      });
-
-      runs(function() {
-        expect(env.currentRunner().results().passedCount).toEqual(1);
-      });
-      });
-  });
-
-  describe("afterEach", function() {
-    it("should be passed async callback", function() {
-      var completed = false;
-      env.describe("afterEach", function() {
-        env.afterEach(function(done) {
-          process.nextTick(function() {
-            done('Failed in afterEach');
-            completed = true;
-          });
-        });
-        env.it("should pass", function() {
-          this.expect(1+2).toEqual(3);
-        });
-      });
-
-      env.currentRunner().execute();
-
-      waitsFor(function() {
-        return completed === true;
-      });
-
-      runs(function() {
-        expect(env.currentRunner().results().passedCount).toEqual(1);
-        expect(env.currentRunner().results().failedCount).toEqual(1);
-      });
-    });
-  });
-});
-
-function firstResult(runner) {
-  return runner.results().getItems()[0].getItems()[0].getItems()[0];
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/helper_spec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/helper_spec.js b/blackberry10/node_modules/jasmine-node/spec/helper_spec.js
deleted file mode 100644
index d157fd2..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/helper_spec.js
+++ /dev/null
@@ -1,7 +0,0 @@
-describe("helper", function() {
-  it("should load the helpers", function() {
-    var expectation= expect(true);
-    
-    expect(typeof(expectation.toHaveProperty)).toBe('function');
-  });
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/litcoffee/Litcoffee.spec.litcoffee
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/litcoffee/Litcoffee.spec.litcoffee b/blackberry10/node_modules/jasmine-node/spec/litcoffee/Litcoffee.spec.litcoffee
deleted file mode 100644
index 77eb791..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/litcoffee/Litcoffee.spec.litcoffee
+++ /dev/null
@@ -1,9 +0,0 @@
-Literate CoffeeScript
-====================
-
-This is a spec using written in Literate CoffeeScript
-
-    describe 'Coffee.litcoffee', ->
-
-        it 'should pass', ->
-            expect(1+2).toEqual(3)

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/nested.js/NestedSpec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/nested.js/NestedSpec.js b/blackberry10/node_modules/jasmine-node/spec/nested.js/NestedSpec.js
deleted file mode 100644
index e63ee64..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/nested.js/NestedSpec.js
+++ /dev/null
@@ -1,5 +0,0 @@
-describe('jasmine-node-nested.js', function(){
-  it('should pass', function(){
-    expect(1+2).toEqual(3);
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/nested/NestedSpec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/nested/NestedSpec.js b/blackberry10/node_modules/jasmine-node/spec/nested/NestedSpec.js
deleted file mode 100755
index 6d27d30..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/nested/NestedSpec.js
+++ /dev/null
@@ -1,5 +0,0 @@
-describe('jasmine-node-nested', function(){
-  it('should pass', function(){
-    expect(1+2).toEqual(3);
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/nested/uber-nested/UberNestedSpec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/nested/uber-nested/UberNestedSpec.js b/blackberry10/node_modules/jasmine-node/spec/nested/uber-nested/UberNestedSpec.js
deleted file mode 100755
index 146203b..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/nested/uber-nested/UberNestedSpec.js
+++ /dev/null
@@ -1,11 +0,0 @@
-describe('jasmine-node-uber-nested', function(){
-  it('should pass', function(){
-    expect(1+2).toEqual(3);
-  });
-
-  describe('failure', function(){
-    it('should report failure (THIS IS EXPECTED)', function(){
-      expect(true).toBeFalsy();
-    });
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/reporter_spec.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/reporter_spec.js b/blackberry10/node_modules/jasmine-node/spec/reporter_spec.js
deleted file mode 100644
index b89df45..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/reporter_spec.js
+++ /dev/null
@@ -1,476 +0,0 @@
-var jasmineNode = require(__dirname + "/../lib/jasmine-node/reporter").jasmineNode;
-
-describe('TerminalReporter', function() {
-  beforeEach(function() {
-    var config = {}
-    this.reporter = new jasmineNode.TerminalReporter(config);
-  });
-
-  describe("initialize", function() {
-    it('initializes print_ from config', function() {
-      var config = { print: true };
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.print_).toBeTruthy();
-    });
-
-    it('initializes color_ from config', function() {
-      var config = { color: true }
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.color_).toEqual(jasmineNode.TerminalReporter.prototype.ANSIColors);
-    });
-
-    it('initializes includeStackTrace_ from config', function () {
-        var config = {}
-        this.reporter = new jasmineNode.TerminalReporter(config);
-        expect(this.reporter.includeStackTrace_).toBeTruthy();
-    });
-
-    it('sets the started_ flag to false', function() {
-      var config = {}
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.started_).toBeFalsy();
-    });
-
-    it('sets the finished_ flag to false', function() {
-      var config = {}
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.finished_).toBeFalsy();
-    });
-
-    it('initializes the suites_ array', function() {
-      var config = {}
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.suites_.length).toEqual(0);
-    });
-
-    it('initializes the specResults_ to an Object', function() {
-      var config = {}
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.specResults_).toBeDefined();
-    });
-
-    it('initializes the failures_ array', function() {
-      var config = {}
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.failures_.length).toEqual(0);
-    });
-
-    it('sets the callback_ property to false by default', function() {
-      var config = {}
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.callback_).toEqual(false)
-    });
-
-    it('sets the callback_ property to onComplete if supplied', function() {
-      var foo = function() { }
-      var config = { onComplete: foo }
-      this.reporter = new jasmineNode.TerminalReporter(config);
-      expect(this.reporter.callback_).toBe(foo)
-    });
-  });
-
-  describe('when the report runner starts', function() {
-    beforeEach(function() {
-      this.spy = spyOn(this.reporter, 'printLine_');
-
-      var runner = {
-        topLevelSuites: function() {
-          var suites = [];
-          var suite = { id: 25 };
-          suites.push(suite);
-          return suites;
-        }
-      };
-      this.reporter.reportRunnerStarting(runner);
-    });
-
-    it('sets the started_ field to true', function() {
-      expect(this.reporter.started_).toBeTruthy();
-    });
-
-    it('sets the startedAt field', function() {
-      // instanceof does not work cross-context (such as when run with requirejs)
-      var ts = Object.prototype.toString;
-      expect(ts.call(this.reporter.startedAt)).toBe(ts.call(new Date()));
-    });
-
-    it('buildes the suites_ collection', function() {
-      expect(this.reporter.suites_.length).toEqual(1);
-      expect(this.reporter.suites_[0].id).toEqual(25);
-    });
-  });
-
-  describe('the summarize_ creates suite and spec tree', function() {
-    beforeEach(function() {
-      this.spec = {
-        id: 1,
-        description: 'the spec',
-        isSuite: false
-      }
-    });
-
-    it('creates a summary object from spec', function() {
-      var result = this.reporter.summarize_(this.spec);
-
-      expect(result.id).toEqual(1);
-      expect(result.name).toEqual('the spec');
-      expect(result.type).toEqual('spec');
-      expect(result.children.length).toEqual(0);
-    });
-
-    it('creates a summary object from suite with 1 spec', function() {
-      var env = { nextSuiteId: false }
-      var suite = new jasmine.Suite(env, 'suite name', undefined, undefined);
-      suite.description = 'the suite';
-      suite.parentSuite = null;
-      suite.children_.push(this.spec);
-
-      var result = this.reporter.summarize_(suite);
-      expect(result.name).toEqual('the suite');
-      expect(result.type).toEqual('suite');
-      expect(result.children.length).toEqual(1);
-
-      var suiteChildSpec = result.children[0];
-      expect(suiteChildSpec.id).toEqual(1);
-    });
-  });
-
-  describe('reportRunnerResults', function() {
-    beforeEach(function() {
-      this.printLineSpy = spyOn(this.reporter, 'printLine_');
-    });
-
-    it('generates the report', function() {
-      var failuresSpy = spyOn(this.reporter, 'reportFailures_');
-      var printRunnerResultsSpy = spyOn(this.reporter, 'printRunnerResults_').
-                          andReturn('this is the runner result');
-
-      var callbackSpy = spyOn(this.reporter, 'callback_');
-
-      var runner = {
-        results: function() {
-          var result = { failedCount: 0 };
-          return result;
-        },
-        specs: function() { return []; }
-      };
-      this.reporter.startedAt = new Date();
-
-      this.reporter.reportRunnerResults(runner);
-
-      expect(failuresSpy).toHaveBeenCalled();
-      expect(this.printLineSpy).toHaveBeenCalled();
-      expect(callbackSpy).toHaveBeenCalled();
-    });
-  });
-
-  describe('reportSpecResults', function() {
-    beforeEach(function() {
-      this.printSpy = spyOn(this.reporter, 'print_');
-      this.spec = {
-        id: 1,
-        description: 'the spec',
-        isSuite: false,
-        results: function() {
-          var result = {
-            passed: function() { return true; }
-          }
-          return result;
-        }
-      }
-    });
-
-    it('prints a \'.\' for pass', function() {
-      this.reporter.reportSpecResults(this.spec);
-      expect(this.printSpy).toHaveBeenCalledWith('.');
-    });
-
-    it('prints an \'F\' for failure', function() {
-      var addFailureToFailuresSpy = spyOn(this.reporter, 'addFailureToFailures_');
-      var results = function() {
-        var result = {
-          passed: function() { return false; }
-        }
-        return result;
-      }
-      this.spec.results = results;
-
-      this.reporter.reportSpecResults(this.spec);
-
-      expect(this.printSpy).toHaveBeenCalledWith('F');
-      expect(addFailureToFailuresSpy).toHaveBeenCalled();
-    });
-  });
-
-  describe('addFailureToFailures', function() {
-    it('adds message and stackTrace to failures_', function() {
-      var spec = {
-        suite: {
-          getFullName: function() { return 'Suite name' }
-        },
-        description: 'the spec',
-        results: function() {
-          var result = {
-            items_: function() {
-              var theItems = new Array();
-              var item = {
-                passed_: false,
-                message: 'the message',
-                trace: {
-                  stack: 'the stack'
-                }
-              }
-              theItems.push(item);
-              return theItems;
-            }.call()
-          };
-          return result;
-        }
-      };
-
-      this.reporter.addFailureToFailures_(spec);
-
-      var failures = this.reporter.failures_;
-      expect(failures.length).toEqual(1);
-      var failure = failures[0];
-      expect(failure.spec).toEqual('Suite name the spec');
-      expect(failure.message).toEqual('the message');
-      expect(failure.stackTrace).toEqual('the stack');
-    });
-  });
-
-  describe('prints the runner results', function() {
-    beforeEach(function() {
-      this.runner = {
-        results: function() {
-          var _results = {
-            totalCount: 23,
-            failedCount: 52
-          };
-          return _results;
-        },
-        specs: function() {
-          var _specs = new Array();
-          _specs.push(1);
-          return _specs;
-        }
-      };
-    });
-
-    it('uses the specs\'s length, totalCount and failedCount', function() {
-      var message = this.reporter.printRunnerResults_(this.runner);
-      expect(message).toEqual('1 test, 23 assertions, 52 failures\n');
-    });
-  });
-
-  describe('reports failures', function() {
-    beforeEach(function() {
-      this.printSpy = spyOn(this.reporter, 'print_');
-      this.printLineSpy = spyOn(this.reporter, 'printLine_');
-    });
-
-    it('does not report anything when there are no failures', function() {
-      this.reporter.failures_ = new Array();
-
-      this.reporter.reportFailures_();
-
-      expect(this.printLineSpy).not.toHaveBeenCalled();
-    });
-
-    it('prints the failures', function() {
-      var failure = {
-        spec: 'the spec',
-        message: 'the message',
-        stackTrace: 'the stackTrace'
-      }
-
-      this.reporter.failures_ = new Array();
-      this.reporter.failures_.push(failure);
-
-      this.reporter.reportFailures_();
-
-      var generatedOutput =
-                 [ [ '\n' ],
-                 [ '\n' ],
-                 [ '  1) the spec' ],
-                 [ '   Message:' ],
-                 [ '     the message' ],
-                 [ '   Stacktrace:' ] ];
-
-      expect(this.printLineSpy).toHaveBeenCalled();
-      expect(this.printLineSpy.argsForCall).toEqual(generatedOutput);
-
-      expect(this.printSpy).toHaveBeenCalled();
-      expect(this.printSpy.argsForCall[0]).toEqual(['Failures:']);
-      expect(this.printSpy.argsForCall[1]).toEqual(['     the stackTrace']);
-    });
-
-    it('prints the failures without a Stacktrace', function () {
-        var config = { includeStackTrace: false };
-        this.reporter = new jasmineNode.TerminalReporter(config);
-        this.printSpy = spyOn(this.reporter, 'print_');
-        this.printLineSpy = spyOn(this.reporter, 'printLine_');
-
-        var failure = {
-            spec: 'the spec',
-            message: 'the message',
-            stackTrace: 'the stackTrace'
-        }
-
-        this.reporter.failures_ = new Array();
-        this.reporter.failures_.push(failure);
-
-        this.reporter.reportFailures_();
-
-        var generatedOutput =
-                 [ [ '\n' ],
-                 [ '\n' ],
-                 [ '  1) the spec' ],
-                 [ '   Message:' ],
-                 [ '     the message' ] ];
-
-        expect(this.printLineSpy).toHaveBeenCalled();
-        expect(this.printLineSpy.argsForCall).toEqual(generatedOutput);
-
-        expect(this.printSpy).toHaveBeenCalled();
-        expect(this.printSpy.argsForCall[0]).toEqual(['Failures:']);
-        expect(this.printSpy.argsForCall[1]).toBeUndefined();
-    });
-  });
-});
-
-describe('TerminalVerboseReporter', function() {
-  beforeEach(function() {
-    var config = {}
-    this.verboseReporter = new jasmineNode.TerminalVerboseReporter(config);
-    this.addFailureToFailuresSpy = spyOn(this.verboseReporter, 'addFailureToFailures_');
-    this.spec = {
-      id: 23,
-      results: function() {
-        return {
-          failedCount: 1,
-          getItems: function() {
-            return ["this is the message"];
-          }
-        }
-      }
-    };
-  });
-
-  describe('#reportSpecResults', function() {
-    it('adds the spec to the failures_', function() {
-      this.verboseReporter.reportSpecResults(this.spec);
-
-      expect(this.addFailureToFailuresSpy).toHaveBeenCalledWith(this.spec);
-    });
-
-    it('adds a new object to the specResults_', function() {
-      this.verboseReporter.reportSpecResults(this.spec);
-
-      expect(this.verboseReporter.specResults_[23].messages).toEqual(['this is the message']);
-      expect(this.verboseReporter.specResults_[23].result).toEqual('failed');
-    });
-  });
-
-  describe('#buildMessagesFromResults_', function() {
-    beforeEach(function() {
-      this.suite = {
-        type: 'suite',
-        name: 'a describe block',
-        suiteNestingLevel: 0,
-        children: [],
-        getFullName: function() { return "A spec"; },
-      };
-
-      this.spec = {
-        id: 23,
-        type: 'spec',
-        name: 'a spec block',
-        children: []
-      };
-
-      this.verboseReporter.specResults_['23'] = {
-        result: 'passed'
-      };
-
-    });
-
-    it('does not build anything when the results collection is empty', function() {
-      var results = [],
-          messages = [];
-
-      this.verboseReporter.buildMessagesFromResults_(messages, results);
-
-      expect(messages.length).toEqual(0);
-    });
-
-    it('adds a single suite to the messages', function() {
-      var results = [],
-          messages = [];
-
-      results.push(this.suite);
-
-      this.verboseReporter.buildMessagesFromResults_(messages, results);
-
-      expect(messages.length).toEqual(2);
-      expect(messages[0]).toEqual('');
-      expect(messages[1]).toEqual('a describe block');
-    });
-
-    it('adds a single spec with success to the messages', function() {
-      var results = [],
-          messages = [];
-
-      this.passSpy = spyOn(this.verboseReporter.color_, 'pass');
-
-      results.push(this.spec);
-
-      this.verboseReporter.buildMessagesFromResults_(messages, results);
-
-      expect(this.passSpy).toHaveBeenCalled();
-      expect(messages.length).toEqual(1);
-      expect(messages[0]).toEqual('a spec block');
-    });
-
-    it('adds a single spec with failure to the messages', function() {
-      var results = [],
-          messages = [];
-
-      this.verboseReporter.specResults_['23'].result = 'failed';
-
-      this.passSpy = spyOn(this.verboseReporter.color_, 'pass');
-      this.failSpy = spyOn(this.verboseReporter.color_, 'fail');
-
-      results.push(this.spec);
-
-      this.verboseReporter.buildMessagesFromResults_(messages, results);
-
-      expect(this.failSpy).toHaveBeenCalled();
-      expect(this.passSpy).not.toHaveBeenCalled();
-    });
-
-    it('adds a suite, a suite and a single spec with success to the messages', function() {
-      var results = [],
-          messages = [];
-
-      var subSuite = new Object();
-      subSuite.type = 'suite';
-      subSuite.name = 'a sub describe block';
-      subSuite.suiteNestingLevel = 1;
-      subSuite.children = [];
-      subSuite.children.push(this.spec);
-
-      this.suite.children.push(subSuite);
-      results.push(this.suite);
-
-      this.verboseReporter.buildMessagesFromResults_(messages, results);
-
-      expect(messages.length).toEqual(5);
-      expect(messages[0]).toEqual('');
-      expect(messages[1]).toEqual('a describe block');
-      expect(messages[2]).toEqual('');
-      expect(messages[3]).toEqual('    a sub describe block');
-      expect(messages[4]).toEqual('        a spec block');
-    });
-  });
-});

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/spec/sample_helper.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/spec/sample_helper.js b/blackberry10/node_modules/jasmine-node/spec/sample_helper.js
deleted file mode 100644
index 9f8032f..0000000
--- a/blackberry10/node_modules/jasmine-node/spec/sample_helper.js
+++ /dev/null
@@ -1,15 +0,0 @@
-(function(){
-
-  var objectToString = Object.prototype.toString;
-  var PRIMITIVE_TYPES = [String, Number, RegExp, Boolean, Date];
-
-  jasmine.Matchers.prototype.toHaveProperty = function(prop) {
-      try {
-        return prop in this.actual;
-      }
-      catch (e) {
-        return false;
-      }
-  }
-
-})();

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jasmine-node/specs.sh
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jasmine-node/specs.sh b/blackberry10/node_modules/jasmine-node/specs.sh
deleted file mode 100755
index e61c11e..0000000
--- a/blackberry10/node_modules/jasmine-node/specs.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-
-entry="node lib/jasmine-node/cli.js "
-
-echo "Running all tests located in the spec directory"
-command=$entry"spec"
-echo $command
-time $command #/nested/uber-nested
-echo -e "\033[1;35m--- Should have 57 tests and 101 assertions and 2 Failure. ---\033[0m"
-echo ""
-
-echo "Running all tests located in the spec directory with coffee option"
-command=$entry"--coffee spec"
-echo $command
-time $command #/nested/uber-nested
-echo -e "\033[1;35m--- Should have 62 tests and 106 assertions and 4 Failures. ---\033[0m"
-echo ""
-
-echo "Running all tests located in the spec directory with requirejs option"
-#command=$entry"--nohelpers --runWithRequireJs spec-requirejs"
-command=$entry"--runWithRequireJs spec"
-echo $command
-time $command
-echo -e "\033[1;35m--- Should have 57 tests and 101 assertions and 2 Failure. ---\033[0m"
-echo ""
-
-echo "Running all tests located in the spec-requirejs directory with requirejs, requirejs setup, and coffee option"
-command=$entry"--runWithRequireJs --requireJsSetup spec-requirejs-coffee/requirejs-setup.js --coffee spec-requirejs-coffee"
-echo $command
-time $command
-echo -e "\033[1;35m--- Should have 2 tests and 4 assertions and 0 Failure. ---\033[0m"
-
-echo "Running three specs file in the spec directory with coffee option"
-command=$entry"--coffee spec/AsyncSpec.coffee spec/CoffeeSpec.coffee spec/SampleSpecs.js"
-echo $command
-time $command
-echo -e "\033[1;35m--- Should have 3 tests and 3 assertions and 2 Failure. ---\033[0m"

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/.hgignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/.hgignore b/blackberry10/node_modules/net-ping/.hgignore
deleted file mode 100644
index 13cfce5..0000000
--- a/blackberry10/node_modules/net-ping/.hgignore
+++ /dev/null
@@ -1,2 +0,0 @@
-syntax: glob
-node_modules

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/net-ping/.hgtags
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/net-ping/.hgtags b/blackberry10/node_modules/net-ping/.hgtags
deleted file mode 100644
index 7730a61..0000000
--- a/blackberry10/node_modules/net-ping/.hgtags
+++ /dev/null
@@ -1,18 +0,0 @@
-9c3a64710c2fe43626ff9a63f3f5869dd1bfeb6e 1.0.0
-b1424b13eeb49c48692849c5b8616b0ba78529f7 1.0.1
-b1424b13eeb49c48692849c5b8616b0ba78529f7 1.0.1
-b0bbf8d3877664bd4ebc6b06bde6f81b8e36bfff 1.0.1
-af474759ad43eaeb6fae62be95b6194de8675ff2 1.0.2
-3af98475085396f6de474bc797f25784046a7ff4 1.1.0
-56c5153f97484cca265c26cc000e07f54a8bb01d 1.1.1
-3755c403b4ac77543ca303659017713c18e459bd 1.1.2
-b95860ddebe2366967b024d1c1818e06005eda49 1.1.3
-5f06497425fa2f31e36b22951dba5e6d08365fa9 1.1.5
-65d8b86b0b2667948a09fee2aa9997d93112575a 1.1.6
-a1b6fbaeda9d93da9a4db17be687667907b7ca86 1.1.7
-a1b6fbaeda9d93da9a4db17be687667907b7ca86 1.1.7
-80b8cf0dd0314e0828cdb3ad9a0955282306a914 1.1.7
-80b8cf0dd0314e0828cdb3ad9a0955282306a914 1.1.7
-7add610f4d27355af05f24af24505c7f86d484a6 1.1.7
-7a1911146a69d7028a27ebd8d30e1257336ba15c 1.1.8
-1b5f2a51510ca8304a95c9b352cd26cba0d8b0a7 1.1.9


[47/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/package.json b/blackberry10/node_modules/jake/node_modules/minimatch/package.json
deleted file mode 100644
index 8ec9c62..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me"
-  },
-  "name": "minimatch",
-  "description": "a glob matcher in javascript",
-  "version": "0.2.12",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/minimatch.git"
-  },
-  "main": "minimatch.js",
-  "scripts": {
-    "test": "tap test"
-  },
-  "engines": {
-    "node": "*"
-  },
-  "dependencies": {
-    "lru-cache": "2",
-    "sigmund": "~1.0.0"
-  },
-  "devDependencies": {
-    "tap": ""
-  },
-  "license": {
-    "type": "MIT",
-    "url": "http://github.com/isaacs/minimatch/raw/master/LICENSE"
-  },
-  "readme": "# minimatch\n\nA minimal matching utility.\n\n[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.png)](http://travis-ci.org/isaacs/minimatch)\n\n\nThis is the matching library used internally by npm.\n\nEventually, it will replace the C binding in node-glob.\n\nIt works by converting glob expressions into JavaScript `RegExp`\nobjects.\n\n## Usage\n\n```javascript\nvar minimatch = require(\"minimatch\")\n\nminimatch(\"bar.foo\", \"*.foo\") // true!\nminimatch(\"bar.foo\", \"*.bar\") // false!\n```\n\n## Features\n\nSupports these glob features:\n\n* Brace Expansion\n* Extended glob matching\n* \"Globstar\" `**` matching\n\nSee:\n\n* `man sh`\n* `man bash`\n* `man 3 fnmatch`\n* `man 5 gitignore`\n\n### Comparisons to other fnmatch/glob implementations\n\nWhile strict compliance with the existing standards is a worthwhile\ngoal, some discrepancies exist between minimatch and other\nimplementations, and are intentional.\n\nIf the pattern starts with a `!` charac
 ter, then it is negated.  Set the\n`nonegate` flag to suppress this behavior, and treat leading `!`\ncharacters normally.  This is perhaps relevant if you wish to start the\npattern with a negative extglob pattern like `!(a|B)`.  Multiple `!`\ncharacters at the start of a pattern will negate the pattern multiple\ntimes.\n\nIf a pattern starts with `#`, then it is treated as a comment, and\nwill not match anything.  Use `\\#` to match a literal `#` at the\nstart of a line, or set the `nocomment` flag to suppress this behavior.\n\nThe double-star character `**` is supported by default, unless the\n`noglobstar` flag is set.  This is supported in the manner of bsdglob\nand bash 4.1, where `**` only has special significance if it is the only\nthing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but\n`a/**b` will not.  **Note that this is different from the way that `**` is\nhandled by ruby's `Dir` class.**\n\nIf an escaped pattern has no matches, and the `nonull` flag is set,\n
 then minimatch.match returns the pattern as-provided, rather than\ninterpreting the character escapes.  For example,\n`minimatch.match([], \"\\\\*a\\\\?\")` will return `\"\\\\*a\\\\?\"` rather than\n`\"*a?\"`.  This is akin to setting the `nullglob` option in bash, except\nthat it does not resolve escaped pattern characters.\n\nIf brace expansion is not disabled, then it is performed before any\nother interpretation of the glob pattern.  Thus, a pattern like\n`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded\n**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are\nchecked for validity.  Since those two are valid, matching proceeds.\n\n\n## Minimatch Class\n\nCreate a minimatch object by instanting the `minimatch.Minimatch` class.\n\n```javascript\nvar Minimatch = require(\"minimatch\").Minimatch\nvar mm = new Minimatch(pattern, options)\n```\n\n### Properties\n\n* `pattern` The original pattern the minimatch object represents.\n* `options` The opt
 ions supplied to the constructor.\n* `set` A 2-dimensional array of regexp or string expressions.\n  Each row in the\n  array corresponds to a brace-expanded pattern.  Each item in the row\n  corresponds to a single path-part.  For example, the pattern\n  `{a,b/c}/d` would expand to a set of patterns like:\n\n        [ [ a, d ]\n        , [ b, c, d ] ]\n\n    If a portion of the pattern doesn't have any \"magic\" in it\n    (that is, it's something like `\"foo\"` rather than `fo*o?`), then it\n    will be left as a string rather than converted to a regular\n    expression.\n\n* `regexp` Created by the `makeRe` method.  A single regular expression\n  expressing the entire pattern.  This is useful in cases where you wish\n  to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.\n* `negate` True if the pattern is negated.\n* `comment` True if the pattern is a comment.\n* `empty` True if the pattern is `\"\"`.\n\n### Methods\n\n* `makeRe` Generate the `regexp` member if 
 necessary, and return it.\n  Will return `false` if the pattern is invalid.\n* `match(fname)` Return true if the filename matches the pattern, or\n  false otherwise.\n* `matchOne(fileArray, patternArray, partial)` Take a `/`-split\n  filename, and match it against a single row in the `regExpSet`.  This\n  method is mainly for internal use, but is exposed so that it can be\n  used by a glob-walker that needs to avoid excessive filesystem calls.\n\nAll other methods are internal, and will be called as necessary.\n\n## Functions\n\nThe top-level exported function has a `cache` property, which is an LRU\ncache set to store 100 items.  So, calling these methods repeatedly\nwith the same pattern and options will use the same Minimatch object,\nsaving the cost of parsing it multiple times.\n\n### minimatch(path, pattern, options)\n\nMain export.  Tests a path against the pattern using the options.\n\n```javascript\nvar isJS = minimatch(file, \"*.js\", { matchBase: true })\n```\n\n### minim
 atch.filter(pattern, options)\n\nReturns a function that tests its\nsupplied argument, suitable for use with `Array.filter`.  Example:\n\n```javascript\nvar javascripts = fileList.filter(minimatch.filter(\"*.js\", {matchBase: true}))\n```\n\n### minimatch.match(list, pattern, options)\n\nMatch against the list of\nfiles, in the style of fnmatch or glob.  If nothing is matched, and\noptions.nonull is set, then return a list containing the pattern itself.\n\n```javascript\nvar javascripts = minimatch.match(fileList, \"*.js\", {matchBase: true}))\n```\n\n### minimatch.makeRe(pattern, options)\n\nMake a regular expression object from the pattern.\n\n## Options\n\nAll options are `false` by default.\n\n### debug\n\nDump a ton of stuff to stderr.\n\n### nobrace\n\nDo not expand `{a,b}` and `{1..3}` brace sets.\n\n### noglobstar\n\nDisable `**` matching against multiple folder names.\n\n### dot\n\nAllow patterns to match filenames starting with a period, even if\nthe pattern does not expli
 citly have a period in that spot.\n\nNote that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`\nis set.\n\n### noext\n\nDisable \"extglob\" style patterns like `+(a|b)`.\n\n### nocase\n\nPerform a case-insensitive match.\n\n### nonull\n\nWhen a match is not found by `minimatch.match`, return a list containing\nthe pattern itself.  When set, an empty list is returned if there are\nno matches.\n\n### matchBase\n\nIf set, then patterns without slashes will be matched\nagainst the basename of the path if it contains slashes.  For example,\n`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.\n\n### nocomment\n\nSuppress the behavior of treating `#` at the start of a pattern as a\ncomment.\n\n### nonegate\n\nSuppress the behavior of treating a leading `!` character as negation.\n\n### flipNegate\n\nReturns from negate expressions the same as if they were not negated.\n(Ie, true on a hit, false on a miss.)\n",
-  "readmeFilename": "README.md",
-  "bugs": {
-    "url": "https://github.com/isaacs/minimatch/issues"
-  },
-  "_id": "minimatch@0.2.12",
-  "_from": "minimatch@0.2.x"
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/test/basic.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/test/basic.js b/blackberry10/node_modules/jake/node_modules/minimatch/test/basic.js
deleted file mode 100644
index ae7ac73..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/test/basic.js
+++ /dev/null
@@ -1,399 +0,0 @@
-// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test
-//
-// TODO: Some of these tests do very bad things with backslashes, and will
-// most likely fail badly on windows.  They should probably be skipped.
-
-var tap = require("tap")
-  , globalBefore = Object.keys(global)
-  , mm = require("../")
-  , files = [ "a", "b", "c", "d", "abc"
-            , "abd", "abe", "bb", "bcd"
-            , "ca", "cb", "dd", "de"
-            , "bdir/", "bdir/cfile"]
-  , next = files.concat([ "a-b", "aXb"
-                        , ".x", ".y" ])
-
-
-var patterns =
-  [ "http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test"
-  , ["a*", ["a", "abc", "abd", "abe"]]
-  , ["X*", ["X*"], {nonull: true}]
-
-  // allow null glob expansion
-  , ["X*", []]
-
-  // isaacs: Slightly different than bash/sh/ksh
-  // \\* is not un-escaped to literal "*" in a failed match,
-  // but it does make it get treated as a literal star
-  , ["\\*", ["\\*"], {nonull: true}]
-  , ["\\**", ["\\**"], {nonull: true}]
-  , ["\\*\\*", ["\\*\\*"], {nonull: true}]
-
-  , ["b*/", ["bdir/"]]
-  , ["c*", ["c", "ca", "cb"]]
-  , ["**", files]
-
-  , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}]
-  , ["s/\\..*//", ["s/\\..*//"], {nonull: true}]
-
-  , "legendary larry crashes bashes"
-  , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}]
-  , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}]
-
-  , "character classes"
-  , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]]
-  , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd",
-     "bdir/", "ca", "cb", "dd", "de"]]
-  , ["a*[^c]", ["abd", "abe"]]
-  , function () { files.push("a-b", "aXb") }
-  , ["a[X-]b", ["a-b", "aXb"]]
-  , function () { files.push(".x", ".y") }
-  , ["[^a-c]*", ["d", "dd", "de"]]
-  , function () { files.push("a*b/", "a*b/ooo") }
-  , ["a\\*b/*", ["a*b/ooo"]]
-  , ["a\\*?/*", ["a*b/ooo"]]
-  , ["*\\\\!*", [], {null: true}, ["echo !7"]]
-  , ["*\\!*", ["echo !7"], null, ["echo !7"]]
-  , ["*.\\*", ["r.*"], null, ["r.*"]]
-  , ["a[b]c", ["abc"]]
-  , ["a[\\b]c", ["abc"]]
-  , ["a?c", ["abc"]]
-  , ["a\\*c", [], {null: true}, ["abc"]]
-  , ["", [""], { null: true }, [""]]
-
-  , "http://www.opensource.apple.com/source/bash/bash-23/" +
-    "bash/tests/glob-test"
-  , function () { files.push("man/", "man/man1/", "man/man1/bash.1") }
-  , ["*/man*/bash.*", ["man/man1/bash.1"]]
-  , ["man/man1/bash.1", ["man/man1/bash.1"]]
-  , ["a***c", ["abc"], null, ["abc"]]
-  , ["a*****?c", ["abc"], null, ["abc"]]
-  , ["?*****??", ["abc"], null, ["abc"]]
-  , ["*****??", ["abc"], null, ["abc"]]
-  , ["?*****?c", ["abc"], null, ["abc"]]
-  , ["?***?****c", ["abc"], null, ["abc"]]
-  , ["?***?****?", ["abc"], null, ["abc"]]
-  , ["?***?****", ["abc"], null, ["abc"]]
-  , ["*******c", ["abc"], null, ["abc"]]
-  , ["*******?", ["abc"], null, ["abc"]]
-  , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-  , ["[-abc]", ["-"], null, ["-"]]
-  , ["[abc-]", ["-"], null, ["-"]]
-  , ["\\", ["\\"], null, ["\\"]]
-  , ["[\\\\]", ["\\"], null, ["\\"]]
-  , ["[[]", ["["], null, ["["]]
-  , ["[", ["["], null, ["["]]
-  , ["[*", ["[abc"], null, ["[abc"]]
-  , "a right bracket shall lose its special meaning and\n" +
-    "represent itself in a bracket expression if it occurs\n" +
-    "first in the list.  -- POSIX.2 2.8.3.2"
-  , ["[]]", ["]"], null, ["]"]]
-  , ["[]-]", ["]"], null, ["]"]]
-  , ["[a-\z]", ["p"], null, ["p"]]
-  , ["??**********?****?", [], { null: true }, ["abc"]]
-  , ["??**********?****c", [], { null: true }, ["abc"]]
-  , ["?************c****?****", [], { null: true }, ["abc"]]
-  , ["*c*?**", [], { null: true }, ["abc"]]
-  , ["a*****c*?**", [], { null: true }, ["abc"]]
-  , ["a********???*******", [], { null: true }, ["abc"]]
-  , ["[]", [], { null: true }, ["a"]]
-  , ["[abc", [], { null: true }, ["["]]
-
-  , "nocase tests"
-  , ["XYZ", ["xYz"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-  , ["ab*", ["ABC"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-  , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true }
-    , ["xYz", "ABC", "IjK"]]
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  , "onestar/twostar"
-  , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]]
-  , ["{/?,*}", ["/a", "bb"], {null: true}
-    , ["/a", "/b/b", "/a/b/c", "bb"]]
-
-  , "dots should not match unless requested"
-  , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]]
-
-  // .. and . can only match patterns starting with .,
-  // even when options.dot is set.
-  , function () {
-      files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"]
-    }
-  , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}]
-  , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}]
-  , ["a/*/b", ["a/c/b"], {dot:false}]
-  , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}]
-
-
-  // this also tests that changing the options needs
-  // to change the cache key, even if the pattern is
-  // the same!
-  , ["**", ["a/b","a/.d",".a/.d"], { dot: true }
-    , [ ".a/.d", "a/.d", "a/b"]]
-
-  , "paren sets cannot contain slashes"
-  , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]]
-
-  // brace sets trump all else.
-  //
-  // invalid glob pattern.  fails on bash4 and bsdglob.
-  // however, in this implementation, it's easier just
-  // to do the intuitive thing, and let brace-expansion
-  // actually come before parsing any extglob patterns,
-  // like the documentation seems to say.
-  //
-  // XXX: if anyone complains about this, either fix it
-  // or tell them to grow up and stop complaining.
-  //
-  // bash/bsdglob says this:
-  // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]]
-  // but we do this instead:
-  , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]]
-
-  // test partial parsing in the presence of comment/negation chars
-  , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]]
-  , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]]
-
-  // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped.
-  , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g"
-    , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"]
-    , {}
-    , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]]
-
-
-  // crazy nested {,,} and *(||) tests.
-  , function () {
-      files = [ "a", "b", "c", "d"
-              , "ab", "ac", "ad"
-              , "bc", "cb"
-              , "bc,d", "c,db", "c,d"
-              , "d)", "(b|c", "*(b|c"
-              , "b|c", "b|cc", "cb|c"
-              , "x(a|b|c)", "x(a|c)"
-              , "(a|b|c)", "(a|c)"]
-    }
-  , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]]
-  , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]]
-  // a
-  // *(b|c)
-  // *(b|d)
-  , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]]
-  , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]]
-
-
-  // test various flag settings.
-  , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"]
-    , { noext: true } ]
-  , ["a?b", ["x/y/acb", "acb/"], {matchBase: true}
-    , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ]
-  , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]]
-
-
-  // begin channelling Boole and deMorgan...
-  , "negation tests"
-  , function () {
-      files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"]
-    }
-
-  // anything that is NOT a* matches.
-  , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]]
-
-  // anything that IS !a* matches.
-  , ["!a*", ["!ab", "!abc"], {nonegate: true}]
-
-  // anything that IS a* matches
-  , ["!!a*", ["a!b"]]
-
-  // anything that is NOT !a* matches
-  , ["!\\!a*", ["a!b", "d", "e", "\\!a"]]
-
-  // negation nestled within a pattern
-  , function () {
-      files = [ "foo.js"
-              , "foo.bar"
-              // can't match this one without negative lookbehind.
-              , "foo.js.js"
-              , "blar.js"
-              , "foo."
-              , "boo.js.boo" ]
-    }
-  , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ]
-
-  // https://github.com/isaacs/minimatch/issues/5
-  , function () {
-      files = [ 'a/b/.x/c'
-              , 'a/b/.x/c/d'
-              , 'a/b/.x/c/d/e'
-              , 'a/b/.x'
-              , 'a/b/.x/'
-              , 'a/.x/b'
-              , '.x'
-              , '.x/'
-              , '.x/a'
-              , '.x/a/b'
-              , 'a/.x/b/.x/c'
-              , '.x/.x' ]
-  }
-  , ["**/.x/**", [ '.x/'
-                 , '.x/a'
-                 , '.x/a/b'
-                 , 'a/.x/b'
-                 , 'a/b/.x/'
-                 , 'a/b/.x/c'
-                 , 'a/b/.x/c/d'
-                 , 'a/b/.x/c/d/e' ] ]
-
-  ]
-
-var regexps =
-  [ '/^(?:(?=.)a[^/]*?)$/',
-    '/^(?:(?=.)X[^/]*?)$/',
-    '/^(?:(?=.)X[^/]*?)$/',
-    '/^(?:\\*)$/',
-    '/^(?:(?=.)\\*[^/]*?)$/',
-    '/^(?:\\*\\*)$/',
-    '/^(?:(?=.)b[^/]*?\\/)$/',
-    '/^(?:(?=.)c[^/]*?)$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/',
-    '/^(?:\\.\\.\\/(?!\\.)(?=.)[^/]*?\\/)$/',
-    '/^(?:s\\/(?=.)\\.\\.[^/]*?\\/)$/',
-    '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/1\\/)$/',
-    '/^(?:\\/\\^root:\\/\\{s\\/(?=.)\\^[^:][^/]*?:[^:][^/]*?:\\([^:]\\)[^/]*?\\.[^/]*?\\$\\/\u0001\\/)$/',
-    '/^(?:(?!\\.)(?=.)[a-c]b[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[a-y][^/]*?[^c])$/',
-    '/^(?:(?=.)a[^/]*?[^c])$/',
-    '/^(?:(?=.)a[X-]b)$/',
-    '/^(?:(?!\\.)(?=.)[^a-c][^/]*?)$/',
-    '/^(?:a\\*b\\/(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?=.)a\\*[^/]\\/(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\\\\\![^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\![^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\.\\*)$/',
-    '/^(?:(?=.)a[b]c)$/',
-    '/^(?:(?=.)a[b]c)$/',
-    '/^(?:(?=.)a[^/]c)$/',
-    '/^(?:a\\*c)$/',
-    'false',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\/(?=.)man[^/]*?\\/(?=.)bash\\.[^/]*?)$/',
-    '/^(?:man\\/man1\\/bash\\.1)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?=.)a[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/]k[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/][^/]*?[^/]*?cd[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?k[^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[-abc])$/',
-    '/^(?:(?!\\.)(?=.)[abc-])$/',
-    '/^(?:\\\\)$/',
-    '/^(?:(?!\\.)(?=.)[\\\\])$/',
-    '/^(?:(?!\\.)(?=.)[\\[])$/',
-    '/^(?:\\[)$/',
-    '/^(?:(?=.)\\[(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[\\]])$/',
-    '/^(?:(?!\\.)(?=.)[\\]-])$/',
-    '/^(?:(?!\\.)(?=.)[a-z])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/])$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?c)$/',
-    '/^(?:(?!\\.)(?=.)[^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?c[^/]*?[^/][^/]*?[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/][^/][^/][^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?[^/]*?)$/',
-    '/^(?:\\[\\])$/',
-    '/^(?:\\[abc)$/',
-    '/^(?:(?=.)XYZ)$/i',
-    '/^(?:(?=.)ab[^/]*?)$/i',
-    '/^(?:(?!\\.)(?=.)[ia][^/][ck])$/i',
-    '/^(?:\\/(?!\\.)(?=.)[^/]*?|(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:\\/(?!\\.)(?=.)[^/]|(?!\\.)(?=.)[^/]*?)$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?)$/',
-    '/^(?:a\\/(?!(?:^|\\/)\\.{1,2}(?:$|\\/))(?=.)[^/]*?\\/b)$/',
-    '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/',
-    '/^(?:a\\/(?!\\.)(?=.)[^/]*?\\/b)$/',
-    '/^(?:a\\/(?=.)\\.[^/]*?\\/b)$/',
-    '/^(?:(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\/b\\))$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:(?=.)\\[(?=.)\\!a[^/]*?)$/',
-    '/^(?:(?=.)\\[(?=.)#a[^/]*?)$/',
-    '/^(?:(?=.)\\+\\(a\\|[^/]*?\\|c\\\\\\\\\\|d\\\\\\\\\\|e\\\\\\\\\\\\\\\\\\|f\\\\\\\\\\\\\\\\\\|g)$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:a|(?!\\.)(?=.)[^/]*?\\(b\\|c|d\\))$/',
-    '/^(?:a|(?!\\.)(?=.)(?:b|c)*|(?!\\.)(?=.)(?:b|d)*)$/',
-    '/^(?:(?!\\.)(?=.)(?:a|b|c)*|(?!\\.)(?=.)(?:a|c)*)$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\(a\\|b\\|c\\)|(?!\\.)(?=.)[^/]*?\\(a\\|c\\))$/',
-    '/^(?:(?=.)a[^/]b)$/',
-    '/^(?:(?=.)#[^/]*?)$/',
-    '/^(?!^(?:(?=.)a[^/]*?)$).*$/',
-    '/^(?:(?=.)\\!a[^/]*?)$/',
-    '/^(?:(?=.)a[^/]*?)$/',
-    '/^(?!^(?:(?=.)\\!a[^/]*?)$).*$/',
-    '/^(?:(?!\\.)(?=.)[^/]*?\\.(?:(?!js)[^/]*?))$/',
-    '/^(?:(?:(?!(?:\\/|^)\\.).)*?\\/\\.x\\/(?:(?!(?:\\/|^)\\.).)*?)$/' ]
-var re = 0;
-
-tap.test("basic tests", function (t) {
-  var start = Date.now()
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  patterns.forEach(function (c) {
-    if (typeof c === "function") return c()
-    if (typeof c === "string") return t.comment(c)
-
-    var pattern = c[0]
-      , expect = c[1].sort(alpha)
-      , options = c[2] || {}
-      , f = c[3] || files
-      , tapOpts = c[4] || {}
-
-    // options.debug = true
-    var m = new mm.Minimatch(pattern, options)
-    var r = m.makeRe()
-    var expectRe = regexps[re++]
-    tapOpts.re = String(r) || JSON.stringify(r)
-    tapOpts.files = JSON.stringify(f)
-    tapOpts.pattern = pattern
-    tapOpts.set = m.set
-    tapOpts.negated = m.negate
-
-    var actual = mm.match(f, pattern, options)
-    actual.sort(alpha)
-
-    t.equivalent( actual, expect
-                , JSON.stringify(pattern) + " " + JSON.stringify(expect)
-                , tapOpts )
-
-    t.equal(tapOpts.re, expectRe, tapOpts)
-  })
-
-  t.comment("time=" + (Date.now() - start) + "ms")
-  t.end()
-})
-
-tap.test("global leak test", function (t) {
-  var globalAfter = Object.keys(global)
-  t.equivalent(globalAfter, globalBefore, "no new globals, please")
-  t.end()
-})
-
-function alpha (a, b) {
-  return a > b ? 1 : -1
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/test/brace-expand.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/test/brace-expand.js b/blackberry10/node_modules/jake/node_modules/minimatch/test/brace-expand.js
deleted file mode 100644
index 7ee278a..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/test/brace-expand.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var tap = require("tap")
-  , minimatch = require("../")
-
-tap.test("brace expansion", function (t) {
-  // [ pattern, [expanded] ]
-  ; [ [ "a{b,c{d,e},{f,g}h}x{y,z}"
-      , [ "abxy"
-        , "abxz"
-        , "acdxy"
-        , "acdxz"
-        , "acexy"
-        , "acexz"
-        , "afhxy"
-        , "afhxz"
-        , "aghxy"
-        , "aghxz" ] ]
-    , [ "a{1..5}b"
-      , [ "a1b"
-        , "a2b"
-        , "a3b"
-        , "a4b"
-        , "a5b" ] ]
-    , [ "a{b}c", ["a{b}c"] ]
-  ].forEach(function (tc) {
-    var p = tc[0]
-      , expect = tc[1]
-    t.equivalent(minimatch.braceExpand(p), expect, p)
-  })
-  console.error("ending")
-  t.end()
-})
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/test/caching.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/test/caching.js b/blackberry10/node_modules/jake/node_modules/minimatch/test/caching.js
deleted file mode 100644
index 0fec4b0..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/test/caching.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var Minimatch = require("../minimatch.js").Minimatch
-var tap = require("tap")
-tap.test("cache test", function (t) {
-  var mm1 = new Minimatch("a?b")
-  var mm2 = new Minimatch("a?b")
-  t.equal(mm1, mm2, "should get the same object")
-  // the lru should drop it after 100 entries
-  for (var i = 0; i < 100; i ++) {
-    new Minimatch("a"+i)
-  }
-  mm2 = new Minimatch("a?b")
-  t.notEqual(mm1, mm2, "cache should have dropped")
-  t.end()
-})

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/test/defaults.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/test/defaults.js b/blackberry10/node_modules/jake/node_modules/minimatch/test/defaults.js
deleted file mode 100644
index 25f1f60..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/test/defaults.js
+++ /dev/null
@@ -1,274 +0,0 @@
-// http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test
-//
-// TODO: Some of these tests do very bad things with backslashes, and will
-// most likely fail badly on windows.  They should probably be skipped.
-
-var tap = require("tap")
-  , globalBefore = Object.keys(global)
-  , mm = require("../")
-  , files = [ "a", "b", "c", "d", "abc"
-            , "abd", "abe", "bb", "bcd"
-            , "ca", "cb", "dd", "de"
-            , "bdir/", "bdir/cfile"]
-  , next = files.concat([ "a-b", "aXb"
-                        , ".x", ".y" ])
-
-tap.test("basic tests", function (t) {
-  var start = Date.now()
-
-  // [ pattern, [matches], MM opts, files, TAP opts]
-  ; [ "http://www.bashcookbook.com/bashinfo" +
-      "/source/bash-1.14.7/tests/glob-test"
-    , ["a*", ["a", "abc", "abd", "abe"]]
-    , ["X*", ["X*"], {nonull: true}]
-
-    // allow null glob expansion
-    , ["X*", []]
-
-    // isaacs: Slightly different than bash/sh/ksh
-    // \\* is not un-escaped to literal "*" in a failed match,
-    // but it does make it get treated as a literal star
-    , ["\\*", ["\\*"], {nonull: true}]
-    , ["\\**", ["\\**"], {nonull: true}]
-    , ["\\*\\*", ["\\*\\*"], {nonull: true}]
-
-    , ["b*/", ["bdir/"]]
-    , ["c*", ["c", "ca", "cb"]]
-    , ["**", files]
-
-    , ["\\.\\./*/", ["\\.\\./*/"], {nonull: true}]
-    , ["s/\\..*//", ["s/\\..*//"], {nonull: true}]
-
-    , "legendary larry crashes bashes"
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"
-      , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\\1/"], {nonull: true}]
-    , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"
-      , ["/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/"], {nonull: true}]
-
-    , "character classes"
-    , ["[a-c]b*", ["abc", "abd", "abe", "bb", "cb"]]
-    , ["[a-y]*[^c]", ["abd", "abe", "bb", "bcd",
-       "bdir/", "ca", "cb", "dd", "de"]]
-    , ["a*[^c]", ["abd", "abe"]]
-    , function () { files.push("a-b", "aXb") }
-    , ["a[X-]b", ["a-b", "aXb"]]
-    , function () { files.push(".x", ".y") }
-    , ["[^a-c]*", ["d", "dd", "de"]]
-    , function () { files.push("a*b/", "a*b/ooo") }
-    , ["a\\*b/*", ["a*b/ooo"]]
-    , ["a\\*?/*", ["a*b/ooo"]]
-    , ["*\\\\!*", [], {null: true}, ["echo !7"]]
-    , ["*\\!*", ["echo !7"], null, ["echo !7"]]
-    , ["*.\\*", ["r.*"], null, ["r.*"]]
-    , ["a[b]c", ["abc"]]
-    , ["a[\\b]c", ["abc"]]
-    , ["a?c", ["abc"]]
-    , ["a\\*c", [], {null: true}, ["abc"]]
-    , ["", [""], { null: true }, [""]]
-
-    , "http://www.opensource.apple.com/source/bash/bash-23/" +
-      "bash/tests/glob-test"
-    , function () { files.push("man/", "man/man1/", "man/man1/bash.1") }
-    , ["*/man*/bash.*", ["man/man1/bash.1"]]
-    , ["man/man1/bash.1", ["man/man1/bash.1"]]
-    , ["a***c", ["abc"], null, ["abc"]]
-    , ["a*****?c", ["abc"], null, ["abc"]]
-    , ["?*****??", ["abc"], null, ["abc"]]
-    , ["*****??", ["abc"], null, ["abc"]]
-    , ["?*****?c", ["abc"], null, ["abc"]]
-    , ["?***?****c", ["abc"], null, ["abc"]]
-    , ["?***?****?", ["abc"], null, ["abc"]]
-    , ["?***?****", ["abc"], null, ["abc"]]
-    , ["*******c", ["abc"], null, ["abc"]]
-    , ["*******?", ["abc"], null, ["abc"]]
-    , ["a*cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??k***", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??***k", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a**?**cd**?**??***k**", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["a****c**?**??*****", ["abcdecdhjk"], null, ["abcdecdhjk"]]
-    , ["[-abc]", ["-"], null, ["-"]]
-    , ["[abc-]", ["-"], null, ["-"]]
-    , ["\\", ["\\"], null, ["\\"]]
-    , ["[\\\\]", ["\\"], null, ["\\"]]
-    , ["[[]", ["["], null, ["["]]
-    , ["[", ["["], null, ["["]]
-    , ["[*", ["[abc"], null, ["[abc"]]
-    , "a right bracket shall lose its special meaning and\n" +
-      "represent itself in a bracket expression if it occurs\n" +
-      "first in the list.  -- POSIX.2 2.8.3.2"
-    , ["[]]", ["]"], null, ["]"]]
-    , ["[]-]", ["]"], null, ["]"]]
-    , ["[a-\z]", ["p"], null, ["p"]]
-    , ["??**********?****?", [], { null: true }, ["abc"]]
-    , ["??**********?****c", [], { null: true }, ["abc"]]
-    , ["?************c****?****", [], { null: true }, ["abc"]]
-    , ["*c*?**", [], { null: true }, ["abc"]]
-    , ["a*****c*?**", [], { null: true }, ["abc"]]
-    , ["a********???*******", [], { null: true }, ["abc"]]
-    , ["[]", [], { null: true }, ["a"]]
-    , ["[abc", [], { null: true }, ["["]]
-
-    , "nocase tests"
-    , ["XYZ", ["xYz"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-    , ["ab*", ["ABC"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-    , ["[ia]?[ck]", ["ABC", "IjK"], { nocase: true, null: true }
-      , ["xYz", "ABC", "IjK"]]
-
-    // [ pattern, [matches], MM opts, files, TAP opts]
-    , "onestar/twostar"
-    , ["{/*,*}", [], {null: true}, ["/asdf/asdf/asdf"]]
-    , ["{/?,*}", ["/a", "bb"], {null: true}
-      , ["/a", "/b/b", "/a/b/c", "bb"]]
-
-    , "dots should not match unless requested"
-    , ["**", ["a/b"], {}, ["a/b", "a/.d", ".a/.d"]]
-
-    // .. and . can only match patterns starting with .,
-    // even when options.dot is set.
-    , function () {
-        files = ["a/./b", "a/../b", "a/c/b", "a/.d/b"]
-      }
-    , ["a/*/b", ["a/c/b", "a/.d/b"], {dot: true}]
-    , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: true}]
-    , ["a/*/b", ["a/c/b"], {dot:false}]
-    , ["a/.*/b", ["a/./b", "a/../b", "a/.d/b"], {dot: false}]
-
-
-    // this also tests that changing the options needs
-    // to change the cache key, even if the pattern is
-    // the same!
-    , ["**", ["a/b","a/.d",".a/.d"], { dot: true }
-      , [ ".a/.d", "a/.d", "a/b"]]
-
-    , "paren sets cannot contain slashes"
-    , ["*(a/b)", ["*(a/b)"], {nonull: true}, ["a/b"]]
-
-    // brace sets trump all else.
-    //
-    // invalid glob pattern.  fails on bash4 and bsdglob.
-    // however, in this implementation, it's easier just
-    // to do the intuitive thing, and let brace-expansion
-    // actually come before parsing any extglob patterns,
-    // like the documentation seems to say.
-    //
-    // XXX: if anyone complains about this, either fix it
-    // or tell them to grow up and stop complaining.
-    //
-    // bash/bsdglob says this:
-    // , ["*(a|{b),c)}", ["*(a|{b),c)}"], {}, ["a", "ab", "ac", "ad"]]
-    // but we do this instead:
-    , ["*(a|{b),c)}", ["a", "ab", "ac"], {}, ["a", "ab", "ac", "ad"]]
-
-    // test partial parsing in the presence of comment/negation chars
-    , ["[!a*", ["[!ab"], {}, ["[!ab", "[ab"]]
-    , ["[#a*", ["[#ab"], {}, ["[#ab", "[ab"]]
-
-    // like: {a,b|c\\,d\\\|e} except it's unclosed, so it has to be escaped.
-    , ["+(a|*\\|c\\\\|d\\\\\\|e\\\\\\\\|f\\\\\\\\\\|g"
-      , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g"]
-      , {}
-      , ["+(a|b\\|c\\\\|d\\\\|e\\\\\\\\|f\\\\\\\\|g", "a", "b\\c"]]
-
-
-    // crazy nested {,,} and *(||) tests.
-    , function () {
-        files = [ "a", "b", "c", "d"
-                , "ab", "ac", "ad"
-                , "bc", "cb"
-                , "bc,d", "c,db", "c,d"
-                , "d)", "(b|c", "*(b|c"
-                , "b|c", "b|cc", "cb|c"
-                , "x(a|b|c)", "x(a|c)"
-                , "(a|b|c)", "(a|c)"]
-      }
-    , ["*(a|{b,c})", ["a", "b", "c", "ab", "ac"]]
-    , ["{a,*(b|c,d)}", ["a","(b|c", "*(b|c", "d)"]]
-    // a
-    // *(b|c)
-    // *(b|d)
-    , ["{a,*(b|{c,d})}", ["a","b", "bc", "cb", "c", "d"]]
-    , ["*(a|{b|c,c})", ["a", "b", "c", "ab", "ac", "bc", "cb"]]
-
-
-    // test various flag settings.
-    , [ "*(a|{b|c,c})", ["x(a|b|c)", "x(a|c)", "(a|b|c)", "(a|c)"]
-      , { noext: true } ]
-    , ["a?b", ["x/y/acb", "acb/"], {matchBase: true}
-      , ["x/y/acb", "acb/", "acb/d/e", "x/y/acb/d"] ]
-    , ["#*", ["#a", "#b"], {nocomment: true}, ["#a", "#b", "c#d"]]
-
-
-    // begin channelling Boole and deMorgan...
-    , "negation tests"
-    , function () {
-        files = ["d", "e", "!ab", "!abc", "a!b", "\\!a"]
-      }
-
-    // anything that is NOT a* matches.
-    , ["!a*", ["\\!a", "d", "e", "!ab", "!abc"]]
-
-    // anything that IS !a* matches.
-    , ["!a*", ["!ab", "!abc"], {nonegate: true}]
-
-    // anything that IS a* matches
-    , ["!!a*", ["a!b"]]
-
-    // anything that is NOT !a* matches
-    , ["!\\!a*", ["a!b", "d", "e", "\\!a"]]
-
-    // negation nestled within a pattern
-    , function () {
-        files = [ "foo.js"
-                , "foo.bar"
-                // can't match this one without negative lookbehind.
-                , "foo.js.js"
-                , "blar.js"
-                , "foo."
-                , "boo.js.boo" ]
-      }
-    , ["*.!(js)", ["foo.bar", "foo.", "boo.js.boo"] ]
-
-    ].forEach(function (c) {
-      if (typeof c === "function") return c()
-      if (typeof c === "string") return t.comment(c)
-
-      var pattern = c[0]
-        , expect = c[1].sort(alpha)
-        , options = c[2] || {}
-        , f = c[3] || files
-        , tapOpts = c[4] || {}
-
-      // options.debug = true
-      var Class = mm.defaults(options).Minimatch
-      var m = new Class(pattern, {})
-      var r = m.makeRe()
-      tapOpts.re = String(r) || JSON.stringify(r)
-      tapOpts.files = JSON.stringify(f)
-      tapOpts.pattern = pattern
-      tapOpts.set = m.set
-      tapOpts.negated = m.negate
-
-      var actual = mm.match(f, pattern, options)
-      actual.sort(alpha)
-
-      t.equivalent( actual, expect
-                  , JSON.stringify(pattern) + " " + JSON.stringify(expect)
-                  , tapOpts )
-    })
-
-  t.comment("time=" + (Date.now() - start) + "ms")
-  t.end()
-})
-
-tap.test("global leak test", function (t) {
-  var globalAfter = Object.keys(global)
-  t.equivalent(globalAfter, globalBefore, "no new globals, please")
-  t.end()
-})
-
-function alpha (a, b) {
-  return a > b ? 1 : -1
-}

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/Jakefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/Jakefile b/blackberry10/node_modules/jake/node_modules/utilities/Jakefile
deleted file mode 100644
index 1523f05..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/Jakefile
+++ /dev/null
@@ -1,37 +0,0 @@
-
-var t = new jake.TestTask('Utilities', function () {
-  this.testFiles.include('test/*.js');
-});
-
-namespace('doc', function () {
-  task('generate', ['doc:clobber'], function () {
-    var cmd = '../node-jsdoc-toolkit/app/run.js -n -r=100 ' +
-        '-t=../node-jsdoc-toolkit/templates/codeview -d=./doc/ ./lib';
-    console.log('Generating docs ...');
-    jake.exec([cmd], function () {
-      console.log('Done.');
-      complete();
-    });
-  }, {async: true});
-
-  task('clobber', function () {
-    var cmd = 'rm -fr ./doc/**';
-    jake.exec([cmd], function () {
-      console.log('Clobbered old docs.');
-      complete();
-    });
-  }, {async: true});
-
-});
-
-desc('Generate docs for Utilities');
-task('doc', ['doc:generate']);
-
-var p = new jake.NpmPublishTask('utilities', [
-  'Jakefile'
-, 'README.md'
-, 'package.json'
-, 'lib/**'
-, 'test/**'
-]);
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/README.md b/blackberry10/node_modules/jake/node_modules/utilities/README.md
deleted file mode 100644
index fbbdf59..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-utilities
-=========
-
-[![build status](https://secure.travis-ci.org/mde/utilities.png)](http://travis-ci.org/mde/utilities)
-
-A classic collection of JavaScript utilities
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/array.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/array.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/array.js
deleted file mode 100644
index 836de2c..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/array.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-/**
-  @name array
-  @namespace array
-*/
-
-var array = new (function () {
-
-  /**
-    @name array#humanize
-    @public
-    @function
-    @return {String} A string containing the array elements in a readable format
-    @description Creates a string containing the array elements in a readable format
-    @param {Array} array The array to humanize
-  */
-  this.humanize = function (array) {
-    // If array only has one item then just return it
-    if (array.length <= 1) {
-      return String(array);
-    }
-
-    var last = array.pop()
-      , items = array.join(', ');
-
-    return items + ' and ' + last;
-  };
-
-  /**
-    @name array#included
-    @public
-    @function
-    @return {Array/Boolean} If `item` is included the `array` is
-      returned otherwise false
-    @description Checks if an `item` is included in an `array`
-    @param {Any} item The item to look for
-    @param {Array} array The array to check
-  */
-  this.included = function (item, array) {
-    var result = array.indexOf(item);
-
-    if (result === -1) {
-      return false;
-    } else {
-      return array;
-    }
-  };
-
-  /**
-    @name array#include
-    @public
-    @function
-    @return {Boolean} Return true if the item is included in the array
-    @description Checks if an `item` is included in an `array`
-    @param {Array} array The array to check
-    @param {Any} item The item to look for
-  */
-  this.include = function (array, item) {
-    var res = -1;
-    if (typeof array.indexOf == 'function') {
-      res = array.indexOf(item);
-    }
-    else {
-      for (var i = 0, ii = array.length; i < ii; i++) {
-        if (array[i] == item) {
-          res = i;
-          break;
-        }
-      }
-    }
-    return res > -1;
-  };
-
-})();
-
-module.exports = array;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/async.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/async.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/async.js
deleted file mode 100644
index 06a7429..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/async.js
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var async = {};
-
-/*
-AsyncChain -- performs a list of asynchronous calls in a desired order.
-Optional "last" method can be set to run after all the items in the
-chain have completed.
-
-  // Example usage
-  var asyncChain = new async.AsyncChain([
-    {
-      func: app.trainToBangkok,
-      args: [geddy, neil, alex],
-      callback: null, // No callback for this action
-    },
-    {
-      func: fs.readdir,
-      args: [geddy.config.dirname + '/thailand/express'],
-      callback: function (err, result) {
-        if (err) {
-          // Bail out completely
-          arguments.callee.chain.abort();
-        }
-        else if (result.theBest) {
-          // Don't run the next item in the chain; go directly
-          // to the 'last' method.
-          arguments.callee.chain.shortCircuit();
-        }
-        else {
-          // Otherwise do some other stuff and
-          // then go to the next link
-        }
-      }
-    },
-    {
-      func: child_process.exec,
-      args: ['ls ./'],
-      callback: this.hitTheStops
-    }
-  ]);
-
-  // Function to exec after all the links in the chain finish
-  asyncChain.last = function () { // Do some final stuff };
-
-  // Start the async-chain
-  asyncChain.run();
-
-*/
-async.execNonBlocking = function (func) {
-  if (typeof process != 'undefined' && typeof process.nextTick == 'function') {
-    process.nextTick(func);
-  }
-  else {
-    setTimeout(func, 0);
-  }
-};
-
-async.AsyncBase = new (function () {
-
-  this.init = function (chain) {
-    var item;
-    this.chain = [];
-    this.currentItem = null;
-    this.shortCircuited = false;
-    this.shortCircuitedArgs = undefined;
-    this.aborted = false;
-
-    for (var i = 0; i < chain.length; i++) {
-      item = chain[i];
-      this.chain.push(new async.AsyncCall(
-          item.func, item.args, item.callback, item.context));
-    }
-  };
-
-  this.runItem = function (item) {
-    // Reference to the current item in the chain -- used
-    // to look up the callback to execute with execCallback
-    this.currentItem = item;
-    // Scopage
-    var _this = this;
-    // Pass the arguments passed to the current async call
-    // to the callback executor, execute it in the correct scope
-    var executor = function () {
-      _this.execCallback.apply(_this, arguments);
-    };
-    // Append the callback executor to the end of the arguments
-    // Node helpfully always has the callback func last
-    var args = item.args.concat(executor);
-    var func = item.func;
-    // Run the async call
-    func.apply(item.context, args);
-  };
-
-  this.next = function () {
-    if (this.chain.length) {
-      this.runItem(this.chain.shift());
-    }
-    else {
-      this.last();
-    }
-  };
-
-  this.execCallback = function () {
-    // Look up the callback, if any, specified for this async call
-    var callback = this.currentItem.callback;
-    // If there's a callback, do it
-    if (callback && typeof callback == 'function') {
-      // Allow access to the chain from inside the callback by setting
-      // callback.chain = this, and then using arguments.callee.chain
-      callback.chain = this;
-      callback.apply(this.currentItem.context, arguments);
-    }
-
-    this.currentItem.finished = true;
-
-    // If one of the async callbacks called chain.shortCircuit,
-    // skip to the 'last' function for the chain
-    if (this.shortCircuited) {
-      this.last.apply(null, this.shortCircuitedArgs);
-    }
-    // If one of the async callbacks called chain.abort,
-    // bail completely out
-    else if (this.aborted) {
-      return;
-    }
-    // Otherwise run the next item, if any, in the chain
-    // Let's try not to block if we don't have to
-    else {
-      // Scopage
-      var _this = this;
-      async.execNonBlocking(function () { _this.next.call(_this); });
-    }
-  }
-
-  // Short-circuit the chain, jump straight to the 'last' function
-  this.shortCircuit = function () {
-    this.shortCircuitedArgs = arguments;
-    this.shortCircuited = true;
-  }
-
-  // Stop execution of the chain, bail completely out
-  this.abort = function () {
-    this.aborted = true;
-  }
-
-  // Kick off the chain by grabbing the first item and running it
-  this.run = this.next;
-
-  // Function to run when the chain is done -- default is a no-op
-  this.last = function () {};
-
-})();
-
-async.AsyncChain = function (chain) {
-  this.init(chain);
-};
-
-async.AsyncChain.prototype = async.AsyncBase;
-
-async.AsyncGroup = function (group) {
-  var item;
-  var callback;
-  var args;
-
-  this.group = [];
-  this.outstandingCount = 0;
-
-  for (var i = 0; i < group.length; i++) {
-    item = group[i];
-    this.group.push(new async.AsyncCall(
-        item.func, item.args, item.callback, item.context));
-    this.outstandingCount++;
-  }
-
-};
-
-/*
-Simpler way to group async calls -- doesn't ensure completion order,
-but still has a "last" method called when the entire group of calls
-have completed.
-*/
-async.AsyncGroup.prototype = new function () {
-  this.run = function () {
-    var _this = this
-      , group = this.group
-      , item
-      , createItem = function (item, args) {
-          return function () {
-            item.func.apply(item.context, args);
-          };
-        }
-      , createCallback = function (item) {
-          return function () {
-            if (item.callback) {
-              item.callback.apply(null, arguments);
-            }
-            _this.finish.call(_this);
-          }
-        };
-
-    for (var i = 0; i < group.length; i++) {
-      item = group[i];
-      callback = createCallback(item);
-      args = item.args.concat(callback);
-      // Run the async call
-      async.execNonBlocking(createItem(item, args));
-    }
-  };
-
-  this.finish = function () {
-    this.outstandingCount--;
-    if (!this.outstandingCount) {
-      this.last();
-    };
-  };
-
-  this.last = function () {};
-
-};
-
-var _createSimpleAsyncCall = function (func, context) {
-  return {
-    func: func
-  , args: []
-  , callback: function () {}
-  , context: context
-  };
-};
-
-async.SimpleAsyncChain = function (funcs, context) {
-  chain = [];
-  for (var i = 0, ii = funcs.length; i < ii; i++) {
-    chain.push(_createSimpleAsyncCall(funcs[i], context));
-  }
-  this.init(chain);
-};
-
-async.SimpleAsyncChain.prototype = async.AsyncBase;
-
-async.AsyncCall = function (func, args, callback, context) {
-  this.func = func;
-  this.args = args;
-  this.callback = callback || null;
-  this.context = context || null;
-};
-
-async.Initializer = function (steps, callback) {
-  var self = this;
-  this.steps = {};
-  this.callback = callback;
-  // Create an object-literal of the steps to tick off
-  steps.forEach(function (step) {
-    self.steps[step] = false;
-  });
-};
-
-async.Initializer.prototype = new (function () {
-  this.complete = function (step) {
-    var steps = this.steps;
-    // Tick this step off
-    steps[step] = true;
-    // Iterate the steps -- if any are not done, bail out
-    for (var p in steps) {
-      if (!steps[p]) {
-        return false;
-      }
-    }
-    // If all steps are done, run the callback
-    this.callback();
-  };
-})();
-
-module.exports = async;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/core.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/core.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/core.js
deleted file mode 100644
index 6b41ce7..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/core.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var core = new (function () {
-
-  var _mix = function (targ, src, merge, includeProto) {
-    for (var p in src) {
-      // Don't copy stuff from the prototype
-      if (src.hasOwnProperty(p) || includeProto) {
-        if (merge &&
-            // Assumes the source property is an Object you can
-            // actually recurse down into
-            (typeof src[p] == 'object') &&
-            (src[p] !== null) &&
-            !(src[p] instanceof Array)) {
-          // Create the source property if it doesn't exist
-          // Double-equal to undefined includes both null and undefined
-          if (targ[p] == undefined) {
-            targ[p] = {};
-          }
-          _mix(targ[p], src[p], merge, includeProto); // Recurse
-        }
-        // If it's not a merge-copy, just set and forget
-        else {
-          targ[p] = src[p];
-        }
-      }
-    }
-  };
-
-  /*
-   * Mix in the properties on an object to another object
-   * yam.mixin(target, source, [source,] [source, etc.] [merge-flag]);
-   * 'merge' recurses, to merge object sub-properties together instead
-   * of just overwriting with the source object.
-   */
-  this.mixin = function () {
-    var args = Array.prototype.slice.apply(arguments),
-        merge = false,
-        targ, sources;
-    if (args.length > 2) {
-      if (typeof args[args.length - 1] == 'boolean') {
-        merge = args.pop();
-      }
-    }
-    targ = args.shift();
-    sources = args;
-    for (var i = 0, ii = sources.length; i < ii; i++) {
-      _mix(targ, sources[i], merge);
-    }
-    return targ;
-  };
-
-  this.enhance = function () {
-    var args = Array.prototype.slice.apply(arguments),
-        merge = false,
-        targ, sources;
-    if (args.length > 2) {
-      if (typeof args[args.length - 1] == 'boolean') {
-        merge = args.pop();
-      }
-    }
-    targ = args.shift();
-    sources = args;
-    for (var i = 0, ii = sources.length; i < ii; i++) {
-      _mix(targ, sources[i], merge, true);
-    }
-    return targ;
-  };
-
-  // Idea to add invalid number & Date from Michael J. Ryan,
-  // http://frugalcoder.us/post/2010/02/15/js-is-empty.aspx
-  this.isEmpty = function (val) {
-    // Empty string, null or undefined (these two are double-equal)
-    if (val === '' || val == undefined) {
-      return true;
-    }
-    // Invalid numerics
-    if (typeof val == 'number' && isNaN(val)) {
-      return true;
-    }
-    // Invalid Dates
-    if (val instanceof Date && isNaN(val.getTime())) {
-      return true;
-    }
-    return false;
-  };
-
-})();
-
-module.exports = core;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/date.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/date.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/date.js
deleted file mode 100644
index 7232ce0..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/date.js
+++ /dev/null
@@ -1,903 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var string = require('./string')
-  , date
-  , log = require('./log');
-
-/**
-  @name date
-  @namespace date
-*/
-
-date = new (function () {
-  var _this = this
-    , _date = new Date();
-
-  var _US_DATE_PAT = /^(\d{1,2})(?:\-|\/|\.)(\d{1,2})(?:\-|\/|\.)(\d{4})/;
-  var _DATETIME_PAT = /^(\d{4})(?:\-|\/|\.)(\d{1,2})(?:\-|\/|\.)(\d{1,2})(?:T| )?(\d{2})?(?::)?(\d{2})?(?::)?(\d{2})?(?:\.)?(\d+)?(?: *)?(Z|[+-]\d{4}|[+-]\d{2}:\d{2}|[+-]\d{2})?/;
-  // TODO Add am/pm parsing instead of dumb, 24-hour clock.
-  var _TIME_PAT = /^(\d{1,2})?(?::)?(\d{2})?(?::)?(\d{2})?(?:\.)?(\d+)?$/;
-
-  var _dateMethods = [
-      'FullYear'
-    , 'Month'
-    , 'Date'
-    , 'Hours'
-    , 'Minutes'
-    , 'Seconds'
-    , 'Milliseconds'
-  ];
-
-  var _isArray = function (obj) {
-    return obj &&
-      typeof obj === 'object' &&
-      typeof obj.length === 'number' &&
-      typeof obj.splice === 'function' &&
-      !(obj.propertyIsEnumerable('length'));
-  };
-
-  this.weekdayLong = ['Sunday', 'Monday', 'Tuesday',
-    'Wednesday', 'Thursday', 'Friday', 'Saturday'];
-  this.weekdayShort = ['Sun', 'Mon', 'Tue', 'Wed',
-    'Thu', 'Fri', 'Sat'];
-  this.monthLong = ['January', 'February', 'March',
-    'April', 'May', 'June', 'July', 'August', 'September',
-    'October', 'November', 'December'];
-  this.monthShort = ['Jan', 'Feb', 'Mar', 'Apr',
-    'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
-  this.meridiem = {
-    'AM': 'AM',
-    'PM': 'PM'
-  }
-  // compat
-  this.meridian = this.meridiem
-
-  /**
-    @name date#supportedFormats
-    @public
-    @object
-    @description List of supported strftime formats
-  */
-  this.supportedFormats = {
-    // abbreviated weekday name according to the current locale
-    'a': function (dt) { return _this.weekdayShort[dt.getDay()]; },
-    // full weekday name according to the current locale
-    'A': function (dt) { return _this.weekdayLong[dt.getDay()]; },
-    //  abbreviated month name according to the current locale
-    'b': function (dt) { return _this.monthShort[dt.getMonth()]; },
-    'h': function (dt) { return _this.strftime(dt, '%b'); },
-    // full month name according to the current locale
-    'B': function (dt) { return _this.monthLong[dt.getMonth()]; },
-    // preferred date and time representation for the current locale
-    'c': function (dt) { return _this.strftime(dt, '%a %b %d %T %Y'); },
-    // century number (the year divided by 100 and truncated
-    // to an integer, range 00 to 99)
-    'C': function (dt) { return _this.calcCentury(dt.getFullYear());; },
-    // day of the month as a decimal number (range 01 to 31)
-    'd': function (dt) { return string.lpad(dt.getDate(), '0', 2); },
-    // same as %m/%d/%y
-    'D': function (dt) { return _this.strftime(dt, '%m/%d/%y') },
-    // day of the month as a decimal number, a single digit is
-    // preceded by a space (range ' 1' to '31')
-    'e': function (dt) { return string.lpad(dt.getDate(), ' ', 2); },
-    // month as a decimal number, a single digit is
-    // preceded by a space (range ' 1' to '12')
-    'f': function () { return _this.strftimeNotImplemented('f'); },
-    // same as %Y-%m-%d
-    'F': function (dt) { return _this.strftime(dt, '%Y-%m-%d');  },
-    // like %G, but without the century.
-    'g': function () { return _this.strftimeNotImplemented('g'); },
-    // The 4-digit year corresponding to the ISO week number
-    // (see %V).  This has the same format and value as %Y,
-    // except that if the ISO week number belongs to the
-    // previous or next year, that year is used instead.
-    'G': function () { return _this.strftimeNotImplemented('G'); },
-    // hour as a decimal number using a 24-hour clock (range
-    // 00 to 23)
-    'H': function (dt) { return string.lpad(dt.getHours(), '0', 2); },
-    // hour as a decimal number using a 12-hour clock (range
-    // 01 to 12)
-    'I': function (dt) { return string.lpad(
-      _this.hrMil2Std(dt.getHours()), '0', 2); },
-    // day of the year as a decimal number (range 001 to 366)
-    'j': function (dt) { return string.lpad(
-      _this.calcDays(dt), '0', 3); },
-    // Hour as a decimal number using a 24-hour clock (range
-    // 0 to 23 (space-padded))
-    'k': function (dt) { return string.lpad(dt.getHours(), ' ', 2); },
-    // Hour as a decimal number using a 12-hour clock (range
-    // 1 to 12 (space-padded))
-    'l': function (dt) { return string.lpad(
-      _this.hrMil2Std(dt.getHours()), ' ', 2); },
-    // month as a decimal number (range 01 to 12)
-    'm': function (dt) { return string.lpad((dt.getMonth()+1), '0', 2); },
-    // minute as a decimal number
-    'M': function (dt) { return string.lpad(dt.getMinutes(), '0', 2); },
-    // Linebreak
-    'n': function () { return '\n'; },
-    // either `am' or `pm' according to the given time value,
-    // or the corresponding strings for the current locale
-    'p': function (dt) { return _this.getMeridian(dt.getHours()); },
-    // time in a.m. and p.m. notation
-    'r': function (dt) { return _this.strftime(dt, '%I:%M:%S %p'); },
-    // time in 24 hour notation
-    'R': function (dt) { return _this.strftime(dt, '%H:%M'); },
-    // second as a decimal number
-    'S': function (dt) { return string.lpad(dt.getSeconds(), '0', 2); },
-    // Tab char
-    't': function () { return '\t'; },
-    // current time, equal to %H:%M:%S
-    'T': function (dt) { return _this.strftime(dt, '%H:%M:%S'); },
-    // weekday as a decimal number [1,7], with 1 representing
-    // Monday
-    'u': function (dt) { return _this.convertOneBase(dt.getDay()); },
-    // week number of the current year as a decimal number,
-    // starting with the first Sunday as the first day of the
-    // first week
-    'U': function () { return _this.strftimeNotImplemented('U'); },
-    // week number of the year (Monday as the first day of the
-    // week) as a decimal number [01,53]. If the week containing
-    // 1 January has four or more days in the new year, then it
-    // is considered week 1. Otherwise, it is the last week of
-    // the previous year, and the next week is week 1.
-    'V': function () { return _this.strftimeNotImplemented('V'); },
-    // week number of the current year as a decimal number,
-    // starting with the first Monday as the first day of the
-    // first week
-    'W': function () { return _this.strftimeNotImplemented('W'); },
-    // day of the week as a decimal, Sunday being 0
-    'w': function (dt) { return dt.getDay(); },
-    // preferred date representation for the current locale
-    // without the time
-    'x': function (dt) { return _this.strftime(dt, '%D'); },
-    // preferred time representation for the current locale
-    // without the date
-    'X': function (dt) { return _this.strftime(dt, '%T'); },
-    // year as a decimal number without a century (range 00 to
-    // 99)
-    'y': function (dt) { return _this.getTwoDigitYear(dt.getFullYear()); },
-    // year as a decimal number including the century
-    'Y': function (dt) { return string.lpad(dt.getFullYear(), '0', 4); },
-    // time zone or name or abbreviation
-    'z': function () { return _this.strftimeNotImplemented('z'); },
-    'Z': function () { return _this.strftimeNotImplemented('Z'); },
-    // Literal percent char
-    '%': function (dt) { return '%'; }
-  };
-
-  /**
-    @name date#getSupportedFormats
-    @public
-    @function
-    @description return the list of formats in a string
-    @return {String} The list of supported formats
-  */
-  this.getSupportedFormats = function () {
-    var str = '';
-    for (var i in this.supportedFormats) { str += i; }
-    return str;
-  }
-
-  this.supportedFormatsPat = new RegExp('%[' +
-      this.getSupportedFormats() + ']{1}', 'g');
-
-  /**
-    @name date#strftime
-    @public
-    @function
-    @return {String} The `dt` formated with the given `format`
-    @description Formats the given date with the strftime formated
-    @param {Date} dt the date object to format
-    @param {String} format the format to convert the date to
-  */
-  this.strftime = function (dt, format) {
-    if (!dt) { return '' }
-
-    var d = dt;
-    var pats = [];
-    var dts = [];
-    var str = format;
-
-    // Allow either Date obj or UTC stamp
-    d = typeof dt == 'number' ? new Date(dt) : dt;
-
-    // Grab all instances of expected formats into array
-    while (pats = this.supportedFormatsPat.exec(format)) {
-      dts.push(pats[0]);
-    }
-
-    // Process any hits
-    for (var i = 0; i < dts.length; i++) {
-      key = dts[i].replace(/%/, '');
-      str = str.replace('%' + key,
-        this.supportedFormats[key](d));
-    }
-    return str;
-
-  };
-
-  this.strftimeNotImplemented = function (s) {
-    throw('this.strftime format "' + s + '" not implemented.');
-  };
-
-  /**
-    @name date#calcCentury
-    @public
-    @function
-    @return {String} The century for the given date
-    @description Find the century for the given `year`
-    @param {Number} year The year to find the century for
-  */
-  this.calcCentury = function (year) {
-    if(!year) {
-      year = _date.getFullYear();
-    }
-
-    var ret = parseInt((year / 100) + 1);
-    year = year.toString();
-
-    // If year ends in 00 subtract one, because it's still the century before the one
-    // it divides to
-    if (year.substring(year.length - 2) === '00') {
-      ret--;
-    }
-
-    return ret.toString();
-  };
-
-  /**
-    @name date#calcDays
-    @public
-    @function
-    @return {Number} The number of days so far for the given date
-    @description Calculate the day number in the year a particular date is on
-    @param {Date} dt The date to use
-  */
-  this.calcDays = function (dt) {
-    var first = new Date(dt.getFullYear(), 0, 1);
-    var diff = 0;
-    var ret = 0;
-    first = first.getTime();
-    diff = (dt.getTime() - first);
-    ret = parseInt(((((diff/1000)/60)/60)/24))+1;
-    return ret;
-  };
-
-  /**
-   * Adjust from 0-6 base week to 1-7 base week
-   * @param d integer for day of week
-   * @return Integer day number for 1-7 base week
-   */
-  this.convertOneBase = function (d) {
-    return d == 0 ? 7 : d;
-  };
-
-  this.getTwoDigitYear = function (yr) {
-    // Add a millenium to take care of years before the year 1000,
-    // (e.g, the year 7) since we're only taking the last two digits
-    // If we overshoot, it doesn't matter
-    var millenYear = yr + 1000;
-    var str = millenYear.toString();
-    str = str.substr(2); // Get the last two digits
-    return str
-  };
-
-  /**
-    @name date#getMeridiem
-    @public
-    @function
-    @return {String} Return 'AM' or 'PM' based on hour in 24-hour format
-    @description Return 'AM' or 'PM' based on hour in 24-hour format
-    @param {Number} h The hour to check
-  */
-  this.getMeridiem = function (h) {
-    return h > 11 ? this.meridiem.PM :
-      this.meridiem.AM;
-  };
-  // Compat
-  this.getMeridian = this.getMeridiem;
-
-  /**
-    @name date#hrMil2Std
-    @public
-    @function
-    @return {String} Return a 12 hour version of the given time
-    @description Convert a 24-hour formatted hour to 12-hour format
-    @param {String} hour The hour to convert
-  */
-  this.hrMil2Std = function (hour) {
-    var h = typeof hour == 'number' ? hour : parseInt(hour);
-    var str = h > 12 ? h - 12 : h;
-    str = str == 0 ? 12 : str;
-    return str;
-  };
-
-  /**
-    @name date#hrStd2Mil
-    @public
-    @function
-    @return {String} Return a 24 hour version of the given time
-    @description Convert a 12-hour formatted hour with meridian flag to 24-hour format
-    @param {String} hour The hour to convert
-    @param {Boolean} pm hour is PM then this should be true
-  */
-  this.hrStd2Mil = function  (hour, pm) {
-    var h = typeof hour == 'number' ? hour : parseInt(hour);
-    var str = '';
-    // PM
-    if (pm) {
-      str = h < 12 ? (h+12) : h;
-    }
-    // AM
-    else {
-      str = h == 12 ? 0 : h;
-    }
-    return str;
-  };
-
-  // Constants for use in this.add
-  var dateParts = {
-    YEAR: 'year'
-    , MONTH: 'month'
-    , DAY: 'day'
-    , HOUR: 'hour'
-    , MINUTE: 'minute'
-    , SECOND: 'second'
-    , MILLISECOND: 'millisecond'
-    , QUARTER: 'quarter'
-    , WEEK: 'week'
-    , WEEKDAY: 'weekday'
-  };
-  // Create a map for singular/plural lookup, e.g., day/days
-  var datePartsMap = {};
-  for (var p in dateParts) {
-    datePartsMap[dateParts[p]] = dateParts[p];
-    datePartsMap[dateParts[p] + 's'] = dateParts[p];
-  }
-  this.dateParts = dateParts;
-
-  /**
-    @name date#add
-    @public
-    @function
-    @return {Date} Incremented date
-    @description Add to a Date in intervals of different size, from
-                 milliseconds to years
-    @param {Date} dt Date (or timestamp Number), date to increment
-    @param {String} interv a constant representing the interval,
-    e.g. YEAR, MONTH, DAY.  See this.dateParts
-    @param {Number} incr how much to add to the date
-  */
-  this.add = function (dt, interv, incr) {
-    if (typeof dt == 'number') { dt = new Date(dt); }
-    function fixOvershoot() {
-      if (sum.getDate() < dt.getDate()) {
-        sum.setDate(0);
-      }
-    }
-    var key = datePartsMap[interv];
-    var sum = new Date(dt);
-    switch (key) {
-      case dateParts.YEAR:
-        sum.setFullYear(dt.getFullYear()+incr);
-        // Keep increment/decrement from 2/29 out of March
-        fixOvershoot();
-        break;
-      case dateParts.QUARTER:
-        // Naive quarter is just three months
-        incr*=3;
-        // fallthrough...
-      case dateParts.MONTH:
-        sum.setMonth(dt.getMonth()+incr);
-        // Reset to last day of month if you overshoot
-        fixOvershoot();
-        break;
-      case dateParts.WEEK:
-        incr*=7;
-        // fallthrough...
-      case dateParts.DAY:
-        sum.setDate(dt.getDate() + incr);
-        break;
-      case dateParts.WEEKDAY:
-        //FIXME: assumes Saturday/Sunday weekend, but even this is not fixed.
-        // There are CLDR entries to localize this.
-        var dat = dt.getDate();
-        var weeks = 0;
-        var days = 0;
-        var strt = 0;
-        var trgt = 0;
-        var adj = 0;
-        // Divide the increment time span into weekspans plus leftover days
-        // e.g., 8 days is one 5-day weekspan / and two leftover days
-        // Can't have zero leftover days, so numbers divisible by 5 get
-        // a days value of 5, and the remaining days make up the number of weeks
-        var mod = incr % 5;
-        if (mod == 0) {
-          days = (incr > 0) ? 5 : -5;
-          weeks = (incr > 0) ? ((incr-5)/5) : ((incr+5)/5);
-        }
-        else {
-          days = mod;
-          weeks = parseInt(incr/5);
-        }
-        // Get weekday value for orig date param
-        strt = dt.getDay();
-        // Orig date is Sat / positive incrementer
-        // Jump over Sun
-        if (strt == 6 && incr > 0) {
-          adj = 1;
-        }
-        // Orig date is Sun / negative incrementer
-        // Jump back over Sat
-        else if (strt == 0 && incr < 0) {
-          adj = -1;
-        }
-        // Get weekday val for the new date
-        trgt = strt + days;
-        // New date is on Sat or Sun
-        if (trgt == 0 || trgt == 6) {
-          adj = (incr > 0) ? 2 : -2;
-        }
-        // Increment by number of weeks plus leftover days plus
-        // weekend adjustments
-        sum.setDate(dat + (7*weeks) + days + adj);
-        break;
-      case dateParts.HOUR:
-        sum.setHours(sum.getHours()+incr);
-        break;
-      case dateParts.MINUTE:
-        sum.setMinutes(sum.getMinutes()+incr);
-        break;
-      case dateParts.SECOND:
-        sum.setSeconds(sum.getSeconds()+incr);
-        break;
-      case dateParts.MILLISECOND:
-        sum.setMilliseconds(sum.getMilliseconds()+incr);
-        break;
-      default:
-        // Do nothing
-        break;
-    }
-    return sum; // Date
-  };
-
-  /**
-    @name date#diff
-    @public
-    @function
-    @return {Number} number of (interv) units apart that
-    the two dates are
-    @description Get the difference in a specific unit of time (e.g., number
-                 of months, weeks, days, etc.) between two dates.
-    @param {Date} date1 First date to check
-    @param {Date} date2 Date to compate `date1` with
-    @param {String} interv a constant representing the interval,
-    e.g. YEAR, MONTH, DAY.  See this.dateParts
-  */
-  this.diff = function (date1, date2, interv) {
-    //  date1
-    //    Date object or Number equivalent
-    //
-    //  date2
-    //    Date object or Number equivalent
-    //
-    //  interval
-    //    A constant representing the interval, e.g. YEAR, MONTH, DAY.  See this.dateParts.
-
-    // Accept timestamp input
-    if (typeof date1 == 'number') { date1 = new Date(date1); }
-    if (typeof date2 == 'number') { date2 = new Date(date2); }
-    var yeaDiff = date2.getFullYear() - date1.getFullYear();
-    var monDiff = (date2.getMonth() - date1.getMonth()) + (yeaDiff * 12);
-    var msDiff = date2.getTime() - date1.getTime(); // Millisecs
-    var secDiff = msDiff/1000;
-    var minDiff = secDiff/60;
-    var houDiff = minDiff/60;
-    var dayDiff = houDiff/24;
-    var weeDiff = dayDiff/7;
-    var delta = 0; // Integer return value
-
-    var key = datePartsMap[interv];
-    switch (key) {
-      case dateParts.YEAR:
-        delta = yeaDiff;
-        break;
-      case dateParts.QUARTER:
-        var m1 = date1.getMonth();
-        var m2 = date2.getMonth();
-        // Figure out which quarter the months are in
-        var q1 = Math.floor(m1/3) + 1;
-        var q2 = Math.floor(m2/3) + 1;
-        // Add quarters for any year difference between the dates
-        q2 += (yeaDiff * 4);
-        delta = q2 - q1;
-        break;
-      case dateParts.MONTH:
-        delta = monDiff;
-        break;
-      case dateParts.WEEK:
-        // Truncate instead of rounding
-        // Don't use Math.floor -- value may be negative
-        delta = parseInt(weeDiff);
-        break;
-      case dateParts.DAY:
-        delta = dayDiff;
-        break;
-      case dateParts.WEEKDAY:
-        var days = Math.round(dayDiff);
-        var weeks = parseInt(days/7);
-        var mod = days % 7;
-
-        // Even number of weeks
-        if (mod == 0) {
-          days = weeks*5;
-        }
-        else {
-          // Weeks plus spare change (< 7 days)
-          var adj = 0;
-          var aDay = date1.getDay();
-          var bDay = date2.getDay();
-
-          weeks = parseInt(days/7);
-          mod = days % 7;
-          // Mark the date advanced by the number of
-          // round weeks (may be zero)
-          var dtMark = new Date(date1);
-          dtMark.setDate(dtMark.getDate()+(weeks*7));
-          var dayMark = dtMark.getDay();
-
-          // Spare change days -- 6 or less
-          if (dayDiff > 0) {
-            switch (true) {
-              // Range starts on Sat
-              case aDay == 6:
-                adj = -1;
-                break;
-              // Range starts on Sun
-              case aDay == 0:
-                adj = 0;
-                break;
-              // Range ends on Sat
-              case bDay == 6:
-                adj = -1;
-                break;
-              // Range ends on Sun
-              case bDay == 0:
-                adj = -2;
-                break;
-              // Range contains weekend
-              case (dayMark + mod) > 5:
-                adj = -2;
-                break;
-              default:
-                // Do nothing
-                break;
-            }
-          }
-          else if (dayDiff < 0) {
-            switch (true) {
-              // Range starts on Sat
-              case aDay == 6:
-                adj = 0;
-                break;
-              // Range starts on Sun
-              case aDay == 0:
-                adj = 1;
-                break;
-              // Range ends on Sat
-              case bDay == 6:
-                adj = 2;
-                break;
-              // Range ends on Sun
-              case bDay == 0:
-                adj = 1;
-                break;
-              // Range contains weekend
-              case (dayMark + mod) < 0:
-                adj = 2;
-                break;
-              default:
-                // Do nothing
-                break;
-            }
-          }
-          days += adj;
-          days -= (weeks*2);
-        }
-        delta = days;
-
-        break;
-      case dateParts.HOUR:
-        delta = houDiff;
-        break;
-      case dateParts.MINUTE:
-        delta = minDiff;
-        break;
-      case dateParts.SECOND:
-        delta = secDiff;
-        break;
-      case dateParts.MILLISECOND:
-        delta = msDiff;
-        break;
-      default:
-        // Do nothing
-        break;
-    }
-    // Round for fractional values and DST leaps
-    return Math.round(delta); // Number (integer)
-  };
-
-  /**
-    @name date#parse
-    @public
-    @function
-    @return {Date} a JavaScript Date object
-    @description Convert various sorts of strings to JavaScript
-                 Date objects
-    @param {String} val The string to convert to a Date
-  */
-  this.parse = function (val) {
-    var dt
-      , matches
-      , reordered
-      , off
-      , posOff
-      , offHours
-      , offMinutes
-      , curr
-      , stamp
-      , utc;
-
-    // Yay, we have a date, use it as-is
-    if (val instanceof Date || typeof val.getFullYear == 'function') {
-      dt = val;
-    }
-
-    // Timestamp?
-    else if (typeof val == 'number') {
-      dt = new Date(val);
-    }
-
-    // String or Array
-    else {
-      // Value preparsed, looks like [yyyy, mo, dd, hh, mi, ss, ms, (offset?)]
-      if (_isArray(val)) {
-        matches = val;
-        matches.unshift(null);
-        matches[8] = null;
-      }
-
-      // Oh, crap, it's a string -- parse this bitch
-      else if (typeof val == 'string') {
-        matches = val.match(_DATETIME_PAT);
-
-        // Stupid US-only format?
-        if (!matches) {
-          matches = val.match(_US_DATE_PAT);
-          if (matches) {
-            reordered = [matches[0], matches[3], matches[1], matches[2]];
-            // Pad the results to the same length as ISO8601
-            reordered[8] = null;
-            matches = reordered;
-          }
-        }
-
-        // Time-stored-in-Date hack?
-        if (!matches) {
-          matches = val.match(_TIME_PAT);
-          if (matches) {
-            reordered = [matches[0], 0, 1, 0, matches[1],
-                matches[2], matches[3], matches[4], null];
-            matches = reordered;
-          }
-        }
-
-      }
-
-      // Sweet, the regex actually parsed it into something useful
-      if (matches) {
-        matches.shift(); // First match is entire match, DO NOT WANT
-
-        off = matches.pop();
-        // If there's an offset (or the 'Z' non-offset offset), use UTC
-        // methods to set everything
-        if (off) {
-          if (off == 'Z') {
-            utc = true;
-            offMinutes = 0;
-          }
-          else {
-            utc = false;
-            off = off.replace(/\+|-|:/g, '');
-            if (parseInt(off, 10) === 0) {
-              utc = true;
-            }
-            else {
-              posOff = off.indexOf('+') === 0;
-              off = off.substr(1);
-              off = off.split(':');
-              offHours = parseInt(off[0], 10);
-              offMinutes = parseInt(off[1], 10) || 0;
-              offMinutes += (offHours * 60);
-              if (!posOff) {
-                offMinutes = 0 - offMinutes;
-              }
-            }
-          }
-        }
-
-        dt = new Date(0);
-
-        // Stupid zero-based months
-        matches[1] = parseInt(matches[1], 10) - 1;
-
-        // Specific offset, iterate the array and set each date property
-        // using UTC setters, then adjust time using offset
-        if (off) {
-          for (var i = matches.length - 1; i > -1; i--) {
-            curr = parseInt(matches[i], 10) || 0;
-            dt['setUTC' + _dateMethods[i]](curr);
-          }
-          // Add any offset
-          dt.setMinutes(dt.getMinutes() - offMinutes);
-        }
-        // Otherwise we know nothing about the offset, just iterate the
-        // array and set each date property using regular setters
-        else {
-          for (var i = matches.length - 1; i > -1; i--) {
-            curr = parseInt(matches[i], 10) || 0;
-            dt['set' + _dateMethods[i]](curr);
-          }
-        }
-      }
-
-      // Shit, last-ditch effort using Date.parse
-      else {
-        stamp = Date.parse(val);
-        // Failures to parse yield NaN
-        if (!isNaN(stamp)) {
-          dt = new Date(stamp);
-        }
-      }
-
-    }
-
-    return dt || null;
-  };
-
-  /**
-    @name date#relativeTime
-    @public
-    @function
-    @return {String} A string describing the amount of time ago
-    the passed-in Date is
-    @description Convert a Date to an English sentence representing
-    how long ago the Date was
-    @param {Date} dt The Date to to convert to a relative time string
-    @param {Object} [opts]
-      @param {Boolean} [opts.abbreviated=false] Use short strings
-      (e.g., '<1m') for the relative-time string
-  */
-  this.relativeTime = function (dt, options) {
-    var opts = options || {}
-      , now = opts.now || new Date()
-      , abbr = opts.abbreviated || false
-      , format = opts.format || '%F %T'
-    // Diff in seconds
-      , diff = (now.getTime() - dt.getTime()) / 1000
-      , ret
-      , num
-      , hour = 60*60
-      , day = 24*hour
-      , week = 7*day
-      , month = 30*day;
-    switch (true) {
-      case diff < 60:
-        ret = abbr ? '<1m' : 'less than a minute ago';
-        break;
-      case diff < 120:
-        ret = abbr ? '1m' : 'about a minute ago';
-        break;
-      case diff < (45*60):
-        num = parseInt((diff / 60), 10);
-        ret = abbr ? num + 'm' : num + ' minutes ago';
-        break;
-      case diff < (2*hour):
-        ret = abbr ? '1h' : 'about an hour ago';
-        break;
-      case diff < (1*day):
-        num = parseInt((diff / hour), 10);
-        ret = abbr ? num + 'h' : 'about ' + num + ' hours ago';
-        break;
-      case diff < (2*day):
-        ret = abbr ? '1d' : 'one day ago';
-        break;
-      case diff < (7*day):
-        num = parseInt((diff / day), 10);
-        ret = abbr ? num + 'd' : 'about ' + num + ' days ago';
-        break;
-      case diff < (11*day):
-        ret = abbr ? '1w': 'one week ago';
-        break;
-      case diff < (1*month):
-        num = Math.round(diff / week);
-        ret = abbr ? num + 'w' : 'about ' + num + ' weeks ago';
-        break;
-      default:
-        ret = date.strftime(dt, format);
-        break;
-    }
-    return ret;
-  };
-
-  /**
-    @name date#toISO8601
-    @public
-    @function
-    @return {String} A string describing the amount of time ago
-    @description Convert a Date to an ISO8601-formatted string
-    @param {Date} dt The Date to to convert to an ISO8601 string
-  */
-  var _pad = function (n) {
-    return n < 10 ? '0' + n : n;
-  };
-  this.toISO8601 = function (dt, options) {
-    var opts = options || {}
-      , off = dt.getTimezoneOffset()
-      , offHours
-      , offMinutes
-      , str = this.strftime(dt, '%F') + 'T'
-          + this.strftime(dt, '%T') + '.'
-          + string.lpad(dt.getMilliseconds(), '0', 3);
-    // Pos and neg numbers are both truthy; only
-    // zero is falsy
-    if (off && !opts.utc) {
-      str += off > 0 ? '-' : '+';
-      offHours = parseInt(off / 60, 10);
-      str += string.lpad(offHours, '0', 2);
-      offMinutes = off % 60;
-      if (offMinutes) {
-        str += string.lpad(offMinutes, '0', 2);
-      }
-    }
-    else {
-      str += 'Z';
-    }
-    return str;
-  };
-
-  // Alias
-  this.toIso8601 = this.toISO8601;
-
-  this.toUTC = function (dt) {
-    return new Date(
-        dt.getUTCFullYear()
-      , dt.getUTCMonth()
-      , dt.getUTCDate()
-      , dt.getUTCHours()
-      , dt.getUTCMinutes()
-      , dt.getUTCSeconds()
-      , dt.getUTCMilliseconds());
-  };
-
-})();
-
-module.exports = date;
-
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/utilities/lib/event_buffer.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/utilities/lib/event_buffer.js b/blackberry10/node_modules/jake/node_modules/utilities/lib/event_buffer.js
deleted file mode 100644
index 3e224c8..0000000
--- a/blackberry10/node_modules/jake/node_modules/utilities/lib/event_buffer.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-/*
-This is a very simple buffer for a predetermined set of events. It is unbounded.
-It forwards all arguments to any outlet emitter attached with sync().
-
-Example:
-    var source = new Stream()
-      , dest = new EventEmitter()
-      , buff = new EventBuffer(source)
-      , data = '';
-    dest.on('data', function (d) { data += d; });
-    source.writeable = true;
-    source.readable = true;
-    source.emit('data', 'abcdef');
-    source.emit('data', '123456');
-    buff.sync(dest);
-*/
-
-/**
-  @name EventBuffer
-  @namespace EventBuffer
-  @constructor
-*/
-
-var EventBuffer = function (src, events) {
-  // By default, we service the default stream events
-  var self = this
-    , streamEvents = ['data', 'end', 'error', 'close', 'fd', 'drain', 'pipe'];
-  this.events = events || streamEvents;
-  this.emitter = src;
-  this.eventBuffer = [];
-  this.outlet = null;
-  this.events.forEach(function (name) {
-    self.emitter.addListener(name, function () {
-      self.proxyEmit(name, arguments);
-    });
-  });
-};
-
-EventBuffer.prototype = new (function () {
-  /**
-    @name EventBuffer#proxyEmit
-    @public
-    @function
-    @description Emit an event by name and arguments or add it to the buffer if
-                 no outlet is set
-    @param {String} name The name to use for the event
-    @param {Array} args An array of arguments to emit
-  */
-  this.proxyEmit = function (name, args) {
-    if (this.outlet) {
-      this.emit(name, args);
-    }
-    else {
-      this.eventBuffer.push({name: name, args: args});
-    }
-  };
-
-  /**
-    @name EventBuffer#emit
-    @public
-    @function
-    @description Emit an event by name and arguments
-    @param {String} name The name to use for the event
-    @param {Array} args An array of arguments to emit
-  */
-  this.emit = function (name, args) {
-    // Prepend name to args
-    var outlet = this.outlet;
-    Array.prototype.splice.call(args, 0, 0, name);
-    outlet.emit.apply(outlet, args);
-  };
-
-  /**
-    @name EventBuffer#sync
-    @public
-    @function
-    @description Flush the buffer and continue piping new events to the outlet
-    @param {Object} outlet The emitter to send events to
-  */
-  this.sync = function (outlet) {
-    var buffer = this.eventBuffer
-      , bufferItem;
-    this.outlet = outlet;
-    while ((bufferItem = buffer.shift())) {
-      this.emit(bufferItem.name, bufferItem.args);
-    }
-  };
-})();
-EventBuffer.prototype.constructor = EventBuffer;
-
-module.exports.EventBuffer = EventBuffer;


[49/53] [abbrv] [partial] CB-6440 create - use shelljs rather than custom copy function

Posted by bh...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/api.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/api.js b/blackberry10/node_modules/jake/lib/api.js
deleted file mode 100644
index 97d7c78..0000000
--- a/blackberry10/node_modules/jake/lib/api.js
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var exec = require('child_process').exec;
-
-var api = new (function () {
-  /**
-    @name task
-    @static
-    @function
-    @description Creates a Jake Task
-    `
-    @param {String} name The name of the Task
-    @param {Array} [prereqs] Prerequisites to be run before this task
-    @param {Function} [action] The action to perform for this task
-    @param {Object} [opts]
-      @param {Boolean} [opts.asyc=false] Perform this task asynchronously.
-      If you flag a task with this option, you must call the global
-      `complete` method inside the task's action, for execution to proceed
-      to the next task.
-
-    @example
-    desc('This is the default task.');
-    task('default', function (params) {
-      console.log('This is the default task.');
-    });
-
-    desc('This task has prerequisites.');
-    task('hasPrereqs', ['foo', 'bar', 'baz'], function (params) {
-      console.log('Ran some prereqs first.');
-    });
-
-    desc('This is an asynchronous task.');
-    task('asyncTask', function () {
-      setTimeout(complete, 1000);
-    }, {async: true});
-   */
-  this.task = function (name, prereqs, action, opts) {
-    var args = Array.prototype.slice.call(arguments)
-      , type
-      , createdTask;
-    args.unshift('task');
-    createdTask = jake.createTask.apply(global, args);
-    jake.currentTaskDescription = null;
-    return createdTask;
-  };
-
-  /**
-    @name directory
-    @static
-    @function
-    @description Creates a Jake DirectoryTask. Can be used as a prerequisite
-    for FileTasks, or for simply ensuring a directory exists for use with a
-    Task's action.
-    `
-    @param {String} name The name of the DiretoryTask
-
-    @example
-
-    // Creates the package directory for distribution
-    directory('pkg');
-   */
-  this.directory = function (name) {
-    var args = Array.prototype.slice.call(arguments)
-      , createdTask;
-    args.unshift('directory');
-    createdTask = jake.createTask.apply(global, args);
-    jake.currentTaskDescription = null;
-    return createdTask;
-  };
-
-  /**
-    @name file
-    @static
-    @function
-    @description Creates a Jake FileTask.
-    `
-    @param {String} name The name of the FileTask
-    @param {Array} [prereqs] Prerequisites to be run before this task
-    @param {Function} [action] The action to create this file, if it doesn't
-    exist already.
-    @param {Object} [opts]
-      @param {Array} [opts.asyc=false] Perform this task asynchronously.
-      If you flag a task with this option, you must call the global
-      `complete` method inside the task's action, for execution to proceed
-      to the next task.
-
-   */
-  this.file = function (name, prereqs, action, opts) {
-    var args = Array.prototype.slice.call(arguments)
-      , createdTask;
-    args.unshift('file');
-    createdTask = jake.createTask.apply(global, args);
-    jake.currentTaskDescription = null;
-    return createdTask;
-  };
-
-  /**
-    @name desc
-    @static
-    @function
-    @description Creates a description for a Jake Task (or FileTask,
-    DirectoryTask). When invoked, the description that iscreated will
-    be associated with whatever Task is created next.
-    `
-    @param {String} description The description for the Task
-   */
-  this.desc = function (description) {
-    jake.currentTaskDescription = description;
-  };
-
-  /**
-    @name namespace
-    @static
-    @function
-    @description Creates a namespace which allows logical grouping
-    of tasks, and prevents name-collisions with task-names. Namespaces
-    can be nested inside of other namespaces.
-    `
-    @param {String} name The name of the namespace
-    @param {Function} scope The enclosing scope for the namespaced tasks
-
-    @example
-    namespace('doc', function () {
-      task('generate', ['doc:clobber'], function () {
-        // Generate some docs
-      });
-
-      task('clobber', function () {
-        // Clobber the doc directory first
-      });
-    });
-   */
-  this.namespace = function (name, scope) {
-    var curr = jake.currentNamespace
-      , ns = curr.childNamespaces[name] || new jake.Namespace(name, curr);
-    curr.childNamespaces[name] = ns;
-    jake.currentNamespace = ns;
-    scope();
-    jake.currentNamespace = curr;
-    jake.currentTaskDescription = null;
-    return ns;
-  };
-
-  /**
-    @name complete
-    @static
-    @function
-    @description Complets an asynchronous task, allowing Jake's
-    execution to proceed to the next task
-    `
-    @example
-    task('generate', ['doc:clobber'], function () {
-      exec('./generate_docs.sh', function (err, stdout, stderr) {
-        if (err || stderr) {
-          fail(err || stderr);
-        }
-        else {
-          console.log(stdout);
-          complete();
-        }
-      });
-    }, {async: true});
-   */
-  this.complete = function () {
-    var current = jake._invocationChain.pop();
-    if (current) {
-      current.complete();
-    }
-  };
-
-  /**
-    @name fail
-    @static
-    @function
-    @description Causes Jake execution to abort with an error.
-    Allows passing an optional error code, which will be used to
-    set the exit-code of exiting process.
-    `
-    @param {Error|String} err The error to thow when aborting execution.
-    If this argument is an Error object, it will simply be thrown. If
-    a String, it will be used as the error-message. (If it is a multi-line
-    String, the first line will be used as the Error message, and the
-    remaining lines will be used as the error-stack.)
-
-    @example
-    task('createTests, function () {
-      if (!fs.existsSync('./tests')) {
-        fail('Test directory does not exist.');
-      }
-      else {
-        // Do some testing stuff ...
-      }
-    });
-   */
-  this.fail = function (err, code) {
-    var msg
-      , errObj;
-    if (code) {
-      jake.errorCode = code;
-    }
-    if (err) {
-      if (typeof err == 'string') {
-        // Use the initial or only line of the error as the error-message
-        // If there was a multi-line error, use the rest as the stack
-        msg = err.split('/n');
-        errObj = new Error(msg.shift());
-        if (msg.length) {
-          errObj.stack = msg.join('\n');
-        }
-        throw errObj;
-      }
-      else if (err instanceof Error) {
-        throw err;
-      }
-      else {
-        throw new Error(err.toString());
-      }
-    }
-    else {
-      throw new Error();
-    }
-  };
-
-})();
-
-module.exports = api;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/file_list.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/file_list.js b/blackberry10/node_modules/jake/lib/file_list.js
deleted file mode 100644
index 6bf8401..0000000
--- a/blackberry10/node_modules/jake/lib/file_list.js
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-var fs = require('fs')
-, path = require('path')
-, minimatch = require('minimatch')
-, utils = require('utilities')
-, globSync;
-
-globSync = function (pat) {
-  var dirname = jake.basedir(pat)
-    , files = jake.readdirR(dirname)
-    , matches;
-  pat = path.normalize(pat);
-  // Hack, Minimatch doesn't support backslashes in the pattern
-  // https://github.com/isaacs/minimatch/issues/7
-  pat = pat.replace(/\\/g, '/');
-  matches = minimatch.match(files, pat, {});
-  return matches;
-};
-
-// Constants
-// ---------------
-// List of all the builtin Array methods we want to override
-var ARRAY_METHODS = Object.getOwnPropertyNames(Array.prototype)
-// Array methods that return a copy instead of affecting the original
-  , SPECIAL_RETURN = {
-      'concat': true
-    , 'slice': true
-    , 'filter': true
-    , 'map': true
-    }
-// Default file-patterns we want to ignore
-  , DEFAULT_IGNORE_PATTERNS = [
-      /(^|[\/\\])CVS([\/\\]|$)/
-    , /(^|[\/\\])\.svn([\/\\]|$)/
-    , /(^|[\/\\])\.git([\/\\]|$)/
-    , /\.bak$/
-    , /~$/
-    ]
-// Ignore core files
-  , DEFAULT_IGNORE_FUNCS = [
-      function (name) {
-        var isDir = false
-          , stats;
-        try {
-          stats = fs.statSync(name);
-          isDir = stats.isDirectory();
-        }
-        catch(e) {}
-        return (/(^|[\/\\])core$/).test(name) && !isDir;
-      }
-    ];
-
-var FileList = function () {
-  var self = this
-    , wrap;
-
-  // List of glob-patterns or specific filenames
-  this.pendingAdd = [];
-  // Switched to false after lazy-eval of files
-  this.pending = true;
-  // Used to calculate exclusions from the list of files
-  this.excludes = {
-    pats: DEFAULT_IGNORE_PATTERNS.slice()
-  , funcs: DEFAULT_IGNORE_FUNCS.slice()
-  , regex: null
-  };
-  this.items = [];
-
-  // Wrap the array methods with the delegates
-  wrap = function (prop) {
-    var arr;
-    self[prop] = function () {
-      if (self.pending) {
-        self.resolve();
-      }
-      if (typeof self.items[prop] == 'function') {
-        // Special method that return a copy
-        if (SPECIAL_RETURN[prop]) {
-          arr = self.items[prop].apply(self.items, arguments);
-          return FileList.clone(self, arr);
-        }
-        else {
-          return self.items[prop].apply(self.items, arguments);
-        }
-      }
-      else {
-        return self.items[prop];
-      }
-    };
-  };
-  for (var i = 0, ii = ARRAY_METHODS.length; i < ii; i++) {
-    wrap(ARRAY_METHODS[i]);
-  }
-
-  // Include whatever files got passed to the constructor
-  this.include.apply(this, arguments);
-
-  // Fix constructor linkage
-  this.constructor = FileList;
-};
-
-FileList.prototype = new (function () {
-  var globPattern = /[*?\[\{]/;
-
-  var _addMatching = function (pat) {
-        var matches = globSync(pat);
-        this.items = this.items.concat(matches);
-      }
-
-    , _resolveAdd = function (name) {
-        if (globPattern.test(name)) {
-          _addMatching.call(this, name);
-        }
-        else {
-          this.push(name);
-        }
-      }
-
-    , _calculateExcludeRe = function () {
-        var pats = this.excludes.pats
-          , pat
-          , excl = []
-          , matches = [];
-
-        for (var i = 0, ii = pats.length; i < ii; i++) {
-          pat = pats[i];
-          if (typeof pat == 'string') {
-            // Glob, look up files
-            if (/[*?]/.test(pat)) {
-              matches = globSync(pat);
-              matches = matches.map(function (m) {
-                return utils.string.escapeRegExpChars(m);
-              });
-              excl = excl.concat(matches);
-            }
-            // String for regex
-            else {
-              excl.push(utils.string.escapeRegExpChars(pat));
-            }
-          }
-          // Regex, grab the string-representation
-          else if (pat instanceof RegExp) {
-            excl.push(pat.toString().replace(/^\/|\/$/g, ''));
-          }
-        }
-        if (excl.length) {
-          this.excludes.regex = new RegExp('(' + excl.join(')|(') + ')');
-        }
-        else {
-          this.excludes.regex = /^$/;
-        }
-      }
-
-    , _resolveExclude = function () {
-        var self = this;
-        _calculateExcludeRe.call(this);
-        // No `reject` method, so use reverse-filter
-        this.items = this.items.filter(function (name) {
-          return !self.shouldExclude(name);
-        });
-      }
-
-  /**
-   * Includes file-patterns in the FileList. Should be called with one or more
-   * pattern for finding file to include in the list. Arguments should be strings
-   * for either a glob-pattern or a specific file-name, or an array of them
-   */
-  this.include = function () {
-    var args = Array.isArray(arguments[0]) ? arguments[0] : arguments;
-    for (var i = 0, ii = args.length; i < ii; i++) {
-      this.pendingAdd.push(args[i]);
-    }
-    return this;
-  };
-
-  /**
-   * Indicates whether a particular file would be filtered out by the current
-   * exclusion rules for this FileList.
-   * @param {String} name The filename to check
-   * @return {Boolean} Whether or not the file should be excluded
-   */
-  this.shouldExclude = function (name) {
-    if (!this.excludes.regex) {
-      _calculateExcludeRe.call(this);
-    }
-    var excl = this.excludes;
-    return excl.regex.test(name) || excl.funcs.some(function (f) {
-      return !!f(name);
-    });
-  };
-
-  /**
-   * Excludes file-patterns from the FileList. Should be called with one or more
-   * pattern for finding file to include in the list. Arguments can be:
-   * 1. Strings for either a glob-pattern or a specific file-name
-   * 2. Regular expression literals
-   * 3. Functions to be run on the filename that return a true/false
-   */
-  this.exclude = function () {
-    var args = Array.isArray(arguments[0]) ? arguments[0] : arguments
-      , arg;
-    for (var i = 0, ii = args.length; i < ii; i++) {
-      arg = args[i];
-      if (typeof arg == 'function' && !(arg instanceof RegExp)) {
-        this.excludes.funcs.push(arg);
-      }
-      else {
-        this.excludes.pats.push(arg);
-      }
-    }
-    if (!this.pending) {
-      _resolveExclude.call(this);
-    }
-    return this;
-  };
-
-  /**
-   * Populates the FileList from the include/exclude rules with a list of
-   * actual files
-   */
-  this.resolve = function () {
-    var name;
-    if (this.pending) {
-      this.pending = false;
-      while ((name = this.pendingAdd.shift())) {
-        _resolveAdd.call(this, name);
-      }
-      _resolveExclude.call(this);
-    }
-    return this;
-  };
-
-  /**
-   * Convert to a plain-jane array
-   */
-  this.toArray = function () {
-    // Call slice to ensure lazy-resolution before slicing items
-    var ret = this.slice().items.slice();
-    return ret;
-  };
-
-  /**
-   * Get rid of any current exclusion rules
-   */
-  this.clearExclude = function () {
-    this.excludes = {
-      pats: []
-    , funcs: []
-    , regex: null
-    };
-    return this;
-  };
-
-})();
-
-// Static method, used to create copy returned by special
-// array methods
-FileList.clone = function (list, items) {
-  var clone = new FileList();
-  if (items) {
-    clone.items = items;
-  }
-  clone.pendingAdd = list.pendingAdd;
-  clone.pending = list.pending;
-  for (var p in list.excludes) {
-    clone.excludes[p] = list.excludes[p];
-  }
-  return clone;
-};
-
-exports.FileList = FileList;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/jake.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/jake.js b/blackberry10/node_modules/jake/lib/jake.js
deleted file mode 100644
index e271342..0000000
--- a/blackberry10/node_modules/jake/lib/jake.js
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var jake
-  , EventEmitter = require('events').EventEmitter
-  , fs = require('fs')
-  , path = require('path')
-  , taskNs = require('./task')
-  , Task = taskNs.Task
-  , FileTask = taskNs.FileTask
-  , DirectoryTask = taskNs.DirectoryTask
-  , api = require('./api')
-  , utils = require('./utils')
-  , Program = require('./program').Program
-  , Loader = require('./loader').Loader
-  , pkg = JSON.parse(fs.readFileSync(__dirname + '/../package.json').toString());
-
-var Namespace = function (name, parentNamespace) {
-  this.name = name;
-  this.parentNamespace = parentNamespace;
-  this.childNamespaces = {};
-  this.tasks = {};
-
-  this.resolve = function(relativeName) {
-    var parts = relativeName.split(':')
-      , name  = parts.pop()
-      , ns    = this
-      , task;
-    for(var i = 0, l = parts.length; ns && i < l; i++) {
-      ns = ns.childNamespaces[parts[i]];
-    }
-
-    return (ns && ns.tasks[name]) ||
-      (this.parentNamespace && this.parentNamespace.resolve(relativeName));
-  }
-
-};
-
-var Invocation = function (taskName, args) {
-  this.taskName = taskName;
-  this.args = args;
-};
-
-// And so it begins
-jake = new EventEmitter();
-
-// Globalize jake and top-level API methods (e.g., `task`, `desc`)
-global.jake = jake;
-utils.mixin(global, api);
-
-// Copy utils onto base jake
-utils.mixin(jake, utils);
-// File utils should be aliased directly on base jake as well
-utils.mixin(jake, utils.file);
-
-utils.mixin(jake, new (function () {
-
-  this._invocationChain = [];
-
-  // Private variables
-  // =================
-  // Local reference for scopage
-  var self = this;
-
-  // Public properties
-  // =================
-  this.version = pkg.version;
-  // Used when Jake exits with a specific error-code
-  this.errorCode = undefined;
-  // Loads Jakefiles/jakelibdirs
-  this.loader = new Loader();
-  // Name/value map of all the various tasks defined in a Jakefile.
-  // Non-namespaced tasks are placed into 'default.'
-  this.defaultNamespace = new Namespace('default', null);
-  // For namespaced tasks -- tasks with no namespace are put into the
-  // 'default' namespace so lookup code can work the same for both
-  // namespaced and non-namespaced.
-  this.currentNamespace = this.defaultNamespace;
-  // Saves the description created by a 'desc' call that prefaces a
-  // 'task' call that defines a task.
-  this.currentTaskDescription = null;
-  this.program = new Program()
-  this.FileList = require('./file_list').FileList;
-  this.PackageTask = require('./package_task').PackageTask;
-  this.NpmPublishTask = require('./npm_publish_task').NpmPublishTask;
-  this.TestTask = require('./test_task').TestTask;
-  this.Task = Task;
-  this.FileTask = FileTask;
-  this.DirectoryTask = DirectoryTask;
-  this.Namespace = Namespace;
-
-  this.parseAllTasks = function () {
-    var _parseNs = function (name, ns) {
-      var nsTasks = ns.tasks
-        , task
-        , nsNamespaces = ns.childNamespaces
-        , fullName;
-      // Iterate through the tasks in each namespace
-      for (var q in nsTasks) {
-        task = nsTasks[q];
-        // Preface only the namespaced tasks
-        fullName = name == 'default' ? q : name + ':' + q;
-        // Save with 'taskname' or 'namespace:taskname' key
-        task.fullName = fullName;
-        jake.Task[fullName] = task;
-      }
-      for (var p in nsNamespaces) {
-        fullName = name  == 'default' ? p : name + ':' + p;
-        _parseNs(fullName, nsNamespaces[p]);
-      }
-    };
-
-    _parseNs('default', jake.defaultNamespace);
-  };
-
-  /**
-   * Displays the list of descriptions avaliable for tasks defined in
-   * a Jakefile
-   */
-  this.showAllTaskDescriptions = function (f) {
-    var maxTaskNameLength = 0
-      , task
-      , str = ''
-      , padding
-      , name
-      , descr
-      , filter = typeof f == 'string' ? f : null;
-
-    for (var p in jake.Task) {
-      task = jake.Task[p];
-      // Record the length of the longest task name -- used for
-      // pretty alignment of the task descriptions
-      maxTaskNameLength = p.length > maxTaskNameLength ?
-        p.length : maxTaskNameLength;
-    }
-    // Print out each entry with descriptions neatly aligned
-    for (var p in jake.Task) {
-      if (filter && p.indexOf(filter) == -1) {
-        continue;
-      }
-      task = jake.Task[p];
-
-      name = '\033[32m' + p + '\033[39m ';
-
-      // Create padding-string with calculated length
-      padding = (new Array(maxTaskNameLength - p.length + 2)).join(' ');
-
-      descr = task.description
-      if (descr) {
-        descr = '\033[90m # ' + descr + '\033[39m \033[37m \033[39m';
-        console.log('jake ' + name + padding + descr);
-      }
-    }
-  };
-
-  this.createTask = function () {
-    var args = Array.prototype.slice.call(arguments)
-      , arg
-      , task
-      , type
-      , name
-      , action
-      , opts = {}
-      , prereqs = [];
-
-      type = args.shift()
-
-    // name, [deps], [action]
-    // Name (string) + deps (array) format
-    if (typeof args[0] == 'string') {
-      name = args.shift();
-      if (Array.isArray(args[0])) {
-        prereqs = args.shift();
-      }
-    }
-    // name:deps, [action]
-    // Legacy object-literal syntax, e.g.: {'name': ['depA', 'depB']}
-    else {
-      obj = args.shift()
-      for (var p in obj) {
-        prereqs = prereqs.concat(obj[p]);
-        name = p;
-      }
-    }
-
-    // Optional opts/callback or callback/opts
-    while ((arg = args.shift())) {
-      if (typeof arg == 'function') {
-        action = arg;
-      }
-      else {
-        opts = arg;
-      }
-    }
-
-    task = jake.currentNamespace.resolve(name);
-    if (task && !action) {
-      // Task already exists and no action, just update prereqs, and return it.
-      task.prereqs = task.prereqs.concat(prereqs);
-      return task;
-    }
-
-    switch (type) {
-      case 'directory':
-        action = function () {
-          jake.mkdirP(name);
-        };
-        task = new DirectoryTask(name, prereqs, action, opts);
-        break;
-      case 'file':
-        task = new FileTask(name, prereqs, action, opts);
-        break;
-      default:
-        task = new Task(name, prereqs, action, opts);
-    }
-
-    if (jake.currentTaskDescription) {
-      task.description = jake.currentTaskDescription;
-      jake.currentTaskDescription = null;
-    }
-    jake.currentNamespace.tasks[name] = task;
-    task.namespace = jake.currentNamespace;
-
-    // FIXME: Should only need to add a new entry for the current
-    // task-definition, not reparse the entire structure
-    jake.parseAllTasks();
-
-    return task;
-  };
-
-  this.init = function () {
-    var self = this;
-    process.addListener('uncaughtException', function (err) {
-      self.program.handleErr(err);
-    });
-
-  };
-
-  this.run = function () {
-    var args = Array.prototype.slice.call(arguments)
-      , program = this.program
-      , loader = this.loader
-      , preempt
-      , opts;
-
-    program.parseArgs(args);
-    program.init();
-
-    preempt = program.firstPreemptiveOption();
-    if (preempt) {
-      preempt();
-    }
-    else {
-      opts = program.opts;
-      // Load Jakefile and jakelibdir files
-      loader.loadFile(opts.jakefile);
-      loader.loadDirectory(opts.jakelibdir);
-
-      program.run();
-    }
-  };
-
-})());
-
-module.exports = jake;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/loader.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/loader.js b/blackberry10/node_modules/jake/lib/loader.js
deleted file mode 100644
index 58c7080..0000000
--- a/blackberry10/node_modules/jake/lib/loader.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var path = require('path')
-  , fs = require('fs')
-  , existsSync = typeof fs.existsSync == 'function' ?
-      fs.existsSync : path.existsSync
-  , utils = require('utilities')
-  , Loader;
-
-
-Loader = function () {
-
-  var JAKEFILE_PAT = /\.jake(\.js|\.coffee)?$/;
-
-  var _requireCoffee = function () {
-        try {
-          return require('coffee-script');
-        }
-        catch (e) {
-          fail('CoffeeScript is missing! Try `npm install coffee-script`');
-        }
-      };
-
-  this.loadFile = function (file) {
-    var jakefile = file ?
-            file.replace(/\.js$/, '').replace(/\.coffee$/, '') : 'Jakefile'
-      , fileSpecified = !!file
-      // Dear God, why?
-      , isCoffee = false
-      // Warning, recursive
-      , exists;
-
-    exists = function () {
-      var cwd = process.cwd();
-      if (existsSync(jakefile) || existsSync(jakefile + '.js') ||
-        existsSync(jakefile + '.coffee')) {
-        return true;
-      }
-      if (!fileSpecified) {
-        process.chdir("..");
-        if (cwd === process.cwd()) {
-          return false;
-        }
-        return exists();
-      }
-    };
-
-    if (!exists()) {
-      fail('No Jakefile. Specify a valid path with -f/--jakefile, ' +
-          'or place one in the current directory.');
-    }
-
-    isCoffee = existsSync(jakefile + '.coffee');
-    if (isCoffee) {
-      CoffeeScript = _requireCoffee();
-    }
-    require(utils.file.absolutize(jakefile));
-  };
-
-  this.loadDirectory = function (d) {
-    var dirname = d || 'jakelib'
-      , dirlist;
-    dirname = utils.file.absolutize(dirname);
-    if (existsSync(dirname)) {
-      dirlist = fs.readdirSync(dirname);
-      dirlist.forEach(function (filePath) {
-        if (JAKEFILE_PAT.test(filePath)) {
-          if (/\.coffee$/.test(filePath)) {
-            CoffeeScript = _requireCoffee();
-          }
-          require(path.join(dirname, filePath));
-        }
-      });
-    }
-  };
-};
-
-module.exports.Loader = Loader;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/npm_publish_task.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/npm_publish_task.js b/blackberry10/node_modules/jake/lib/npm_publish_task.js
deleted file mode 100644
index d4f029b..0000000
--- a/blackberry10/node_modules/jake/lib/npm_publish_task.js
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var fs = require('fs')
-  , exec = require('child_process').exec
-  , utils = require('utilities')
-  , currDir = process.cwd();
-
-var NpmPublishTask = function (name, packageFiles) {
-  this.name = name;
-  this.packageFiles = packageFiles;
-  this.define();
-};
-
-
-NpmPublishTask.prototype = new (function () {
-
-  var _currentBranch = null;
-
-  var getPackage = function () {
-        var pkg = JSON.parse(fs.readFileSync(process.cwd() + '/package.json').toString());
-        return pkg;
-      }
-    , getPackageVersionNumber = function () {
-        return getPackage().version;
-      };
-
-  this.define = function () {
-    var self = this;
-
-    namespace('npm', function () {
-      task('fetchTags', {async: true}, function () {
-        // Make sure local tags are up to date
-        cmds = [
-          'git fetch --tags'
-        ];
-        jake.exec(cmds, function () {
-          console.log('Fetched remote tags.');
-          complete();
-        });
-      });
-
-      task('getCurrentBranch', {async: true}, function () {
-        // Figure out what branch to push to
-        exec('git symbolic-ref --short HEAD',
-            function (err, stdout, stderr) {
-          if (err) {
-            fail(err);
-          }
-          if (stderr) {
-            fail(new Error(stderr));
-          }
-          if (!stdout) {
-            fail(new Error('No current Git branch found'));
-          }
-          _currentBranch = utils.string.trim(stdout);
-          console.log('On branch ' + _currentBranch);
-          complete();
-        });
-      });
-
-      task('version', {async: true}, function () {
-        // Only bump, push, and tag if the Git repo is clean
-        exec('git status --porcelain --untracked-files=no',
-            function (err, stdout, stderr) {
-          var cmds
-            , path
-            , pkg
-            , version
-            , arr
-            , patch
-            , message;
-
-          if (err) {
-            fail(err);
-          }
-          if (stderr) {
-            fail(new Error(stderr));
-          }
-          if (stdout.length) {
-            fail(new Error('Git repository is not clean.'));
-          }
-
-          // Grab the current version-string
-          path = process.cwd() + '/package.json';
-          pkg = getPackage();
-          version = pkg.version;
-          // Increment the patch-number for the version
-          arr = version.split('.');
-          patch = parseInt(arr.pop(), 10) + 1;
-          arr.push(patch);
-          version = arr.join('.');
-          // New package-version
-          pkg.version = version;
-          // Commit-message
-          message = 'Version ' + version
-
-          // Update package.json with the new version-info
-          fs.writeFileSync(path, JSON.stringify(pkg, true, 2));
-
-          cmds = [
-            'git commit package.json -m "' + message + '"'
-          , 'git push origin ' + _currentBranch
-          , 'git tag -a v' + version + ' -m "' + message + '"'
-          , 'git push --tags'
-          ];
-
-          jake.exec(cmds, function () {
-            var version = getPackageVersionNumber();
-            console.log('Bumped version number to v' + version + '.');
-            complete();
-          });
-        });
-      });
-
-      task('definePackage', function () {
-        var version = getPackageVersionNumber()
-          , t;
-        t = new jake.PackageTask(self.name, 'v' + version, function () {
-          this.packageFiles.include(self.packageFiles);
-          this.needTarGz = true;
-        });
-      });
-
-      task('package', {async: true}, function () {
-        var definePack = jake.Task['npm:definePackage']
-          , pack = jake.Task['package']
-          , version = getPackageVersionNumber();
-        // May have already been run
-        definePack.reenable(true);
-        definePack.addListener('complete', function () {
-          pack.addListener('complete', function () {
-            console.log('Created package for ' + self.name + ' v' + version);
-            complete();
-          });
-          pack.invoke();
-        });
-        definePack.invoke();
-      });
-
-      task('publish', {async: true}, function () {
-        var version = getPackageVersionNumber();
-        console.log('Publishing ' + self.name + ' v' + version);
-        cmds = [
-          'npm publish pkg/' + self.name + '-v' + version + '.tar.gz'
-        ];
-        // Hackity hack -- NPM publish sometimes returns errror like:
-        // Error sending version data\nnpm ERR!
-        // Error: forbidden 0.2.4 is modified, should match modified time
-        setTimeout(function () {
-          jake.exec(cmds, function () {
-            console.log('Published to NPM');
-            complete();
-          }, {stdout: true});
-        }, 5000);
-      });
-
-      task('cleanup', function () {
-        var clobber = jake.Task['clobber'];
-        clobber.reenable(true);
-        clobber.invoke();
-        console.log('Cleaned up package');
-      });
-
-    });
-
-    desc('Bump version-number, package, and publish to NPM.');
-    task('publish', ['npm:fetchTags', 'npm:getCurrentBranch', 'npm:version',
-        'npm:package', 'npm:publish', 'npm:cleanup'], function () {});
-
-    jake.Task['npm:definePackage'].invoke();
-  };
-
-})();
-
-jake.NpmPublishTask = NpmPublishTask;
-exports.NpmPublishTask = NpmPublishTask;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/package_task.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/package_task.js b/blackberry10/node_modules/jake/lib/package_task.js
deleted file mode 100644
index 6d972ef..0000000
--- a/blackberry10/node_modules/jake/lib/package_task.js
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var path = require('path')
-  , fs = require('fs')
-  , exec = require('child_process').exec
-  , FileList = require('./file_list').FileList;
-
-/**
-  @name jake
-  @namespace jake
-*/
-/**
-  @name jake.PackageTask
-  @constructor
-  @description Instantiating a PackageTask creates a number of Jake
-  Tasks that make packaging and distributing your software easy.
-
-  @param {String} name The name of the project
-  @param {String} version The current project version (will be
-  appended to the project-name in the package-archive
-  @param {Function} definition Defines the contents of the package,
-  and format of the package-archive. Will be executed on the instantiated
-  PackageTask (i.e., 'this', will be the PackageTask instance),
-  to set the various instance-propertiess.
-
-  @example
-  var t = new jake.PackageTask('rous', 'v' + version, function () {
-    var files = [
-      'Capfile'
-    , 'Jakefile'
-    , 'README.md'
-    , 'package.json'
-    , 'app/*'
-    , 'bin/*'
-    , 'config/*'
-    , 'lib/*'
-    , 'node_modules/*'
-    ];
-    this.packageFiles.include(files);
-    this.packageFiles.exclude('node_modules/foobar');
-    this.needTarGz = true;
-  });
-
- */
-var PackageTask = function (name, version, definition) {
-  /**
-    @name jake.PackageTask#name
-    @public
-    @type {String}
-    @description The name of the project
-   */
-  this.name = name;
-  /**
-    @name jake.PackageTask#version
-    @public
-    @type {String}
-    @description The project version-string
-   */
-  this.version = version;
-  /**
-    @name jake.PackageTask#version
-    @public
-    @type {String='pkg'}
-    @description The directory-name to use for packaging the software
-   */
-  this.packageDir = 'pkg';
-  /**
-    @name jake.PackageTask#packageFiles
-    @public
-    @type {jake.FileList}
-    @description The list of files and directories to include in the
-    package-archive
-   */
-  this.packageFiles = new FileList();
-  /**
-    @name jake.PackageTask#needTar
-    @public
-    @type {Boolean=false}
-    @description If set to true, uses the `tar` utility to create
-    a gzip .tgz archive of the pagckage
-   */
-  this.needTar = false;
-  /**
-    @name jake.PackageTask#needTar
-    @public
-    @type {Boolean=false}
-    @description If set to true, uses the `tar` utility to create
-    a gzip .tar.gz archive of the pagckage
-   */
-  this.needTarGz = false;
-  /**
-    @name jake.PackageTask#needTarBz2
-    @public
-    @type {Boolean=false}
-    @description If set to true, uses the `tar` utility to create
-    a bzip2 .bz2 archive of the pagckage
-   */
-  this.needTarBz2 = false;
-  /**
-    @name jake.PackageTask#needJar
-    @public
-    @type {Boolean=false}
-    @description If set to true, uses the `jar` utility to create
-    a .jar archive of the pagckage
-   */
-  this.needJar = false;
-  /**
-    @name jake.PackageTask#needZip
-    @public
-    @type {Boolean=false}
-    @description If set to true, uses the `zip` utility to create
-    a .zip archive of the pagckage
-   */
-  this.needZip = false;
-  /**
-    @name jake.PackageTask#manifestFile
-    @public
-    @type {String=null}
-    @description Can be set to point the `jar` utility at a manifest
-    file to use in a .jar archive. If unset, one will be automatically
-    created by the `jar` utility. This path should be relative to the
-    root of the package directory (this.packageDir above, likely 'pkg')
-   */
-  this.manifestFile = null;
-  /**
-    @name jake.PackageTask#tarCommand
-    @public
-    @type {String='tar'}
-    @description The shell-command to use for creating tar archives.
-   */
-  this.tarCommand = 'tar';
-  /**
-    @name jake.PackageTask#jarCommand
-    @public
-    @type {String='jar'}
-    @description The shell-command to use for creating jar archives.
-   */
-  this.jarCommand = 'jar';
-  /**
-    @name jake.PackageTask#zipCommand
-    @public
-    @type {String='zip'}
-    @description The shell-command to use for creating zip archives.
-   */
-  this.zipCommand = 'zip';
-  /**
-    @name jake.PackageTask#archiveChangeDir
-    @public
-    @type {String=null}
-    @description Equivalent to the '-C' command for the `tar` and `jar`
-    commands. ("Change to this directory before adding files.")
-   */
-  this.archiveChangeDir = null;
-  /**
-    @name jake.PackageTask#archiveContentDir
-    @public
-    @type {String=null}
-    @description Specifies the files and directories to include in the
-    package-archive. If unset, this will default to the main package
-    directory -- i.e., name + version.
-   */
-  this.archiveContentDir = null;
-
-  if (typeof definition == 'function') {
-    definition.call(this);
-  }
-  this.define();
-};
-
-PackageTask.prototype = new (function () {
-
-  var _compressOpts = {
-        Tar: {
-          ext: '.tgz'
-        , flags: 'cvzf'
-        , cmd: 'tar'
-        }
-      , TarGz: {
-          ext: '.tar.gz'
-        , flags: 'cvzf'
-        , cmd: 'tar'
-        }
-      , TarBz2: {
-          ext: '.tar.bz2'
-        , flags: 'cvjf'
-        , cmd: 'tar'
-        }
-      , Jar: {
-          ext: '.jar'
-        , flags: 'cf'
-        , cmd: 'jar'
-        }
-      , Zip: {
-          ext: '.zip'
-        , flags: 'r'
-        , cmd: 'zip'
-        }
-      };
-
-  this.define = function () {
-    var self = this
-      , packageDirPath = this.packageDirPath()
-      , compressTaskArr = [];
-
-    desc('Build the package for distribution');
-    task('package', ['clobberPackage', 'buildPackage']);
-    // Backward-compat alias
-    task('repackage', ['package']);
-
-    task('clobberPackage', function () {
-      jake.rmRf(self.packageDir, {silent: true});
-    });
-
-    desc('Remove the package');
-    task('clobber', ['clobberPackage']);
-
-    for (var p in _compressOpts) {
-      if (this['need' + p]) {
-        (function (p) {
-          var filename = path.resolve(self.packageDir + '/' + self.packageName() +
-              _compressOpts[p].ext);
-          compressTaskArr.push(filename);
-
-          file(filename, [packageDirPath], function () {
-            var cmd
-              , opts = _compressOpts[p]
-            // Directory to move to when doing the compression-task
-            // Changes in the case of zip for emulating -C option
-              , chdir = self.packageDir
-            // Save the current dir so it's possible to pop back up
-            // after compressing
-              , currDir = process.cwd();
-
-            cmd = self[opts.cmd + 'Command'];
-            cmd += ' -' + opts.flags;
-            if (opts.cmd == 'jar' && self.manifestFile) {
-              cmd += 'm';
-            }
-
-            // The name of the archive to create -- use full path
-            // so compression can be performed from a different dir
-            // if needed
-            cmd += ' ' + filename;
-
-            if (opts.cmd == 'jar' && self.manifestFile) {
-              cmd += ' ' + self.manifestFile;
-            }
-
-            // Where to perform the compression -- -C option isn't
-            // supported in zip, so actually do process.chdir for this
-            if (self.archiveChangeDir) {
-                if (opts.cmd == 'zip') {
-                    chdir = path.join(chdir, self.archiveChangeDir);
-                }
-                else {
-                    cmd += ' -C ' + self.archiveChangeDir;
-                }
-            }
-
-            // Where to stick the archive
-            if (self.archiveContentDir) {
-              cmd += ' ' + self.archiveContentDir;
-            }
-            else {
-              cmd += ' ' + self.packageName();
-            }
-
-            // Move into the desired dir (usually packageDir) to compress
-            // Return back up to the current dir after the exec
-            process.chdir(chdir);
-
-            exec(cmd, function (err, stdout, stderr) {
-              if (err) { throw err; }
-
-              // Return back up to the starting directory (see above,
-              // before exec)
-              process.chdir(currDir);
-
-              complete();
-            });
-          }, {async: true});
-        })(p);
-      }
-    }
-
-    task('buildPackage', compressTaskArr, function () {});
-
-    directory(this.packageDir);
-
-    file(packageDirPath,
-        FileList.clone(this.packageFiles).include(this.packageDir), function () {
-      var fileList = [];
-      self.packageFiles.forEach(function (name) {
-        var f = path.join(self.packageDirPath(), name)
-          , fDir = path.dirname(f)
-          , stats;
-        jake.mkdirP(fDir, {silent: true});
-
-        // Add both files and directories
-        fileList.push({
-          from: name
-        , to: f
-        });
-      });
-      var _copyFile = function () {
-        var cmd
-          , file = fileList.pop()
-          , stat;
-        if (file) {
-          stat = fs.statSync(file.from);
-          // Target is a directory, just create it
-          if (stat.isDirectory()) {
-            jake.mkdirP(file.to, {silent: true});
-            _copyFile();
-          }
-          // Otherwise copy the file
-          else {
-            jake.cpR(file.from, file.to, {silent: true});
-            _copyFile();
-          }
-        }
-        else {
-          complete();
-        }
-      };
-      _copyFile();
-    }, {async: true});
-
-
-  };
-
-  this.packageName = function () {
-    if (this.version) {
-      return this.name + '-' + this.version;
-    }
-    else {
-      return this.name;
-    }
-  };
-
-  this.packageDirPath = function () {
-    return this.packageDir + '/' + this.packageName();
-  };
-
-})();
-
-jake.PackageTask = PackageTask;
-exports.PackageTask = PackageTask;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/parseargs.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/parseargs.js b/blackberry10/node_modules/jake/lib/parseargs.js
deleted file mode 100644
index dd2495b..0000000
--- a/blackberry10/node_modules/jake/lib/parseargs.js
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var parseargs = {};
-
-/**
- * @constructor
- * Parses a list of command-line args into a key/value object of
- * options and an array of positional commands.
- * @ param {Array} opts A list of options in the following format:
- * [{full: 'foo', abbr: 'f'}, {full: 'bar', abbr: 'b'}]]
- */
-parseargs.Parser = function (opts) {
-  // A key/value object of matching options parsed out of the args
-  this.opts = {};
-  this.taskNames = null;
-  this.envVars = null;
-
-  // Data structures used for parsing
-  this.reg = [];
-  this.shortOpts = {};
-  this.longOpts = {};
-
-  var item;
-  for (var i = 0, ii = opts.length; i < ii; i++) {
-    item = opts[i];
-    this.shortOpts[item.abbr] = item;
-    this.longOpts[item.full] = item;
-  }
-  this.reg = opts;
-};
-
-parseargs.Parser.prototype = new function () {
-
-  var _trueOrNextVal = function (argParts, args) {
-        if (argParts[1]) {
-          return argParts[1];
-        }
-        else {
-          return (!args[0] || (args[0].indexOf('-') == 0)) ?
-              true : args.shift();
-        }
-      };
-
-  /**
-   * Parses an array of arguments into options and positional commands
-   * @param {Array} args The command-line args to parse
-   */
-  this.parse = function (args) {
-    var cmds = []
-      , cmd
-      , envVars = {}
-      , opts = {}
-      , arg
-      , argItem
-      , argParts
-      , cmdItems
-      , taskNames = []
-      , preempt;
-
-    while (args.length) {
-      arg = args.shift();
-
-      if (arg.indexOf('-') == 0) {
-        arg = arg.replace(/^--/, '').replace(/^-/, '');
-        argParts = arg.split('=');
-        argItem = this.longOpts[argParts[0]] || this.shortOpts[argParts[0]];
-        if (argItem) {
-          // First-encountered preemptive opt takes precedence -- no further opts
-          // or possibility of ambiguity, so just look for a value, or set to
-          // true and then bail
-          if (argItem.preempts) {
-            opts[argItem.full] = _trueOrNextVal(argParts, args);
-            preempt = true;
-            break;
-          }
-          // If the opt requires a value, see if we can get a value from the
-          // next arg, or infer true from no-arg -- if it's followed by another
-          // opt, throw an error
-          if (argItem.expectValue) {
-            opts[argItem.full] = _trueOrNextVal(argParts, args);
-            if (!opts[argItem.full]) {
-              throw new Error(argItem.full + ' option expects a value.');
-            }
-          }
-          else {
-            opts[argItem.full] = true;
-          }
-        }
-      }
-      else {
-        cmds.unshift(arg);
-      }
-    }
-
-    if (!preempt) {
-      // Parse out any env-vars and task-name
-      while (!!(cmd = cmds.pop())) {
-        cmdItems = cmd.split('=');
-        if (cmdItems.length > 1) {
-          envVars[cmdItems[0]] = cmdItems[1];
-        }
-        else {
-          taskNames.push(cmd);
-        }
-      }
-
-    }
-
-    return {
-      opts: opts
-    , envVars: envVars
-    , taskNames: taskNames
-    };
-  };
-
-};
-
-module.exports = parseargs;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/program.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/program.js b/blackberry10/node_modules/jake/lib/program.js
deleted file mode 100644
index c6c00ea..0000000
--- a/blackberry10/node_modules/jake/lib/program.js
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var fs = require('fs')
-  , parseargs = require('./parseargs')
-  , utils = require('./utils')
-  , Program
-  , optsReg
-  , preempts
-  , usage
-  , die;
-
-optsReg = [
-  { full: 'jakefile'
-  , abbr: 'f'
-  , preempts: false
-  , expectValue: true
-  }
-, { full: 'quiet'
-  , abbr: 'q'
-  , preempts: false
-  , expectValue: false
-  }
-, { full: 'directory'
-  , abbr: 'C'
-  , preempts: false
-  , expectValue: true
-  }
-, { full: 'always-make'
-  , abbr: 'B'
-  , preempts: false
-  , expectValue: false
-  }
-, { full: 'tasks'
-  , abbr: 'T'
-  , preempts: true
-  }
-// Alias ls
-, { full: 'tasks'
-  , abbr: 'ls'
-  , preempts: true
-  }
-, { full: 'trace'
-  , abbr: 't'
-  , preempts: false
-  , expectValue: false
-  }
-, { full: 'help'
-  , abbr: 'h'
-  , preempts: true
-  }
-, { full: 'version'
-  , abbr: 'V'
-  , preempts: true
-  }
-  // Alias lowercase v
-, { full: 'version'
-  , abbr: 'v'
-  , preempts: true
-  }
-, { full: 'jakelibdir'
-  , abbr: 'J'
-  , preempts: false
-  , expectValue: true
-  }
-];
-
-preempts = {
-  version: function () {
-    die(jake.version);
-  }
-, help: function () {
-    die(usage);
-  }
-};
-
-usage = ''
-    + 'Jake JavaScript build tool\n'
-    + '********************************************************************************\n'
-    + 'If no flags are given, Jake looks for a Jakefile or Jakefile.js in the current directory.\n'
-    + '********************************************************************************\n'
-    + '{Usage}: jake [options ...] [env variables ...] target\n'
-    + '\n'
-    + '{Options}:\n'
-    + '  -f,     --jakefile FILE            Use FILE as the Jakefile.\n'
-    + '  -C,     --directory DIRECTORY      Change to DIRECTORY before running tasks.\n'
-    + '  -q,     --quiet                    Do not log messages to standard output.\n'
-    + '  -B,     --always-make              Unconditionally make all targets.\n'
-    + '  -T/ls,  --tasks                 Display the tasks (matching optional PATTERN) with descriptions, then exit.\n'
-    + '  -J,     --jakelibdir JAKELIBDIR    Auto-import any .jake files in JAKELIBDIR. (default is \'jakelib\')\n'
-    + '  -t,     --trace                    Enable full backtrace.\n'
-    + '  -h,     --help                     Display this help message.\n'
-    + '  -V/v,   --version                  Display the Jake version.\n'
-    + '';
-
-Program = function () {
-  this.opts = {};
-  this.taskNames = null;
-  this.taskArgs = null;
-  this.envVars = null;
-};
-
-Program.prototype = new (function () {
-
-  this.handleErr = function (err) {
-    var msg;
-    utils.logger.error('jake aborted.');
-    if (this.opts.trace && err.stack) {
-      utils.logger.error(err.stack);
-    }
-    else {
-      if (err.stack) {
-        msg = err.stack.split('\n').slice(0, 2).join('\n');
-        utils.logger.error(msg);
-        utils.logger.error('(See full trace by running task with --trace)');
-      }
-      else {
-        utils.logger.error(err.message);
-      }
-    }
-    process.exit(jake.errorCode || 1);
-  };
-
-  this.parseArgs = function (args) {
-    var result = (new parseargs.Parser(optsReg)).parse(args);
-    this.setOpts(result.opts);
-    this.setTaskNames(result.taskNames);
-    this.setEnvVars(result.envVars);
-  };
-
-  this.setOpts = function (options) {
-    var opts = options || {};
-    utils.mixin(this.opts, opts);
-  };
-
-  this.setTaskNames = function (names) {
-    if (names && !Array.isArray(names)) {
-      throw new Error('Task names must be an array');
-    }
-    this.taskNames = (names && names.length) ? names : ['default'];
-  };
-
-  this.setEnvVars = function (vars) {
-    this.envVars = vars || null;
-  };
-
-  this.firstPreemptiveOption = function () {
-    var opts = this.opts;
-    for (var p in opts) {
-      if (preempts[p]) {
-        return preempts[p];
-      }
-    }
-    return false;
-  };
-
-  this.init = function (configuration) {
-    var self = this
-      , config = configuration || {};
-    if (config.options) {
-      this.setOpts(config.options);
-    }
-    if (config.taskNames) {
-      this.setTaskNames(config.taskNames);
-    }
-    if (config.envVars) {
-      this.setEnvVars(config.envVars);
-    }
-    process.addListener('uncaughtException', function (err) {
-      self.handleErr(err);
-    });
-    if (this.envVars) {
-      utils.mixin(process.env, this.envVars);
-    }
-  };
-
-  this.run = function () {
-    var taskNames
-      , dirname
-      , opts = this.opts;
-
-    // Run with `jake -T`, just show descriptions
-    if (opts.tasks) {
-      return jake.showAllTaskDescriptions(opts.tasks);
-    }
-
-    taskNames = this.taskNames;
-    if (!(Array.isArray(taskNames) && taskNames.length)) {
-      throw new Error('Please pass jake.runTasks an array of task-names');
-    }
-
-    // Set working dir
-    dirname = opts.directory;
-    if (dirname) {
-      if (utils.file.existsSync(dirname) &&
-        fs.statSync(dirname).isDirectory()) {
-        process.chdir(dirname);
-      }
-      else {
-        throw new Error(dirname + ' is not a valid directory path');
-      }
-    }
-
-    task('__root__', taskNames, function () {});
-
-    rootTask = jake.Task['__root__'];
-    rootTask.once('complete', function () {
-      jake.emit('complete');
-    });
-    jake.emit('start');
-    rootTask.invoke();
-  };
-
-})();
-
-die = function (msg) {
-  console.log(msg);
-  process.exit();
-};
-
-module.exports.Program = Program;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/task/directory_task.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/task/directory_task.js b/blackberry10/node_modules/jake/lib/task/directory_task.js
deleted file mode 100644
index 39c1b68..0000000
--- a/blackberry10/node_modules/jake/lib/task/directory_task.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var DirectoryTask
-  , FileTask = require('./file_task').FileTask;
-
-/**
-  @name jake
-  @namespace jake
-*/
-/**
-  @name jake.DirectoryTask
-  @constructor
-  @augments EventEmitter
-  @augments jake.Task
-  @augments jake.FileTask
-  @description A Jake DirectoryTask
-
-  @param {String} name The name of the directory to create.
- */
-DirectoryTask = function (name) {
-  this.modTime = null;
-  // Do constructor-work only on actual instances, not when used
-  // for inheritance
-  if (arguments.length) {
-    this.init.apply(this, arguments);
-  }
-};
-DirectoryTask.prototype = new FileTask();
-DirectoryTask.prototype.constructor = DirectoryTask;
-
-exports.DirectoryTask = DirectoryTask;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/task/file_task.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/task/file_task.js b/blackberry10/node_modules/jake/lib/task/file_task.js
deleted file mode 100644
index 4525f01..0000000
--- a/blackberry10/node_modules/jake/lib/task/file_task.js
+++ /dev/null
@@ -1,134 +0,0 @@
-var fs = require('fs')
-  , Task = require('./task').Task
-  , FileTask
-  , FileBase
-  , DirectoryTask
-  , utils = require('../utils');
-
-FileBase = new (function () {
-  var isFileOrDirectory = function (t) {
-        return (t instanceof FileTask ||
-            t instanceof DirectoryTask);
-      }
-    , isFile = function (t) {
-        return (t instanceof FileTask && !(t instanceof DirectoryTask));
-      };
-
-  this.shouldRunAction = function () {
-    var runAction = false
-      , prereqs = this.prereqs
-      , prereqName
-      , prereqTask;
-
-    // No repeatsies
-    if (this.done) {
-      return false;
-    }
-    // The always-make override
-    else if (jake.program.opts['always-make']) {
-      // Run if there actually is an action
-      if (typeof this.action == 'function') {
-        return true;
-      }
-      else {
-        return false;
-      }
-    }
-    // Default case
-    else {
-      // We need either an existing file, or an action to create one.
-      // First try grabbing the actual mod-time of the file
-      try {
-        this.updateModTime();
-      }
-      // Then fall back to looking for an action
-      catch(e) {
-        if (typeof this.action == 'function') {
-          return true;
-        }
-        else {
-          throw new Error('File-task ' + this.fullName + ' has no ' +
-            'existing file, and no action to create one.');
-        }
-      }
-
-      // Compare mod-time of all the prereqs with its mod-time
-      // If any prereqs are newer, need to run the action to update
-      if (prereqs && prereqs.length) {
-        for (var i = 0, ii = prereqs.length; i < ii; i++) {
-          prereqName = prereqs[i];
-          prereqTask = jake.Task[prereqName];
-          // Run the action if:
-          // 1. The prereq is a normal task (not file/dir)
-          // 2. The prereq is a file-task with a mod-date more recent than
-          // the one for this file/dir
-          if (prereqTask) {
-            if (!isFileOrDirectory(prereqTask) ||
-                (isFile(prereqTask) && prereqTask.modTime > this.modTime)) {
-              return true;
-            }
-          }
-        }
-      }
-      // File/dir has no prereqs, and exists -- no need to run
-      else {
-        return false;
-      }
-    }
-  };
-
-  this.updateModTime = function () {
-    var stats = fs.statSync(this.name);
-    this.modTime = stats.mtime;
-  };
-
-  this.complete = function () {
-    if (!this.dummy) {
-      this.updateModTime();
-    }
-    this._currentPrereqIndex = 0;
-    this.done = true;
-    this.emit('complete');
-  };
-
-})();
-
-/**
-  @name jake
-  @namespace jake
-*/
-/**
-  @name jake.FileTask
-  @constructor
-  @augments EventEmitter
-  @augments jake.Task
-  @description A Jake FileTask
-
-  @param {String} name The name of the Task
-  @param {Array} [prereqs] Prerequisites to be run before this task
-  @param {Function} [action] The action to perform to create this file
-  @param {Object} [opts]
-    @param {Array} [opts.asyc=false] Perform this task asynchronously.
-    If you flag a task with this option, you must call the global
-    `complete` method inside the task's action, for execution to proceed
-    to the next task.
- */
-FileTask = function (name, prereqs, action, opts) {
-  this.modTime = null;
-  this.dummy = false;
-  // Do constructor-work only on actual instances, not when used
-  // for inheritance
-  if (arguments.length) {
-    this.init.apply(this, arguments);
-  }
-};
-FileTask.prototype = new Task();
-FileTask.prototype.constructor = FileTask;
-utils.mixin(FileTask.prototype, FileBase);
-
-exports.FileTask = FileTask;
-
-// DirectoryTask is a subclass of FileTask, depends on it
-// being defined
-DirectoryTask = require('./directory_task').DirectoryTask;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/task/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/task/index.js b/blackberry10/node_modules/jake/lib/task/index.js
deleted file mode 100644
index e9bef5e..0000000
--- a/blackberry10/node_modules/jake/lib/task/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-
-var Task = require('./task').Task
-  , FileTask = require('./file_task').FileTask
-  , DirectoryTask = require('./directory_task').DirectoryTask;
-
-exports.Task = Task;
-exports.FileTask = FileTask;
-exports.DirectoryTask = DirectoryTask;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/task/task.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/task/task.js b/blackberry10/node_modules/jake/lib/task/task.js
deleted file mode 100644
index 034a6fd..0000000
--- a/blackberry10/node_modules/jake/lib/task/task.js
+++ /dev/null
@@ -1,241 +0,0 @@
-var util = require('util') // Native Node util module
-  , fs = require('fs')
-  , path = require('path')
-  , existsSync = typeof fs.existsSync == 'function' ?
-      fs.existsSync : path.existsSync
-  , EventEmitter = require('events').EventEmitter
-  , Task
-  , TaskBase
-  , utils = require('../utils');
-
-/**
-  @name jake
-  @namespace jake
-*/
-/**
-  @name jake.Task
-  @constructor
-  @augments EventEmitter
-  @description A Jake Task
-
-  @param {String} name The name of the Task
-  @param {Array} [prereqs] Prerequisites to be run before this task
-  @param {Function} [action] The action to perform for this task
-  @param {Object} [opts]
-    @param {Array} [opts.asyc=false] Perform this task asynchronously.
-    If you flag a task with this option, you must call the global
-    `complete` method inside the task's action, for execution to proceed
-    to the next task.
- */
-Task = function () {
-  // Do constructor-work only on actual instances, not when used
-  // for inheritance
-  if (arguments.length) {
-    this.init.apply(this, arguments);
-  }
-};
-
-util.inherits(Task, EventEmitter);
-
-TaskBase = new (function () {
-
-  // Parse any positional args attached to the task-name
-  var parsePrereqName = function (name) {
-        var taskArr = name.split('[')
-          , taskName = taskArr[0]
-          , taskArgs = [];
-        if (taskArr[1]) {
-          taskArgs = taskArr[1].replace(/\]$/, '');
-          taskArgs = taskArgs.split(',');
-        }
-        return {
-          name: taskName
-        , args: taskArgs
-        };
-      };
-
-  /**
-    @name jake.Task#event:complete
-    @event
-   */
-
-  this.init = function (name, prereqs, action, options) {
-    var opts = options || {};
-
-    this._currentPrereqIndex = 0;
-
-    this.name = name;
-    this.prereqs = prereqs;
-    this.action = action;
-    this.async = false;
-    this.done = false;
-    this.fullName = null;
-    this.description = null;
-    this.args = [];
-    this.namespace = null;
-
-    // Support legacy async-flag -- if not explicitly passed or falsy, will
-    // be set to empty-object
-    if (typeof opts == 'boolean' && opts === true) {
-      this.async = true;
-    }
-    else {
-      if (opts.async) {
-        this.async = true;
-      }
-    }
-  };
-
-  /**
-    @name jake.Task#invoke
-    @function
-    @description Runs prerequisites, then this task. If the task has already
-    been run, will not run the task again.
-   */
-  this.invoke = function () {
-    jake._invocationChain.push(this);
-    this.args = Array.prototype.slice.call(arguments);
-    this.runPrereqs();
-  };
-
-  /**
-    @name jake.Task#reenable
-    @function
-    @description Runs this task, without running any prerequisites. If the task
-    has already been run, it will still run it again.
-   */
-  this.execute = function () {
-    jake._invocationChain.push(this);
-    this.reenable();
-    this.run();
-  };
-
-  this.runPrereqs = function () {
-    if (this.prereqs && this.prereqs.length) {
-      this.nextPrereq();
-    }
-    else {
-      this.run();
-    }
-  };
-
-  this.nextPrereq = function () {
-    var self = this
-      , index = this._currentPrereqIndex
-      , name = this.prereqs[index]
-      , absolute
-      , prereq
-      , parsed
-      , filePath
-      , stats;
-
-    if (name) {
-      parsed = parsePrereqName(name);
-      absolute = parsed.name[0] === '^';
-
-      if (absolute) {
-        parsed.name = parsed.name.slice(1);
-        prereq = jake.Task[parsed.name];
-      } else {
-        prereq = this.namespace.resolve(parsed.name);
-      }
-
-      // Task doesn't exist, may be a static file
-      if (!prereq) {
-        // May be namespaced
-        filePath = name.split(':').pop();
-        // Create a dummy FileTask if file actually exists
-        if (existsSync(filePath)) {
-          // If there's not already an existing dummy FileTask for it,
-          // create one
-          prereq = jake.Task[filePath];
-          if (!prereq) {
-            stats = fs.statSync(filePath);
-            prereq = new jake.FileTask(filePath);
-            prereq.modTime = stats.mtime;
-            prereq.dummy = true;
-            // Put this dummy Task in the global Tasks list so
-            // modTime will be eval'd correctly
-            jake.Task[filePath] = prereq;
-          }
-        }
-        // Otherwise it's not a valid task
-        else {
-            throw new Error('Unknown task "' + name + '"');
-        }
-      }
-
-      // Do when done
-      if (prereq.done) {
-        self.handlePrereqComplete(prereq);
-      } else {
-        prereq.once('complete', function () {
-          self.handlePrereqComplete(prereq);
-        });
-        prereq.invoke.apply(prereq, parsed.args);
-      }
-    }
-  };
-
-  this.reenable = function (deep) {
-    var prereqs
-      , prereq;
-    this.done = false;
-    if (deep && this.prereqs) {
-      prereqs = this.prereqs;
-      for (var i = 0, ii = prereqs.length; i < ii; i++) {
-        prereq = jake.Task[prereqs[i]];
-        if (prereq) {
-          prereq.reenable(deep);
-        }
-      }
-    }
-  };
-
-  this.handlePrereqComplete = function (prereq) {
-    var self = this;
-    this._currentPrereqIndex++;
-    if (this._currentPrereqIndex < this.prereqs.length) {
-      setTimeout(function () {
-        self.nextPrereq();
-      }, 0);
-    }
-    else {
-      this.run();
-    }
-  };
-
-  this.shouldRunAction = function () {
-    if (this.done || typeof this.action != 'function') {
-      return false
-    }
-    return true;
-  };
-
-  this.run = function () {
-    var runAction = this.shouldRunAction();
-    if (runAction) {
-      this.emit('start');
-      try {
-        this.action.apply(this, this.args);
-      }
-      catch (e) {
-        this.emit('error', e);
-        return; // Bail out, not complete
-      }
-    }
-    if (!(runAction && this.async)) {
-      complete();
-    }
-  };
-
-  this.complete = function () {
-    this._currentPrereqIndex = 0;
-    this.done = true;
-    this.emit('complete');
-  };
-
-})();
-utils.mixin(Task.prototype, TaskBase);
-
-exports.Task = Task;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/test_task.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/test_task.js b/blackberry10/node_modules/jake/lib/test_task.js
deleted file mode 100644
index 24e1ccf..0000000
--- a/blackberry10/node_modules/jake/lib/test_task.js
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-var path = require('path')
-  , fs = require('fs')
-  , exec = require('child_process').exec
-  , currDir = process.cwd();
-
-/**
-  @name jake
-  @namespace jake
-*/
-/**
-  @name jake.TestTask
-  @constructor
-  @description Instantiating a TestTask creates a number of Jake
-  Tasks that make running tests for your software easy.
-
-  @param {String} name The name of the project
-  @param {Function} definition Defines the list of files containing the tests,
-  and the name of the namespace/task for running them. Will be executed on the
-  instantiated TestTask (i.e., 'this', will be the TestTask instance), to set
-  the various instance-propertiess.
-
-  @example
-  var t = new jake.TestTask('bij-js', function () {
-    this.testName = 'testSpecial';
-    this.testFiles.include('test/**');
-  });
-
- */
-var TestTask = function (name, definition) {
-  var self = this;
-
-  /**
-    @name jake.TestTask#testNam
-    @public
-    @type {String}
-    @description The name of the namespace to place the tests in, and
-    the top-level task for running tests. Defaults to "test"
-   */
-  this.testName = 'test';
-
-  /**
-    @name jake.TestTask#testFiles
-    @public
-    @type {jake.FileList}
-    @description The list of files containing tests to load
-   */
-  this.testFiles = new jake.FileList();
-
-  /**
-    @name jake.TestTask#showDescription
-    @public
-    @type {Boolean}
-    @description Show the created task when doing Jake -T
-   */
-  this.showDescription = true;
-
-  if (typeof definition == 'function') {
-    definition.call(this);
-  }
-
-  if (this.showDescription) {
-    desc('Run the tests for ' + name);
-  }
-  task(this.testName, function () {
-    var t = jake.Task[self.testName + ':run'];
-    t.invoke.apply(t, arguments);
-  }, {async: true});
-
-  namespace(self.testName, function () {
-
-    task('run', function (pat) {
-      var p = pat || '.*'
-        , re
-        , testFiles;
-
-      // Don't nest; make a top-level namespace. Don't want
-      // re-calling from inside to nest infinitely
-     jake.currentNamespace = jake.defaultNamespace;
-
-      re = new RegExp(pat);
-      testFiles = self.testFiles.toArray().filter(function (f) {
-        return (re).test(f);
-      });
-
-      // Create a namespace for all the testing tasks to live in
-      namespace(self.testName + 'Exec', function () {
-        // Each test will be a prereq for the dummy top-level task
-        var prereqs = []
-        // Continuation to pass to the async tests, wrapping `continune`
-          , next = function () {
-              complete();
-            }
-        // Create the task for this test-function
-          , createTask = function (name, action) {
-              // If the test-function is defined with a continuation
-              // param, flag the task as async
-              isAsync = !!action.length;
-
-              // Define the actual namespaced task with the name, the
-              // wrapped action, and the correc async-flag
-              task(name, createAction(name, action), {
-                async: isAsync
-              });
-            }
-        // Used as the action for the defined task for each test.
-          , createAction = function (n, a) {
-              // A wrapped function that passes in the `next` function
-              // for any tasks that run asynchronously
-              return function () {
-                var cb
-                  , msg;
-                if (a.length) {
-                  cb = next;
-                }
-                if (!(n == 'before' || n == 'after')) {
-                  if (n.toLowerCase().indexOf('test') === 0) {
-                    msg = n;
-                  }
-                  else {
-                    msg = 'test ' + n;
-                  }
-                  jake.logger.log(n);
-                }
-                // 'this' will be the task when action is run
-                return a.call(this, cb);
-              };
-            }
-          // Dummy top-level task for everything to be prereqs for
-          , topLevel;
-
-        // Pull in each test-file, and iterate over any exported
-        // test-functions. Register each test-function as a prereq task
-        testFiles.forEach(function (file) {
-          var exp = require(path.join(currDir, file))
-            , name
-            , action
-            , banner
-            , isAsync;
-
-          // Create a namespace for each filename, so test-name collisions
-          // won't be a problem
-          namespace(file, function () {
-
-            // For displaying file banner
-            banner = '*** Running ' + file + ' ***';
-            prereqs.push(self.testName + 'Exec:' + file + ':' + banner);
-            // Create the task
-            createTask(banner, function () {});
-
-            if (typeof exp.before == 'function') {
-              prereqs.push(self.testName + 'Exec:' + file + ':before');
-              // Create the task
-              createTask('before', exp.before);
-            }
-
-            // Walk each exported function, and create a task for each
-            for (var p in exp) {
-              if (p == 'before' || p == 'after') {
-                continue;
-              }
-              // Add the namespace:name of this test to the list of prereqs
-              // for the dummy top-level task
-              prereqs.push(self.testName + 'Exec:' + file + ':' + p);
-              // Create the task
-              createTask(p, exp[p]);
-            }
-
-            if (typeof exp.after == 'function') {
-              prereqs.push(self.testName + 'Exec:' + file + ':after');
-              // Create the task
-              createTask('after', exp.after);
-            }
-
-          });
-        });
-
-        // Create the dummy top-level task. When calling a task internally
-        // with `invoke` that is async (or has async prereqs), have to listen
-        // for the 'complete' event to know when it's done
-        topLevel = task('__top__', prereqs);
-        topLevel.addListener('complete', function () {
-          jake.logger.log('All tests ran successfully');
-          complete();
-        });
-
-        topLevel.invoke(); // Do the thing!
-      });
-
-
-    }, {async: true});
-  });
-
-
-};
-
-jake.TestTask = TestTask;
-exports.TestTask = TestTask;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/utils/index.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/utils/index.js b/blackberry10/node_modules/jake/lib/utils/index.js
deleted file mode 100644
index 389e9c3..0000000
--- a/blackberry10/node_modules/jake/lib/utils/index.js
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Jake JavaScript build tool
- * Copyright 2112 Matthew Eernisse (mde@fleegix.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
-*/
-
-
-var util = require('util') // Native Node util module
-  , exec = require('child_process').exec
-  , spawn = require('child_process').spawn
-  , EventEmitter = require('events').EventEmitter
-  , utils = require('utilities')
-  , logger = require('./logger')
-  , Exec;
-
-var parseArgs = function (argumentsObj) {
-    var args
-      , arg
-      , cmds
-      , callback
-      , opts = {
-          interactive: false
-        , printStdout: false
-        , printStderr: false
-        , breakOnError: true
-        };
-
-    args = Array.prototype.slice.call(argumentsObj);
-
-    cmds = args.shift();
-    // Arrayize if passed a single string command
-    if (typeof cmds == 'string') {
-      cmds = [cmds];
-    }
-    // Make a copy if it's an actual list
-    else {
-      cmds = cmds.slice();
-    }
-
-    // Get optional callback or opts
-    while((arg = args.shift())) {
-      if (typeof arg == 'function') {
-        callback = arg;
-      }
-      else if (typeof arg == 'object') {
-        utils.mixin(opts, arg);
-      }
-    }
-
-    // Backward-compat shim
-    if (typeof opts.stdout != 'undefined') {
-      opts.printStdout = opts.stdout;
-      delete opts.stdout;
-    }
-    if (typeof opts.stderr != 'undefined') {
-      opts.printStderr = opts.stderr;
-      delete opts.stderr;
-    }
-
-    return {
-      cmds: cmds
-    , opts: opts
-    , callback: callback
-    }
-};
-
-/**
-  @name jake
-  @namespace jake
-*/
-utils.mixin(utils, new (function () {
-  /**
-    @name jake.exec
-    @static
-    @function
-    @description Executes shell-commands asynchronously with an optional
-    final callback.
-    `
-    @param {String[]} cmds The list of shell-commands to execute
-    @param {Object} [opts]
-      @param {Boolean} [opts.printStdout=false] Print stdout from each command
-      @param {Boolean} [opts.printStderr=false] Print stderr from each command
-      @param {Boolean} [opts.breakOnError=true] Stop further execution on
-      the first error.
-    @param {Function} [callback] Callback to run after executing  the
-    commands
-
-    @example
-    var cmds = [
-          'echo "showing directories"'
-        , 'ls -al | grep ^d'
-        , 'echo "moving up a directory"'
-        , 'cd ../'
-        ]
-      , callback = function () {
-          console.log('Finished running commands.');
-        }
-    jake.exec(cmds, {stdout: true}, callback);
-   */
-  this.exec = function (a, b, c) {
-    var parsed = parseArgs(arguments)
-      , cmds = parsed.cmds
-      , opts = parsed.opts
-      , callback = parsed.callback;
-
-    var ex = new Exec(cmds, opts, callback);
-
-    if (!opts.interactive) {
-      if (opts.printStdout) {
-        ex.addListener('stdout', function (data) {
-          console.log(utils.string.rtrim(data.toString()));
-        });
-      }
-      if (opts.printStderr) {
-        ex.addListener('stderr', function (data) {
-          console.log(utils.string.rtrim(data.toString()));
-        });
-      }
-    }
-    ex.addListener('error', function (msg, code) {
-      if (opts.breakOnError) {
-        fail(msg, code);
-      }
-    });
-    ex.run();
-
-    return ex;
-  };
-
-  this.createExec = function (a, b, c) {
-    return new Exec(a, b, c);
-  };
-
-})());
-
-Exec = function () {
-  var parsed = parseArgs(arguments)
-    , cmds = parsed.cmds
-    , opts = parsed.opts
-    , callback = parsed.callback;
-
-  this._cmds = cmds;
-  this._callback = callback;
-  this._config = opts;
-};
-
-util.inherits(Exec, EventEmitter);
-
-utils.mixin(Exec.prototype, new (function () {
-
-  var _run = function () {
-        var self = this
-          , sh
-          , cmd
-          , args
-          , next = this._cmds.shift()
-          , config = this._config
-          , errData = '';
-
-        // Keep running as long as there are commands in the array
-        if (next) {
-          this.emit('cmdStart', next);
-
-          // Ganking part of Node's child_process.exec to get cmdline args parsed
-          cmd = '/bin/sh';
-          args = ['-c', next];
-
-          if (process.platform == 'win32') {
-            cmd = 'cmd';
-            args = ['/c', next];
-          }
-
-          if (config.interactive) {
-            sh = spawn(cmd, args, { stdio: [process.stdin, process.stdout, 'pipe']});
-          }
-          else {
-            sh = spawn(cmd, args, { stdio: [process.stdin, 'pipe', 'pipe'] });
-            // Out
-            sh.stdout.on('data', function (data) {
-              self.emit('stdout', data);
-            });
-          }
-
-          // Err
-          sh.stderr.on('data', function (data) {
-            var d = data.toString();
-            self.emit('stderr', data);
-            // Accumulate the error-data so we can use it as the
-            // stack if the process exits with an error
-            errData += d;
-          });
-
-          // Exit, handle err or run next
-          sh.on('exit', function (code) {
-            var msg;
-            if (code != 0) {
-              msg = errData || 'Process exited with error.';
-              msg = utils.string.trim(msg);
-              self.emit('error', msg, code);
-            }
-            if (code == 0 || !config.breakOnError) {
-              self.emit('cmdEnd', next);
-              _run.call(self);
-            }
-          });
-
-        }
-        else {
-          self.emit('end');
-          if (typeof self._callback == 'function') {
-            self._callback();
-          }
-        }
-      };
-
-  this.append = function (cmd) {
-    this._cmds.push(cmd);
-  };
-
-  this.run = function () {
-    _run.call(this);
-  };
-
-})());
-
-utils.Exec = Exec;
-utils.logger = logger;
-
-module.exports = utils;
-

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/lib/utils/logger.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/lib/utils/logger.js b/blackberry10/node_modules/jake/lib/utils/logger.js
deleted file mode 100644
index 71e0d13..0000000
--- a/blackberry10/node_modules/jake/lib/utils/logger.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var util = require('util');
-
-var logger = new (function () {
-  var _output = function (type, out) {
-    var quiet = typeof jake != 'undefined' && jake.program &&
-        jake.program.opts && jake.program.opts.quiet
-      , msg;
-    if (!quiet) {
-      msg = typeof out == 'string' ? out : util.inspect(out);
-      console[type](msg);
-    }
-  };
-
-  this.log = function (out) {
-    _output('log', out);
-  };
-
-  this.error = function (out) {
-    _output('error', out);
-  };
-
-})();
-
-module.exports = logger;

http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/3016473f/blackberry10/node_modules/jake/node_modules/minimatch/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/jake/node_modules/minimatch/LICENSE b/blackberry10/node_modules/jake/node_modules/minimatch/LICENSE
deleted file mode 100644
index 05a4010..0000000
--- a/blackberry10/node_modules/jake/node_modules/minimatch/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.