/* automatically generated by JSCoverage - do not edit */
if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
if (! _$jscoverage['coffee-script/optparse.js']) {
  _$jscoverage['coffee-script/optparse.js'] = [];
  _$jscoverage['coffee-script/optparse.js'][2] = 0;
  _$jscoverage['coffee-script/optparse.js'][3] = 0;
  _$jscoverage['coffee-script/optparse.js'][5] = 0;
  _$jscoverage['coffee-script/optparse.js'][7] = 0;
  _$jscoverage['coffee-script/optparse.js'][8] = 0;
  _$jscoverage['coffee-script/optparse.js'][9] = 0;
  _$jscoverage['coffee-script/optparse.js'][12] = 0;
  _$jscoverage['coffee-script/optparse.js'][13] = 0;
  _$jscoverage['coffee-script/optparse.js'][14] = 0;
  _$jscoverage['coffee-script/optparse.js'][17] = 0;
  _$jscoverage['coffee-script/optparse.js'][18] = 0;
  _$jscoverage['coffee-script/optparse.js'][19] = 0;
  _$jscoverage['coffee-script/optparse.js'][20] = 0;
  _$jscoverage['coffee-script/optparse.js'][21] = 0;
  _$jscoverage['coffee-script/optparse.js'][22] = 0;
  _$jscoverage['coffee-script/optparse.js'][23] = 0;
  _$jscoverage['coffee-script/optparse.js'][24] = 0;
  _$jscoverage['coffee-script/optparse.js'][26] = 0;
  _$jscoverage['coffee-script/optparse.js'][27] = 0;
  _$jscoverage['coffee-script/optparse.js'][28] = 0;
  _$jscoverage['coffee-script/optparse.js'][29] = 0;
  _$jscoverage['coffee-script/optparse.js'][31] = 0;
  _$jscoverage['coffee-script/optparse.js'][32] = 0;
  _$jscoverage['coffee-script/optparse.js'][33] = 0;
  _$jscoverage['coffee-script/optparse.js'][34] = 0;
  _$jscoverage['coffee-script/optparse.js'][35] = 0;
  _$jscoverage['coffee-script/optparse.js'][36] = 0;
  _$jscoverage['coffee-script/optparse.js'][37] = 0;
  _$jscoverage['coffee-script/optparse.js'][38] = 0;
  _$jscoverage['coffee-script/optparse.js'][39] = 0;
  _$jscoverage['coffee-script/optparse.js'][40] = 0;
  _$jscoverage['coffee-script/optparse.js'][41] = 0;
  _$jscoverage['coffee-script/optparse.js'][42] = 0;
  _$jscoverage['coffee-script/optparse.js'][44] = 0;
  _$jscoverage['coffee-script/optparse.js'][45] = 0;
  _$jscoverage['coffee-script/optparse.js'][46] = 0;
  _$jscoverage['coffee-script/optparse.js'][49] = 0;
  _$jscoverage['coffee-script/optparse.js'][50] = 0;
  _$jscoverage['coffee-script/optparse.js'][53] = 0;
  _$jscoverage['coffee-script/optparse.js'][54] = 0;
  _$jscoverage['coffee-script/optparse.js'][57] = 0;
  _$jscoverage['coffee-script/optparse.js'][60] = 0;
  _$jscoverage['coffee-script/optparse.js'][61] = 0;
  _$jscoverage['coffee-script/optparse.js'][62] = 0;
  _$jscoverage['coffee-script/optparse.js'][63] = 0;
  _$jscoverage['coffee-script/optparse.js'][64] = 0;
  _$jscoverage['coffee-script/optparse.js'][66] = 0;
  _$jscoverage['coffee-script/optparse.js'][67] = 0;
  _$jscoverage['coffee-script/optparse.js'][68] = 0;
  _$jscoverage['coffee-script/optparse.js'][69] = 0;
  _$jscoverage['coffee-script/optparse.js'][70] = 0;
  _$jscoverage['coffee-script/optparse.js'][71] = 0;
  _$jscoverage['coffee-script/optparse.js'][72] = 0;
  _$jscoverage['coffee-script/optparse.js'][74] = 0;
  _$jscoverage['coffee-script/optparse.js'][77] = 0;
  _$jscoverage['coffee-script/optparse.js'][81] = 0;
  _$jscoverage['coffee-script/optparse.js'][83] = 0;
  _$jscoverage['coffee-script/optparse.js'][85] = 0;
  _$jscoverage['coffee-script/optparse.js'][87] = 0;
  _$jscoverage['coffee-script/optparse.js'][89] = 0;
  _$jscoverage['coffee-script/optparse.js'][90] = 0;
  _$jscoverage['coffee-script/optparse.js'][91] = 0;
  _$jscoverage['coffee-script/optparse.js'][92] = 0;
  _$jscoverage['coffee-script/optparse.js'][93] = 0;
  _$jscoverage['coffee-script/optparse.js'][94] = 0;
  _$jscoverage['coffee-script/optparse.js'][95] = 0;
  _$jscoverage['coffee-script/optparse.js'][97] = 0;
  _$jscoverage['coffee-script/optparse.js'][99] = 0;
  _$jscoverage['coffee-script/optparse.js'][102] = 0;
  _$jscoverage['coffee-script/optparse.js'][103] = 0;
  _$jscoverage['coffee-script/optparse.js'][104] = 0;
  _$jscoverage['coffee-script/optparse.js'][105] = 0;
  _$jscoverage['coffee-script/optparse.js'][107] = 0;
  _$jscoverage['coffee-script/optparse.js'][108] = 0;
  _$jscoverage['coffee-script/optparse.js'][109] = 0;
  _$jscoverage['coffee-script/optparse.js'][119] = 0;
  _$jscoverage['coffee-script/optparse.js'][120] = 0;
  _$jscoverage['coffee-script/optparse.js'][121] = 0;
  _$jscoverage['coffee-script/optparse.js'][122] = 0;
  _$jscoverage['coffee-script/optparse.js'][123] = 0;
  _$jscoverage['coffee-script/optparse.js'][124] = 0;
  _$jscoverage['coffee-script/optparse.js'][125] = 0;
  _$jscoverage['coffee-script/optparse.js'][126] = 0;
  _$jscoverage['coffee-script/optparse.js'][127] = 0;
  _$jscoverage['coffee-script/optparse.js'][128] = 0;
  _$jscoverage['coffee-script/optparse.js'][129] = 0;
  _$jscoverage['coffee-script/optparse.js'][132] = 0;
  _$jscoverage['coffee-script/optparse.js'][135] = 0;
}
_$jscoverage['coffee-script/optparse.js'][2]++;
(function () {
  _$jscoverage['coffee-script/optparse.js'][3]++;
  var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments;
  _$jscoverage['coffee-script/optparse.js'][5]++;
  exports.OptionParser = OptionParser = (function () {
  _$jscoverage['coffee-script/optparse.js'][7]++;
  function OptionParser(rules, banner) {
    _$jscoverage['coffee-script/optparse.js'][8]++;
    this.banner = banner;
    _$jscoverage['coffee-script/optparse.js'][9]++;
    this.rules = buildRules(rules);
}
  _$jscoverage['coffee-script/optparse.js'][12]++;
  OptionParser.prototype.parse = (function (args) {
  _$jscoverage['coffee-script/optparse.js'][13]++;
  var arg, i, isOption, matchedRule, options, originalArgs, pos, rule, seenNonOptionArg, skippingArgument, value, _i, _j, _len, _len1, _ref;
  _$jscoverage['coffee-script/optparse.js'][14]++;
  options = {"arguments": []};
  _$jscoverage['coffee-script/optparse.js'][17]++;
  skippingArgument = false;
  _$jscoverage['coffee-script/optparse.js'][18]++;
  originalArgs = args;
  _$jscoverage['coffee-script/optparse.js'][19]++;
  args = normalizeArguments(args);
  _$jscoverage['coffee-script/optparse.js'][20]++;
  for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) {
    _$jscoverage['coffee-script/optparse.js'][21]++;
    arg = args[i];
    _$jscoverage['coffee-script/optparse.js'][22]++;
    if (skippingArgument) {
      _$jscoverage['coffee-script/optparse.js'][23]++;
      skippingArgument = false;
      _$jscoverage['coffee-script/optparse.js'][24]++;
      continue;
    }
    _$jscoverage['coffee-script/optparse.js'][26]++;
    if (arg === "--") {
      _$jscoverage['coffee-script/optparse.js'][27]++;
      pos = originalArgs.indexOf("--");
      _$jscoverage['coffee-script/optparse.js'][28]++;
      options.arguments = options.arguments.concat(originalArgs.slice(pos + 1));
      _$jscoverage['coffee-script/optparse.js'][29]++;
      break;
    }
    _$jscoverage['coffee-script/optparse.js'][31]++;
    isOption = ! ! (arg.match(LONG_FLAG) || arg.match(SHORT_FLAG));
    _$jscoverage['coffee-script/optparse.js'][32]++;
    seenNonOptionArg = options.arguments.length > 0;
    _$jscoverage['coffee-script/optparse.js'][33]++;
    if (! seenNonOptionArg) {
      _$jscoverage['coffee-script/optparse.js'][34]++;
      matchedRule = false;
      _$jscoverage['coffee-script/optparse.js'][35]++;
      _ref = this.rules;
      _$jscoverage['coffee-script/optparse.js'][36]++;
      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
        _$jscoverage['coffee-script/optparse.js'][37]++;
        rule = _ref[_j];
        _$jscoverage['coffee-script/optparse.js'][38]++;
        if (rule.shortFlag === arg || rule.longFlag === arg) {
          _$jscoverage['coffee-script/optparse.js'][39]++;
          value = true;
          _$jscoverage['coffee-script/optparse.js'][40]++;
          if (rule.hasArgument) {
            _$jscoverage['coffee-script/optparse.js'][41]++;
            skippingArgument = true;
            _$jscoverage['coffee-script/optparse.js'][42]++;
            value = args[i + 1];
          }
          _$jscoverage['coffee-script/optparse.js'][44]++;
          options[rule.name] = rule.isList? (options[rule.name] || []).concat(value): value;
          _$jscoverage['coffee-script/optparse.js'][45]++;
          matchedRule = true;
          _$jscoverage['coffee-script/optparse.js'][46]++;
          break;
        }
}
      _$jscoverage['coffee-script/optparse.js'][49]++;
      if (isOption && ! matchedRule) {
        _$jscoverage['coffee-script/optparse.js'][50]++;
        throw new Error("unrecognized option: " + arg);
      }
    }
    _$jscoverage['coffee-script/optparse.js'][53]++;
    if (seenNonOptionArg || ! isOption) {
      _$jscoverage['coffee-script/optparse.js'][54]++;
      options.arguments.push(arg);
    }
}
  _$jscoverage['coffee-script/optparse.js'][57]++;
  return options;
});
  _$jscoverage['coffee-script/optparse.js'][60]++;
  OptionParser.prototype.help = (function () {
  _$jscoverage['coffee-script/optparse.js'][61]++;
  var letPart, lines, rule, spaces, _i, _len, _ref;
  _$jscoverage['coffee-script/optparse.js'][62]++;
  lines = [];
  _$jscoverage['coffee-script/optparse.js'][63]++;
  if (this.banner) {
    _$jscoverage['coffee-script/optparse.js'][64]++;
    lines.unshift("" + this.banner + "\n");
  }
  _$jscoverage['coffee-script/optparse.js'][66]++;
  _ref = this.rules;
  _$jscoverage['coffee-script/optparse.js'][67]++;
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
    _$jscoverage['coffee-script/optparse.js'][68]++;
    rule = _ref[_i];
    _$jscoverage['coffee-script/optparse.js'][69]++;
    spaces = 15 - rule.longFlag.length;
    _$jscoverage['coffee-script/optparse.js'][70]++;
    spaces = spaces > 0? Array(spaces + 1).join(" "): "";
    _$jscoverage['coffee-script/optparse.js'][71]++;
    letPart = rule.shortFlag? rule.shortFlag + ", ": "    ";
    _$jscoverage['coffee-script/optparse.js'][72]++;
    lines.push("  " + letPart + rule.longFlag + spaces + rule.description);
}
  _$jscoverage['coffee-script/optparse.js'][74]++;
  return "\n" + lines.join("\n") + "\n";
});
  _$jscoverage['coffee-script/optparse.js'][77]++;
  return OptionParser;
})();
  _$jscoverage['coffee-script/optparse.js'][81]++;
  LONG_FLAG = /^(--\w[\w\-]*)/;
  _$jscoverage['coffee-script/optparse.js'][83]++;
  SHORT_FLAG = /^(-\w)$/;
  _$jscoverage['coffee-script/optparse.js'][85]++;
  MULTI_FLAG = /^-(\w{2,})/;
  _$jscoverage['coffee-script/optparse.js'][87]++;
  OPTIONAL = /\[(\w+(\*?))\]/;
  _$jscoverage['coffee-script/optparse.js'][89]++;
  buildRules = (function (rules) {
  _$jscoverage['coffee-script/optparse.js'][90]++;
  var tuple, _i, _len, _results;
  _$jscoverage['coffee-script/optparse.js'][91]++;
  _results = [];
  _$jscoverage['coffee-script/optparse.js'][92]++;
  for (_i = 0, _len = rules.length; _i < _len; _i++) {
    _$jscoverage['coffee-script/optparse.js'][93]++;
    tuple = rules[_i];
    _$jscoverage['coffee-script/optparse.js'][94]++;
    if (tuple.length < 3) {
      _$jscoverage['coffee-script/optparse.js'][95]++;
      tuple.unshift(null);
    }
    _$jscoverage['coffee-script/optparse.js'][97]++;
    _results.push(buildRule.apply(null, tuple));
}
  _$jscoverage['coffee-script/optparse.js'][99]++;
  return _results;
});
  _$jscoverage['coffee-script/optparse.js'][102]++;
  buildRule = (function (shortFlag, longFlag, description, options) {
  _$jscoverage['coffee-script/optparse.js'][103]++;
  var match;
  _$jscoverage['coffee-script/optparse.js'][104]++;
  if (options == null) {
    _$jscoverage['coffee-script/optparse.js'][105]++;
    options = {};
  }
  _$jscoverage['coffee-script/optparse.js'][107]++;
  match = longFlag.match(OPTIONAL);
  _$jscoverage['coffee-script/optparse.js'][108]++;
  longFlag = longFlag.match(LONG_FLAG)[1];
  _$jscoverage['coffee-script/optparse.js'][109]++;
  return ({name: longFlag.substr(2), shortFlag: shortFlag, longFlag: longFlag, description: description, hasArgument: ! ! (match && match[1]), isList: ! ! (match && match[2])});
});
  _$jscoverage['coffee-script/optparse.js'][119]++;
  normalizeArguments = (function (args) {
  _$jscoverage['coffee-script/optparse.js'][120]++;
  var arg, l, match, result, _i, _j, _len, _len1, _ref;
  _$jscoverage['coffee-script/optparse.js'][121]++;
  args = args.slice(0);
  _$jscoverage['coffee-script/optparse.js'][122]++;
  result = [];
  _$jscoverage['coffee-script/optparse.js'][123]++;
  for (_i = 0, _len = args.length; _i < _len; _i++) {
    _$jscoverage['coffee-script/optparse.js'][124]++;
    arg = args[_i];
    _$jscoverage['coffee-script/optparse.js'][125]++;
    if (match = arg.match(MULTI_FLAG)) {
      _$jscoverage['coffee-script/optparse.js'][126]++;
      _ref = match[1].split("");
      _$jscoverage['coffee-script/optparse.js'][127]++;
      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
        _$jscoverage['coffee-script/optparse.js'][128]++;
        l = _ref[_j];
        _$jscoverage['coffee-script/optparse.js'][129]++;
        result.push("-" + l);
}
    }
    else {
      _$jscoverage['coffee-script/optparse.js'][132]++;
      result.push(arg);
    }
}
  _$jscoverage['coffee-script/optparse.js'][135]++;
  return result;
});
}).call(this);
_$jscoverage['coffee-script/optparse.js'].source = ["// Generated by CoffeeScript 1.4.0","(function() {","  var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments;","","  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 &lt; _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 &gt; 0;","        if (!seenNonOptionArg) {","          matchedRule = false;","          _ref = this.rules;","          for (_j = 0, _len1 = _ref.length; _j &lt; _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 &amp;&amp; !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 &lt; _len; _i++) {","        rule = _ref[_i];","        spaces = 15 - rule.longFlag.length;","        spaces = spaces &gt; 0 ? Array(spaces + 1).join(' ') : '';","        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 &lt; _len; _i++) {","      tuple = rules[_i];","      if (tuple.length &lt; 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 &amp;&amp; match[1]),","      isList: !!(match &amp;&amp; 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 &lt; _len; _i++) {","      arg = args[_i];","      if (match = arg.match(MULTI_FLAG)) {","        _ref = match[1].split('');","        for (_j = 0, _len1 = _ref.length; _j &lt; _len1; _j++) {","          l = _ref[_j];","          result.push('-' + l);","        }","      } else {","        result.push(arg);","      }","    }","    return result;","  };","","}).call(this);"];
